|
|
|
@ -1,8 +1,9 @@
|
|
|
|
|
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.apiservice.serviceimpl.step.method.IMesPackageNoGenerateStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageDataContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
|
|
|
|
|
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;
|
|
|
|
@ -12,7 +13,9 @@ 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 cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
@ -24,6 +27,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
/**
|
|
|
|
|
* @Description : 工位参数按钮事件接口实现【打包进度】
|
|
|
|
|
**/
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service
|
|
|
|
|
public class MesFunctionPackageProgressService extends BaseSwsService implements IFsmModuleFunctionService {
|
|
|
|
|
|
|
|
|
@ -31,7 +35,7 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
|
|
|
|
|
private IMesProductionCustomContextStepService productionCustomContextStepService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPackageNoGenerateStepService packageNoGenerateStepService;
|
|
|
|
|
private IMesPackageNoGenerateStepService packageNoGenerateStepService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Object doCustomApiDispatch(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) {
|
|
|
|
@ -69,63 +73,71 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
|
|
|
|
|
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());
|
|
|
|
|
|
|
|
|
|
resultMap.put(MesPcnExtConstWords.DATA_TYPE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT.getValue());
|
|
|
|
|
|
|
|
|
|
MesPackageDataContext packageDataContext = JSONObject.parseObject(buttonDynamicModel.getFunctionValue(), MesPackageDataContext.class);
|
|
|
|
|
|
|
|
|
|
resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(packageDataContext.getPackageNo());
|
|
|
|
|
|
|
|
|
|
if (null == packageDataContext) {
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
return doPackResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
String.format("生产线[%s]工位[%s]强制打包失败,参数异常!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(packageDataContextMap) || !packageDataContextMap.containsKey(packageDataContext.getPartNo())) {
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
return doPackResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
String.format("生产线[%s]工位[%s]强制打包失败,当前已无零件号[%s]未封箱状态的包装信息!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPartNo()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<MesPackageDataContext> packageDataContextList = JSONObject.parseArray(packageDataContextMap.get(packageDataContext.getPartNo()), MesPackageDataContext.class);
|
|
|
|
|
if (CollectionUtils.isEmpty(packageDataContextList) || !packageDataContextList.get(0).getPackageNo().equals(packageDataContext.getPackageNo())) {
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
return doPackResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
String.format("生产线[%s]工位[%s]强制打包失败,打包进度列表中已经不存在包装条码[%s],请刷新重试!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPackageNo()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesPackage packageDb = packageNoGenerateStepService.getMesPackage(reqBean.getOrganizeCode(), packageDataContextList.get(0).getPackageId());
|
|
|
|
|
if (null == packageDb) {
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
return doPackResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
String.format("生产线[%s]工位[%s]强制打包失败,包装条码[%s]信息已经不存在,请刷新重试!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPackageNo()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StepResult stepResult = StepResult.getSuccessComplete();
|
|
|
|
|
doForcePrint(reqBean, resultBean, stepResult, packageDataContextList, packageDb);
|
|
|
|
|
try {
|
|
|
|
|
doForcePrint(reqBean, resultBean, stepResult, packageDataContextList, packageDb, packageDataContextMap);
|
|
|
|
|
} catch (ImppBusiException e) {
|
|
|
|
|
stepResult.msg(e.getMessage());
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
stepResult.msg(e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
if (!StringUtils.isEmpty(stepResult.getMsg())) {
|
|
|
|
|
return packResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
return doPackResultMap(reqBean, resultBean, resultMap,
|
|
|
|
|
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 doPackResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱成功!", packageDataContext.getPartNo()));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Object packResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, Object> resultMap, String message) {
|
|
|
|
|
private Object doPackResultMap(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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void doForcePrint(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesPackageDataContext> packageDataContextList, MesPackage packageDb) {
|
|
|
|
|
packageNoGenerateStepService.savePackageDb(reqBean, packageDb, packageDataContextList.size(), true);
|
|
|
|
|
private void doForcePrint(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult,
|
|
|
|
|
List<MesPackageDataContext> packageDataContextList, MesPackage packageDb, Map<String, String> packageDataContextMap) {
|
|
|
|
|
packageNoGenerateStepService.savePackageDb(reqBean, packageDb, packageDataContextList.size(), true, false);
|
|
|
|
|
List<MesPackage> packageList = new ArrayList<>();
|
|
|
|
|
packageList.add(packageDb);
|
|
|
|
|
packageNoGenerateStepService.execPrint(reqBean, resultBean, stepResult, packageDataContextList.get(0), null, null, packageList, true);
|
|
|
|
|
MesProduceSnPrintModel printModel = packageNoGenerateStepService.printProduceSn(reqBean, resultBean, stepResult, packageDataContextList.get(0), null, null, packageList, true);
|
|
|
|
|
packageNoGenerateStepService.doPrint(reqBean, printModel);
|
|
|
|
|
packageNoGenerateStepService.savePackageDbById(reqBean, packageDb);
|
|
|
|
|
packageDataContextMap.remove(packageDb.getPartNo());
|
|
|
|
|
productionCustomContextStepService.dispatchPackageDataContext(reqBean, packageDataContextMap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|