forked from I3-YF/i3plus-mes-pcn-yfai
44517 装箱防错后吐条码需求(芜湖)
parent
47e87b8fe1
commit
4a9dabfbf3
@ -0,0 +1,116 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.MesPackageNoGenerateStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageDataContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesPackage;
|
||||
import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StepResult;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description : 工位参数按钮事件接口实现【打包进度】
|
||||
**/
|
||||
@Service
|
||||
public class MesFunctionPackageProgressService extends BaseSwsService implements IFsmModuleFunctionService {
|
||||
|
||||
@Autowired
|
||||
private IMesProductionCustomContextStepService productionCustomContextStepService;
|
||||
|
||||
@Autowired
|
||||
private MesPackageNoGenerateStepService packageNoGenerateStepService;
|
||||
|
||||
@Override
|
||||
public Object doCustomApiDispatch(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) {
|
||||
|
||||
//获取打包数据
|
||||
Map<String, String> packageDataContextMap = productionCustomContextStepService.getPackageDataContext(reqBean);
|
||||
|
||||
if (CollectionUtils.isEmpty(packageDataContextMap)) return null;
|
||||
|
||||
if (StringUtils.isEmpty(buttonDynamicModel.getFunctionValue())) {
|
||||
//封装返回列表
|
||||
List<MesPackageDataContext> resultList = new ArrayList<>();
|
||||
|
||||
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());
|
||||
|
||||
//列表展示: 包装条码, 装箱个数, 包装规格数量, 装箱开始时间, 装箱结束时间
|
||||
resultList.add(new MesPackageDataContext(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());
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
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,
|
||||
String.format("生产线[%s]工位[%s]强制打包失败,参数异常!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(packageDataContextMap) || !packageDataContextMap.containsKey(packageDataContext.getPartNo())) {
|
||||
return packResultMap(reqBean, resultBean, resultMap,
|
||||
String.format("生产线[%s]工位[%s]强制打包失败,当前已无零件号[%s]未封箱状态的包装信息!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPartNo()));
|
||||
}
|
||||
|
||||
MesPackageDataContext packageDataContextCached = JSONObject.parseObject(packageDataContextMap.get(packageDataContext.getPartNo()), MesPackageDataContext.class);
|
||||
if (null == packageDataContextCached || !packageDataContextCached.getPackageNo().equals(packageDataContext.getPackageNo())) {
|
||||
return packResultMap(reqBean, resultBean, resultMap,
|
||||
String.format("生产线[%s]工位[%s]强制打包失败,打包进度列表中已经不存在包装条码[%s],请刷新重试!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPackageNo()));
|
||||
}
|
||||
|
||||
MesPackage packageDb = packageNoGenerateStepService.getMesPackage(reqBean.getOrganizeCode(), packageDataContext.getPackageId());
|
||||
if (null == packageDb) {
|
||||
return packResultMap(reqBean, resultBean, resultMap,
|
||||
String.format("生产线[%s]工位[%s]强制打包失败,包装条码[%s]信息已经不存在,请刷新重试!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPackageNo()));
|
||||
}
|
||||
|
||||
StepResult stepResult = StepResult.getSuccessComplete();
|
||||
doForcePrint(reqBean, resultBean, stepResult, packageDataContextCached, packageDb);
|
||||
if (!StringUtils.isEmpty(stepResult.getMsg())) {
|
||||
return packResultMap(reqBean, resultBean, resultMap,
|
||||
String.format("生产线[%s]工位[%s]强制打包失败,%s", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), stepResult.getMsg()));
|
||||
}
|
||||
|
||||
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT.getValue());
|
||||
return packResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱!正在打印中...请稍后!", packageDataContext.getPartNo()));
|
||||
|
||||
}
|
||||
|
||||
private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, String> 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;
|
||||
}
|
||||
|
||||
private void doForcePrint(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesPackageDataContext packageDataContext, MesPackage packageDb) {
|
||||
packageNoGenerateStepService.savePackageDb(reqBean, packageDb, packageDb.getQty().intValue(), true);
|
||||
List<MesPackage> packageList = new ArrayList<>();
|
||||
packageList.add(packageDb);
|
||||
packageNoGenerateStepService.execPrint(reqBean, resultBean, stepResult, packageDataContext, null, null, packageList, true);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue