forked from sfms3.0/sfms3.0
1 changed files with 62 additions and 11 deletions
@ -1,40 +1,91 @@ |
|||||
package com.win.module.wms.until.job; |
package com.win.module.wms.until.job; |
||||
|
|
||||
|
import cn.hutool.core.exceptions.UtilException; |
||||
import cn.hutool.json.JSONObject; |
import cn.hutool.json.JSONObject; |
||||
import cn.hutool.json.JSONUtil; |
import cn.hutool.json.JSONUtil; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
import org.apache.commons.lang.StringUtils; |
import org.apache.commons.lang.StringUtils; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.math.BigDecimal; |
||||
import java.util.ArrayList; |
import java.util.ArrayList; |
||||
import java.util.List; |
import java.util.List; |
||||
import java.util.Map; |
import java.util.Map; |
||||
|
|
||||
|
@Slf4j |
||||
|
@Component |
||||
public class JobUtils { |
public class JobUtils { |
||||
/** |
/** |
||||
* 解析JSON串,返回两个对象的集合 |
* 解析JSON串,返回两个对象的集合 |
||||
* |
* |
||||
* @param jobJson |
* @param jsonString |
||||
* @param recordJson |
|
||||
* @return List<Map> |
* @return List<Map> |
||||
*/ |
*/ |
||||
public List<Map> parseJobAndRecord(String jobJson, String recordJson) { |
public static List<Map> parseJobAndRecord(String jsonString) { |
||||
//返回的对象集合
|
//返回的对象集合
|
||||
List resList = new ArrayList(); |
List resList = new ArrayList(); |
||||
//判断前端传的数据是否为空
|
//判断前端传的数据是否为空
|
||||
if (StringUtils.isNotEmpty(jobJson)) { |
if (StringUtils.isNotEmpty(jsonString)) { |
||||
// 任务参数
|
// 任务参数
|
||||
JSONObject jobJsonObject = JSONUtil.parseObj(jobJson); |
try { |
||||
Map jobMap = jobJsonObject.get("job", Map.class); |
JSONObject jobJsonObject = JSONUtil.parseObj(jsonString); |
||||
resList.add(jobMap); |
Map jobMap = jobJsonObject.get("job", Map.class); |
||||
|
resList.add(jobMap); |
||||
|
} catch (Exception e) { |
||||
|
log.error("数据解析异常,请重试!", e); |
||||
|
} |
||||
} |
} |
||||
|
|
||||
//判断前端传的数据是否为空
|
//判断前端传的数据是否为空
|
||||
if (StringUtils.isNotEmpty(jobJson)) { |
if (StringUtils.isNotEmpty(jsonString)) { |
||||
// 记录参数
|
// 记录参数
|
||||
JSONObject recordJsonObject = JSONUtil.parseObj(recordJson); |
try { |
||||
Map recordMap = recordJsonObject.get("record", Map.class); |
JSONObject recordJsonObject = JSONUtil.parseObj(jsonString); |
||||
resList.add(recordMap); |
Map recordMap = recordJsonObject.get("record", Map.class); |
||||
|
resList.add(recordMap); |
||||
|
} catch (Exception e) { |
||||
|
throw new UtilException("数据解析异常,请重试!", e); |
||||
|
} |
||||
} |
} |
||||
|
|
||||
return resList; |
return resList; |
||||
} |
} |
||||
|
|
||||
|
/** |
||||
|
* 数量与任务是否一致(可配置) |
||||
|
* |
||||
|
* @return List<Map> |
||||
|
*/ |
||||
|
public static boolean numAndJobIsSame(List<Map> param) { |
||||
|
boolean result = false; |
||||
|
// 任务参数
|
||||
|
Map jobMap = (Map) param.get(0).get("details"); |
||||
|
BigDecimal recommendQty = new BigDecimal(Integer.parseInt(jobMap.get("qty").toString())); |
||||
|
|
||||
|
// 记录参数
|
||||
|
Map recordMap = (Map) param.get(1).get("details"); |
||||
|
BigDecimal handleQty = new BigDecimal(Integer.parseInt(recordMap.get("qty").toString())); |
||||
|
|
||||
|
String allowBiggerQty = (String) jobMap.get("allowBiggerQty"); |
||||
|
String allowSmallerQty = (String) jobMap.get("allowBiggerQty"); |
||||
|
|
||||
|
// 验证数据
|
||||
|
if (handleQty.compareTo(recommendQty) == 1) { |
||||
|
if ("TRUE".equals(allowBiggerQty)) { |
||||
|
result = true; |
||||
|
} else { |
||||
|
throw new UtilException("实际数量" + handleQty + " 不允许大于推荐数量" + recommendQty); |
||||
|
} |
||||
|
} else if (handleQty.compareTo(recommendQty) == -1) { |
||||
|
if ("TRUE".equals(allowSmallerQty)) { |
||||
|
result = true; |
||||
|
} else { |
||||
|
throw new UtilException("实际数量" + handleQty + " 不允许小于推荐数量" + recommendQty); |
||||
|
} |
||||
|
} else if (handleQty.compareTo(recommendQty) == 0) { |
||||
|
result = true; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
} |
} |
||||
|
Loading…
Reference in new issue