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; |
|||
|
|||
import cn.hutool.core.exceptions.UtilException; |
|||
import cn.hutool.json.JSONObject; |
|||
import cn.hutool.json.JSONUtil; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.commons.lang.StringUtils; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Slf4j |
|||
@Component |
|||
public class JobUtils { |
|||
/** |
|||
* 解析JSON串,返回两个对象的集合 |
|||
* |
|||
* @param jobJson |
|||
* @param recordJson |
|||
* @param jsonString |
|||
* @return List<Map> |
|||
*/ |
|||
public List<Map> parseJobAndRecord(String jobJson, String recordJson) { |
|||
public static List<Map> parseJobAndRecord(String jsonString) { |
|||
//返回的对象集合
|
|||
List resList = new ArrayList(); |
|||
//判断前端传的数据是否为空
|
|||
if (StringUtils.isNotEmpty(jobJson)) { |
|||
if (StringUtils.isNotEmpty(jsonString)) { |
|||
// 任务参数
|
|||
JSONObject jobJsonObject = JSONUtil.parseObj(jobJson); |
|||
Map jobMap = jobJsonObject.get("job", Map.class); |
|||
resList.add(jobMap); |
|||
try { |
|||
JSONObject jobJsonObject = JSONUtil.parseObj(jsonString); |
|||
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); |
|||
Map recordMap = recordJsonObject.get("record", Map.class); |
|||
resList.add(recordMap); |
|||
try { |
|||
JSONObject recordJsonObject = JSONUtil.parseObj(jsonString); |
|||
Map recordMap = recordJsonObject.get("record", Map.class); |
|||
resList.add(recordMap); |
|||
} catch (Exception e) { |
|||
throw new UtilException("数据解析异常,请重试!", e); |
|||
} |
|||
} |
|||
|
|||
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