From a5290282ace9f13c38f27b11409de54885518f78 Mon Sep 17 00:00:00 2001 From: jason Date: Sat, 15 Mar 2025 16:28:08 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=88=90=E9=83=BD=E8=A3=85=E8=BD=A6?= =?UTF-8?q?=E5=8D=95=E6=89=93=E5=8D=B0=EF=BC=8C=E4=B8=B4=E6=97=B6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesLoadingListService.java | 4 + .../controller/base/MesLoadingListController.java | 26 +++- .../serviceimpl/base/MesLoadingListService.java | 51 +++++++ .../print/IPrintTemplateStrategyService.java | 10 ++ .../ChengDuLoadingListPrintStrategy.java | 160 +++++++++++++++++++++ .../model/ChengDuLoadingListDetailPrintModel.java | 34 +++++ .../pojo/model/ChengDuLoadingListPrintModel.java | 47 ++++++ .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 3 + 8 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListDetailPrintModel.java create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java index 5f62aee..ca0f962 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java @@ -1,8 +1,11 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; +import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.ApiOperation; +import java.util.List; + /** * @Description: * @CreateDate 2024/04/16 @@ -13,4 +16,5 @@ public interface IMesLoadingListService extends IBaseMesService @ApiOperation("根据发运单号查询装车单信息") MesLoadingList getMesLoadingListByShippingCode(String organizeCode, String shippingCode); + ResultBean doMesMesLoadingListPrint(List ids); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java index 3314042..00997b7 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java @@ -1,16 +1,40 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingListService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Api(description = "装车单主页面") @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLoadingVehiclesOrder") public class MesLoadingListController extends BaseMesController { + @Autowired + private IMesLoadingListService loadingListService; - + @PostMapping(value = "/doPrint") + @ApiOperation(value = "打印未打印发运单后修改状态") + public ResultBean doMesMesLoadingListPrint(@RequestBody List ids) { + try { + // 数据校验 + return loadingListService.doMesMesLoadingListPrint(ids); + } catch (ImppBusiException e) { + return ResultBean.fail(e).build(); + } catch (Exception e) { + return ResultBean.fail(e); + } + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java index 3b6f0b2..8516898 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java @@ -3,14 +3,22 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingListService; import cn.estsh.i3plus.ext.mes.api.base.IMesPartShippingGroupService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.mes.api.iservice.base.IConfigService; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesConfig; +import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail; @@ -21,7 +29,10 @@ import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -47,6 +58,11 @@ public class MesLoadingListService extends BaseMesService implem private IMesPartShippingGroupService mesPartShippingGroupService; @Autowired private ISyncFuncService syncFuncService; + @Autowired + private IConfigService configService; + + @Autowired + private IMesTemplateService templateService; @Override public MesLoadingList insert(MesLoadingList bean) { @@ -243,4 +259,39 @@ public class MesLoadingListService extends BaseMesService implem DdlPreparedPack.getNumEqualPack(mesLoadingListDetail.getPid(),"id",packBean); return baseRDao.getByProperty(packBean); } + + private List getMesLoadingListByIds(String organizeCode, List ids) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(ids,"id",packBean); + return baseRDao.findByHqlWhere(packBean); + } + + @Override + public ResultBean doMesMesLoadingListPrint(List ids) { + String organizeCode = AuthUtilExt.getOrganizeCode(); + MesConfig config = configService.getConfigByCfgCode(MesExtConstWords.LOADING_LIST_PRINT_TEMPLATE, organizeCode); + if (null == config || StringUtils.isEmpty(config.getCfgValue())) { + MesException.throwBusiException("未配置装车单全局打印配置[%s]", MesExtConstWords.LOADING_LIST_PRINT_TEMPLATE); + } + + MesLabelTemplate labelTemplate = templateService.getMesLabelTemplate(config.getCfgValue(), organizeCode); + if (StringUtils.isEmpty(labelTemplate.getMethodCode())) { + MesException.throwBusiException("装车单打印模版[%s]未配置策略方法", config.getCfgValue()); + } + + List loadingLists = getMesLoadingListByIds(organizeCode, ids); + if (CollectionUtils.isEmpty(loadingLists)) { + return ResultBean.success("不存在需要打印的装车单").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } + + log.info("工厂{}装车单打印 --- 获取到打印数据:{}条 --- loadingLists:{} --- {}", + organizeCode, loadingLists.size(), JSONObject.toJSONString(loadingLists), Thread.currentThread().getName()); + + IPrintTemplateStrategyService printStrategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(labelTemplate.getMethodCode()); + ResultBean resultBean = printStrategyService.execute(loadingLists); + + log.info("工厂{}排序发运打印 --- 封装打印数据完成 --- {}", organizeCode, Thread.currentThread().getName()); + + return resultBean; + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java index 18bfb71..d5f355e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java @@ -2,7 +2,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print; import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.ApiOperation; + +import java.util.List; /** * @Description : 根据不同的条码,封装不同的数据来源 content 是打印模板,dataList @@ -22,4 +28,8 @@ public interface IPrintTemplateStrategyService { */ MesProduceSnPrintModel execute(GenSerialNoModel model, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule); + @ApiOperation(value = "装车单") + default ResultBean execute(List loadingLists) { + return null; + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java new file mode 100644 index 0000000..27f69c1 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java @@ -0,0 +1,160 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.loadingList; + +import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListDetailPrintModel; +import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListPrintModel; +import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.base.util.StringUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; +import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresSrmRunSheetJis; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; +import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import cn.estsh.i3plus.pojo.mes.repository.MesLoadingListDetailRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesLoadingListRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository; +import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresSrmRunSheetJisRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.util.ResultBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : 装配目视单标签打印 + * @Reference : + * @Author : Castle + * @CreateDate : 2024/6/17 16:43 + * @Modify: + **/ +@Component +@Slf4j +public class ChengDuLoadingListPrintStrategy implements IPrintTemplateStrategyService { + @Autowired + private MesLoadingListRepository loadingListRDao; + @Autowired + private MesLoadingListDetailRepository loadingListDetailRDao; + @Autowired + private MesShippingOrderManagementRepository shippingOrderRDao; + @Autowired + private MesShippingOrderManagementDetailRepository shippingOrderDetailRDao; + @Autowired + private IMesCimSeresSrmRunSheetJisRepository runSheetJisRDao; + + @Override + public MesProduceSnPrintModel execute(GenSerialNoModel model, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule) { + return null; + } + + @Override + public ResultBean execute(List loadingLists) { + List modelList = new ArrayList<>(); + for (MesLoadingList loadingList : loadingLists) { + ChengDuLoadingListPrintModel model = getPrintData(loadingList); + if (model != null) { + modelList.add(model); + } + } + return ResultBean.success("装车单打印成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(modelList); + } + + private ChengDuLoadingListPrintModel getPrintData(MesLoadingList loadingList) { + final String organizeCode = AuthUtilExt.getOrganizeCode(); + final String userName = AuthUtilExt.getUserName(); + + ChengDuLoadingListPrintModel model = new ChengDuLoadingListPrintModel(); + model.setPrintTime(TimeTool.getNowTime(true)); + model.setOrderCode(loadingList.getOrderCode()); + model.setTruckNo(loadingList.getTruckNo()); + model.setSendDockCode(loadingList.getSendDockCode()); + + int loadingListDetailSeq = 0; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(loadingList.getId(), "pid", packBean); + DdlPreparedPack.getOrderBy("shippingCode", CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), packBean); + List loadingListDetails = loadingListDetailRDao.findByHqlWhere(packBean); + for (MesLoadingListDetail detail : loadingListDetails) { + ChengDuLoadingListDetailPrintModel detailPrintModel = new ChengDuLoadingListDetailPrintModel(); + if (StringUtils.isEmpty(detail.getShippingCode())) { + continue; + } + + DdlPackBean jisPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(detail.getShippingCode(), "docNo", jisPackBean); + MesCimSeresSrmRunSheetJis sheetJis = runSheetJisRDao.getByProperty(jisPackBean); + if (sheetJis == null) { + continue; + } + detailPrintModel.setProductClass(detail.getShippingCode()); + detailPrintModel.setGoOutTime(sheetJis.getGoOutTime()); + detailPrintModel.setGoToTime(sheetJis.getGoToTime()); + + DdlPackBean shippingPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(detail.getShippingCode(), "shippingCode", shippingPackBean); + MesShippingOrderManagement shippingOrder = shippingOrderRDao.getByProperty(shippingPackBean); + if (shippingOrder == null) { + continue; + } + detailPrintModel.setPartClass(shippingOrder.getShippingGroupCode()); + + double amount = 0; + DdlPackBean shippingDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(shippingOrder.getId(), "pid", shippingDetailPackBean); + List shippingOrderDetails = shippingOrderDetailRDao.findByHqlWhere(shippingDetailPackBean); + for (MesShippingOrderManagementDetail shippingOrderDetail : shippingOrderDetails) { + amount += shippingOrderDetail.getPlanQty(); + } + + detailPrintModel.setSeqNo(++loadingListDetailSeq); + detailPrintModel.setAmount(amount); + model.getDetails().add(detailPrintModel); + } + if (!CollectionUtils.isEmpty(model.getDetails())) { + model.setShippingCount(model.getShippingCount()); + + double totalAmount = 0.0; + String maxGoToTime = null; + String minGoOutTime = null; + for (ChengDuLoadingListDetailPrintModel detailPrintModel : model.getDetails()) { + totalAmount += detailPrintModel.getAmount(); + if (!StringUtils.isEmpty(detailPrintModel.getGoToTime())) { + if (StringUtils.isEmpty(maxGoToTime) || maxGoToTime.compareTo(detailPrintModel.getGoToTime()) < 0) { + maxGoToTime = detailPrintModel.getGoToTime(); + } + } + if (!StringUtils.isEmpty(detailPrintModel.getGoOutTime())) { + if (StringUtils.isEmpty(minGoOutTime) || detailPrintModel.getGoOutTime().compareTo(minGoOutTime) < 0) { + minGoOutTime = detailPrintModel.getGoOutTime(); + } + } + } + model.setGoToTime(maxGoToTime); + model.setGoOutTime(minGoOutTime); + model.setTotalAmount(totalAmount); + } + + //查询原有报文 根据shippingCode; + loadingList.setPrintCount(StringUtil.isEmpty(loadingList.getPrintCount())?1:loadingList.getPrintCount()+1); + loadingList.setLastPrintTime(TimeTool.getNowTime(true)); + loadingList.setLastPrintUser(userName); + ConvertBean.serviceModelUpdate(loadingList, userName); + loadingListRDao.update(loadingList); + return model; + } +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListDetailPrintModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListDetailPrintModel.java new file mode 100644 index 0000000..727e93b --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListDetailPrintModel.java @@ -0,0 +1,34 @@ +package cn.estsh.i3plus.ext.mes.pojo.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 成都装车单打印明细 + * @author jason.niu + * @description + * @date 2025/3/15 13:53 + */ +@Data +@ApiModel("成都装车单打印明细") +public class ChengDuLoadingListDetailPrintModel { + + @ApiModelProperty("序号") + private Integer seqNo; + + @ApiModelProperty("最迟到达时间") + private String goToTime; + + @ApiModelProperty("最早发运时间") + private String goOutTime; + + @ApiModelProperty("零件类") + private String partClass; + + @ApiModelProperty("产品类") + private String productClass; + + @ApiModelProperty("数量汇总") + private Double amount; +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java new file mode 100644 index 0000000..40c664f --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java @@ -0,0 +1,47 @@ +package cn.estsh.i3plus.ext.mes.pojo.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * 成都装车单打印 + * @author jason.niu + * @description + * @date 2025/3/15 13:53 + */ +@Data +@ApiModel("成都装车单打印") +public class ChengDuLoadingListPrintModel { + + @ApiModelProperty("车牌号") + private String truckNo; + + @ApiModelProperty("发运道口") + private String sendDockCode; + + @ApiModelProperty("装车单号") + private String orderCode; + + @ApiModelProperty("打印时间") + private String printTime; + + @ApiModelProperty("最迟到达时间") + private String goToTime; + + @ApiModelProperty("最早发运时间") + private String goOutTime; + + @ApiModelProperty("小计") + private Integer shippingCount; + + @ApiModelProperty("数量汇总") + private Double totalAmount; + + @ApiModelProperty("明细") + private List details = new ArrayList<>(); +} + diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index df9c490..956c13b 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -466,4 +466,7 @@ public class MesExtConstWords { // 默认客户条码编码规则配置代码 public static final String DEFAULT_CUST_MATCH_RULE = "DEFAULT_CUST_MATCH_RULE"; + //装车单全局打印配置 + public static final String LOADING_LIST_PRINT_TEMPLATE = "LOADING_LIST_PRINT_TEMPLATE"; + } From 27fc494cb706acbc35925605da678c5b2a5c67f0 Mon Sep 17 00:00:00 2001 From: jason Date: Sat, 15 Mar 2025 16:50:37 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=88=90=E9=83=BD=E8=A3=85=E8=BD=A6?= =?UTF-8?q?=E5=8D=95=E6=89=93=E5=8D=B0=EF=BC=8C=E4=B8=B4=E6=97=B6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesLoadingListService.java | 2 +- .../controller/base/MesLoadingListController.java | 6 ++++-- .../serviceimpl/base/MesLoadingListService.java | 4 ++-- .../print/IPrintTemplateStrategyService.java | 2 +- .../ChengDuLoadingListPrintStrategy.java | 13 ++++++++++--- .../pojo/model/ChengDuLoadingListPrintModel.java | 10 ++++++++++ .../ext/mes/pojo/model/PrintDataRequest.java | 22 ++++++++++++++++++++++ .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 2 ++ 8 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/PrintDataRequest.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java index ca0f962..3cfa3b4 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLoadingListService.java @@ -16,5 +16,5 @@ public interface IMesLoadingListService extends IBaseMesService @ApiOperation("根据发运单号查询装车单信息") MesLoadingList getMesLoadingListByShippingCode(String organizeCode, String shippingCode); - ResultBean doMesMesLoadingListPrint(List ids); + ResultBean doMesMesLoadingListPrint(List ids, boolean reprint); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java index 00997b7..c647395 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLoadingListController.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.api.base.IMesLoadingListService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.PrintDataRequest; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -27,10 +28,11 @@ public class MesLoadingListController extends BaseMesController @PostMapping(value = "/doPrint") @ApiOperation(value = "打印未打印发运单后修改状态") - public ResultBean doMesMesLoadingListPrint(@RequestBody List ids) { + public ResultBean doMesMesLoadingListPrint(@RequestBody PrintDataRequest request) { try { + boolean reprint = request.getIsReprint() != null ? request.getIsReprint() : false; // 数据校验 - return loadingListService.doMesMesLoadingListPrint(ids); + return loadingListService.doMesMesLoadingListPrint(request.getIds(), reprint); } catch (ImppBusiException e) { return ResultBean.fail(e).build(); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java index 8516898..600e62d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLoadingListService.java @@ -267,7 +267,7 @@ public class MesLoadingListService extends BaseMesService implem } @Override - public ResultBean doMesMesLoadingListPrint(List ids) { + public ResultBean doMesMesLoadingListPrint(List ids, boolean reprint) { String organizeCode = AuthUtilExt.getOrganizeCode(); MesConfig config = configService.getConfigByCfgCode(MesExtConstWords.LOADING_LIST_PRINT_TEMPLATE, organizeCode); if (null == config || StringUtils.isEmpty(config.getCfgValue())) { @@ -288,7 +288,7 @@ public class MesLoadingListService extends BaseMesService implem organizeCode, loadingLists.size(), JSONObject.toJSONString(loadingLists), Thread.currentThread().getName()); IPrintTemplateStrategyService printStrategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(labelTemplate.getMethodCode()); - ResultBean resultBean = printStrategyService.execute(loadingLists); + ResultBean resultBean = printStrategyService.execute(loadingLists, reprint); log.info("工厂{}排序发运打印 --- 封装打印数据完成 --- {}", organizeCode, Thread.currentThread().getName()); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java index d5f355e..6fdbe27 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java @@ -29,7 +29,7 @@ public interface IPrintTemplateStrategyService { MesProduceSnPrintModel execute(GenSerialNoModel model, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule); @ApiOperation(value = "装车单") - default ResultBean execute(List loadingLists) { + default ResultBean execute(List loadingLists, boolean reprint) { return null; } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java index 27f69c1..720134a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListDetailPrintModel; import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListPrintModel; import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -63,10 +64,10 @@ public class ChengDuLoadingListPrintStrategy implements IPrintTemplateStrategySe } @Override - public ResultBean execute(List loadingLists) { + public ResultBean execute(List loadingLists, boolean reprint) { List modelList = new ArrayList<>(); for (MesLoadingList loadingList : loadingLists) { - ChengDuLoadingListPrintModel model = getPrintData(loadingList); + ChengDuLoadingListPrintModel model = getPrintData(loadingList, reprint); if (model != null) { modelList.add(model); } @@ -74,7 +75,7 @@ public class ChengDuLoadingListPrintStrategy implements IPrintTemplateStrategySe return ResultBean.success("装车单打印成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(modelList); } - private ChengDuLoadingListPrintModel getPrintData(MesLoadingList loadingList) { + private ChengDuLoadingListPrintModel getPrintData(MesLoadingList loadingList, boolean reprint) { final String organizeCode = AuthUtilExt.getOrganizeCode(); final String userName = AuthUtilExt.getUserName(); @@ -155,6 +156,12 @@ public class ChengDuLoadingListPrintStrategy implements IPrintTemplateStrategySe loadingList.setLastPrintUser(userName); ConvertBean.serviceModelUpdate(loadingList, userName); loadingListRDao.update(loadingList); + + if (reprint) { + model.setRePrintDatetime(TimeTool.getNowTime(MesExtConstWords.DATETIME_FORMAT_SINGLE_SLASH)); + model.setRePrintUser(userName); + model.setIsRePrint("重打印"); + } return model; } } diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java index 40c664f..a607253 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/ChengDuLoadingListPrintModel.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pojo.model; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -17,6 +18,15 @@ import java.util.List; @ApiModel("成都装车单打印") public class ChengDuLoadingListPrintModel { + @ApiModelProperty("是否重打印") + private String isRePrint = MesExtConstWords.EMPTY; + + @ApiModelProperty("重打印操作人") + private String rePrintUser = MesExtConstWords.EMPTY; + + @ApiModelProperty("重打印时间") + private String rePrintDatetime = MesExtConstWords.EMPTY; + @ApiModelProperty("车牌号") private String truckNo; diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/PrintDataRequest.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/PrintDataRequest.java new file mode 100644 index 0000000..b275e1b --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/PrintDataRequest.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.ext.mes.pojo.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Description : 打印前端请求参数 + * @Reference : + * @Author : jason.niu + * @CreateDate 2025/3/15 15:48 + * @Modify: + **/ +@Data +public class PrintDataRequest { + @ApiModelProperty("是否为补打印") + private Boolean isReprint; + + @ApiModelProperty("打印对象ID") + private List ids; +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index 956c13b..ebf0a5c 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -320,6 +320,8 @@ public class MesExtConstWords { //时间类型 public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; //时间类型 + public static final String DATETIME_FORMAT_SINGLE_SLASH = "yyyy/MM/dd HH:mm:ss"; + //时间类型 public static final String DATETIME_TRUNCATE_MINUTE_FORMAT = "yyyy-MM-dd HH"; //时间类型 public static final String TIME_TRUNCATE_SECOND_FORMAT = "HH:mm"; From 05fa108128be9259770badea3bff724a44f044aa Mon Sep 17 00:00:00 2001 From: jason Date: Sat, 15 Mar 2025 16:52:51 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=88=90=E9=83=BD=E8=A3=85=E8=BD=A6?= =?UTF-8?q?=E5=8D=95=E6=89=93=E5=8D=B0=EF=BC=8C=E4=B8=B4=E6=97=B6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java index 7750488..551236b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java @@ -4,7 +4,6 @@ import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; -import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.ApiOperation; From 21119ccdaab0f82d042848cff3177d50a615dd36 Mon Sep 17 00:00:00 2001 From: jason Date: Sat, 15 Mar 2025 16:52:51 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=88=90=E9=83=BD=E8=A3=85=E8=BD=A6?= =?UTF-8?q?=E5=8D=95=E6=89=93=E5=8D=B0=EF=BC=8C=E4=B8=B4=E6=97=B6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/serviceimpl/print/IPrintTemplateStrategyService.java | 1 - .../loadingList/{ => strategy}/ChengDuLoadingListPrintStrategy.java | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) rename modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/{ => strategy}/ChengDuLoadingListPrintStrategy.java (98%) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java index 7750488..551236b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/IPrintTemplateStrategyService.java @@ -4,7 +4,6 @@ import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; -import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.ApiOperation; diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/strategy/ChengDuLoadingListPrintStrategy.java similarity index 98% rename from modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java rename to modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/strategy/ChengDuLoadingListPrintStrategy.java index 720134a..37c6c20 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/ChengDuLoadingListPrintStrategy.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/loadingList/strategy/ChengDuLoadingListPrintStrategy.java @@ -1,8 +1,7 @@ -package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.loadingList; +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.loadingList.strategy; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService; -import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListDetailPrintModel; import cn.estsh.i3plus.ext.mes.pojo.model.ChengDuLoadingListPrintModel; import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; @@ -26,7 +25,6 @@ import cn.estsh.i3plus.pojo.mes.repository.MesLoadingListRepository; import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository; import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository; import cn.estsh.i3plus.pojo.mes.repository.seres.IMesCimSeresSrmRunSheetJisRepository; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.util.ResultBean; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired;