diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 6226d4f5..ce2fab48 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -774,6 +774,17 @@ public interface ErrorCodeConstants { //库存初始化申请ErrorCode ErrorCode INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_129_000, "库存初始化申请主不存在"); ErrorCode INVENTORYINIT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_129_001, "库存初始化申请子不存在"); + + ErrorCode INVENTORYINIT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_129_002, "库存初始化状态不支持关闭"); + + ErrorCode INVENTORYINIT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_129_003, "库存初始化状态不支持重新添加"); + + ErrorCode INVENTORYINIT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_129_004, "库存初始化状态不支持提交"); + + ErrorCode INVENTORYINIT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_129_005, "库存初始化状态不支持审批同意"); + + ErrorCode INVENTORYINIT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_129_006, "库存初始化状态不支持处理"); + ErrorCode INVENTORYINIT_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_073_009, "库存初始化状态不支持审批拒绝"); //库存初始化记录ErrorCode ErrorCode INVENTORYINIT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_130_000, "库存初始化记录主不存在"); ErrorCode INVENTORYINIT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_130_001, "库存初始化记录子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java index 49689793..bbd45f7e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java @@ -10,13 +10,9 @@ import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.inventoryinitRequest.vo.*; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert; -import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; -import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; -import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestDetailService; import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestMainService; @@ -28,7 +24,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; - import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @@ -52,9 +47,6 @@ public class InventoryinitRequestMainController { @Resource private InventoryinitRequestDetailService inventoryinitRequestDetailService; - - - @Resource private AdminUserApi userApi; @@ -120,7 +112,7 @@ public class InventoryinitRequestMainController { } return success(result); } - @PostMapping("/export-excel") + @GetMapping("/export-excel") @Operation(summary = "导出库存初始化申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:export')") @OperateLog(type = EXPORT) @@ -152,6 +144,19 @@ public class InventoryinitRequestMainController { return resultList; } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出库存初始化申请主 Excel") + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:export')") + @OperateLog(type = EXPORT) + public void exportInventoryinitRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = inventoryinitRequestMainService.getInventoryinitRequestMainList1(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "库存初始化申请主.xlsx", "库存初始化申请数据", InventoryinitRequestMainExcelVO.class, resultList, mapDropDown); + } + @GetMapping("/get-import-template") @Operation(summary = "获得导入库存初始化申请信息模板") public void importTemplate(HttpServletResponse response) throws IOException { @@ -159,9 +164,9 @@ public class InventoryinitRequestMainController { List list = new ArrayList<>(); Map mapDropDown = new HashMap<>(); String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); - mapDropDown.put(10, inventoryStatus); + mapDropDown.put(11, inventoryStatus); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); - mapDropDown.put(13, uom); + mapDropDown.put(14, uom); // 输出 ExcelUtils.write(response, "库存初始化申请信息导入模板.xlsx", "库存初始化申请信息列表", InventoryinitRequestMainImportVO.class, list, mapDropDown); } @@ -192,4 +197,57 @@ public class InventoryinitRequestMainController { } + @PutMapping("/close") + @Operation(summary = "关闭库存初始化申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:close')") + public CommonResult closeInventoryinitRequestMain(@RequestParam("id") Long id) { + Integer count = inventoryinitRequestMainService.closeInventoryinitRequestMain(id); + return success(count > 0); + } + + + @PutMapping("/reAdd") + @Operation(summary = "重新添加库存初始化申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:reAdd')") + public CommonResult openInventoryinitRequestMain(@RequestParam("id") Long id) { + Integer count = inventoryinitRequestMainService.reAddInventoryinitRequestMain(id); + return success(count > 0); + } + @PutMapping("/submit") + @Operation(summary = "提交库存初始化申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:submit')") + public CommonResult submitInventoryinitRequestMain(@RequestParam("id") Long id) { + Integer count = inventoryinitRequestMainService.submitInventoryinitRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过库存初始化申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:agree')") + public CommonResult agreeInventoryinitRequestMain(@RequestParam("id") Long id) { + Integer count = inventoryinitRequestMainService.agreeInventoryinitRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理库存初始化申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:handle')") + public CommonResult handleInventoryinitRequestMain(@RequestParam("id") Long id) { + Integer count = inventoryinitRequestMainService.handleInventoryinitRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "审批拒绝库存初始化申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:refused')") + public CommonResult abortInventoryinitRequestMain(@RequestParam("id") Long id) { + Integer count = inventoryinitRequestMainService.refusedInventoryinitRequestMain(id); + return success(count > 0); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestDetailPageReqVO.java index b8f42e37..600a9419 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestDetailPageReqVO.java @@ -103,4 +103,7 @@ public class InventoryinitRequestDetailPageReqVO extends PageParam { @Schema(description = "物品代码") private String itemCode; + @Schema(description = "master_id", example = "master_id") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java index 3a262a9c..52bb2f47 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java @@ -38,7 +38,7 @@ public class InventoryinitRequestMainBaseVO { @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime creationTime; + private LocalDateTime createTime; @Schema(description = "创建者用户名") private String creator; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java index 31d1c7da..4e59de87 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java @@ -17,4 +17,5 @@ public class InventoryinitRequestMainCreateReqVO extends InventoryinitRequestMai @SubObject @Schema(description = "子表数据") private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java index 1a07e5a9..0af87830 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java @@ -38,7 +38,7 @@ public class InventoryinitRequestMainExcelVO { @ExcelProperty("创建时间") @ColumnWidth(value = 25) - private LocalDateTime creationTime; + private LocalDateTime createTime; @ExcelProperty("创建者用户名") private String creator; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java index 64cdfda5..465205d3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java @@ -15,7 +15,7 @@ import lombok.ToString; @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) -public class InventoryinitRequestMainImportErrorVO extends PurchaseMainImportVO { +public class InventoryinitRequestMainImportErrorVO extends InventoryinitRequestMainImportVO { @ExcelProperty(value = "导入状态", index = 0) private String importStatus; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java index baf2b20f..4ad7e174 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java @@ -10,6 +10,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import javax.validation.constraints.NotBlank; import java.time.LocalDateTime; @@ -25,53 +26,65 @@ import java.time.LocalDateTime; public class InventoryinitRequestMainImportVO{ //主表数据 - @OnlyOne + @ExcelProperty("仓库代码") + @NotBlank(message="仓库代码不能为空") private String warehouseCode; @ExcelProperty("单据号") private String number; + @ExcelProperty("截止时间") + @ColumnWidth(value = 25) + @NotBlank(message="截止时间不能为空") + private LocalDateTime dueTime; + //子表数据 @ExcelProperty("包装号") + @NotBlank(message="包装号不能为空") private String packingNumber; @ExcelProperty("物品代码") + @NotBlank(message="物品代码不能为空") private String itemCode; @ExcelProperty("器具号") private String containerNumber; @ExcelProperty("批次") + @NotBlank(message="批次不能为空") private String batch; @ExcelProperty("替代批次") private String altBatch; @ExcelProperty("到货日期") - @ColumnWidth(value = 16) + @ColumnWidth(value = 25) private String arriveDate; @ExcelProperty("生产日期") - @ColumnWidth(value = 16) + @ColumnWidth(value = 25) private String produceDate; @ExcelProperty("过期日期") - @ColumnWidth(value = 16) + @ColumnWidth(value = 25) private String expireDate; @ExcelProperty("库存状态") @DictFormat(DictTypeConstants.INVENTORY_STATUS) + @NotBlank(message="库存状态不能为空") private String inventoryStatus; @ExcelProperty("库位代码") + @NotBlank(message="库位代码不能为空") private String locationCode; @ExcelProperty("数量") + @NotBlank(message="数量不能为空") private String qty; @ExcelProperty("计量单位") - @DictFormat(DictTypeConstants.UOM) + @NotBlank(message="计量单位不能为空") private String uom; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java index 0110fc60..adf57a06 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java @@ -44,6 +44,7 @@ public class PurchasereceiptRequestMainController { @Resource private PurchasereceiptRequestMainService purchasereceiptRequestMainService; + @Resource private PurchasereceiptRequestDetailService purchasereceiptRequestDetailService; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java index fc473706..61f10137 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java @@ -51,6 +51,7 @@ public interface InventoryinitRequestMainConvert { @Mapping(source = "mainDO.number", target = "number"), @Mapping(source = "mainDO.remark", target = "remark"), @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.createTime", target = "createTime"), @Mapping(source = "mainDO.updateTime", target = "updateTime"), @Mapping(source = "mainDO.updater", target = "updater"), }) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java index b5b5fed9..3172dc36 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java @@ -23,6 +23,7 @@ public interface InventoryinitRequestDetailMapper extends BaseMapperX selectPage(InventoryinitRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(InventoryinitRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventoryinitRequestDetailDO::getOwnerCode, reqVO.getOwnerCode()) .eqIfPresent(InventoryinitRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(InventoryinitRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java index 31563e38..988f1d0c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainExportReqVO; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainPageReqVO; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -64,4 +65,9 @@ public interface InventoryinitRequestMainMapper 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/inventoryinitRequest/InventoryinitRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java index 8bdc6d09..c24569b9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java @@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.inventoryinitRequest.vo.*; import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import javax.validation.Valid; import java.util.Collection; @@ -78,7 +79,15 @@ public interface InventoryinitRequestMainService { List getInventoryinitRequestMainList(InventoryinitRequestMainExportReqVO exportReqVO); /** - * 批量导入采购索赔申请主信息 + * 获得库存初始化申请主列表, 用于 Excel 导出 + * + * @param conditions 查询条件 + * @return 采购收货申请主列表 + */ + List getInventoryinitRequestMainList1(CustomConditions conditions); + + /** + * 批量导入库存初始化申请主信息 * @param datas 导入采购索赔申请主信息列表 * @param mode 导入模式1更新2追加3覆盖 * @param updatePart 是否支持更新 @@ -86,4 +95,58 @@ public interface InventoryinitRequestMainService { */ public List importInventoryinitRequestMainList(List datas, Integer mode, boolean updatePart); + /** + * 关闭库存初始化申请主 + * + * @param id 采购收货申请主ID + * @return 更新数量 + */ + Integer closeInventoryinitRequestMain(Long id); + + /** + * 重新添加库存初始化申请主 + * + * @param id 采购收货申请主ID + * @return 更新数量 + */ + Integer reAddInventoryinitRequestMain(Long id); + + + /** + * 提交库存初始化申请主 + * + * @param id 库存初始化申请主ID + * @return 更新数量 + */ + Integer submitInventoryinitRequestMain(Long id); + + + + /** + * 审批通过库存初始化申请主 + * + * @param id 库存初始化申请主ID + * @return 更新数量 + */ + Integer agreeInventoryinitRequestMain(Long id); + + /** + * 处理库存初始化申请主 + * @param id + * @return + */ + Integer handleInventoryinitRequestMain(Long id); + + + /** + * 审批拒绝库存初始化申请主 + * + * @param id 库存初始化申请主ID + * @return 更新数量 + */ + Integer refusedInventoryinitRequestMain(Long id); + + + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java index 91dbfcfc..fdad737b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java @@ -1,31 +1,20 @@ package com.win.module.wms.service.inventoryinitRequest; import cn.hutool.core.collection.CollUtil; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.util.validation.ValidationUtils; -import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; -import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; -import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; -import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; -import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; -import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; -import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; -import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; -import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; -import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordDetailCreateReqVO; +import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainCreateReqVO; +import com.win.module.wms.convert.inventoryinitRecord.InventoryinitRecordDetailConvert; +import com.win.module.wms.convert.inventoryinitRecord.InventoryinitRecordMainConvert; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; -import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.util.*; import com.win.module.wms.service.requestsetting.*; import com.win.framework.common.pojo.CustomConditions; @@ -39,12 +28,12 @@ import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitReque import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; import com.win.module.wms.dal.dataobject.location.LocationDO; -import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.mysql.inventoryinitRecord.*; import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestDetailMapper; import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestMainMapper; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Validator; @@ -69,6 +58,13 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest @Resource private InventoryinitRequestMainMapper inventoryinitRequestMainMapper; + + @Resource + private InventoryinitRecordMainMapper inventoryinitRecordMainMapper; + + @Resource + private InventoryinitRecordDetailMapper inventoryinitRecordDetailMapper; + @Resource private TrendsApi trendsApi; @Resource @@ -109,7 +105,14 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest } String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); mainDO.setNumber(number); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); inventoryinitRequestMainMapper.insert(mainDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, subDOList); + } for (InventoryinitRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDO.getId()); detailDO.setNumber(number); @@ -212,6 +215,14 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest public List getInventoryinitRequestMainList(InventoryinitRequestMainExportReqVO exportReqVO) { return inventoryinitRequestMainMapper.selectList(exportReqVO); } + + + @Override + public List getInventoryinitRequestMainList1(CustomConditions conditions) { + return inventoryinitRequestMainMapper.selectSeniorList(conditions); + } + + private String validatePurchasereceiptRequestDetailImport(InventoryinitRequestMainDO mainDo, InventoryinitRequestDetailDO detailDo){ StringBuilder message = new StringBuilder(); try { @@ -240,6 +251,32 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest return detailDo; } + private void generateJob(InventoryinitRequestMainDO mainDO, List detailDOList) { + //跳过任务直接生成记录 + if("TRUE".equals(mainDO.getDirectCreateRecord())){ + InventoryinitRecordMainCreateReqVO inventoryinitRecordMainCreateReqVO = new InventoryinitRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, inventoryinitRecordMainCreateReqVO); + inventoryinitRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode()); + inventoryinitRecordMainCreateReqVO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptRecord"); + inventoryinitRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + inventoryinitRecordMainMapper.insert(InventoryinitRecordMainConvert.INSTANCE.convert(inventoryinitRecordMainCreateReqVO)); + for(InventoryinitRequestDetailDO inventoryinitRequestDetailDO : detailDOList) { + InventoryinitRecordDetailCreateReqVO inventoryinitRecordDetailCreateReqVO = new InventoryinitRecordDetailCreateReqVO(); + BeanUtils.copyProperties(inventoryinitRequestDetailDO, inventoryinitRecordDetailCreateReqVO); + inventoryinitRecordDetailCreateReqVO.setNumber(number); + inventoryinitRecordDetailMapper.insert(InventoryinitRecordDetailConvert.INSTANCE.convert(inventoryinitRecordDetailCreateReqVO)); + } + } + + + } + + + + private InventoryinitRequestDetailDO validitempackaging(InventoryinitRequestDetailDO detailDo){ ItempackagingDO itempackaging = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); @@ -263,6 +300,14 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest return mainDo; } + private InventoryinitRequestMainDO valiteInventoryinitRequestMainExists(Long id) { + InventoryinitRequestMainDO existInventoryinitRequestMainDO = inventoryinitRequestMainMapper.selectById(id); + if (existInventoryinitRequestMainDO == null) { + throw exception(INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS); + } + return existInventoryinitRequestMainDO; + } + private InventoryinitRequestMainDO validaterequestsetting(InventoryinitRequestMainDO mainDo){ RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); mainDo.setAutoAgree(requestsetting.getAutoAgree()); @@ -272,14 +317,26 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest return mainDo; } + private void validatetime(LocalDateTime durtime){ + if(LocalDateTime.now().isAfter(durtime)){ + throw exception(TIME_AFTER,LocalDateTime.now(),durtime); + } + } + private String validatePurchasereceiptRequestMainImport(InventoryinitRequestMainDO mainDo) { - StringBuilder message = new StringBuilder(); + StringBuilder message = new StringBuilder(); try { mainDo.setCreateTime(LocalDateTime.now()); - mainDo = validaterequestsetting(mainDo); + mainDo.setRequestTime(LocalDateTime.now()); + validatetime(mainDo.getDueTime()); } catch (Exception ex) { message.append(ex.getMessage()).append(","); } + try{ + mainDo = validaterequestsetting(mainDo); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } try{ mainDo = validateBusinesstype(mainDo); } catch (Exception ex) { @@ -300,8 +357,6 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - String message = ""; - // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList InventoryinitRequestMainDO mainDO = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO); String messageMain = this.validatePurchasereceiptRequestMainImport(mainDO); List subList = createReqVO.getSubList(); @@ -323,17 +378,133 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest if (flag) { String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); mainDO.setNumber(number); - mainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest"); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); inventoryinitRequestMainMapper.insert(mainDO); - trendsApi.createTrends(mainDO.getId(), "inventoryinitRequestMain", "导入了采购收货申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(mainDO.getId(), "InventoryInitialRequest", "导入了库存初始化申请", TrendsTypeEnum.CREATE); for (InventoryinitRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDO.getId()); detailDO.setNumber(number); } + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, subDOList); + } inventoryinitRequestDetailMapper.insertBatch(subDOList); } }); return errorList; } + @Override + @Transactional + public Integer closeInventoryinitRequestMain(Long id) { + // 校验存在存在下级单据 + InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "InventoryInitialRequest", "关闭了库存初始化申请", TrendsTypeEnum.UPDATE); + return inventoryinitRequestMainMapper.updateById(mainDO); + } + + + @Override + @Transactional + public Integer reAddInventoryinitRequestMain(Long id) { + // 校验存在存在下级单据 + InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id); + + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reAdd(); + if(!flag) { + throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_RE_ADD); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "InventoryInitialRequest", "打开了库存初始化申请", TrendsTypeEnum.UPDATE); + return inventoryinitRequestMainMapper.updateById(mainDO); + } + + + @Override + @Transactional + public Integer submitInventoryinitRequestMain(Long id) { + InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, inventoryinitRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "InventoryInitialRequest", "提交了库存初始化申请", TrendsTypeEnum.UPDATE); + return inventoryinitRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer agreeInventoryinitRequestMain(Long id) { + // 校验存在 + InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, inventoryinitRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "InventoryInitialRequest", "审批同意了库存初始化申请", TrendsTypeEnum.UPDATE); + return inventoryinitRequestMainMapper.updateById(mainDO); + } + + + @Override + @Transactional + public Integer handleInventoryinitRequestMain(Long id) { + // 校验存在 + InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + this.generateJob(mainDO, inventoryinitRequestDetailMapper.selectList(mainDO.getId())); + trendsApi.createTrends(id, "InventoryInitialRequest", "执行了库存初始化申请", TrendsTypeEnum.UPDATE); + return inventoryinitRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer refusedInventoryinitRequestMain(Long id) { + // 校验存在 + InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if(!flag) { + throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "InventoryInitialRequest", "审批拒绝了库存初始化申请", TrendsTypeEnum.UPDATE); + return inventoryinitRequestMainMapper.updateById(mainDO); + } + + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java index 5a0fe3c3..8f3a96d9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java @@ -344,7 +344,7 @@ public class ItembasicServiceImpl implements ItembasicService { } //公共方法 查询物料 public ItembasicDO selectItembasic(String code) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("code",code); queryWrapper.eq("available","TRUE"); queryWrapper.eq("status","ENABLE"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java index 9efe0555..19d003d1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java @@ -52,6 +52,7 @@ import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplier.SupplierService; import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; +import io.swagger.v3.core.util.Json; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -85,8 +86,6 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq @Resource private SupplierService supplierService; @Resource - private SupplieritemService supplieritemService; - @Resource private RuleService ruleService; @Resource private SerialNumberApi serialNumberApi; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java index 8e9de770..259cd8b6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java @@ -244,7 +244,7 @@ public class RequestsettingServiceImpl implements RequestsettingService { } @Override public RequestsettingDO selectRequestsettingExist(String pcode){ - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("code",pcode); queryWrapper.eq("available","TRUE"); RequestsettingDO requestsettingDO = requestsettingMapper.selectOne(queryWrapper);