|
|
@ -7,6 +7,8 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepServi
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method.IMesPackageNoGenerateStepService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageDataContext;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageDataContext;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageRuleContext;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPackageRuleContext;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
|
|
@ -50,7 +52,7 @@ import java.util.stream.Collectors;
|
|
|
|
**/
|
|
|
|
**/
|
|
|
|
@Slf4j
|
|
|
|
@Slf4j
|
|
|
|
@Service("mesPackageNoGenerateStepService")
|
|
|
|
@Service("mesPackageNoGenerateStepService")
|
|
|
|
public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
public class MesPackageNoGenerateStepService extends BaseStepService implements IMesPackageNoGenerateStepService {
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
|
|
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
|
|
@ -177,7 +179,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
|
|
//判断存在包装信息则进行打印
|
|
|
|
//判断存在包装信息则进行打印
|
|
|
|
if (!CollectionUtils.isEmpty(stepResult.getDataCollection())) {
|
|
|
|
if (!CollectionUtils.isEmpty(stepResult.getDataCollection())) {
|
|
|
|
execPrint(reqBean, resultBean, stepResult, packageRuleContext, labelTemplate, strategyService, (List<MesPackage>) stepResult.getDataCollection(), false);
|
|
|
|
doPrintPackageNo(reqBean, resultBean, stepResult, packageRuleContext, labelTemplate, strategyService, (List<MesPackage>) stepResult.getDataCollection(), false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -301,7 +303,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
//判断当前是否满包
|
|
|
|
//判断当前是否满包
|
|
|
|
Boolean isSealed = curQty >= packageRuleContext.getPackSpecQty().intValue();
|
|
|
|
Boolean isSealed = curQty >= packageRuleContext.getPackSpecQty().intValue();
|
|
|
|
//判断包装条码是否存在ID进行新增或者更新操作, 如果满足标包则标记满包状态跟打印状态
|
|
|
|
//判断包装条码是否存在ID进行新增或者更新操作, 如果满足标包则标记满包状态跟打印状态
|
|
|
|
packageDb = savePackageDb(reqBean, packageDb, curQty, isSealed);
|
|
|
|
packageDb = savePackageDb(reqBean, packageDb, curQty, isSealed, true);
|
|
|
|
|
|
|
|
|
|
|
|
//判断统计方式,是否生成包装明细信息, 返回当前未满包的包装条码明细数据
|
|
|
|
//判断统计方式,是否生成包装明细信息, 返回当前未满包的包装条码明细数据
|
|
|
|
List<MesPackageDataContext> resultList = insertPackageDetailAndBackUnSealedResultList(reqBean, packageRuleContext, packageDb, productSnList2Cur, isSealed);
|
|
|
|
List<MesPackageDataContext> resultList = insertPackageDetailAndBackUnSealedResultList(reqBean, packageRuleContext, packageDb, productSnList2Cur, isSealed);
|
|
|
@ -321,6 +323,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//根据ID查询包装信息
|
|
|
|
//根据ID查询包装信息
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public MesPackage getMesPackage(String organizeCode, Long packageId) { return packageExtService.getMesPackage(organizeCode, packageId); }
|
|
|
|
public MesPackage getMesPackage(String organizeCode, Long packageId) { return packageExtService.getMesPackage(organizeCode, packageId); }
|
|
|
|
|
|
|
|
|
|
|
|
//生成包装条码信息
|
|
|
|
//生成包装条码信息
|
|
|
@ -350,7 +353,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//判断包装条码是否存在ID进行新增或者更新操作, 如果满足标包则标记满包状态跟打印状态
|
|
|
|
//判断包装条码是否存在ID进行新增或者更新操作, 如果满足标包则标记满包状态跟打印状态
|
|
|
|
public MesPackage savePackageDb(StationRequestBean reqBean, MesPackage packageDb, Integer curQty, Boolean isSealed) {
|
|
|
|
private MesPackage savePackageDb(StationRequestBean reqBean, MesPackage packageDb, Integer curQty, Boolean isSealed, Boolean isSave) {
|
|
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(packageDb.getId())) {
|
|
|
|
if (!StringUtils.isEmpty(packageDb.getId())) {
|
|
|
|
//下面直接根据ID进行修改, 所以此处置为游离态
|
|
|
|
//下面直接根据ID进行修改, 所以此处置为游离态
|
|
|
@ -365,8 +368,16 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
packageDb.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue());
|
|
|
|
packageDb.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!isSave) return packageDb;
|
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(packageDb.getId())) return packageRepository.insert(packageDb);
|
|
|
|
if (StringUtils.isEmpty(packageDb.getId())) return packageRepository.insert(packageDb);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
savePackageDbById(reqBean, packageDb);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return packageDb;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void savePackageDbById(StationRequestBean reqBean, MesPackage packageDb) {
|
|
|
|
packageRepository.updateByPropertiesNoSync(
|
|
|
|
packageRepository.updateByPropertiesNoSync(
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.ID},
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.ID},
|
|
|
|
new Object[]{reqBean.getOrganizeCode(), packageDb.getId()},
|
|
|
|
new Object[]{reqBean.getOrganizeCode(), packageDb.getId()},
|
|
|
@ -374,8 +385,6 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME},
|
|
|
|
MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.SYSTEM_SYNC_DATE_TIME},
|
|
|
|
new Object[]{packageDb.getQty(), packageDb.getIsSealed(), packageDb.getPrintStatus(), packageDb.getLotNo(),
|
|
|
|
new Object[]{packageDb.getQty(), packageDb.getIsSealed(), packageDb.getPrintStatus(), packageDb.getLotNo(),
|
|
|
|
packageDb.getModifyUser(), packageDb.getModifyDatetime(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.EMPTY});
|
|
|
|
packageDb.getModifyUser(), packageDb.getModifyDatetime(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), MesPcnExtConstWords.EMPTY});
|
|
|
|
|
|
|
|
|
|
|
|
return packageDb;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//判断统计方式,是否生成包装明细信息, 返回当前未满包的包装条码明细数据
|
|
|
|
//判断统计方式,是否生成包装明细信息, 返回当前未满包的包装条码明细数据
|
|
|
@ -443,7 +452,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void execPrint(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) {
|
|
|
|
MesLabelTemplate labelTemplate, IPrintTemplateStrategyService strategyService, List<MesPackage> packageList, Boolean isAsyn) {
|
|
|
|
if (null == strategyService) {
|
|
|
|
if (null == strategyService) {
|
|
|
|
//查询模版信息
|
|
|
|
//查询模版信息
|
|
|
@ -452,10 +461,7 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (null == strategyService) {
|
|
|
|
if (null == strategyService) {
|
|
|
|
if (!isAsyn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("零件编码[%s]未配置有效的包装条码模版[%s]信息!", packageRuleContext.getPartNo(), packageRuleContext.getPackageTemplate()));
|
|
|
|
if (!isAsyn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("零件编码[%s]未配置有效的包装条码模版[%s]信息!", packageRuleContext.getPartNo(), packageRuleContext.getPackageTemplate()));
|
|
|
|
else {
|
|
|
|
else MesPcnException.throwBusiException("零件编码[%s]未配置有效的包装条码模版[%s]信息!", packageRuleContext.getPartNo(), packageRuleContext.getPackageTemplate());
|
|
|
|
stepResult.msg(String.format("零件编码[%s]未配置有效的包装条码模版[%s]信息!", packageRuleContext.getPartNo(), packageRuleContext.getPackageTemplate()));
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel();
|
|
|
|
MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel();
|
|
|
@ -472,20 +478,14 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
printModel = strategyService.execute(null, mesProduceSnPrintModel, null, stepResult, reqBean, true);
|
|
|
|
printModel = strategyService.execute(null, mesProduceSnPrintModel, null, stepResult, reqBean, true);
|
|
|
|
} catch (ImppBusiException e) {
|
|
|
|
} catch (ImppBusiException e) {
|
|
|
|
if (!isAsyn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), e.getErrorDetail());
|
|
|
|
if (!isAsyn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), e.getErrorDetail());
|
|
|
|
else {
|
|
|
|
else MesPcnException.throwBusiException(e.getErrorDetail());
|
|
|
|
stepResult.msg(e.getErrorDetail());
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
String webMsg = String.format("零件编码[%s]包装条码模版[%s]打印包装条码%s", packageRuleContext.getPartNo(), packageRuleContext.getPackageTemplate(), fsmRouteDataService.handleFsmCfgOrDefault(reqBean, MesPcnEnumUtil.FSM_CFG.FSM_EXCEPTION_MSG.getCode()));
|
|
|
|
String webMsg = String.format("零件编码[%s]包装条码模版[%s]打印包装条码%s", packageRuleContext.getPartNo(), packageRuleContext.getPackageTemplate(), fsmRouteDataService.handleFsmCfgOrDefault(reqBean, MesPcnEnumUtil.FSM_CFG.FSM_EXCEPTION_MSG.getCode()));
|
|
|
|
if (!isAsyn) {
|
|
|
|
if (!isAsyn) {
|
|
|
|
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.ERROR.getValue()), webMsg, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
|
|
|
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.ERROR.getValue()), webMsg, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
|
|
|
this.cacheException(reqBean, reqBean.getStepName(), webMsg, e, true);
|
|
|
|
this.cacheException(reqBean, reqBean.getStepName(), webMsg, e, true);
|
|
|
|
foundExThrowNoShowMsg();
|
|
|
|
foundExThrowNoShowMsg();
|
|
|
|
} else {
|
|
|
|
} else MesPcnException.throwBusiException("%s %s!", webMsg, e.toString());
|
|
|
|
stepResult.msg(webMsg);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(printModel.getPrintContextList())) return;
|
|
|
|
if (CollectionUtils.isEmpty(printModel.getPrintContextList())) return;
|
|
|
@ -502,4 +502,13 @@ public class MesPackageNoGenerateStepService extends BaseStepService {
|
|
|
|
printedSnLogRepository.saveAll(printModel.getMesPrintedSnLogList());
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|