From e0078842491d8e34d13720611f1233eca4ef5917 Mon Sep 17 00:00:00 2001 From: xs Date: Thu, 24 Oct 2024 13:42:02 +0800 Subject: [PATCH] =?UTF-8?q?3.3.3=20JOB=20=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E4=BF=A1=E6=81=AF=E7=9A=84=E5=90=8C=E6=AD=A5=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=20=E9=87=91=E8=9D=B6=EF=BC=9A=20=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E3=80=81=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=92=8C=E9=A1=B9=E7=9B=AE=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E7=8A=B6=E6=80=81=E7=9A=84?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=20=E5=8E=9F=E6=9D=90=E6=96=99=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=EF=BC=9A=20=E6=89=93=E5=8D=B0=E6=97=B6=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E6=88=90=E6=9C=AC=E5=9C=B0=E6=9C=8D=E5=8A=A1=E6=89=93?= =?UTF-8?q?=E5=8D=B0=20=E6=88=90=E5=93=81=E6=9D=A1=E7=A0=81=EF=BC=9A=20?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=97=B6=E6=88=90=E5=93=81=E6=9D=A1=E7=A0=81?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=9C=AC=E5=9C=B0=E6=9C=8D=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A1=A5=E6=89=93=E5=8D=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hw/jindie/api/RemoteJindieService.java | 5 + .../factory/RemoteJindieFallbackFactory.java | 5 + .../printer/api/domain/vo/PrintContentVo.java | 7 + .../src/main/java/com/hw/job/task/RyTask.java | 8 + .../hw/mes/controller/MesApiController.java | 11 + .../MesBaseBarcodeInfoController.java | 2 +- .../impl/MesBaseBarcodeInfoServiceImpl.java | 423 ++++++++++++------ .../impl/MesPurchaseApplyServiceImpl.java | 12 +- .../mapper/mes/MesPurchaseApplyMapper.xml | 1 + hw-ui/src/api/board/barcode.js | 9 + .../views/board/barcode/workshopBarcode.vue | 31 +- hw-ui/src/views/mes/barcode/index.vue | 9 +- hw-ui/src/views/mes/purchaseApply/index.vue | 5 +- 13 files changed, 374 insertions(+), 154 deletions(-) diff --git a/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/RemoteJindieService.java b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/RemoteJindieService.java index fb09b7f..d6353dc 100644 --- a/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/RemoteJindieService.java +++ b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/RemoteJindieService.java @@ -20,6 +20,11 @@ import org.springframework.web.bind.annotation.RequestHeader; @FeignClient(contextId = "remoteJindieService", value = ServiceNameConstants.JINDIE_SERVICE, fallbackFactory = RemoteJindieFallbackFactory.class) public interface RemoteJindieService { + /** 同步单位信息*/ + @PostMapping("/jindie/syncUnitInfoFromErp") + R syncUnitInfoFromErp(@RequestBody ErpSyncInfoVo erpSyncInfoVo,@RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** 同步供应商*/ @PostMapping("/jindie/syncSupplierInfoFromErp") R syncSupplierInfoFromErp(@RequestBody ErpSyncInfoVo erpSyncInfoVo,@RequestHeader(SecurityConstants.FROM_SOURCE) String source); diff --git a/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/factory/RemoteJindieFallbackFactory.java b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/factory/RemoteJindieFallbackFactory.java index 247317b..527ac54 100644 --- a/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/factory/RemoteJindieFallbackFactory.java +++ b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/factory/RemoteJindieFallbackFactory.java @@ -16,6 +16,11 @@ import org.springframework.web.bind.annotation.RequestBody; public class RemoteJindieFallbackFactory implements FallbackFactory { public RemoteJindieService create(Throwable throwable) { return new RemoteJindieService() { + @Override + public R syncUnitInfoFromErp(ErpSyncInfoVo erpSyncInfoVo, String source) { + return R.fail("同步单位信息失败:" + throwable.getMessage()); + } + @Override public R syncSupplierInfoFromErp(ErpSyncInfoVo erpSyncInfoVo,String source) { return R.fail("同步供应商信息失败:" + throwable.getMessage()); 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 73fef06..60cac22 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 @@ -21,9 +21,16 @@ public class PrintContentVo { 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"; + public static final String RAW_MATERIAL_LABEL_KEY_BARCODE = "barcode"; public static final String PRODUCT_PLAN_CODE = "productPlanCode"; + + public static final String PRINT_TEMPLATE_RAW = "raw"; + public static final String PRINT_TEMPLATE_PRODUCT = "product"; + public static final String PRINT_TEMPLATE_BIND = "bind"; + + private String key; private String value; diff --git a/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java b/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java index 4555f12..d8ed013 100644 --- a/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java +++ b/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java @@ -79,6 +79,14 @@ public class RyTask System.out.println("++创建保养工单++getDmsMaintInstance"); remoteDmsService.getDmsBillsMaintInstance(SecurityConstants.INNER,planMaintCode); } + + public void syncUnitInfoFromErp(String maxErpModifyDate){ + ErpSyncInfoVo erpSyncInfoVo = new ErpSyncInfoVo(); + erpSyncInfoVo.setMaxErpModifyDate(maxErpModifyDate); + System.out.println("++同步ERP中物料供应商++ErpSupplierInfo"); + remoteJindieService.syncUnitInfoFromErp(erpSyncInfoVo,SecurityConstants.INNER); + } + public void syncSupplierInfoFromErp(String maxErpModifyDate){ ErpSyncInfoVo erpSyncInfoVo = new ErpSyncInfoVo(); erpSyncInfoVo.setMaxErpModifyDate(maxErpModifyDate); diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java index 544422d..515655b 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java @@ -314,6 +314,17 @@ public class MesApiController extends BaseController { } + /** + * 补打印原材料条码 + * @param barcodeIds + * @return + */ + @GetMapping(value = "/reprintBarcodes/{barcodeIds}") + public AjaxResult reprintBarcodes(@PathVariable Long[] barcodeIds) + { + return success(mesBaseBarcodeInfoService.printBarcodes(barcodeIds,MesConstants.MES_BARCODE_TYPE_PRODUCT,true,1)); + } + /** * 校验四楼成品出库 * 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 ec9f768..1e43a36 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 @@ -212,7 +212,7 @@ public class MesBaseBarcodeInfoController extends BaseController /** - * 打印成品条码 + * 打印成品条码(暂时不用了) * @param barcodeIds * @return */ 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 854603a..f8c5a12 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,5 +1,7 @@ package com.hw.mes.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.hw.common.core.constant.*; import com.hw.common.core.domain.R; import com.hw.common.core.exception.ServiceException; @@ -24,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import org.springframework.data.redis.core.StringRedisTemplate; import javax.annotation.Resource; import java.math.BigDecimal; @@ -42,8 +45,8 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService @Autowired private MesBaseBarcodeInfoMapper mesBaseBarcodeInfoMapper; - @Resource - private RemotePrinterService remotePrinterService; + @Autowired + private StringRedisTemplate redisTemplate; @Autowired private MesOrderBindMapper mesOrderBindMapper; @@ -623,184 +626,130 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService * @return */ @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public int printBarcodes(Long[] barcodeIds, String printType, boolean reprintFlag, Integer printNumber) { - //获取条码List -// List> printContents = new ArrayList<>(); -// List toUpdatedBaseBarcodeInfos = new ArrayList<>(); + JSONArray pintBarcodeJsonArr = new JSONArray(); + JSONObject printContentJson = new JSONObject(); + String barcodeType = ""; for (Long barcodeId : barcodeIds) { + MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeId(barcodeId); + if (StringUtils.isEmpty(barcodeType)) { + barcodeType = mesBaseBarcodeInfo.getBarcodeType(); + } + this.updateBaseBarcodePrintFlag(mesBaseBarcodeInfo, reprintFlag); if (printNumber != null && printNumber > 1) { for (int i = 0; i < printNumber; i++) { - printBarcodesByBarcodeId(barcodeId, printType, reprintFlag); + JSONObject printBarcodeJson = getBarcodeJsonByBarcode(mesBaseBarcodeInfo, printType); + pintBarcodeJsonArr.add(printBarcodeJson); } } else { - printBarcodesByBarcodeId(barcodeId, printType, reprintFlag); + JSONObject printBarcodeJson = getBarcodeJsonByBarcode(mesBaseBarcodeInfo, printType); + pintBarcodeJsonArr.add(printBarcodeJson); } + } + String printTemplate = ""; + if (barcodeType.equals(MesConstants.MES_BARCODE_TYPE_RAW)) { + printTemplate = PrintContentVo.PRINT_TEMPLATE_RAW; + } else if (barcodeType.equals(MesConstants.MES_BARCODE_TYPE_PRODUCT)) { + printTemplate = PrintContentVo.PRINT_TEMPLATE_PRODUCT; + } else if (barcodeType.equals(MesConstants.MES_BARCODE_TYPE_BIND)) { + printTemplate = PrintContentVo.PRINT_TEMPLATE_BIND; } + printContentJson.put("template", printTemplate); + printContentJson.put("printContent", pintBarcodeJsonArr.toString()); + System.out.println(printContentJson.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); -// } -// -// PrinterVo printerVo = new PrinterVo(); -// printerVo.setPrintType(printType); -// printerVo.setPrintContents(printContents); -// -// //调用的打印接口 -// R printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER); -// if (printResultR.getCode() != Constants.SUCCESS) {//抛出异常,回滚事务 -// throw new RuntimeException(printResultR.getMsg()); -// } + + try { + redisTemplate.opsForList().rightPush("print_10.10.3.119", printContentJson.toString()); +// redisTemplate.convertAndSend("print_10.10.3.119", printContentJson.toString()); + } catch (Exception e) { + throw new ServiceException("打印失败:" + e.getMessage()); + } return 1; } - @Transactional(propagation = Propagation.REQUIRES_NEW) - public void printBarcodesByBarcodeId(Long barcodeId, String printType, boolean reprintFlag) { - MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoJoinByBarcodeId(barcodeId); - if (!reprintFlag) { + public void updateBaseBarcodePrintFlag(MesBaseBarcodeInfo mesBaseBarcodeInfo, boolean reprintFlag) { + String barcodeType = mesBaseBarcodeInfo.getBarcodeType(); + if (!reprintFlag && !barcodeType.equals(MesConstants.MES_BARCODE_TYPE_BIND)) { String printFlag = mesBaseBarcodeInfo.getPrintFlag(); if (printFlag.equals(MesConstants.MES_BARCODE_PRINT_FLAG_YES)) { throw new ServiceException("此物料条码[" + mesBaseBarcodeInfo.getBarcodeInfo() + "]已经打印过,不能重复打印"); } } - String materialName = mesBaseBarcodeInfo.getMaterialName(); - List printContentVos = new ArrayList<>(); - PrintContentVo printMaterialCode = new PrintContentVo(); - printMaterialCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE); - printMaterialCode.setValue(mesBaseBarcodeInfo.getMaterialCode()); - printMaterialCode.setType(PrintContentVo.TYPE_TEXT); + Date currentDate = new Date(); + mesBaseBarcodeInfo.setUpdateTime(currentDate); + mesBaseBarcodeInfo.setUpdateBy(SecurityUtils.getUsername()); + mesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate()); + mesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername()); + mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES); + mesBaseBarcodeInfo.setPrintNumber(mesBaseBarcodeInfo.getPrintNumber() == null ? 1L : mesBaseBarcodeInfo.getPrintNumber() + 1); + mesBaseBarcodeInfo.setAcceptedDate(currentDate); + mesBaseBarcodeInfoMapper.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo); - PrintContentVo printPreMaterial = new PrintContentVo(); -// if (mesBaseBarcodeInfo.getBindFlag() == null) { -// -// } + } - PrintContentVo printSaleOrderCode = new PrintContentVo(); - printSaleOrderCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE); - printSaleOrderCode.setValue(mesBaseBarcodeInfo.getSaleorderCode()); - printSaleOrderCode.setType(PrintContentVo.TYPE_TEXT); + // @Transactional(propagation = Propagation.REQUIRES_NEW) + public JSONObject getBarcodeJsonByBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo, String printType) { + String materialName = mesBaseBarcodeInfo.getMaterialName(); + JSONObject printInfoObject = new JSONObject(); + + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE, mesBaseBarcodeInfo.getMaterialCode()); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE, mesBaseBarcodeInfo.getSaleorderCode()); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QRCODE, mesBaseBarcodeInfo.getBarcodeInfo()); - PrintContentVo printBarCode = new PrintContentVo(); - printBarCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QRCODE); - printBarCode.setValue(mesBaseBarcodeInfo.getBarcodeInfo()); - printBarCode.setType(PrintContentVo.TYPE_QRCODE); if (printType.equals(PrinterVo.PRINT_TYPE_RAW_LABEL)) { - PrintContentVo printMaterialName = new PrintContentVo(); - printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME); - materialName = materialName.length() <= 10 ? "\n" + materialName : materialName; - printMaterialName.setValue(materialName.replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", "")); - printMaterialName.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 printPoNo = new PrintContentVo(); - printPoNo.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_PO_NO); - printPoNo.setValue(mesBaseBarcodeInfo.getPoNo()); - printPoNo.setType(PrintContentVo.TYPE_TEXT); +// materialName = materialName.length() <= 10 ? "\n" + materialName : materialName; +// printMaterialName.setValue(materialName.replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", "")); +// printMaterialName.setType(PrintContentVo.TYPE_TEXT); - //常备物料为安全库存 - String printPreMaterialKey = mesBaseBarcodeInfo.getAlwaysFlag() != null && mesBaseBarcodeInfo.getAlwaysFlag().equals(MesConstants.MES_MATERIAL_ALWAYS_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); - if (StringUtils.isNotEmpty(mesBaseBarcodeInfo.getBarcodeSpec())) { - printMaterialSpec.setValue(mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", "")); - } - printMaterialSpec.setType(PrintContentVo.TYPE_TEXT); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME, materialName); - PrintContentVo printQty = new PrintContentVo(); - printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY); - DecimalFormat df = new DecimalFormat("#.##"); - String formattedNumber = df.format(mesBaseBarcodeInfo.getAmount() == null ? BigDecimal.ZERO : mesBaseBarcodeInfo.getAmount()); - printQty.setValue(formattedNumber); - printQty.setType(PrintContentVo.TYPE_TEXT); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BARCODE, mesBaseBarcodeInfo.getBarcodeInfo()); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BATCH_CODE, mesBaseBarcodeInfo.getBatchCode()); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_PO_NO, mesBaseBarcodeInfo.getPoNo()); - printContentVos.add(printMaterialName); - printContentVos.add(printBatchCode); - printContentVos.add(printPoNo); - printContentVos.add(printMaterialSpec); - printContentVos.add(printQty); - } else if (printType.equals(PrinterVo.PRINT_TYPE_PRODUCT_LABEL)) { - PrintContentVo printMaterialName = new PrintContentVo(); - materialName = materialName.length() <= 8 ? "\n" + materialName : materialName; - printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME); - printMaterialName.setValue(materialName); - printMaterialName.setType(PrintContentVo.TYPE_TEXT); - - PrintContentVo printQty = new PrintContentVo(); - printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY); - printQty.setValue("1"); - printQty.setType(PrintContentVo.TYPE_TEXT); - - PrintContentVo printPlanCode = new PrintContentVo(); - printPlanCode.setKey(PrintContentVo.PRODUCT_PLAN_CODE); - printPlanCode.setValue(mesBaseBarcodeInfo.getPlanCode()); - printPlanCode.setType(PrintContentVo.TYPE_TEXT); - printContentVos.add(printMaterialName); - printContentVos.add(printQty); - printContentVos.add(printPlanCode); - } - - printContentVos.add(printMaterialCode); - printContentVos.add(printPreMaterial); - printContentVos.add(printSaleOrderCode); - 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); + //常备物料为安全库存 +// String printPreMaterialKey = mesBaseBarcodeInfo.getAlwaysFlag() != null && mesBaseBarcodeInfo.getAlwaysFlag().equals(MesConstants.MES_MATERIAL_ALWAYS_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); - mesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate()); - mesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername()); - mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES); - mesBaseBarcodeInfo.setPrintNumber(mesBaseBarcodeInfo.getPrintNumber() == null ? 1L : mesBaseBarcodeInfo.getPrintNumber() + 1); - mesBaseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate()); - this.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC, mesBaseBarcodeInfo.getBarcodeSpec() == null ? "" + : mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", "")); - PrinterVo printerVo = new PrinterVo(); - printerVo.setPrintType(printType); - printerVo.setPrintContentVos(printContentVos); +// PrintContentVo printQty = new PrintContentVo(); +// printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY); +// DecimalFormat df = new DecimalFormat("#.##"); +// String formattedNumber = df.format(mesBaseBarcodeInfo.getAmount() == null ? BigDecimal.ZERO : mesBaseBarcodeInfo.getAmount()); +// printQty.setValue(formattedNumber); +// printQty.setType(PrintContentVo.TYPE_TEXT); + + + } else if (printType.equals(PrinterVo.PRINT_TYPE_PRODUCT_LABEL)) { + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME, materialName); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC, mesBaseBarcodeInfo.getBarcodeSpec() == null ? "" + : mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", "")); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BARCODE, mesBaseBarcodeInfo.getBarcodeInfo()); + printInfoObject.put(PrintContentVo.PRODUCT_PLAN_CODE, mesBaseBarcodeInfo.getPlanCode()); + printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY, "1"); - //调用的打印接口 - R printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER); - if (printResultR.getCode() != Constants.SUCCESS) { - throw new RuntimeException(printResultR.getMsg()); } + + return printInfoObject; + } @@ -1667,7 +1616,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService userName, currentDate); //新增的绑定信息 - StringBuilder errorMsgBuilder = this.handleInsertSaleOrderRelates(mesSaleOrderRelateList,mesBaseBarcodeInfo, virtualMaterialBom, userName, currentDate); + StringBuilder errorMsgBuilder = this.handleInsertSaleOrderRelates(mesSaleOrderRelateList, mesBaseBarcodeInfo, virtualMaterialBom, userName, currentDate); if (errorMsgBuilder.length() > 0) { @@ -1727,7 +1676,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService } - public StringBuilder handleInsertSaleOrderRelates(List toInsertedSaleOrderRelateList,MesBaseBarcodeInfo baseBarcodeInfo, + public StringBuilder handleInsertSaleOrderRelates(List toInsertedSaleOrderRelateList, MesBaseBarcodeInfo baseBarcodeInfo, MesMaterialBom virtualMaterialBom, String userName, Date currentDate) { StringBuilder errorMsgBuilder = new StringBuilder(); List toUpdatedMaterialBoms = new ArrayList<>(); @@ -2066,4 +2015,194 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService // return 1; // } + +// /** +// * 打印物料条码 +// * +// * @param barcodeIds +// * @param printType 打印类型(1原材料 3成品) +// * @param reprintFlag 重新打印标识(1重新打印) +// * @param printNumber 打印数量 +// * @return +// */ +// @Override +// @Transactional +// public int printBarcodes(Long[] barcodeIds, String printType, boolean reprintFlag, Integer printNumber) { +// //获取条码List +//// List> printContents = new ArrayList<>(); +//// List toUpdatedBaseBarcodeInfos = new ArrayList<>(); +// +// for (Long barcodeId : barcodeIds) { +// if (printNumber != null && printNumber > 1) { +// for (int i = 0; i < printNumber; i++) { +// printBarcodesByBarcodeId(barcodeId, printType, reprintFlag); +// } +// } else { +// printBarcodesByBarcodeId(barcodeId, printType, reprintFlag); +// } +// +// } +// +//// 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); +//// } +//// +//// PrinterVo printerVo = new PrinterVo(); +//// printerVo.setPrintType(printType); +//// printerVo.setPrintContents(printContents); +//// +//// //调用的打印接口 +//// R printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER); +//// if (printResultR.getCode() != Constants.SUCCESS) {//抛出异常,回滚事务 +//// throw new RuntimeException(printResultR.getMsg()); +//// } +// +// return 1; +// +// } + + +// @Transactional(propagation = Propagation.REQUIRES_NEW) +// public void printBarcodesByBarcodeId(Long barcodeId, String printType, boolean reprintFlag) { +// MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoJoinByBarcodeId(barcodeId); +// if (!reprintFlag) { +// String printFlag = mesBaseBarcodeInfo.getPrintFlag(); +// if (printFlag.equals(MesConstants.MES_BARCODE_PRINT_FLAG_YES)) { +// throw new ServiceException("此物料条码[" + mesBaseBarcodeInfo.getBarcodeInfo() + "]已经打印过,不能重复打印"); +// } +// } +// +// String materialName = mesBaseBarcodeInfo.getMaterialName(); +// List printContentVos = new ArrayList<>(); +// +// PrintContentVo printMaterialCode = new PrintContentVo(); +// printMaterialCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE); +// printMaterialCode.setValue(mesBaseBarcodeInfo.getMaterialCode()); +// printMaterialCode.setType(PrintContentVo.TYPE_TEXT); +// +// PrintContentVo printPreMaterial = new PrintContentVo(); +//// if (mesBaseBarcodeInfo.getBindFlag() == null) { +//// +//// } +// +// PrintContentVo printSaleOrderCode = new PrintContentVo(); +// printSaleOrderCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE); +// printSaleOrderCode.setValue(mesBaseBarcodeInfo.getSaleorderCode()); +// printSaleOrderCode.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); +// +// if (printType.equals(PrinterVo.PRINT_TYPE_RAW_LABEL)) { +// PrintContentVo printMaterialName = new PrintContentVo(); +// printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME); +// materialName = materialName.length() <= 10 ? "\n" + materialName : materialName; +// printMaterialName.setValue(materialName.replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", "")); +// printMaterialName.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 printPoNo = new PrintContentVo(); +// printPoNo.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_PO_NO); +// printPoNo.setValue(mesBaseBarcodeInfo.getPoNo()); +// printPoNo.setType(PrintContentVo.TYPE_TEXT); +// +// //常备物料为安全库存 +// String printPreMaterialKey = mesBaseBarcodeInfo.getAlwaysFlag() != null && mesBaseBarcodeInfo.getAlwaysFlag().equals(MesConstants.MES_MATERIAL_ALWAYS_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); +// if (StringUtils.isNotEmpty(mesBaseBarcodeInfo.getBarcodeSpec())) { +// printMaterialSpec.setValue(mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", "")); +// } +// printMaterialSpec.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() == null ? BigDecimal.ZERO : mesBaseBarcodeInfo.getAmount()); +// printQty.setValue(formattedNumber); +// printQty.setType(PrintContentVo.TYPE_TEXT); +// +// printContentVos.add(printMaterialName); +// printContentVos.add(printBatchCode); +// printContentVos.add(printPoNo); +// printContentVos.add(printMaterialSpec); +// printContentVos.add(printQty); +// +// } else if (printType.equals(PrinterVo.PRINT_TYPE_PRODUCT_LABEL)) { +// PrintContentVo printMaterialName = new PrintContentVo(); +// materialName = materialName.length() <= 8 ? "\n" + materialName : materialName; +// printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME); +// printMaterialName.setValue(materialName); +// printMaterialName.setType(PrintContentVo.TYPE_TEXT); +// +// PrintContentVo printQty = new PrintContentVo(); +// printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY); +// printQty.setValue("1"); +// printQty.setType(PrintContentVo.TYPE_TEXT); +// +// PrintContentVo printPlanCode = new PrintContentVo(); +// printPlanCode.setKey(PrintContentVo.PRODUCT_PLAN_CODE); +// printPlanCode.setValue(mesBaseBarcodeInfo.getPlanCode()); +// printPlanCode.setType(PrintContentVo.TYPE_TEXT); +// printContentVos.add(printMaterialName); +// printContentVos.add(printQty); +// printContentVos.add(printPlanCode); +// } +// +// printContentVos.add(printMaterialCode); +// printContentVos.add(printPreMaterial); +// printContentVos.add(printSaleOrderCode); +// 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); +// +// mesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate()); +// mesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername()); +// mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES); +// mesBaseBarcodeInfo.setPrintNumber(mesBaseBarcodeInfo.getPrintNumber() == null ? 1L : mesBaseBarcodeInfo.getPrintNumber() + 1); +// mesBaseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate()); +// this.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo); +// +// +// PrinterVo printerVo = new PrinterVo(); +// printerVo.setPrintType(printType); +// printerVo.setPrintContentVos(printContentVos); +// +// //调用的打印接口 +// R printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER); +// if (printResultR.getCode() != Constants.SUCCESS) { +// throw new RuntimeException(printResultR.getMsg()); +// } +// +// } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseApplyServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseApplyServiceImpl.java index f8a24b1..3e1f90e 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseApplyServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseApplyServiceImpl.java @@ -190,7 +190,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService { String materialName = purchaseRequisitionTemplate.getMaterialName(); String productModel = purchaseRequisitionTemplate.getProductModel(); //产品规格型号把excel中的除.的符号都去掉(包括空格换行) - productModel = productModel.replaceAll("[^\\w.]", ""); + productModel = productModel.replaceAll("[^\\u4e00-\\u9fa5a-zA-Z0-9\\.]", ""); MesBaseMaterialInfo materialInfo = new MesBaseMaterialInfo(); materialInfo.setMaterialName(materialName); List materialInfoList = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoList(materialInfo); @@ -199,7 +199,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService { MesBaseMaterialInfo findMaterialInfo = new MesBaseMaterialInfo(); for (MesBaseMaterialInfo baseMaterialInfo : materialInfoList) { String materialSpec = baseMaterialInfo.getMaterialSpec(); - materialSpec = materialSpec.replaceAll("[^\\w.]", ""); + materialSpec = materialSpec.replaceAll("[^\\u4e00-\\u9fa5a-zA-Z0-9\\.]", ""); if (materialSpec.equals(productModel)) { successFlag++; findMaterialInfo = baseMaterialInfo; @@ -208,7 +208,10 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService { if (successFlag == 1) { MesBaseUnitInfo baseUnitInfo = mesBaseUnitInfoMapper.selectMesBaseUnitInfoByErpId(findMaterialInfo.getMaterialUnitId()); MesBaseUnitInfo priceUnitIdUnitInfo = mesBaseUnitInfoMapper.selectMesBaseUnitInfoByErpId(findMaterialInfo.getPurchasePriceUnitId()); - + if (baseUnitInfo == null || priceUnitIdUnitInfo == null) { + failureNum++; + failureMsg.append("
").append(failureNum).append(" 未找到单位信息 导入失败"); + } MesPurchaseApplyDetail mesPurchaseApplyDetail = new MesPurchaseApplyDetail(); mesPurchaseApplyDetail.setTondBase(purchaseRequisitionTemplate.getTondBase()); @@ -237,6 +240,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService { failureMsg.append("
").append(failureNum).append(" 未找到物料记录 导入失败"); } } catch (Exception e) { + e.printStackTrace(); failureNum++; String msg = "
" + failureNum + " 导入失败:"; failureMsg.append(msg).append(e.getMessage()); @@ -267,7 +271,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService { public int syncMesPurchaseApply(MesPurchaseApply mesPurchaseApply) { Date currentDate = new Date(); MesPurchaseApply dbMesPurchaseApply = mesPurchaseApplyMapper.selectOnlyMesPurchaseApplyByPurchaseApplyId(mesPurchaseApply.getPurchaseApplyId()); - if(dbMesPurchaseApply.getSyncStatus().equals(MesConstants.MES_PURCHASE_APPALY_SYNC_YES)){ + if (dbMesPurchaseApply.getSyncStatus().equals(MesConstants.MES_PURCHASE_APPALY_SYNC_YES)) { throw new ServiceException("此采购申请单已经同步"); } diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseApplyMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseApplyMapper.xml index 55552b6..f58a0ca 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseApplyMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseApplyMapper.xml @@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and sync_status = #{syncStatus} and sync_time = #{syncTime} + order by purchase_apply_id desc