From f001200d1d993d797e760c5925ec24e68a0139aa Mon Sep 17 00:00:00 2001 From: xs Date: Fri, 21 Jun 2024 16:26:11 +0800 Subject: [PATCH] =?UTF-8?q?2.4.2=20WMS:=E5=BA=93=E4=BD=8D=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=B1=82=E7=9A=84=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E6=9D=83=E9=99=90=E4=BF=AE=E6=94=B9=20MES:=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=89=98=E7=9B=98=E7=A0=81=E5=8A=9F=E8=83=BD=EF=BC=9B?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E5=8E=9F=E6=9D=90=E6=96=99=E6=9D=A1=E7=A0=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=88=E6=A0=B9=E6=8D=AE=E5=8E=9F=E6=9D=90?= =?UTF-8?q?=E6=96=99=E6=9D=A1=E7=A0=81=E6=A8=A1=E6=9D=BF=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E6=AF=8F=E4=B8=AA=E5=8E=9F=E6=9D=90=E6=96=99=E6=9D=A1=E7=A0=81?= =?UTF-8?q?=E5=8F=AA=E8=83=BD=E6=89=93=E5=8D=B0=E4=B8=80=E6=AC=A1=EF=BC=8C?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=87=8D=E6=96=B0=E7=94=9F=E6=88=90=E5=8E=9F?= =?UTF-8?q?=E6=9D=90=E6=96=99=E6=9D=A1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hw/mes/api/domain/MesBaseBarcodeInfo.java | 55 ++++-- hw-api/hw-api-printer/pom.xml | 4 + .../hw/printer/api/RemotePrinterService.java | 13 +- .../printer/api/domain/vo/PrintContentVo.java | 25 ++- .../factory/RemotePrinterFallbackFactory.java | 9 +- ...ot.autoconfigure.AutoConfiguration.imports | 2 +- .../hw/common/core/constant/MesConstants.java | 5 + .../com/hw/common/core/utils/uuid/Seq.java | 4 +- .../com/hw/common/log/enums/BusinessType.java | 5 + .../MesBaseBarcodeInfoController.java | 17 +- .../MesBasePalletInfoController.java | 15 ++ .../hw/mes/domain/MesBaseAbandonBarcode.java | 67 +++++++ .../com/hw/mes/domain/MesProductPlan.java | 18 +- .../mapper/MesBaseAbandonBarcodeMapper.java | 61 +++++++ .../mes/mapper/MesBaseBarcodeInfoMapper.java | 11 ++ .../service/IMesBaseBarcodeInfoService.java | 10 +- .../service/IMesBasePalletInfoService.java | 10 + .../impl/MesBaseBarcodeInfoServiceImpl.java | 172 +++++++++++++++--- .../impl/MesBasePalletInfoServiceImpl.java | 42 +++++ .../impl/MesProductPlanServiceImpl.java | 13 +- .../mes/MesBaseAbandonBarcodeMapper.xml | 69 +++++++ .../mapper/mes/MesBaseBarcodeInfoMapper.xml | 45 +++++ .../mapper/mes/MesProductPlanMapper.xml | 9 +- .../printer/controller/PrinterController.java | 18 +- .../hw/printer/service/IPrinterService.java | 10 +- .../printer/service/PrinterServiceImpl.java | 36 ++-- .../com/hw/printer/utils/HwPrintUtil.java | 167 ++++++++++------- .../controller/WmsBaseLocationController.java | 2 +- .../impl/WmsBaseLocationServiceImpl.java | 5 +- .../impl/WmsRawInstockServiceImpl.java | 4 +- .../impl/WmsRawOutstockServiceImpl.java | 2 +- hw-ui/src/api/mes/barcode.js | 14 +- hw-ui/src/api/mes/basePalletInfo.js | 10 + hw-ui/src/views/board/fifthFloor/index.vue | 22 +-- hw-ui/src/views/mes/barcode/index.vue | 85 +++++---- hw-ui/src/views/mes/basePalletInfo/index.vue | 98 +++------- .../src/views/wms/base/wmslocation/index.vue | 21 ++- 37 files changed, 886 insertions(+), 289 deletions(-) create mode 100644 hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseAbandonBarcode.java create mode 100644 hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseAbandonBarcodeMapper.java create mode 100644 hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseAbandonBarcodeMapper.xml diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java index a1f7974..bedcb2d 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java @@ -152,21 +152,12 @@ public class MesBaseBarcodeInfo extends BaseEntity @Excel(name = "物料名称") private String materialName; - public String getMaterialCode() { - return materialCode; - } + private String materialSpec; - public void setMaterialCode(String materialCode) { - this.materialCode = materialCode; - } + private String bindFlag;//物料信息中的绑定标识 - public String getMaterialName() { - return materialName; - } + private String checkStatus;//质检状态 - public void setMaterialName(String materialName) { - this.materialName = materialName; - } public String getPrintFlag() { return printFlag; @@ -453,6 +444,46 @@ public class MesBaseBarcodeInfo extends BaseEntity this.barcodeAmount = barcodeAmount; } + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getMaterialSpec() { + return materialSpec; + } + + public void setMaterialSpec(String materialSpec) { + this.materialSpec = materialSpec; + } + + public String getBindFlag() { + return bindFlag; + } + + public void setBindFlag(String bindFlag) { + this.bindFlag = bindFlag; + } + + public String getCheckStatus() { + return checkStatus; + } + + public void setCheckStatus(String checkStatus) { + this.checkStatus = checkStatus; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-api/hw-api-printer/pom.xml b/hw-api/hw-api-printer/pom.xml index 0c7ba41..788db31 100644 --- a/hw-api/hw-api-printer/pom.xml +++ b/hw-api/hw-api-printer/pom.xml @@ -18,6 +18,10 @@ + + com.hw + hw-common-core + com.hw hw-api-mes diff --git a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/RemotePrinterService.java b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/RemotePrinterService.java index fddef47..7ae1bab 100644 --- a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/RemotePrinterService.java +++ b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/RemotePrinterService.java @@ -9,6 +9,9 @@ import com.hw.printer.api.factory.RemotePrinterFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; +import java.util.List; + @FeignClient(contextId = "remotePrinterService", value = ServiceNameConstants.PRINTER_SERVICE, fallbackFactory = RemotePrinterFallbackFactory.class) public interface RemotePrinterService { @@ -16,23 +19,23 @@ public interface RemotePrinterService { /** * 通过条码查询条码信息 * - * @param barcodeInfo 条码信息 + * @param printContents 条码信息 * @param source 请求来源 * @return 结果 */ - @PostMapping("/printService/printBarCode") - public MesBaseBarcodeInfo printBarCode(@RequestBody MesBaseBarcodeInfo barcodeInfo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @PostMapping("/printService/printBarcodes") + public R printBarcodes(@RequestBody List> printContents, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 打印库位条码信息 * - * @param printContentVo 打印条码信息 + * @param params 打印条码信息 * @param source 请求来源 * @return 结果 */ @PostMapping("/printService/printLocationLabel") - public R printLocationLabel(@RequestBody PrintContentVo printContentVo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + public R printLocationLabel(@RequestBody HashMap params, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrintContentVo.java b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrintContentVo.java index c886c0d..e7f40ae 100644 --- a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrintContentVo.java +++ b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/domain/vo/PrintContentVo.java @@ -2,12 +2,29 @@ package com.hw.printer.api.domain.vo; import lombok.Data; -import java.util.HashMap; - @Data public class PrintContentVo { - private String templatePath; + public static final int TYPE_TEXT = 1; + public static final int TYPE_CHECKBOX = 2; + public static final int TYPE_QRCODE = 3; + + public static final String RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME = "materialName"; + public static final String RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE = "materialCode"; + public static final String RAW_MATERIAL_LABEL_KEY_PO_NO = "poNo"; + public static final String RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC = "materialSpec"; + public static final String RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_YES = "preMaterialYes"; + public static final String RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_NO = "preMaterialNo"; + public static final String RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE = "saleOrderCode"; + public static final String RAW_MATERIAL_LABEL_KEY_QTY = "qty"; + public static final String RAW_MATERIAL_LABEL_KEY_BATCH_CODE = "batchCode"; + public static final String RAW_MATERIAL_LABEL_KEY_QC_RESULT_YES = "qcResultYes"; + public static final String RAW_MATERIAL_LABEL_KEY_QC_RESULT_NO = "qcResultNo"; + public static final String RAW_MATERIAL_LABEL_KEY_QRCODE = "qrcode"; + + private String key; + + private String value; - private HashMap params; + private int type;//1:text,2:checkbox,3:qrcode } diff --git a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/factory/RemotePrinterFallbackFactory.java b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/factory/RemotePrinterFallbackFactory.java index 522fb89..410d225 100644 --- a/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/factory/RemotePrinterFallbackFactory.java +++ b/hw-api/hw-api-printer/src/main/java/com/hw/printer/api/factory/RemotePrinterFallbackFactory.java @@ -3,14 +3,17 @@ package com.hw.printer.api.factory; import com.hw.common.core.domain.R; import com.hw.common.core.exception.ServiceException; -import com.hw.printer.api.RemotePrinterService; import com.hw.mes.api.domain.MesBaseBarcodeInfo; +import com.hw.printer.api.RemotePrinterService; import com.hw.printer.api.domain.vo.PrintContentVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import java.util.HashMap; +import java.util.List; + /** * 打印机服务降级处理 * @@ -25,12 +28,12 @@ public class RemotePrinterFallbackFactory implements FallbackFactory printBarcodes(List> printContents, String source) { throw new ServiceException("打印条码服务调用异常:" + throwable.getMessage()); } @Override - public R printLocationLabel(PrintContentVo printContentVo, String source) { + public R printLocationLabel(HashMap params, String source) { throw new ServiceException("打印库位条码服务调用异常:" + throwable.getMessage()); } }; diff --git a/hw-api/hw-api-printer/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/hw-api/hw-api-printer/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 8843160..733da1c 100644 --- a/hw-api/hw-api-printer/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/hw-api/hw-api-printer/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1 @@ -com.hw.mes.api.factory.RemoteMesFallbackFactory +com.hw.printer.api.factory.RemotePrinterFallbackFactory diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java index 189905b..f50b777 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java @@ -106,4 +106,9 @@ public class MesConstants { /**物料信息绑定标识,是否需要采购订单明细绑定销售订单*/ public static final String MES_MATERIAL_BIND_FLAG_YES = "1";//是 + + + /**物料条码打印标识*/ + public static final String MES_BARCODE_PRINT_FLAG_YES = "1";//是 + public static final String MES_BARCODE_PRINT_FLAG_NO = "0";//否 } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/uuid/Seq.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/uuid/Seq.java index 1c0efa5..db93f1f 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/uuid/Seq.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/uuid/Seq.java @@ -106,7 +106,7 @@ public class Seq { private static AtomicInteger mesBatchCodeSeq = new AtomicInteger(1); // 生产批次代码标识 - public static final String mesBatchCodeCode = "PC"; + public static final String mesBatchCodeCode = "RP"; // 条码内容记录标识 public static final String mesBarcodeSeqType = "BAR_CODE"; @@ -115,7 +115,7 @@ public class Seq { private static AtomicInteger mesBarcodeSeq = new AtomicInteger(1); // 条码内容标识 - public static final String mesBarcodeCode = "TM"; + public static final String mesBarcodeCode = "RB"; // 成品条码内容记录标识 public static final String mesCompBarcodeSeqType = "COMP_BAR_CODE"; diff --git a/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java b/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java index 8cf7dc2..c3192ee 100644 --- a/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java +++ b/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java @@ -133,4 +133,9 @@ public enum BusinessType * 打印 */ PRINT, + + /** + * 重新生成 + */ + REGENERATE, } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java index cb18e45..fcf3dbe 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java @@ -116,10 +116,10 @@ public class MesBaseBarcodeInfoController extends BaseController * @param barcodeIds * @return */ - @GetMapping(value = "/printBarCode/{barcodeIds}") - public AjaxResult printBarCode(@PathVariable Long[] barcodeIds) + @GetMapping(value = "/printBarcodes/{barcodeIds}") + public AjaxResult printBarcodes(@PathVariable Long[] barcodeIds) { - return success(mesBaseBarcodeInfoService.printBarCode(barcodeIds)); + return success(mesBaseBarcodeInfoService.printBarcodes(barcodeIds)); } /** @@ -177,5 +177,16 @@ public class MesBaseBarcodeInfoController extends BaseController + /** + * 重新生成条码信息(之前的作废) + */ + @RequiresPermissions("mes:barcode:regenerate") + @Log(title = "条码信息", businessType = BusinessType.REGENERATE) + @PostMapping(value="/regenerateBarcode") + public AjaxResult regenerateBarcode(@RequestBody MesBaseBarcodeInfo mesBaseBarcodeInfo) + { + return toAjax(mesBaseBarcodeInfoService.regenerateBarcode(mesBaseBarcodeInfo)); + } + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBasePalletInfoController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBasePalletInfoController.java index 856dc27..fab006b 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBasePalletInfoController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBasePalletInfoController.java @@ -106,4 +106,19 @@ public class MesBasePalletInfoController extends BaseController { return toAjax(mesBasePalletInfoService.deleteMesBasePalletInfoByPalletInfoIds(palletInfoIds)); } + + + + /** + * 打印托盘RFID码 + * + * @param palletInfoCodes + * @return + */ + @RequiresPermissions("mes:basePalletInfo:printPalletInfoCodes") + @Log(title = "托盘信息", businessType = BusinessType.PRINT) + @GetMapping(value = "/printPalletInfoCodes/{palletInfoCodes}") + public AjaxResult printPalletInfoCodes(@PathVariable String[] palletInfoCodes) { + return success(mesBasePalletInfoService.printPalletInfoCodes(palletInfoCodes)); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseAbandonBarcode.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseAbandonBarcode.java new file mode 100644 index 0000000..4c4476d --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBaseAbandonBarcode.java @@ -0,0 +1,67 @@ +package com.hw.mes.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.hw.common.core.annotation.Excel; +import com.hw.common.core.web.domain.BaseEntity; + +/** + * 废弃条码信息对象 mes_base_abandon_barcode + * + * @author xins + * @date 2024-06-21 + */ +public class MesBaseAbandonBarcode extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键标识 */ + private Long anandonBarcodeId; + + /** 物料条码ID */ + @Excel(name = "物料条码ID") + private Long barcodeId; + + /** 废弃条码信息 */ + @Excel(name = "废弃条码信息") + private String abandonBarcode; + + public void setAnandonBarcodeId(Long anandonBarcodeId) + { + this.anandonBarcodeId = anandonBarcodeId; + } + + public Long getAnandonBarcodeId() + { + return anandonBarcodeId; + } + public void setBarcodeId(Long barcodeId) + { + this.barcodeId = barcodeId; + } + + public Long getBarcodeId() + { + return barcodeId; + } + public void setAbandonBarcode(String abandonBarcode) + { + this.abandonBarcode = abandonBarcode; + } + + public String getAbandonBarcode() + { + return abandonBarcode; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("anandonBarcodeId", getAnandonBarcodeId()) + .append("barcodeId", getBarcodeId()) + .append("abandonBarcode", getAbandonBarcode()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java index 280821b..524c223 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java @@ -98,11 +98,16 @@ public class MesProductPlan extends BaseEntity @Excel(name = "单位生产时间(单位:s)") private Long productionTime; - /** 计划数量 */ + /** 派工数量 */ + @Excel(name = "派工数量") + private BigDecimal dispatchAmount; + + /** 计划数量,默认等于派工数量,例如有些工序像折弯工序可以调整计划数量,使计划数量不等于派工数量 + * 对于所有工序需要根据此数量进行工作,而不是根据dispatch_amount的派工数量 */ @Excel(name = "计划数量") private BigDecimal planAmount; - /** 完成数量 */ + /** 完成数量 四楼激光切割是实际完成的图纸数量,其他工序完成的是计划数量*/ @Excel(name = "完成数量") private BigDecimal completeAmount; @@ -349,6 +354,15 @@ public class MesProductPlan extends BaseEntity { return productionTime; } + + public BigDecimal getDispatchAmount() { + return dispatchAmount; + } + + public void setDispatchAmount(BigDecimal dispatchAmount) { + this.dispatchAmount = dispatchAmount; + } + public void setPlanAmount(BigDecimal planAmount) { this.planAmount = planAmount; diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseAbandonBarcodeMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseAbandonBarcodeMapper.java new file mode 100644 index 0000000..5c250da --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseAbandonBarcodeMapper.java @@ -0,0 +1,61 @@ +package com.hw.mes.mapper; + +import java.util.List; +import com.hw.mes.domain.MesBaseAbandonBarcode; + +/** + * 废弃条码信息Mapper接口 + * + * @author xins + * @date 2024-06-21 + */ +public interface MesBaseAbandonBarcodeMapper +{ + /** + * 查询废弃条码信息 + * + * @param anandonBarcodeId 废弃条码信息主键 + * @return 废弃条码信息 + */ + public MesBaseAbandonBarcode selectMesBaseAbandonBarcodeByAnandonBarcodeId(Long anandonBarcodeId); + + /** + * 查询废弃条码信息列表 + * + * @param mesBaseAbandonBarcode 废弃条码信息 + * @return 废弃条码信息集合 + */ + public List selectMesBaseAbandonBarcodeList(MesBaseAbandonBarcode mesBaseAbandonBarcode); + + /** + * 新增废弃条码信息 + * + * @param mesBaseAbandonBarcode 废弃条码信息 + * @return 结果 + */ + public int insertMesBaseAbandonBarcode(MesBaseAbandonBarcode mesBaseAbandonBarcode); + + /** + * 修改废弃条码信息 + * + * @param mesBaseAbandonBarcode 废弃条码信息 + * @return 结果 + */ + public int updateMesBaseAbandonBarcode(MesBaseAbandonBarcode mesBaseAbandonBarcode); + + /** + * 删除废弃条码信息 + * + * @param anandonBarcodeId 废弃条码信息主键 + * @return 结果 + */ + public int deleteMesBaseAbandonBarcodeByAnandonBarcodeId(Long anandonBarcodeId); + + /** + * 批量删除废弃条码信息 + * + * @param anandonBarcodeIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesBaseAbandonBarcodeByAnandonBarcodeIds(Long[] anandonBarcodeIds); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java index a398d70..f6cefe1 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java @@ -89,4 +89,15 @@ public interface MesBaseBarcodeInfoMapper public int selectMesBaseBarcodeInfoCount(MesBaseBarcodeInfo mesBaseBarcodeInfo); + + /** + * 查询条码信息,join material,qms_check_result + * + * @param barcodeId 条码信息主键 + * @return 条码信息 + */ + public MesBaseBarcodeInfo selectMesBaseBarcodeInfoJoinByBarcodeId(Long barcodeId); + + + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java index 5c31428..2e4fb01 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java @@ -76,7 +76,7 @@ public interface IMesBaseBarcodeInfoService * @param barcodeIds * @return */ - public int printBarCode(Long[] barcodeIds); + public int printBarcodes(Long[] barcodeIds); /** * 绑定条码信息(适用于五楼柜体拆分区) @@ -113,4 +113,12 @@ public interface IMesBaseBarcodeInfoService * @return */ public int insertInternalMesBaseBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo); + + + /** + * 重新生成条码信息,之前的作废 + * @param mesBaseBarcodeInfo + * @return + */ + public int regenerateBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBasePalletInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBasePalletInfoService.java index da31945..42ecc4d 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBasePalletInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBasePalletInfoService.java @@ -68,4 +68,14 @@ public interface IMesBasePalletInfoService * @return */ public int bindPalletInfo(MesPalletInfoBindVo mesPalletInfoBindVo); + + + + /** + * 打印托盘RFID编码 + * + * @param palletInfoCodes + * @return + */ + public int printPalletInfoCodes(String[] palletInfoCodes); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java index 50c57c4..49a89ac 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java @@ -1,10 +1,13 @@ package com.hw.mes.service.impl; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import com.hw.common.core.constant.Constants; import com.hw.common.core.constant.MesConstants; +import com.hw.common.core.constant.QmsConstants; import com.hw.common.core.constant.SecurityConstants; import com.hw.common.core.domain.R; import com.hw.common.core.exception.ServiceException; @@ -14,18 +17,22 @@ import com.hw.common.core.utils.uuid.Seq; import com.hw.common.security.utils.SecurityUtils; import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.mes.api.domain.MesBaseMaterialInfo; +import com.hw.mes.domain.MesBaseAbandonBarcode; import com.hw.mes.domain.MesBasePalletInfo; import com.hw.mes.domain.MesOrderBind; import com.hw.mes.domain.MesProductOrder; import com.hw.mes.domain.vo.MesBindBarcodeVo; import com.hw.mes.mapper.*; -import com.hw.mes.service.IMesOrderBindService; +import java.text.DecimalFormat; import com.hw.printer.api.RemotePrinterService; +import com.hw.printer.api.domain.vo.PrintContentVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hw.mes.service.IMesBaseBarcodeInfoService; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; + /** * 条码信息Service业务层处理 * @@ -37,7 +44,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService @Autowired private MesBaseBarcodeInfoMapper mesBaseBarcodeInfoMapper; - @Autowired + @Resource private RemotePrinterService remotePrinterService; @Autowired @@ -52,6 +59,9 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService @Autowired private MesBaseMaterialInfoMapper mesBaseMaterialInfoMapper; + @Autowired + private MesBaseAbandonBarcodeMapper mesBaseAbandonBarcodeMapper; + /** * 查询条码信息 * @@ -255,32 +265,116 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService * @return */ @Override - public int printBarCode(Long[] barcodeIds) { - StringBuilder buffer = new StringBuilder(); + @Transactional(rollbackFor = Exception.class) + public int printBarcodes(Long[] barcodeIds) { //获取条码List + List> printContents = new ArrayList<>(); + List toUpdatedBaseBarcodeInfos = new ArrayList<>(); + for (Long barcodeId : barcodeIds) { - MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeId(barcodeId); - try { - //调用的打印接口 - MesBaseBarcodeInfo barCodeInfo = remotePrinterService.printBarCode(mesBaseBarcodeInfo, SecurityConstants.INNER); - MesBaseBarcodeInfo baseBarcodeInfo = new MesBaseBarcodeInfo(); - baseBarcodeInfo.setBarcodeId(barcodeId); - baseBarcodeInfo.setMachineName(barCodeInfo.getMachineName()); - baseBarcodeInfo.setPrintTime(DateUtils.getNowDate()); - baseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername()); - baseBarcodeInfo.setPrintFlag("1"); - baseBarcodeInfo.setPrintNumber(StringUtils.isNull(baseBarcodeInfo.getPrintNumber()) ? 1 : baseBarcodeInfo.getPrintNumber() + 1); - baseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate()); - this.updateMesBaseBarcodeInfo(baseBarcodeInfo); - } catch (Exception e) { - buffer.append("打印条码报错——条码内容:").append(mesBaseBarcodeInfo.getBarcodeInfo()).append(e.getMessage()); + MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoJoinByBarcodeId(barcodeId); + String printFlag = mesBaseBarcodeInfo.getPrintFlag(); + if (printFlag.equals(MesConstants.MES_BARCODE_PRINT_FLAG_YES)) { + throw new ServiceException("此物料条码[" + mesBaseBarcodeInfo.getBarcodeInfo() + "]已经打印过,不能重复打印"); + } + + List printContentVos = new ArrayList<>(); + PrintContentVo printMaterialName = new PrintContentVo(); + printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME); + printMaterialName.setValue(mesBaseBarcodeInfo.getMaterialName()); + printMaterialName.setType(PrintContentVo.TYPE_TEXT); + + PrintContentVo printMaterialCode = new PrintContentVo(); + printMaterialCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE); + printMaterialCode.setValue(mesBaseBarcodeInfo.getMaterialCode()); + printMaterialCode.setType(PrintContentVo.TYPE_TEXT); + + PrintContentVo printPoNo = new PrintContentVo(); + printPoNo.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_PO_NO); + printPoNo.setValue(mesBaseBarcodeInfo.getPoNo()); + printPoNo.setType(PrintContentVo.TYPE_TEXT); + + PrintContentVo printPreMaterial = new PrintContentVo(); +// if (mesBaseBarcodeInfo.getBindFlag() == null) { +// +// } + + String printPreMaterialKey = mesBaseBarcodeInfo.getBindFlag() != null && mesBaseBarcodeInfo.getBindFlag().equals(MesConstants.MES_MATERIAL_BIND_FLAG_YES) + ? PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_YES : PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_NO; + printPreMaterial.setKey(printPreMaterialKey); + printPreMaterial.setType(PrintContentVo.TYPE_CHECKBOX); + + PrintContentVo printMaterialSpec = new PrintContentVo(); + printMaterialSpec.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC); + printMaterialSpec.setValue(mesBaseBarcodeInfo.getMaterialSpec()); + printMaterialSpec.setType(PrintContentVo.TYPE_TEXT); + + PrintContentVo printSaleOrderCode = new PrintContentVo(); + printSaleOrderCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE); + printSaleOrderCode.setValue(mesBaseBarcodeInfo.getSaleorderCode()); + printSaleOrderCode.setType(PrintContentVo.TYPE_TEXT); + + PrintContentVo printQty = new PrintContentVo(); + printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY); + DecimalFormat df = new DecimalFormat("#.##"); + String formattedNumber = df.format(mesBaseBarcodeInfo.getAmount()); + printQty.setValue(formattedNumber); + printQty.setType(PrintContentVo.TYPE_TEXT); + + PrintContentVo printBatchCode = new PrintContentVo(); + printBatchCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BATCH_CODE); + printBatchCode.setValue(mesBaseBarcodeInfo.getBatchCode()); + printBatchCode.setType(PrintContentVo.TYPE_TEXT); + + PrintContentVo printBarCode = new PrintContentVo(); + printBarCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QRCODE); + printBarCode.setValue(mesBaseBarcodeInfo.getBarcodeInfo()); + printBarCode.setType(PrintContentVo.TYPE_QRCODE); + + printContentVos.add(printMaterialName); + printContentVos.add(printMaterialCode); + printContentVos.add(printPoNo); + printContentVos.add(printPreMaterial); + printContentVos.add(printMaterialSpec); + printContentVos.add(printSaleOrderCode); + printContentVos.add(printQty); + printContentVos.add(printBatchCode); + printContentVos.add(printBarCode); + + String checkStatus = mesBaseBarcodeInfo.getCheckStatus() == null ? "" : mesBaseBarcodeInfo.getCheckStatus(); + if (checkStatus.equals(QmsConstants.QMS_CHECK_RESULT_CHECK_STATUS_PASS)) { + PrintContentVo printQcResult = new PrintContentVo(); + printQcResult.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QC_RESULT_YES); + printQcResult.setType(PrintContentVo.TYPE_CHECKBOX); + printContentVos.add(printQcResult); + } else if (checkStatus.equals(QmsConstants.QMS_CHECK_RESULT_CHECK_STATUS_FAIL)) { + PrintContentVo printQcResult = new PrintContentVo(); + printQcResult.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QC_RESULT_NO); + printQcResult.setType(PrintContentVo.TYPE_CHECKBOX); + printContentVos.add(printQcResult); } + + printContents.add(printContentVos); + toUpdatedBaseBarcodeInfos.add(mesBaseBarcodeInfo); } - if (buffer.length() == 0) { - return 1; - } else { - throw new ServiceException(buffer.toString()); + + for (MesBaseBarcodeInfo toUpdateMesBaseBarcodeInfo : toUpdatedBaseBarcodeInfos) { + toUpdateMesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate()); + toUpdateMesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername()); + toUpdateMesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES); + toUpdateMesBaseBarcodeInfo.setPrintNumber(1L); + toUpdateMesBaseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate()); + this.updateMesBaseBarcodeInfo(toUpdateMesBaseBarcodeInfo); + } + + //调用的打印接口 + R printResultR = remotePrinterService.printBarcodes(printContents, SecurityConstants.INNER); + if (printResultR.getCode() != Constants.SUCCESS) {//抛出异常,回滚事务 + throw new RuntimeException(printResultR.getMsg()); } + + return toUpdatedBaseBarcodeInfos.size(); + } @@ -434,4 +528,36 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService return mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(mesBaseBarcodeInfo); } + + + /** + * 重新生成条码信息,之前的作废 + * @param mesBaseBarcodeInfo + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int regenerateBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo) { + String oldBarcode = mesBaseBarcodeInfo.getBarcodeInfo(); + String newBarcode = Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode); + + String userName = SecurityUtils.getUsername(); + Date currentDate = new Date(); + MesBaseAbandonBarcode mesBaseAbandonBarcode = new MesBaseAbandonBarcode(); + mesBaseAbandonBarcode.setBarcodeId(mesBaseBarcodeInfo.getBarcodeId()); + mesBaseAbandonBarcode.setAbandonBarcode(oldBarcode); + mesBaseAbandonBarcode.setUpdateBy(userName); + mesBaseAbandonBarcode.setUpdateTime(currentDate); + mesBaseAbandonBarcodeMapper.insertMesBaseAbandonBarcode(mesBaseAbandonBarcode); + + mesBaseBarcodeInfo.setBarcodeInfo(newBarcode); + mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_NO); + mesBaseBarcodeInfo.setPrintNumber(0L); + mesBaseBarcodeInfo.setUpdateBy(userName); + mesBaseBarcodeInfo.setUpdateTime(currentDate); + return mesBaseBarcodeInfoMapper.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo); + + + } + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBasePalletInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBasePalletInfoServiceImpl.java index 4615f82..a6e7fc0 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBasePalletInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBasePalletInfoServiceImpl.java @@ -1,14 +1,19 @@ package com.hw.mes.service.impl; import java.util.Date; +import java.util.HashMap; import java.util.List; +import com.hw.common.core.constant.SecurityConstants; import com.hw.common.core.exception.ServiceException; import com.hw.common.core.utils.DateUtils; +import com.hw.common.core.utils.StringUtils; import com.hw.common.security.utils.SecurityUtils; import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.mes.domain.vo.MesPalletInfoBindVo; import com.hw.mes.mapper.MesBaseBarcodeInfoMapper; +import com.hw.printer.api.RemotePrinterService; +import com.hw.printer.api.domain.vo.PrintContentVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hw.mes.mapper.MesBasePalletInfoMapper; @@ -16,6 +21,8 @@ import com.hw.mes.domain.MesBasePalletInfo; import com.hw.mes.service.IMesBasePalletInfoService; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; + /** * 托盘信息Service业务层处理 * @@ -30,6 +37,9 @@ public class MesBasePalletInfoServiceImpl implements IMesBasePalletInfoService { @Autowired private MesBaseBarcodeInfoMapper mesBaseBarcodeInfoMapper; + @Resource + private RemotePrinterService remotePrinterService; + /** * 查询托盘信息 * @@ -138,4 +148,36 @@ public class MesBasePalletInfoServiceImpl implements IMesBasePalletInfoService { return mesBasePalletInfoMapper.updateMesBasePalletInfo(mesBasePalletInfo); } + + + + + /** + * 打印托盘RFID编码 + * + * @param palletInfoCodes + * @return + */ + @Override + public int printPalletInfoCodes(String[] palletInfoCodes) { + StringBuilder buffer = new StringBuilder(); + for (String palletInfoCode : palletInfoCodes) { + if (StringUtils.isNotEmpty(palletInfoCode)) { + try { + HashMap params = new HashMap<>(); + params.put("text", palletInfoCode); + params.put("qrCode", palletInfoCode); + //调用的打印接口 + remotePrinterService.printLocationLabel(params, SecurityConstants.INNER); + } catch (Exception e) { + buffer.append("打印托盘RFID编码报错——[编码内容:").append(palletInfoCode).append("]").append(e.getMessage()); + } + } + } + if (buffer.length() == 0) { + return 1; + } else { + throw new ServiceException(buffer.toString()); + } + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java index 849d42d..25f2bc3 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java @@ -93,10 +93,18 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { * @param mesProductPlan 生产派工 * @return 结果 */ - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public int insertMesProductPlan(MesProductPlan mesProductPlan) { - if (mesProductPlan.getPlanAmount().compareTo(BigDecimal.ZERO) > 0) { + if (mesProductPlan.getDispatchAmount().compareTo(BigDecimal.ZERO) > 0) { + if (mesProductPlan.getProcessId().equals(42L)) {//折弯工序,计划数量可以跟派工数量不相同 + if (mesProductPlan.getPlanAmount() == null) { + throw new ServiceException("四楼折弯工序请输入计划数量"); + } + } else {//非折弯工序,计划数量需与派工数量相同 + mesProductPlan.setPlanAmount(mesProductPlan.getDispatchAmount()); + } + mesProductPlan.setCreateBy(SecurityUtils.getUsername()); mesProductPlan.setCreateTime(DateUtils.getNowDate()); mesProductPlan.setPlanCode(Seq.getId(Seq.planCodeSeqType, Seq.planCodeCode)); @@ -192,6 +200,7 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { * @return */ @Override + @Transactional(rollbackFor = Exception.class) public int orderAddMesProductPlanList(List mesProductPlanList) { for (MesProductPlan mesProductPlan : mesProductPlanList) { this.insertMesProductPlan(mesProductPlan); diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseAbandonBarcodeMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseAbandonBarcodeMapper.xml new file mode 100644 index 0000000..882a2b0 --- /dev/null +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseAbandonBarcodeMapper.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + select anandon_barcode_id, barcode_id, abandon_barcode, update_by, update_time from mes_base_abandon_barcode + + + + + + + + insert into mes_base_abandon_barcode + + barcode_id, + abandon_barcode, + update_by, + update_time, + + + #{barcodeId}, + #{abandonBarcode}, + #{updateBy}, + #{updateTime}, + + + + + update mes_base_abandon_barcode + + barcode_id = #{barcodeId}, + abandon_barcode = #{abandonBarcode}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where anandon_barcode_id = #{anandonBarcodeId} + + + + delete from mes_base_abandon_barcode where anandon_barcode_id = #{anandonBarcodeId} + + + + delete from mes_base_abandon_barcode where anandon_barcode_id in + + #{anandonBarcodeId} + + + \ No newline at end of file diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml index 4a8da65..765450b 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml @@ -41,6 +41,9 @@ + + + @@ -303,4 +306,46 @@ + + + diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml index 128a397..ef2f09e 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml @@ -22,6 +22,7 @@ + @@ -88,6 +89,7 @@ bsi.station_name, mpp.user_id, mpp.production_time, + mpp.dispatch_amount, mpp.plan_amount, mpp.complete_amount, mpp.plan_begin_time, @@ -153,6 +155,7 @@ a.station_id, a.user_id, a.production_time, + a.dispatch_amount, a.plan_amount, a.complete_amount, a.plan_begin_time, @@ -204,6 +207,7 @@ station_id, user_id, production_time, + dispatch_amount, plan_amount, complete_amount, plan_begin_time, @@ -234,6 +238,7 @@ #{stationId}, #{userId}, #{productionTime}, + #{dispatchAmount}, #{planAmount}, #{completeAmount}, #{planBeginTime}, @@ -266,6 +271,7 @@ station_id = #{stationId}, user_id = #{userId}, production_time = #{productionTime}, + dispatch_amount = #{dispatchAmount}, plan_amount = #{planAmount}, complete_amount = #{completeAmount}, plan_begin_time = #{planBeginTime}, @@ -326,7 +332,7 @@