44517 装箱防错后吐条码需求(芜湖)

tags/yfai-pcn-ext-v2.8
王杰 4 months ago
parent f9c6b5e81b
commit 8daaa603bf

@ -36,38 +36,43 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
@Override
public Object doCustomApiDispatch(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) {
Map<String, Object> resultMap = new HashMap<>();
//获取打包数据
Map<String, String> packageDataContextMap = productionCustomContextStepService.getPackageDataContext(reqBean);
if (CollectionUtils.isEmpty(packageDataContextMap)) return null;
if (CollectionUtils.isEmpty(packageDataContextMap)) {
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT.getValue());
resultMap.put(MesPcnExtConstWords.MESSAGE, "当前无包装信息!");
return resultMap;
}
if (StringUtils.isEmpty(buttonDynamicModel.getFunctionValue())) {
//封装返回列表
List<MesPackageDataContext> resultList = new ArrayList<>();
//封装返回列表
List<MesPackageDataContext> resultList = new ArrayList<>();
for (String partNo : packageDataContextMap.keySet()) {
if (StringUtils.isEmpty(partNo)) continue;
for (String partNo : packageDataContextMap.keySet()) {
if (StringUtils.isEmpty(partNo)) continue;
List<MesPackageDataContext> packageDataContextList = JSONObject.parseArray(packageDataContextMap.get(partNo), MesPackageDataContext.class);
packageDataContextList = packageDataContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList());
List<MesPackageDataContext> packageDataContextList = JSONObject.parseArray(packageDataContextMap.get(partNo), MesPackageDataContext.class);
packageDataContextList = packageDataContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList());
//列表展示: 包装条码, 装箱个数, 包装规格数量, 装箱开始时间, 装箱结束时间
resultList.add(new MesPackageDataContext(
packageDataContextList.get(0).getPartNo(), packageDataContextList.get(0).getPartName(),
packageDataContextList.get(0).getPackageNo(), new Double(packageDataContextList.size()),
packageDataContextList.get(0).getPackSpecQty(), packageDataContextList.get(0).getCreateDatetime(), packageDataContextList.get(0).getModifyDatetime())
);
}
//列表展示: 包装条码, 装箱个数, 包装规格数量, 装箱开始时间, 装箱结束时间
resultList.add(new MesPackageDataContext(
packageDataContextList.get(0).getPartNo(), packageDataContextList.get(0).getPartName(),
packageDataContextList.get(0).getPackageNo(), new Double(packageDataContextList.size()),
packageDataContextList.get(0).getPackSpecQty(), packageDataContextList.get(0).getCreateDatetime(), packageDataContextList.get(0).getModifyDatetime())
);
}
resultList = resultList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList());
resultList = resultList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesPackageDataContext::getModifyDatetime).reversed()).collect(Collectors.toList());
return resultList;
}
resultMap.put(MesPcnExtConstWords.DATA, resultList);
if (StringUtils.isEmpty(buttonDynamicModel.getFunctionValue())) return resultMap;
resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(buttonDynamicModel.getFunctionValue());
Map<String, String> resultMap = new HashMap<>();
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue());
MesPackageDataContext packageDataContext = JSONObject.parseObject(buttonDynamicModel.getFunctionValue(), MesPackageDataContext.class);
if (null == packageDataContext) {
return packResultMap(reqBean, resultBean, resultMap,
@ -98,12 +103,19 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
String.format("生产线[%s]工位[%s]强制打包失败,%s", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), stepResult.getMsg()));
}
// 保存打包数据
packageDataContextMap.remove(packageDataContext.getPartNo());
productionCustomContextStepService.dispatchPackageDataContext(reqBean, packageDataContextMap);
resultList = resultList.stream().filter(o -> (null != o && !o.getPackageNo().equals(packageDataContext.getPackageNo()))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(resultList)) resultMap.remove(MesPcnExtConstWords.DATA);
else resultMap.put(MesPcnExtConstWords.DATA, resultList);
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT.getValue());
return packResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱!正在打印中...请稍后!", packageDataContext.getPartNo()));
return packResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱成功!", packageDataContext.getPartNo()));
}
private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, String> resultMap, String message) {
private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, Object> resultMap, String message) {
this.sendMessage(reqBean, resultBean, message, MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
resultMap.put(MesPcnExtConstWords.MESSAGE, message);
return resultMap;

@ -222,9 +222,8 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
String packageTemplate = packingRule.getPackageTemplate();
String printer = packingRule.getPrinter();
//如果 packageBarcodeRule || packageTemplate || printer 有一个为空, 则需要根据 箱类别代号查询包装定义
if (StringUtils.isEmpty(generateTypeName) || (StringUtils.isEmpty(packingRule.getPackCode()) &&
(StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate) || StringUtils.isEmpty(printer)))) {
//如果 packageBarcodeRule || packageTemplate || printer 有一个为空, 则需要根据 箱类别代号查询包装定义, 但是 printer 不进行强验证,可能是否的是默认打印机
if (StringUtils.isEmpty(generateTypeName) || (StringUtils.isEmpty(packingRule.getPackCode()) && (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate)))) {
this.sendMessage(reqBean, new StationResultBean().writeDbLog(), String.format("零件编码[%s]包装物类型对应的包装代码[%s]配置的成品包装规则信息中必要信息无效:统计方式[%s]箱类别代号[%s]!",
partNo, packingRuleDetail.getPackageCode(), StringUtils.isEmpty(generateTypeName) ? MesPcnExtConstWords.EMPTY : generateTypeName, packingRule.getPackCode()),
MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
@ -234,8 +233,9 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
//判断是否需要查询包装定义
if (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate) || StringUtils.isEmpty(printer)) {
//根据箱类别代号查询包装定义
MesPackingDefine packingDefine = packingRuleService.getPackingDefine(reqBean.getOrganizeCode(), packingRule.getPackCode());
if (null == packingDefine) {
MesPackingDefine packingDefine = StringUtils.isEmpty(packingRule.getPackCode()) ? null :
packingRuleService.getPackingDefine(reqBean.getOrganizeCode(), packingRule.getPackCode());
if (null == packingDefine && (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate))) {
this.sendMessage(reqBean, new StationResultBean().writeDbLog(), String.format("零件编码[%s]包装物类型对应的包装代码[%s]配置成品包装规则信息中的箱类别代号[%s]未维护包装定义信息!",
partNo, packingRuleDetail.getPackageCode(), packingRule.getPackCode()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
return null;
@ -244,7 +244,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
//如果为空, 则取包装定义中维护的信息
if (StringUtils.isEmpty(packageBarcodeRule)) packageBarcodeRule = packingDefine.getPackageBarcodeRule();
if (StringUtils.isEmpty(packageTemplate)) packageTemplate = packingDefine.getPackageTemplate();
if (StringUtils.isEmpty(printer)) printer = packingDefine.getPrinter();
if (StringUtils.isEmpty(printer) && null != packingDefine) printer = packingDefine.getPrinter();
//此时 packageBarcodeRule || packageTemplate 仍有一个为空则 记录日志 忽略当前零件的打包
if (StringUtils.isEmpty(packageBarcodeRule) || StringUtils.isEmpty(packageTemplate)) {

@ -276,7 +276,10 @@ public class MesProductionCustomContextStepService extends BaseStepService imple
//保存打包数据 [JSON]List<MesPackageDataContext>
@Override
public Boolean dispatchPackageDataContext(StationRequestBean reqBean, Map<String, String> packageDataContextMap) {
if (CollectionUtils.isEmpty(packageDataContextMap)) return false;
if (CollectionUtils.isEmpty(packageDataContextMap)) {
removePackageDataContext(reqBean);
return true;
}
return dispatchFsmBusiData(reqBean.getOrganizeCode(), getPackageDataContextKey(reqBean), JSONObject.toJSONString(packageDataContextMap));
}

Loading…
Cancel
Save