44517 装箱防错后吐条码需求(芜湖)临时保存提交

tags/yfai-pcn-ext-v2.8
王杰 4 months ago
parent b695fc1742
commit 86a6b595fd

@ -18,6 +18,8 @@ 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.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
@ -80,49 +82,52 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PICK.getValue()).scanInfo(packageDataContext.getPackageNo());
if (null == packageDataContext) {
return doPackResultMap(reqBean, resultBean, resultMap,
return packResultMap(reqBean, resultBean, resultMap,
String.format("生产线[%s]工位[%s]强制打包失败,参数异常!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
}
if (CollectionUtils.isEmpty(packageDataContextMap) || !packageDataContextMap.containsKey(packageDataContext.getPartNo())) {
return doPackResultMap(reqBean, resultBean, resultMap,
return packResultMap(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 doPackResultMap(reqBean, resultBean, resultMap,
return packResultMap(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 doPackResultMap(reqBean, resultBean, resultMap,
return packResultMap(reqBean, resultBean, resultMap,
String.format("生产线[%s]工位[%s]强制打包失败,包装条码[%s]信息已经不存在,请刷新重试!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPackageNo()));
}
StepResult stepResult = StepResult.getSuccessComplete();
try {
doForcePrint(reqBean, resultBean, stepResult, packageDataContextList, packageDb, packageDataContextMap);
packageNoGenerateStepService.doForcePrint(reqBean, resultBean, stepResult, packageDataContextList, packageDb);
} catch (ImppBusiException e) {
stepResult.msg(e.getMessage());
} catch (Exception e) {
stepResult.msg(e.getMessage());
}
if (!StringUtils.isEmpty(stepResult.getMsg())) {
return doPackResultMap(reqBean, resultBean, resultMap,
return packResultMap(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 doPackResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱成功!", packageDataContext.getPartNo()));
return packResultMap(reqBean, resultBean, resultMap, String.format("零件号[%s]强制封箱成功!", packageDataContext.getPartNo()));
}
private Object doPackResultMap(StationRequestBean reqBean, StationResultBean resultBean, Map<String, Object> 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;
@ -130,14 +135,8 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
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);
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);
}
}

@ -179,8 +179,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
//判断存在包装信息则进行打印
if (!CollectionUtils.isEmpty(stepResult.getDataCollection())) {
MesProduceSnPrintModel printModel = printProduceSn(reqBean, resultBean, stepResult, packageRuleContext, labelTemplate, strategyService, (List<MesPackage>) stepResult.getDataCollection(), false);
doPrint(reqBean, printModel);
doPrintPackageNo(reqBean, resultBean, stepResult, packageRuleContext, labelTemplate, strategyService, (List<MesPackage>) stepResult.getDataCollection(), false);
}
}
@ -354,8 +353,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
}
//判断包装条码是否存在ID进行新增或者更新操作, 如果满足标包则标记满包状态跟打印状态
@Override
public MesPackage savePackageDb(StationRequestBean reqBean, MesPackage packageDb, Integer curQty, Boolean isSealed, Boolean isSave) {
private MesPackage savePackageDb(StationRequestBean reqBean, MesPackage packageDb, Integer curQty, Boolean isSealed, Boolean isSave) {
if (!StringUtils.isEmpty(packageDb.getId())) {
//下面直接根据ID进行修改, 所以此处置为游离态
@ -379,8 +377,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
return packageDb;
}
@Override
public void savePackageDbById(StationRequestBean reqBean, MesPackage packageDb) {
private void savePackageDbById(StationRequestBean reqBean, MesPackage packageDb) {
packageRepository.updateByPropertiesNoSync(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.ID},
new Object[]{reqBean.getOrganizeCode(), packageDb.getId()},
@ -455,8 +452,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
return null;
}
@Override
public MesProduceSnPrintModel printProduceSn(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesPackageRuleContext packageRuleContext,
private void doPrintPackageNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesPackageRuleContext packageRuleContext,
MesLabelTemplate labelTemplate, IPrintTemplateStrategyService strategyService, List<MesPackage> packageList, Boolean isAsyn) {
if (null == strategyService) {
//查询模版信息
@ -492,11 +488,6 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
} else MesPcnException.throwBusiException("%s %s!", webMsg, e.toString());
}
return printModel;
}
@Override
public void doPrint(StationRequestBean reqBean, MesProduceSnPrintModel printModel) {
if (CollectionUtils.isEmpty(printModel.getPrintContextList())) return;
//发送打印信息
@ -511,4 +502,13 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
printedSnLogRepository.saveAll(printModel.getMesPrintedSnLogList());
}
@Override
public void doForcePrint(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesPackageDataContext> packageDataContextList, MesPackage packageDb) {
savePackageDb(reqBean, packageDb, packageDataContextList.size(), true, false);
List<MesPackage> packageList = new ArrayList<>();
packageList.add(packageDb);
doPrintPackageNo(reqBean, resultBean, stepResult, packageDataContextList.get(0), null, null, packageList, true);
savePackageDbById(reqBean, packageDb);
}
}

@ -1,13 +1,13 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageRuleContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageDataContext;
import cn.estsh.i3plus.pojo.mes.bean.MesPackage;
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 org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -15,13 +15,6 @@ public interface IMesPackageNoGenerateStepService {
MesPackage getMesPackage(String organizeCode, Long packageId);
MesPackage savePackageDb(StationRequestBean reqBean, MesPackage packageDb, Integer curQty, Boolean isSealed, Boolean isSave);
void savePackageDbById(StationRequestBean reqBean, MesPackage packageDb);
MesProduceSnPrintModel printProduceSn(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesPackageRuleContext packageRuleContext,
MesLabelTemplate labelTemplate, IPrintTemplateStrategyService strategyService, List<MesPackage> packageList, Boolean isAsyn);
void doPrint(StationRequestBean reqBean, MesProduceSnPrintModel printModel);
@Transactional(propagation = Propagation.NESTED, rollbackFor = {ImppBusiException.class, Exception.class})
void doForcePrint(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesPackageDataContext> packageDataContextList, MesPackage packageDb);
}

Loading…
Cancel
Save