diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesTemplateServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesTemplateServiceImpl.java index 992c00c..bfbeec9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesTemplateServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesTemplateServiceImpl.java @@ -21,6 +21,7 @@ import cn.hutool.core.util.ObjectUtil; import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.util.HashMap; import java.util.List; @@ -74,6 +75,7 @@ public class MesTemplateServiceImpl implements IMesTemplateService { @Override public MesLabelTemplate getLabelTemplate(String templateCode, String organizeCode) { + if (StringUtils.isEmpty(templateCode) || StringUtils.isEmpty(organizeCode)) return null; DdlPackBean templatePackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(templateCode, MesPcnExtConstWords.TEMPLATE_CODE, templatePackBean); MesLabelTemplate mesLabelTemplate = mesLabelTemplateRDao.getByProperty(templatePackBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java index f6a9c38..f26e2ba 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProduceSnPrintService.java @@ -305,6 +305,8 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue(), MesPcnExtConstWords.PRINT_STATUS, packBean); List workOrderCutList = workOrderCutRepository.findByHqlWherePage(packBean, pager); + if (CollectionUtils.isEmpty(workOrderCutList)) return workOrderCutList; + // model 不为空 并= 1 时 仅仅查询裁片工单数据 // model 不为空时则 查询裁片工单数据并封装打印模板和打印数据,封装完后修改打印状态为已打印 // model 为空时,该情况为异常情况,mode由前端返回,不会为空,该情况下返回数据为空 @@ -317,14 +319,19 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { } else if (workOrderCut.getMode() != null) { List cutCodeList = workOrderCutList.stream().map(MesWorkOrderCut::getCutCode).distinct().collect(Collectors.toList()); + + log.info("工厂{}裁片工单打印 --- 查询到裁片工单数据量[{}] --- cutCodeList:{} --- {} ---", workOrderCut.getOrganizeCode(), workOrderCutList.size(), JSONObject.toJSONString(cutCodeList), Thread.currentThread().getName()); + // 根据 裁片方案代码 获取裁片方案设备 List mesCutSchemeList = workOrderCutService.queryCutSchemeList(cutCodeList, workOrderCut.getOrganizeCode()); // 根据 裁片方案代码 获取裁片方案设备 List cutSchemeEquipmentList = getMesCutSchemeEquipments(workOrderCut, cutCodeList); // 根据 裁片方案代码 对 裁片方案信息 分组 - Map cutSchemeMapByCutCode = mesCutSchemeList.stream().collect(Collectors.toMap(MesCutScheme::getCutCode, Function.identity(), (x, y) -> y)); + Map cutSchemeMapByCutCode = CollectionUtils.isEmpty(mesCutSchemeList) ? null : + mesCutSchemeList.stream().collect(Collectors.toMap(MesCutScheme::getCutCode, Function.identity(), (x, y) -> y)); + // 根据 裁片方案代码 对 裁片方案成品信息 分组 - Map> cutSchemeFgMapByCutCode = getCutSchemeFgMapByCutCode(cutCodeList,workOrderCut.getOrganizeCode()); + Map> cutSchemeFgMapByCutCode = getCutSchemeFgMapByCutCode(cutCodeList, workOrderCut.getOrganizeCode()); // 根据 裁片方案代码 对 裁片方案原材料信息 分组 Map> cutSchemeMaterialMapByCutCode = getCutSchemeMaterialMapByCutCode(cutCodeList,workOrderCut.getOrganizeCode()); // 根据 裁片方案代码 对 裁片设备信息 分组 @@ -336,59 +343,73 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { for (MesWorkOrderCut workOrderCutDb : workOrderCutList) { - MesCutScheme cutScheme = cutSchemeMapByCutCode.get(workOrderCutDb.getCutCode()); + log.info("工厂{}裁片工单打印 --- 处理裁片工单[{}] --- {} ---", workOrderCut.getOrganizeCode(), workOrderCutDb.getCutWorkOrderNo(), Thread.currentThread().getName()); - MesLabelTemplate labelTemplate = mesTemplateService.getLabelTemplate(cutScheme.getTemplateCode(), workOrderCut.getOrganizeCode()); - - //模板信息丢失抛出异常 - if (labelTemplate == null) { - workOrderCutDb.setRemark(String.format("请检查裁片方案,裁片方案[%s]模板代码[%s]无效!", cutScheme.getCutCode(), cutScheme.getTemplateCode())); - workOrderCutDb.setSystemSyncStatus(CommonEnumUtil.FALSE); + try { + MesCutScheme cutScheme = CollectionUtils.isEmpty(cutSchemeMapByCutCode) ? null : cutSchemeMapByCutCode.get(workOrderCutDb.getCutCode()); + + MesLabelTemplate labelTemplate = null == cutScheme ? null : mesTemplateService.getLabelTemplate(cutScheme.getTemplateCode(), workOrderCut.getOrganizeCode()); + + //模板信息丢失抛出异常 + if (labelTemplate == null) { + workOrderCutDb.setRemark(String.format("请检查裁片方案,裁片方案[%s]模板代码[%s]无效!", cutScheme.getCutCode(), cutScheme.getTemplateCode())); + workOrderCutDb.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelUpdate(workOrderCutDb, workOrderCut.getModifyUser()); + continue; + } + + //根据反射获取策略类--封装打印数据 + String methodCode = labelTemplate.getMethodCode(); + + //模板信息丢失抛出异常 + if (StringUtils.isEmpty(methodCode)) { + workOrderCutDb.setRemark(String.format("裁片方案[%s]模板代码[%s]方法类为空,请配置!", cutScheme.getCutCode(), labelTemplate.getTemplateCode())); + workOrderCutDb.setSystemSyncStatus(CommonEnumUtil.FALSE); + ConvertBean.serviceModelUpdate(workOrderCutDb, workOrderCut.getModifyUser()); + continue; + } + + MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel(); + mesProduceSnPrintModel.setMesLabelTemplate(labelTemplate); + mesProduceSnPrintModel.setSourceData(Stream.of(packMesWorkOrderCutPrintModel(cutSchemeMapByCutCode, cutSchemeFgMapByCutCode, cutSchemeMaterialMapByCutCode, cutSchemeEquipmentMapByCutCode, cutSchemeEquipmentDetailMapByPid, workOrderCutDb, cutScheme)).collect(Collectors.toList())); + + mesProduceSnPrintModel.setPrinter(cutScheme.getPrinter()); + + MesProduceSnPrintModel snPrintModel = null; + try { + IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode); + snPrintModel = strategyService.execute(null, mesProduceSnPrintModel, null, null, null ,false); + } catch (Exception e) { + workOrderCutDb.setRemark(String.format("裁片方案[%s]模板代码[%s]方法类[%s]执行异常,请配置!", cutScheme.getCutCode(), labelTemplate.getTemplateCode(), labelTemplate.getMethodCode())); + ConvertBean.serviceModelUpdate(workOrderCutDb, workOrderCut.getModifyUser()); + workOrderCutDb.setSystemSyncStatus(CommonEnumUtil.FALSE); + + log.info("工厂{}裁片工单打印 --- 处理裁片工单[{}] --- EXCEPTION:{} --- {} ---", workOrderCut.getOrganizeCode(), workOrderCutDb.getCutWorkOrderNo(), JSONObject.toJSONString(e), Thread.currentThread().getName()); + + continue; + } + + workOrderCutDb.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue()); + workOrderCutDb.setPrintTime(TimeTool.getNowTime(true)); + workOrderCutDb.setWorkOrderStatusName(MesExtEnumUtil.CUT_ORDER_STATUS.valueOfDescription(workOrderCutDb.getWorkOrderStatus())); ConvertBean.serviceModelUpdate(workOrderCutDb, workOrderCut.getModifyUser()); - continue; - } + workOrderCutDb.setPrintContent(snPrintModel.getPrintContextList()); + workOrderCutShowList.add(workOrderCutDb); - //根据反射获取策略类--封装打印数据 - String methodCode = labelTemplate.getMethodCode(); + MesPrintedSnLog printedSnLog = new MesPrintedSnLog(); + printedSnLog.setOrganizeCode(workOrderCut.getOrganizeCode()); + printedSnLog.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo()); + printedSnLog.setBarcode(workOrderCut.getCutWorkOrderNo()); + ConvertBean.serviceModelInitialize(printedSnLog, workOrderCut.getModifyUser()); + printedSnLogRepository.save(printedSnLog); - //模板信息丢失抛出异常 - if (StringUtils.isEmpty(methodCode)) { - workOrderCutDb.setRemark(String.format("裁片方案[%s]模板代码[%s]方法类为空,请配置!", cutScheme.getCutCode(), labelTemplate.getTemplateCode())); - workOrderCutDb.setSystemSyncStatus(CommonEnumUtil.FALSE); - ConvertBean.serviceModelUpdate(workOrderCutDb, workOrderCut.getModifyUser()); - continue; - } + } finally { - MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel(); - mesProduceSnPrintModel.setMesLabelTemplate(labelTemplate); - mesProduceSnPrintModel.setSourceData(Stream.of(packMesWorkOrderCutPrintModel(cutSchemeMapByCutCode, cutSchemeFgMapByCutCode, cutSchemeMaterialMapByCutCode, cutSchemeEquipmentMapByCutCode, cutSchemeEquipmentDetailMapByPid, workOrderCutDb, cutScheme)).collect(Collectors.toList())); - mesProduceSnPrintModel.setPrinter(cutScheme.getPrinter()); + workOrderCutRepository.save(workOrderCutDb); - MesProduceSnPrintModel snPrintModel = null; - try { - IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode); - snPrintModel = strategyService.execute(null, mesProduceSnPrintModel, null, null, null ,false); - } catch (BeansException e) { - workOrderCutDb.setRemark(String.format("裁片方案[%s]模板代码[%s]方法类[%s]执行异常,请配置!", cutScheme.getCutCode(), labelTemplate.getTemplateCode(), labelTemplate.getMethodCode())); - ConvertBean.serviceModelUpdate(workOrderCutDb, workOrderCut.getModifyUser()); - workOrderCutDb.setSystemSyncStatus(CommonEnumUtil.FALSE); - continue; - } + log.info("工厂{}裁片工单打印 --- 处理裁片工单[{}] --- {} --- {} ---", workOrderCut.getOrganizeCode(), workOrderCutDb.getCutWorkOrderNo(), JSONObject.toJSONString(workOrderCutDb), Thread.currentThread().getName()); - workOrderCutDb.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue()); - workOrderCutDb.setPrintTime(TimeTool.getNowTime(true)); - workOrderCutDb.setWorkOrderStatusName(MesExtEnumUtil.CUT_ORDER_STATUS.valueOfDescription(workOrderCutDb.getWorkOrderStatus())); - ConvertBean.serviceModelUpdate(workOrderCutDb, workOrderCut.getModifyUser()); - workOrderCutRepository.save(workOrderCutDb); - workOrderCutDb.setPrintContent(snPrintModel.getPrintContextList()); - workOrderCutShowList.add(workOrderCutDb); - - MesPrintedSnLog printedSnLog = new MesPrintedSnLog(); - printedSnLog.setOrganizeCode(workOrderCut.getOrganizeCode()); - printedSnLog.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo()); - printedSnLog.setBarcode(workOrderCut.getCutWorkOrderNo()); - ConvertBean.serviceModelInitialize(printedSnLog, workOrderCut.getModifyUser()); - printedSnLogRepository.save(printedSnLog); + } } @@ -431,6 +452,7 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { private List getMesCutSchemeEquipments(MesWorkOrderCut workOrderCut, List cutCodeList) { List cutSchemeEquipmentList = getMesCutSchemeEquipments(workOrderCut.getOrganizeCode(), cutCodeList); + if (CollectionUtils.isEmpty(cutSchemeEquipmentList)) return null; // 过滤出只需要打印的裁片方案设备 cutSchemeEquipmentList = cutSchemeEquipmentList.stream().filter(o -> o.getIsPrint() != null && o.getIsPrint() == CommonEnumUtil.VALID).collect(Collectors.toList()); return cutSchemeEquipmentList; @@ -439,10 +461,10 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { private static MesWorkOrderCutPrintModel packMesWorkOrderCutPrintModel(Map cutSchemeMapByCutCode, Map> cutSchemeFgMapByCutCode, Map> cutSchemeMaterialMapByCutCode, Map> cutSchemeEquipmentMapByCutCode, Map> cutSchemeEquipmentDetailMapByPid, MesWorkOrderCut workOrderCutDb, MesCutScheme cutScheme) { MesWorkOrderCutPrintModel printModel = new MesWorkOrderCutPrintModel(); BeanUtils.copyProperties(workOrderCutDb, printModel); - printModel.setCutScheme(cutSchemeMapByCutCode.get(cutScheme.getCutCode())); - printModel.setCutSchemeFgList(cutSchemeFgMapByCutCode.get(cutScheme.getCutCode())); - printModel.setCutSchemeMaterialList(cutSchemeMaterialMapByCutCode.get(cutScheme.getCutCode())); - printModel.setCutSchemeEquipmentList(cutSchemeEquipmentMapByCutCode.get(cutScheme.getCutCode())); + if (!CollectionUtils.isEmpty(cutSchemeMapByCutCode)) printModel.setCutScheme(cutSchemeMapByCutCode.get(cutScheme.getCutCode())); + if (!CollectionUtils.isEmpty(cutSchemeFgMapByCutCode)) printModel.setCutSchemeFgList(cutSchemeFgMapByCutCode.get(cutScheme.getCutCode())); + if (!CollectionUtils.isEmpty(cutSchemeMaterialMapByCutCode)) printModel.setCutSchemeMaterialList(cutSchemeMaterialMapByCutCode.get(cutScheme.getCutCode())); + if (!CollectionUtils.isEmpty(cutSchemeEquipmentMapByCutCode)) printModel.setCutSchemeEquipmentList(cutSchemeEquipmentMapByCutCode.get(cutScheme.getCutCode())); printModel.setCutSchemeEquipmentDetailMapByPid(cutSchemeEquipmentDetailMapByPid); return printModel; } @@ -451,7 +473,8 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { if (!CollectionUtils.isEmpty(cutSchemeEquipmentList)) { List idList = cutSchemeEquipmentList.stream().map(MesCutSchemeEquipment::getId).collect(Collectors.toList()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.PID, packBean); + if (idList.size() == 1) DdlPreparedPack.getNumEqualPack(idList.get(0), MesPcnExtConstWords.PID, packBean); + else DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.PID, packBean); return cutSchemeEquipmentDetailRepository.findByHqlWhere(packBean); } return null; @@ -460,36 +483,43 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService { private Map> getCutSchemeEquipmentDetailMapByPid(String organizeCode, List cutSchemeEquipmentList) { List cutSchemeEquipmentDetailList = getMesCutSchemeEquipmentDetails(organizeCode, cutSchemeEquipmentList); - return CollectionUtils.isEmpty(cutSchemeEquipmentDetailList) ? null : cutSchemeEquipmentDetailList.stream().collect(Collectors.groupingBy(MesCutSchemeEquipmentDetail::getPid)); + return CollectionUtils.isEmpty(cutSchemeEquipmentDetailList) ? null : cutSchemeEquipmentDetailList.stream().collect(Collectors.groupingBy(MesCutSchemeEquipmentDetail::getPid)); } private List getMesCutSchemeEquipments(String organizeCode, List cutCodeList) { + if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(cutCodeList)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); + if (cutCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(cutCodeList.get(0), MesPcnExtConstWords.CUT_CODE, packBean); + else DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); return cutSchemeEquipmentRepository.findByHqlWhere(packBean); } - private List getMesCutSchemeMaterials(List cutCodeList,String orgnaizeCode) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(orgnaizeCode); - DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); + private List getMesCutSchemeMaterials(List cutCodeList,String organizeCode) { + if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(cutCodeList)) return null; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + if (cutCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(cutCodeList.get(0), MesPcnExtConstWords.CUT_CODE, packBean); + else DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); return cutSchemeMaterialRepository.findByHqlWhere(packBean); } private Map> getCutSchemeMaterialMapByCutCode(List cutCodeList,String orgnaizeCode) { List cutSchemeMaterialList = getMesCutSchemeMaterials(cutCodeList,orgnaizeCode); + if (CollectionUtils.isEmpty(cutSchemeMaterialList)) return null; //根据裁片方案代码对裁片方案原材料分组 return cutSchemeMaterialList.stream().collect(Collectors.groupingBy(MesCutSchemeMaterial::getCutCode)); } private List getMesCutSchemeFgs(List cutCodeList, String organizeCode) { + if (CollectionUtils.isEmpty(cutCodeList) || StringUtils.isEmpty(organizeCode)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); + if (cutCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(cutCodeList.get(0), MesPcnExtConstWords.CUT_CODE, packBean); + else DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); return cutSchemeFgRepository.findByHqlWhere(packBean); } private Map> getCutSchemeFgMapByCutCode(List cutCodeList, String organizeCode) { List cutSchemeFgList = getMesCutSchemeFgs(cutCodeList,organizeCode); - + if (CollectionUtils.isEmpty(cutSchemeFgList)) return null; //根据裁片方案代码对裁片方案成品明细分组 return cutSchemeFgList.stream().collect(Collectors.groupingBy(MesCutSchemeFg::getCutCode)); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java index 4dd1772..1d2fe27 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderCutService.java @@ -10,6 +10,7 @@ import cn.estsh.i3plus.pojo.mes.repository.*; import java.util.Collections; 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.List; @@ -64,8 +65,10 @@ public class MesWorkOrderCutService implements IMesWorkOrderCutService { @Override public List queryCutSchemeList(List cutCodeList, String organizeCode) { + if (CollectionUtils.isEmpty(cutCodeList) || StringUtils.isEmpty(organizeCode)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); + if (cutCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(cutCodeList.get(0), MesPcnExtConstWords.CUT_CODE, packBean); + else DdlPreparedPack.getInPackList(cutCodeList, MesPcnExtConstWords.CUT_CODE, packBean); return cutSchemeRepository.findByHqlWhere(packBean); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java index 3ce1aac..e6d2752 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java @@ -76,7 +76,7 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic //设备参数值标题 resultMap.put(MesPcnExtConstWords.EQUIPMENT_NAME+(i+1), mesCutSchemeEquipment == null ? "" : mesCutSchemeEquipment.getEquipmentName()); for (int l = 0; l < EQUIP_PARAM_TITLE_NUM; l++) { - if (cutSchemeEquipmentDetails.size() > l) { + if (!CollectionUtils.isEmpty(cutSchemeEquipmentDetails) && cutSchemeEquipmentDetails.size() > l) { //设备参数值标题1 resultMap.put(MesPcnExtConstWords.EQUIP_PARAM_NAME+(l+1), cutSchemeEquipmentDetails.get(l).getName()); //设备参数值1