diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java index cb56d84a..04aff2e7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java @@ -51,8 +51,8 @@ public class ProductionreturnRequestDetailController { @PutMapping("/update") @Operation(summary = "更新生产退料申请子") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:update')") - public CommonResult updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO, @RequestBody RequestsettingDO requestsettingDO) { - productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO,requestsettingDO); + public CommonResult updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO) { + productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO); return success(true); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java index d8eda171..746ccf25 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java @@ -79,4 +79,11 @@ public interface BarcodeService { List getBarcodeList(BarcodeExportReqVO exportReqVO); List importBarcodeList(List barcodes, Integer mode, Boolean updatePart); + + /** + * 根据labelType 获取条码片段集合 + * @param labelType + * @return + */ + List getBarcodeDoListByLabelType(String labelType); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java index 6576f562..60feb64c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java @@ -2,6 +2,7 @@ package com.win.module.wms.service.barcode; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.annotations.VisibleForTesting; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; @@ -124,6 +125,14 @@ public class BarcodeServiceImpl implements BarcodeService { } return errorList; } + + @Override + public List getBarcodeDoListByLabelType(String labelType) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("label_type",labelType); + return barcodeMapper.selectList(queryWrapper); + } + private void validateBarcodeForCreateOrUpdate(Long id,String code,Integer order,Integer length,Integer prefixLenght,String entityProperties,String trimEnd,String isEncypt) { // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 DataPermissionUtils.executeIgnore(() -> { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java index c57afcb5..025c4b9d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java @@ -79,4 +79,11 @@ public interface LabeltypeService { LabeltypeDO getOneLabelByHeader(LabeltypeRespVO LabeltypeRespVO); + /** + * 根据 label_type 查询 标签定义 + * @param labelType + * @return + */ + LabeltypeDO getLabeltypeDOByLabelType(String labelType); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java index c553d426..b64fb16b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java @@ -1,5 +1,6 @@ package com.win.module.wms.service.labeltype; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.labeltype.vo.*; @@ -91,4 +92,11 @@ public class LabeltypeServiceImpl implements LabeltypeService { return labletypeMapper.getOneLabelByHeader(LabeltypeRespVO); } + @Override + public LabeltypeDO getLabeltypeDOByLabelType(String labelType) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("label_type",labelType); + return labletypeMapper.selectOne(queryWrapper); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java index e068c735..4bb95486 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java @@ -89,4 +89,10 @@ public interface PackageService { PageResult getPackageSenior(CustomConditions conditions); PackageDO createPackageLabel(PackageCreateReqVO createReqVO); + + /** + * 根据包装信息 创建 标签 + * @param packageDO + */ + void generateLabel(PackageDO packageDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java index 5d877d42..7f55125d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java @@ -1,6 +1,6 @@ package com.win.module.wms.service.packageMassage; -import cn.hutool.core.exceptions.UtilException; +import cn.hutool.core.util.ReflectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; @@ -11,14 +11,20 @@ import com.win.module.wms.controller.packageMassage.vo.PackageExportReqVO; import com.win.module.wms.controller.packageMassage.vo.PackagePageReqVO; import com.win.module.wms.controller.packageMassage.vo.PackageUpdateReqVO; import com.win.module.wms.convert.packageMassage.PackageConvert; -import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; -import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.barcode.BarcodeDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.labelBarbasic.BarbasicDO; +import com.win.module.wms.dal.dataobject.labeltype.LabeltypeDO; import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; +import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; +import com.win.module.wms.dal.mysql.labelBarbasic.BarbasicMapper; import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; -import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper; +import com.win.module.wms.service.barcode.BarcodeService; import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.labelBarbasic.BarbasicService; +import com.win.module.wms.service.labeltype.LabeltypeService; import com.win.module.wms.service.supplieritem.SupplieritemService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,9 +49,15 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PACKAGE_NOT_EXISTS; public class PackageServiceImpl implements PackageService { @Resource - private ItempackagingService itempackagingService; + private BarbasicMapper barbasicMapper; + @Resource + private BarcodeService barcodeService; + @Resource + private LabeltypeService labeltypeService; + @Resource + private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper; @Resource - private ItembasicService itembasicService; + private ItempackagingService itempackagingService; @Resource private SupplieritemService supplieritemService; @Resource @@ -148,7 +160,69 @@ public class PackageServiceImpl implements PackageService { // TODO: 赋值 生产订单号 生产订单行 班组代码 班次代码 } packageMapper.insert(packageDo); + // 更新 生产退料申请 子表数据 包装号字段 + updateProductionreturnPackingNumber(packageDo.getId(),packageDo.getNumber()); + // 创建 标签数据 + generateLabel(packageDo); // 返回 return packageDo; } + + /** + * 更新 生产退料申请 子表数据 包装号字段 + * @param packingNumber + */ + private void updateProductionreturnPackingNumber(Long id, String packingNumber) { + ProductionreturnRequestDetailDO updateObj = new ProductionreturnRequestDetailDO(); + updateObj.setId(id); + updateObj.setPackingNumber(packingNumber); + productionreturnRequestDetailMapper.updateById(updateObj); + } + + /** + * 根据 包装 创建 标签 + * @param packageDO + */ + @Override + @Transactional + public void generateLabel (PackageDO packageDO) { + BarbasicDO barbasicDO = new BarbasicDO(); + // 自动生成流水 + String number = serialNumberApi.generateCode(RuleCodeEnum.LABEL_NUMBER.getCode()); + barbasicDO.setNumber(number); + barbasicDO.setRelateNumber(packageDO.getNumber()); + barbasicDO.setStatus("NEW"); + // 采购标签 + if (packageDO.getSupplierCode() != null && !packageDO.getSupplierCode().isEmpty()) { + barbasicDO.setType("PurchaseLabel"); + } + // 制造件标签 + if (packageDO.getProductionLineCode() != null && !packageDO.getProductionLineCode().isEmpty()) { + barbasicDO.setType("MakeLabel"); + } + // 查询 标签定义 + LabeltypeDO labeltypeDO = labeltypeService.getLabeltypeDOByLabelType(barbasicDO.getType()); + // 查询 条码片段 + List barcodeDOList = barcodeService.getBarcodeDoListByLabelType(barbasicDO.getType()); + // 数据头 + String header = labeltypeDO.getHeader(); + // 版本 + String version = labeltypeDO.getVersion(); + // 分隔符 + String separators = labeltypeDO.getSeparators(); + // 标签头 拼接 + String headerStr = header + separators + version + separators; + // 内容 拼接 + StringBuffer contentStr = new StringBuffer(); + for (BarcodeDO barcodeDO: barcodeDOList){ + Object subClassObject = ReflectUtil.invoke(packageDO, "get" + barcodeDO.getEntityProperties()); + String pChar = barcodeDO.getPrefixChar(); + if (subClassObject==null || subClassObject.equals("")) { + subClassObject = ""; + } + contentStr.append(pChar + subClassObject + separators); + } + barbasicDO.setBarcodeString(headerStr + contentStr); + barbasicMapper.insert(barbasicDO); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java index 403c10fa..354febfb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java @@ -30,7 +30,7 @@ public interface ProductionreturnRequestDetailService { * * @param updateReqVO 更新信息 */ - void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO); + void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO); /** * 删除生产退料申请子 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java index d6b4a5c6..fc015917 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java @@ -83,7 +83,7 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur @Override @Transactional - public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO) { // 校验存在 validateProductionreturnRequestDetailExists(updateReqVO.getId()); // 更新