From ece451976e082add0198b4e9b31b183719a2223e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 13 Dec 2023 16:57:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E7=BA=BF=E7=BB=93=E7=AE=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...OfflinesettlementRecordMainController.java | 59 +++++++++++++++--- ...linesettlementRecordDetailExportReqVO.java | 3 + ...fflinesettlementRecordDetailPageReqVO.java | 4 ++ .../OfflinesettlementRecordMainExcelVO.java | 59 ++++++++++++++++-- .../OfflinesettlementRecordMainConvert.java | 12 ++++ .../OfflinesettlementRecordDetailDO.java | 2 +- .../OfflinesettlementRecordDetailMapper.java | 7 +++ .../OfflinesettlementRecordMainMapper.java | 4 ++ .../OfflinesettlementRecordDetailService.java | 1 + ...linesettlementRecordDetailServiceImpl.java | 5 ++ .../OfflinesettlementRecordMainService.java | 1 + ...fflinesettlementRecordMainServiceImpl.java | 5 ++ .../ProductionreceiptJobMainServiceImpl.java | 19 ++++-- .../ProductreceiptJobMainServiceImpl.java | 61 ++++++++++++++++--- .../RepleinshJobMainServiceImpl.java | 11 ++-- 15 files changed, 224 insertions(+), 29 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/OfflinesettlementRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/OfflinesettlementRecordMainController.java index 237b3c44..2c33278b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/OfflinesettlementRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/OfflinesettlementRecordMainController.java @@ -1,8 +1,16 @@ package com.win.module.wms.controller.offlinesettlementRecord; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.issueJob.vo.IssueJobMainExcelVO; +import com.win.module.wms.convert.issueJob.IssueJobMainConvert; +import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO; +import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO; +import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecordDetailService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -36,6 +44,8 @@ import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecor @Validated public class OfflinesettlementRecordMainController { + @Resource + private OfflinesettlementRecordDetailService offlinesettlementRecordDetailService; @Resource private OfflinesettlementRecordMainService offlinesettlementRecordMainService; @@ -105,21 +115,54 @@ public class OfflinesettlementRecordMainController { } return success(result); } + + private List getExcelVo(List list, Map mapDropDown) { + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(21, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(31, uom); + String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(17, trueFalse); + List resultList = new ArrayList<>(); + // 导出 + for(OfflinesettlementRecordMainDO mainDO : list) { + List subList = offlinesettlementRecordDetailService.selectList(mainDO.getId()); + for(OfflinesettlementRecordDetailDO detailDO : subList) { + OfflinesettlementRecordMainExcelVO vo = OfflinesettlementRecordMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + vo.setCreator(user.getNickname()); + vo.setUpdater(user.getNickname()); + resultList.add(vo); + } + } + return resultList; + } + @GetMapping("/export-excel") - @Operation(summary = "导出下线结算记录主 Excel") + @Operation(summary = "导出下线结算记录 Excel") @PreAuthorize("@ss.hasPermission('wms:offlinesettlement-record-main:export')") @OperateLog(type = EXPORT) public void exportOfflinesettlementRecordMainExcel(@Valid OfflinesettlementRecordMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = offlinesettlementRecordMainService.getOfflinesettlementRecordMainList(exportReqVO); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); // 导出 Excel - List datas = OfflinesettlementRecordMainConvert.INSTANCE.convertList02(list); - for(OfflinesettlementRecordMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "下线结算记录主.xls", "数据", OfflinesettlementRecordMainExcelVO.class, datas); + ExcelUtils.write(response, "下线结算记录.xlsx", "下线结算记录", OfflinesettlementRecordMainExcelVO.class, resultList, mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出下线结算记录 Excel") + @PreAuthorize("@ss.hasPermission('wms:offlinesettlement-record-main:export')") + @OperateLog(type = EXPORT) + public void exportOfflinesettlementRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = offlinesettlementRecordMainService.getOfflinesettlementRecordMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "发料任务.xlsx", "发料任务", OfflinesettlementRecordMainExcelVO.class, resultList, mapDropDown); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailExportReqVO.java index 81f5943a..2a5368ce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailExportReqVO.java @@ -73,4 +73,7 @@ public class OfflinesettlementRecordDetailExportReqVO { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailPageReqVO.java index ee165ce4..6e09af13 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordDetailPageReqVO.java @@ -75,4 +75,8 @@ public class OfflinesettlementRecordDetailPageReqVO extends PageParam { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private String masterId; + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordMainExcelVO.java index a2acf76f..f053b5d5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/offlinesettlementRecord/vo/OfflinesettlementRecordMainExcelVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.offlinesettlementRecord.vo; +import com.win.module.wms.enums.DictTypeConstants; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -52,10 +53,6 @@ public class OfflinesettlementRecordMainExcelVO { @ExcelProperty("部门") private String departmentCode; - @ExcelProperty(value = "接口类型", converter = DictConvert.class) - @DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String interfaceType; - @ExcelProperty("单据号") private String number; @@ -71,7 +68,59 @@ public class OfflinesettlementRecordMainExcelVO { @ExcelProperty("创建者Id") private String creator; - @ExcelProperty("是否可用") + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; + + @ExcelProperty("最后更新者Id") + private String updater; + + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) private String available; + // 子表数据 + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("库位代码") + private String locationCode; + + @ExcelProperty("库位组代码") + private String locationGroupCode; + + @ExcelProperty("库区代码") + private String areaCode; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private String qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/offlinesettlementRecord/OfflinesettlementRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/offlinesettlementRecord/OfflinesettlementRecordMainConvert.java index cb1a2508..32223dde 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/offlinesettlementRecord/OfflinesettlementRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/offlinesettlementRecord/OfflinesettlementRecordMainConvert.java @@ -8,7 +8,10 @@ import com.win.module.wms.controller.offlinesettlementRecord.vo.Offlinesettlemen import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainExcelVO; import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainRespVO; import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordMainDO; @@ -34,4 +37,13 @@ public interface OfflinesettlementRecordMainConvert { List convertList02(List list); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + OfflinesettlementRecordMainExcelVO convert(OfflinesettlementRecordMainDO mainDO, OfflinesettlementRecordDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/offlinesettlementRecord/OfflinesettlementRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/offlinesettlementRecord/OfflinesettlementRecordDetailDO.java index f37dbc1b..e34fe17f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/offlinesettlementRecord/OfflinesettlementRecordDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/offlinesettlementRecord/OfflinesettlementRecordDetailDO.java @@ -89,7 +89,7 @@ public class OfflinesettlementRecordDetailDO extends BaseDO { /** * 主表ID */ - private String masterId; + private Long masterId; /** * 单据号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordDetailMapper.java index aaead8b6..32075ffe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordDetailMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordDetailExportReqVO; import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordDetailPageReqVO; +import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO; import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -22,6 +23,7 @@ public interface OfflinesettlementRecordDetailMapper extends BaseMapperX selectPage(OfflinesettlementRecordDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(OfflinesettlementRecordDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(OfflinesettlementRecordDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(OfflinesettlementRecordDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(OfflinesettlementRecordDetailDO::getBatch, reqVO.getBatch()) @@ -48,6 +50,7 @@ public interface OfflinesettlementRecordDetailMapper extends BaseMapperX selectList(OfflinesettlementRecordDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(OfflinesettlementRecordDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(OfflinesettlementRecordDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(OfflinesettlementRecordDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(OfflinesettlementRecordDetailDO::getBatch, reqVO.getBatch()) @@ -70,4 +73,8 @@ public interface OfflinesettlementRecordDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(OfflinesettlementRecordDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordMainMapper.java index ba90fdec..343e8fc4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/offlinesettlementRecord/OfflinesettlementRecordMainMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainExportReqVO; import com.win.module.wms.controller.offlinesettlementRecord.vo.OfflinesettlementRecordMainPageReqVO; +import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO; import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordMainDO; import org.apache.ibatis.annotations.Mapper; @@ -66,4 +67,7 @@ public interface OfflinesettlementRecordMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailService.java index d888dee1..c2e040f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailService.java @@ -80,4 +80,5 @@ public interface OfflinesettlementRecordDetailService { */ List getOfflinesettlementRecordDetailList(OfflinesettlementRecordDetailExportReqVO exportReqVO); + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailServiceImpl.java index 16f7dda2..c5721f02 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordDetailServiceImpl.java @@ -88,4 +88,9 @@ public class OfflinesettlementRecordDetailServiceImpl implements Offlinesettleme return offlinesettlementRecordDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return offlinesettlementRecordDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainService.java index 33838e2e..0024434c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainService.java @@ -80,4 +80,5 @@ public interface OfflinesettlementRecordMainService { */ List getOfflinesettlementRecordMainList(OfflinesettlementRecordMainExportReqVO exportReqVO); + List getOfflinesettlementRecordMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainServiceImpl.java index 2123ae23..50ab8a8a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/offlinesettlementRecord/OfflinesettlementRecordMainServiceImpl.java @@ -87,4 +87,9 @@ public class OfflinesettlementRecordMainServiceImpl implements Offlinesettlement return offlinesettlementRecordMainMapper.selectList(exportReqVO); } + @Override + public List getOfflinesettlementRecordMainList(CustomConditions conditions) { + return offlinesettlementRecordMainMapper.selectSeniorList(conditions); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java index d3de64f5..f728ce77 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java @@ -25,6 +25,7 @@ import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJ import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJobMainDO; import com.win.module.wms.dal.dataobject.productionreceiptRecord.ProductionreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.productionreceiptRecord.ProductionreceiptRecordMainDO; +import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.onlinesettlementRecord.OnlinesettlementRecordDetailMapper; import com.win.module.wms.dal.mysql.onlinesettlementRecord.OnlinesettlementRecordMainMapper; @@ -33,6 +34,7 @@ import com.win.module.wms.dal.mysql.productionreceiptRecord.ProductionreceiptRec import com.win.module.wms.dal.mysql.productionreceiptRecord.ProductionreceiptRecordMainMapper; import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.service.expectin.ExpectinService; +import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.production.ProductionMainService; import com.win.module.wms.service.supplieritem.SupplieritemService; @@ -61,6 +63,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJobMainService { + @Resource + private ItembasicService itembasicService; @Resource private OnlinesettlementRecordDetailMapper onlinesettlementRecordDetailMapper; @Resource @@ -280,6 +284,8 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob List productionreceiptJobDetailUpdateReqVOList = updateReqVO.getSubList(); //发料记录子 List productionreceiptRecordDetailDOList = new ArrayList<>(); + // 上线结算 物品 + List OnlineDetailDOList = new ArrayList<>(); //库存事务 List transactionCreateReqVOList = new ArrayList<>(); subList.forEach(subListItem -> { @@ -317,6 +323,10 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob productionreceiptRecordDetailDO.setUpdater(null); productionreceiptRecordDetailDO.setUpdateTime(null); productionreceiptRecordDetailDOList.add(productionreceiptRecordDetailDO); + // 判断 物品 是否为 上线结算物品 + if (itembasicService.isOnlines(productionreceiptRecordDetailDO.getItemCode())) { + OnlineDetailDOList.add(productionreceiptRecordDetailDO); + } //添加库存事务list // 入动作 TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); @@ -355,12 +365,13 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob } }); }); - if(!productionreceiptRecordDetailDOList.isEmpty()) { + if(productionreceiptRecordDetailDOList != null && productionreceiptRecordDetailDOList.size() > 0) { productionreceiptRecordDetailMapper.insertBatch(productionreceiptRecordDetailDOList); } - // TODO:判断 物品 是否为 上线结算物品 // 创建 上线结算记录 - createOnlinesettlementRecord(productionreceiptRecordMainDO,productionreceiptRecordDetailDOList); + if (OnlineDetailDOList != null && OnlineDetailDOList.size() > 0) { + createOnlinesettlementRecord(productionreceiptRecordMainDO,OnlineDetailDOList); + } //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); //移除预计入 @@ -415,7 +426,7 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob onlinesettlementRecordDetailDO.setUpdateTime(null); onlinesettlementRecordDetailDOList.add(onlinesettlementRecordDetailDO); }); - if(!onlinesettlementRecordDetailDOList.isEmpty()) { + if(onlinesettlementRecordDetailDOList != null && onlinesettlementRecordDetailDOList.size() > 0) { onlinesettlementRecordDetailMapper.insertBatch(onlinesettlementRecordDetailDOList); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java index 910bac31..a215a7ab 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java @@ -24,6 +24,9 @@ import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordDetailDO; +import com.win.module.wms.dal.dataobject.offlinesettlementRecord.OfflinesettlementRecordMainDO; +import com.win.module.wms.dal.dataobject.onlinesettlementRecord.OnlinesettlementRecordDetailDO; import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO; import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO; @@ -32,9 +35,12 @@ import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptReco import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO; import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.mysql.backflushRequest.BackflushRequestDetailbMapper; +import com.win.module.wms.dal.mysql.offlinesettlementRecord.OfflinesettlementRecordDetailMapper; +import com.win.module.wms.dal.mysql.offlinesettlementRecord.OfflinesettlementRecordMainMapper; import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobMainMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.BackflushRecordDetailbMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper; @@ -47,10 +53,12 @@ import com.win.module.wms.service.documentSwitch.SwitchService; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecordMainService; import com.win.module.wms.service.production.ProductionMainService; import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestDetailService; import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestMainService; import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.service.transactiontype.TransactiontypeService; import com.win.module.wms.service.workstation.WorkstationService; @@ -79,6 +87,12 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainService { + @Resource + private OfflinesettlementRecordDetailMapper offlinesettlementRecordDetailMapper; + @Resource + private OfflinesettlementRecordMainMapper offlinesettlementRecordMainMapper; + @Resource + private SupplieritemService supplieritemService; @Resource private ItembasicService itembasicService; @Resource @@ -453,18 +467,18 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode()); transactionCreateReqVOList.add(transactionCreateReqVO); // 判断 物品 是否为 下线结算物品 创建 下线结算记录 -// ItembasicDO itembasicDO = itembasicService.s -// if (backflushRecordDetailbDO.getItemCode()) { -// -// } - offlinesettlementRecordList.add(backflushRecordDetailbDO); + if (itembasicService.isOfflines(backflushRecordDetailbDO.getItemCode())) { + offlinesettlementRecordList.add(backflushRecordDetailbDO); + } } } backflushRecordDetailbMapper.insertBatch(backflushRecordDetailbDOList); //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); - // TODO:判断 物品 是否为 下线结算物品 创建 下线结算记录 - generateOfflinesettlementRecord(productreceiptRecordMainDO, offlinesettlementRecordList); + // 创建 下线结算记录 + if (offlinesettlementRecordList != null && offlinesettlementRecordList.size() > 0) { + generateOfflinesettlementRecord(productreceiptRecordMainDO, offlinesettlementRecordList); + } } /** @@ -473,5 +487,38 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe * @param offlinesettlementRecordList */ private void generateOfflinesettlementRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List offlinesettlementRecordList) { + OfflinesettlementRecordMainDO offlinesettlementRecordMainDO = new OfflinesettlementRecordMainDO(); + BeanUtils.copyProperties(productreceiptRecordMainDO,offlinesettlementRecordMainDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.OFFLINE_SETTLEMENT_RECORD.getCode()); + offlinesettlementRecordMainDO.setNumber(number); + offlinesettlementRecordMainDO.setProductReceiptRecordNumber(productreceiptRecordMainDO.getNumber()); + offlinesettlementRecordMainDO.setBusinessType(""); + offlinesettlementRecordMainDO.setInTransactionType(""); + offlinesettlementRecordMainDO.setOutTransactionType(""); + offlinesettlementRecordMainDO.setId(null); + offlinesettlementRecordMainDO.setCreator(null); + offlinesettlementRecordMainDO.setCreateTime(null); + offlinesettlementRecordMainDO.setUpdater(null); + offlinesettlementRecordMainDO.setUpdateTime(null); + offlinesettlementRecordMainMapper.insert(offlinesettlementRecordMainDO); + //上线结算记录子 集合 + List offlinesettlementRecordDetailDOList = new ArrayList<>(); + for(BackflushRecordDetailbDO backflushRecordDetailbDO : offlinesettlementRecordList ) { + OfflinesettlementRecordDetailDO offlinesettlementRecordDetailDO = new OfflinesettlementRecordDetailDO(); + BeanUtils.copyProperties(backflushRecordDetailbDO,offlinesettlementRecordDetailDO); + offlinesettlementRecordDetailDO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode()); + offlinesettlementRecordDetailDO.setLocationGroupCode(backflushRecordDetailbDO.getFromLocationGroupCode()); + offlinesettlementRecordDetailDO.setAreaCode(backflushRecordDetailbDO.getFromAreaCode()); + offlinesettlementRecordDetailDO.setMasterId(offlinesettlementRecordMainDO.getId()); + offlinesettlementRecordDetailDO.setId(null); + offlinesettlementRecordDetailDO.setCreator(null); + offlinesettlementRecordDetailDO.setCreateTime(null); + offlinesettlementRecordDetailDO.setUpdater(null); + offlinesettlementRecordDetailDO.setUpdateTime(null); + offlinesettlementRecordDetailDOList.add(offlinesettlementRecordDetailDO); + } + if(offlinesettlementRecordDetailDOList != null && offlinesettlementRecordDetailDOList.size() > 0) { + offlinesettlementRecordDetailMapper.insertBatch(offlinesettlementRecordDetailDOList); + } } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java index 0aa2f68b..c74f07e9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java @@ -288,6 +288,9 @@ public class RepleinshJobMainServiceImpl implements RepleinshJobMainService { repleinshRecordDetailDO.setToLocationCode(recordLstItem.get("toLocationCode")); repleinshRecordDetailDO.setInventoryStatus(recordLstItem.get("toInventoryStatus")); repleinshRecordDetailDO.setSupplierCode(recordLstItem.get("supplierCode")); + repleinshRecordDetailDO.setFromPackingNumber(recordLstItem.get("fromPackingNumber")==null?"":recordLstItem.get("fromPackingNumber")); + repleinshRecordDetailDO.setFromContainerNumber(recordLstItem.get("fromContainerNumber")==null?"":recordLstItem.get("fromContainerNumber")); + repleinshRecordDetailDO.setFromBatch(recordLstItem.get("fromBatch")==null?"":recordLstItem.get("fromBatch")); // 根据 to库位 查询 库位组 库区 LocationDO locationDO = locationService.selectLocation(recordLstItem.get("toLocationCode")); repleinshRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode()); @@ -326,11 +329,11 @@ public class RepleinshJobMainServiceImpl implements RepleinshJobMainService { transactionCreateReqVOOut.setOwnerCode(repleinshRecordDetailDO.getFromOwnerCode()); transactionCreateReqVOOut.setRecordNumber(number); transactionCreateReqVOOut.setId(null); - transactionCreateReqVOOut.setPackingNumber(repleinshRecordDetailDO.getToPackingNumber()); - transactionCreateReqVOOut.setBatch(repleinshRecordDetailDO.getToBatch()); - transactionCreateReqVOOut.setContainerNumber(repleinshRecordDetailDO.getToContainerNumber()); + transactionCreateReqVOOut.setPackingNumber(recordLstItem.get("fromPackingNumber")==null?"":recordLstItem.get("fromPackingNumber")); + transactionCreateReqVOOut.setBatch(recordLstItem.get("fromBatch")==null?"":recordLstItem.get("fromBatch")); + transactionCreateReqVOOut.setContainerNumber(recordLstItem.get("fromContainerNumber")==null?"":recordLstItem.get("fromContainerNumber")); transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); - transactionCreateReqVOOut.setLocationCode(recordLstItem.get("toLocationCode").toString()); + transactionCreateReqVOOut.setLocationCode(subListItem.getFromLocationCode()); transactionCreateReqVOList.add(transactionCreateReqVOOut); }); }