Merge branch 'uat-temp-wj-2501090000-44517-bak' into dev

dev-temp-nht-202502180000-customprint
王杰 4 months ago
commit fb81e4726d

@ -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,9 +13,13 @@ 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.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
@ -24,6 +29,7 @@ import java.util.stream.Collectors;
/**
* @Description :
**/
@Slf4j
@Service
public class MesFunctionPackageProgressService extends BaseSwsService implements IFsmModuleFunctionService {
@ -31,7 +37,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,11 +75,12 @@ 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,
String.format("生产线[%s]工位[%s]强制打包失败,参数异常!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
@ -97,13 +104,18 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
}
StepResult stepResult = StepResult.getSuccessComplete();
doForcePrint(reqBean, resultBean, stepResult, packageDataContextList, packageDb);
try {
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 packResultMap(reqBean, resultBean, resultMap,
String.format("生产线[%s]工位[%s]强制打包失败,%s", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), stepResult.getMsg()));
}
// 保存打包数据
packageDataContextMap.remove(packageDataContext.getPartNo());
productionCustomContextStepService.dispatchPackageDataContext(reqBean, packageDataContextMap);
@ -121,11 +133,10 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
return resultMap;
}
private void doForcePrint(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesPackageDataContext> packageDataContextList, MesPackage packageDb) {
packageNoGenerateStepService.savePackageDb(reqBean, packageDb, packageDataContextList.size(), true);
List<MesPackage> packageList = new ArrayList<>();
packageList.add(packageDb);
packageNoGenerateStepService.execPrint(reqBean, resultBean, stepResult, packageDataContextList.get(0), null, null, packageList, true);
private void doForcePrint(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult,
List<MesPackageDataContext> packageDataContextList, MesPackage packageDb, Map<String, String> packageDataContextMap) {
}
}

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

@ -0,0 +1,20 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method;
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;
public interface IMesPackageNoGenerateStepService {
MesPackage getMesPackage(String organizeCode, Long packageId);
@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