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 652e2086..8d7a9091 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 @@ -885,6 +885,15 @@ public interface ErrorCodeConstants { //盘点计划ErrorCode ErrorCode COUNT_PLAN_MAIN_NOT_EXISTS = new ErrorCode(1_000_152_000, "盘点计划主不存在"); ErrorCode COUNT_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_152_001, "盘点计划子不存在"); + ErrorCode COUNT_PLAN_STATUS_NOT_NEW = new ErrorCode(1_000_152_002, "盘点计划不是新增状态"); + ErrorCode COUNT_PLAN_REQUEST_EXISTS = new ErrorCode(1_000_152_003, "盘点计划存在成品发货申请"); + ErrorCode COUNT_PLAN_CANNOT_CLOSE = new ErrorCode(1_000_152_004, "盘点计划状态不支持关闭"); + ErrorCode COUNT_PLAN_CANNOT_SUBMIT = new ErrorCode(1_000_152_005, "盘点计划状态不支持提交"); + ErrorCode COUNT_PLAN_CANNOT_AGREE = new ErrorCode(1_000_152_006, "盘点计划状态不支持审批同意"); + ErrorCode COUNT_PLAN_CANNOT_REFUSE = new ErrorCode(1_000_152_007, "盘点计划状态不支持审批驳回"); + ErrorCode COUNT_PLAN_CANNOT_PUBLISH = new ErrorCode(1_000_152_008, "盘点计划状态不支持发布"); + ErrorCode COUNT_PLAN_CANNOT_OPEN = new ErrorCode(1_000_152_009, "盘点计划状态不支持打开"); + ErrorCode COUNT_PLAN_CANNOT_RESETTING = new ErrorCode(1_000_152_010, "盘点计划状态不支持重置"); //盘点申请ErrorCode ErrorCode COUNT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_153_000, "盘点申请主不存在"); ErrorCode COUNT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_153_001, "盘点申请子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanDetailController.java index 9178468a..6fa02061 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanDetailController.java @@ -1,36 +1,27 @@ package com.win.module.wms.controller.countPlan; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.system.api.user.AdminUserApi; -import com.win.module.system.api.user.dto.AdminUserRespDTO; -import com.win.module.wms.controller.countPlan.vo.*; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.countPlan.vo.CountPlanDetailCreateReqVO; +import com.win.module.wms.controller.countPlan.vo.CountPlanDetailPageReqVO; +import com.win.module.wms.controller.countPlan.vo.CountPlanDetailRespVO; +import com.win.module.wms.controller.countPlan.vo.CountPlanDetailUpdateReqVO; +import com.win.module.wms.convert.countPlan.CountPlanDetailConvert; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; +import com.win.module.wms.service.countPlan.CountPlanDetailService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; +import javax.annotation.Resource; +import javax.validation.Valid; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.countPlan.vo.*; -import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; -import com.win.module.wms.convert.countPlan.CountPlanDetailConvert; -import com.win.module.wms.service.countPlan.CountPlanDetailService; - @Tag(name = "管理后台 - 盘点计划子") @RestController @RequestMapping("/wms/count-plan-detail") @@ -40,9 +31,6 @@ public class CountPlanDetailController { @Resource private CountPlanDetailService countPlanDetailService; - @Resource - private AdminUserApi userApi; - @PostMapping("/create") @Operation(summary = "创建盘点计划子") @PreAuthorize("@ss.hasPermission('wms:count-plan-detail:create')") @@ -76,15 +64,6 @@ public class CountPlanDetailController { return success(CountPlanDetailConvert.INSTANCE.convert(countPlanDetail)); } - @GetMapping("/list") - @Operation(summary = "获得盘点计划子列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:count-plan-detail:query')") - public CommonResult> getCountPlanDetailList(@RequestParam("ids") Collection ids) { - List list = countPlanDetailService.getCountPlanDetailList(ids); - return success(CountPlanDetailConvert.INSTANCE.convertList(list)); - } - @GetMapping("/page") @Operation(summary = "获得盘点计划子分页") @PreAuthorize("@ss.hasPermission('wms:count-plan-detail:query')") @@ -92,34 +71,14 @@ public class CountPlanDetailController { PageResult pageResult = countPlanDetailService.getCountPlanDetailPage(pageVO); return success(CountPlanDetailConvert.INSTANCE.convertPage(pageResult)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得盘点计划子分页") @PreAuthorize("@ss.hasPermission('wms:count-plan-detail:query')") public CommonResult> getCountPlanDetailSenior(@Valid @RequestBody CustomConditions conditions) { PageResult pageResult = countPlanDetailService.getCountPlanDetailSenior(conditions); PageResult result = CountPlanDetailConvert.INSTANCE.convertPage(pageResult); - for(CountPlanDetailRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } return success(result); } - @GetMapping("/export-excel") - @Operation(summary = "导出盘点计划子 Excel") - @PreAuthorize("@ss.hasPermission('wms:count-plan-detail:export')") - @OperateLog(type = EXPORT) - public void exportCountPlanDetailExcel(@Valid CountPlanDetailExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { - List list = countPlanDetailService.getCountPlanDetailList(exportReqVO); - // 导出 Excel - List datas = CountPlanDetailConvert.INSTANCE.convertList02(list); - for(CountPlanDetailExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "盘点计划子.xls", "数据", CountPlanDetailExcelVO.class, datas); - } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanMainController.java index f7af8012..c0b73ca9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/CountPlanMainController.java @@ -3,13 +3,18 @@ package com.win.module.wms.controller.countPlan; import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ExcelUtils; 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.countPlan.vo.*; import com.win.module.wms.convert.countPlan.CountPlanMainConvert; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.plan.PlanStatusEnum; +import com.win.module.wms.service.countPlan.CountPlanDetailService; import com.win.module.wms.service.countPlan.CountPlanMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -22,8 +27,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; -import java.util.Collection; -import java.util.List; +import java.util.*; import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -36,7 +40,8 @@ public class CountPlanMainController { @Resource private CountPlanMainService countPlanMainService; - + @Resource + private CountPlanDetailService countPlanDetailService; @Resource private AdminUserApi userApi; @@ -89,6 +94,7 @@ public class CountPlanMainController { PageResult pageResult = countPlanMainService.getCountPlanMainPage(pageVO); return success(CountPlanMainConvert.INSTANCE.convertPage(pageResult)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得盘点计划主分页") @PreAuthorize("@ss.hasPermission('wms:count-plan-main:query')") @@ -101,19 +107,106 @@ public class CountPlanMainController { } return success(result); } + @GetMapping("/export-excel") @Operation(summary = "导出盘点计划主 Excel") @PreAuthorize("@ss.hasPermission('wms:count-plan-main:export')") @OperateLog(type = EXPORT) public void exportCountPlanMainExcel(@Valid CountPlanMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = countPlanMainService.getCountPlanMainList(exportReqVO); - // 导出 Excel - List datas = CountPlanMainConvert.INSTANCE.convertList02(list); - for(CountPlanMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - vo.setCreator(user.getNickname()); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "盘点计划主.xlsx", "盘点计划信息", CountPlanMainExcelVO.class, resultList, mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出盘点计划主 Excel") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:export')") + @OperateLog(type = EXPORT) + public void exportCountPlanMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = countPlanMainService.getCountPlanMainList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "盘点计划主.xlsx", "盘点计划信息", CountPlanMainExcelVO.class, resultList, mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] countType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.COUNT_TYPE); + mapDropDown.put(0, countType); + String[] countDimension = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.COUNT_DIMENSION); + mapDropDown.put(2, countDimension); + String[] planStatus = PlanStatusEnum.getStatusNameArray(); + mapDropDown.put(12, planStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(22, uom); + List resultList = new ArrayList<>(); + for(CountPlanMainDO mainDO : list) { + List subList = countPlanDetailService.selectList(mainDO.getId()); + for(CountPlanDetailDO detailDO : subList) { + CountPlanMainExcelVO vo = CountPlanMainConvert.INSTANCE.convert(mainDO, detailDO); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + resultList.add(vo); + } } - ExcelUtils.write(response, "盘点计划主.xlsx", "数据", CountPlanMainExcelVO.class, datas); + return resultList; + } + + @PutMapping("/close") + @Operation(summary = "关闭盘点计划主") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:close')") + public CommonResult closeCountPlanMain(@RequestParam("id") Long id) { + int result = countPlanMainService.closeCountPlanMain(id); + return success(result > 0); + } + + @PutMapping("/open") + @Operation(summary = "打开盘点计划主") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:open')") + public CommonResult openCountPlanMain(@RequestParam("id") Long id) { + int result = countPlanMainService.openCountPlanMain(id); + return success(result > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交盘点计划主") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:submit')") + public CommonResult submitCountPlanMain(@RequestParam("id") Long id) { + int result = countPlanMainService.submitCountPlanMain(id); + return success(result > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过盘点计划主") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:agree')") + public CommonResult agreeCountPlanMain(@RequestParam("id") Long id) { + int result = countPlanMainService.agreeCountPlanMain(id); + return success(result > 0); + } + + @PutMapping("/reject") + @Operation(summary = "审批驳回盘点计划主") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:refies')") + public CommonResult rejectCountPlanMain(@RequestParam("id") Long id) { + int result = countPlanMainService.rejectCountPlanMain(id); + return success(result > 0); + } + + @PutMapping("/publish") + @Operation(summary = "发布盘点计划主") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:publish')") + public CommonResult publishCountPlanMain(@RequestParam("id") Long id) { + int result = countPlanMainService.publishCountPlanMain(id); + return success(result > 0); + } + + @PutMapping("/resetting") + @Operation(summary = "重置盘点计划主") + @PreAuthorize("@ss.hasPermission('wms:count-plan-main:resetting')") + public CommonResult resettingCountPlanMain(@RequestParam("id") Long id) { + int result = countPlanMainService.resettingCountPlanMain(id); + return success(result > 0); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanDetailPageReqVO.java index 66449cd7..a54991c8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanDetailPageReqVO.java @@ -1,12 +1,13 @@ package com.win.module.wms.controller.countPlan.vo; -import lombok.*; - -import java.math.BigDecimal; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import com.win.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; import java.time.LocalDateTime; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -55,4 +56,7 @@ public class CountPlanDetailPageReqVO extends PageParam { @Schema(description = "是否可用") private String available; + @Schema(description = "主表ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainExcelVO.java index 92f81a95..bd9fba4f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainExcelVO.java @@ -1,17 +1,14 @@ package com.win.module.wms.controller.countPlan.vo; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; - import com.alibaba.excel.annotation.ExcelProperty; import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.plan.PlanStatusConverter; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; /** @@ -23,14 +20,14 @@ import com.win.framework.excel.core.convert.DictConvert; public class CountPlanMainExcelVO { @ExcelProperty(value = "盘点类型", converter = DictConvert.class) - @DictFormat("count_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(DictTypeConstants.COUNT_TYPE) private String type; @ExcelProperty("执行周期") private String crontab; @ExcelProperty(value = "维度", converter = DictConvert.class) - @DictFormat("count_dimension") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(DictTypeConstants.COUNT_DIMENSION) private String dimension; @ExcelProperty("限值") @@ -54,28 +51,15 @@ public class CountPlanMainExcelVO { @ExcelProperty("备注") private String remark; - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @ExcelProperty("创建者用户名") - private String creator; - @ExcelProperty("开始时间") private LocalDateTime beginTime; @ExcelProperty("结束时间") private LocalDateTime endTime; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("plan_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty(value = "状态", converter = PlanStatusConverter.class) private String status; - @ExcelProperty("最后更新时间") - private LocalDateTime updateTime; - - @ExcelProperty("最后更新者用户名") - private String updater; - @ExcelProperty("快照盘点") private String isSnapshot; @@ -94,7 +78,35 @@ public class CountPlanMainExcelVO { @ExcelProperty("明盘") private String isOpenCount; + @ExcelProperty("盘点范围值") + private String value; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("计划数量") + private BigDecimal planQty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + @ExcelProperty("是否可用") private String available; + @ExcelProperty("子备注") + private String remarkDetail; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("创建者用户名") + private String creator; + + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; + + @ExcelProperty("最后更新者用户名") + private String updater; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainImportErrorVO.java deleted file mode 100644 index 10393bee..00000000 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainImportErrorVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.win.module.wms.controller.countPlan.vo; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - - -/** - * 盘点计划主 Excel VO - * - * @author 超级管理员 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class CountPlanMainImportErrorVO extends CountPlanMainImportVO { - -} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainImportVO.java deleted file mode 100644 index ccce235e..00000000 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countPlan/vo/CountPlanMainImportVO.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.win.module.wms.controller.countPlan.vo; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.win.framework.excel.core.annotations.DictFormat; -import com.win.framework.excel.core.convert.DictConvert; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -import java.math.BigDecimal; -import java.time.LocalDateTime; - - -/** - * 盘点计划主 Excel VO - * - * @author 超级管理员 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 -public class CountPlanMainImportVO { - - @ExcelProperty(value = "盘点类型", converter = DictConvert.class) - @DictFormat("count_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String type; - - @ExcelProperty("执行周期") - private String crontab; - - @ExcelProperty(value = "维度", converter = DictConvert.class) - @DictFormat("count_dimension") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String dimension; - - @ExcelProperty("限值") - private BigDecimal limitedValue; - - @ExcelProperty("物品忽略名单") - private String ignoreListOfItem; - - @ExcelProperty("库位忽略名单") - private String ignoreListOfLocation; - - @ExcelProperty("盘点范围列表") - private String scopeList; - - @ExcelProperty("单据号") - private String number; - - @ExcelProperty("业务类型") - private String businessType; - - @ExcelProperty("备注") - private String remark; - - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @ExcelProperty("创建者用户名") - private String creator; - - @ExcelProperty("开始时间") - private LocalDateTime beginTime; - - @ExcelProperty("结束时间") - private LocalDateTime endTime; - - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("plan_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String status; - - @ExcelProperty("最后更新时间") - private LocalDateTime updateTime; - - @ExcelProperty("最后更新者用户名") - private String updater; - - @ExcelProperty("快照盘点") - private String isSnapshot; - - @ExcelProperty("冻结盘点") - private String isFreeze; - - @ExcelProperty("盘点空库位") - private String isCountEmptyLocation; - - @ExcelProperty("盘点零库存") - private String isCountZeroInventory; - - @ExcelProperty("盘点负库存") - private String isCountNegativeInventory; - - @ExcelProperty("明盘") - private String isOpenCount; - - @ExcelProperty("是否可用") - private String available; - -} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java index 284a2b05..3d121002 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.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.deliverPlan.vo.*; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; import com.win.module.wms.convert.deliverPlan.DeliverPlanMainConvert; -import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO; import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; -import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; -import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.deliverPlan.DeliverPlanDetailService; import com.win.module.wms.service.deliverPlan.DeliverPlanMainService; @@ -72,56 +68,56 @@ public class DeliverPlanMainController { @Operation(summary = "关闭发货计划主") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:close')") public CommonResult closeDeliverPlanMain(@RequestParam("id") Long id) { - deliverPlanMainService.closeDeliverPlanMain(id); - return success(true); + int result = deliverPlanMainService.closeDeliverPlanMain(id); + return success(result > 0); } @PutMapping("/open") @Operation(summary = "打开发货计划主") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:open')") public CommonResult openDeliverPlanMain(@RequestParam("id") Long id) { - deliverPlanMainService.openDeliverPlanMain(id); - return success(true); + int result = deliverPlanMainService.openDeliverPlanMain(id); + return success(result > 0); } @PutMapping("/submit") @Operation(summary = "提交发货计划主") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:submit')") public CommonResult submitDeliverPlanMain(@RequestParam("id") Long id) { - deliverPlanMainService.submitDeliverPlanMain(id); - return success(true); + int result = deliverPlanMainService.submitDeliverPlanMain(id); + return success(result > 0); } @PutMapping("/agree") @Operation(summary = "审批通过发货计划主") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:agree')") public CommonResult agreeDeliverPlanMain(@RequestParam("id") Long id) { - deliverPlanMainService.agreeDeliverPlanMain(id); - return success(true); + int result = deliverPlanMainService.agreeDeliverPlanMain(id); + return success(result > 0); } - @PutMapping("/refies") + @PutMapping("/reject") @Operation(summary = "审批驳回发货计划主") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:refies')") - public CommonResult refiesDeliverPlanMain(@RequestParam("id") Long id) { - deliverPlanMainService.refiesDeliverPlanMain(id); - return success(true); + public CommonResult rejectDeliverPlanMain(@RequestParam("id") Long id) { + int result = deliverPlanMainService.rejectDeliverPlanMain(id); + return success(result > 0); } @PutMapping("/publish") @Operation(summary = "发布发货计划主") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:publish')") public CommonResult publishDeliverPlanMain(@RequestParam("id") Long id) { - deliverPlanMainService.publishDeliverPlanMain(id); - return success(true); + int result = deliverPlanMainService.publishDeliverPlanMain(id); + return success(result > 0); } @PutMapping("/resetting") @Operation(summary = "重置发货计划主") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:resetting')") public CommonResult resettingDeliverPlanMain(@RequestParam("id") Long id) { - deliverPlanMainService.resettingDeliverPlanMain(id); - return success(true); + int result = deliverPlanMainService.resettingDeliverPlanMain(id); + return success(result > 0); } @DeleteMapping("/delete") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countPlan/CountPlanMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countPlan/CountPlanMainConvert.java index 8e358d67..62b7aabf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countPlan/CountPlanMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/countPlan/CountPlanMainConvert.java @@ -1,16 +1,18 @@ package com.win.module.wms.convert.countPlan; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.countPlan.vo.CountPlanMainCreateReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainExcelVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainRespVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; + +import java.util.List; /** * 盘点计划主 Convert @@ -34,4 +36,17 @@ public interface CountPlanMainConvert { List convertList02(List list); + @Mappings({ + @Mapping(source = "mainDO.type", target = "type"), + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.available", target = "available"), + @Mapping(source = "detailDO.remark", target = "remarkDetail"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + CountPlanMainExcelVO convert(CountPlanMainDO mainDO, CountPlanDetailDO detailDO); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanDetailMapper.java index 4c0accb5..4f75436d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanDetailMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.countPlan; -import java.util.*; - import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailPageReqVO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 盘点计划子 Mapper * @@ -22,6 +22,7 @@ public interface CountPlanDetailMapper extends BaseMapperX { default PageResult selectPage(CountPlanDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(CountPlanDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CountPlanDetailDO::getType, reqVO.getType()) .eqIfPresent(CountPlanDetailDO::getValue, reqVO.getValue()) .eqIfPresent(CountPlanDetailDO::getNumber, reqVO.getNumber()) @@ -56,4 +57,9 @@ public interface CountPlanDetailMapper extends BaseMapperX { .orderByDesc(CountPlanDetailDO::getId)); } + default List selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(CountPlanDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanMainMapper.java index ee75d772..5f1e11f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countPlan/CountPlanMainMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.countPlan; -import java.util.*; - import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.countPlan.vo.CountPlanMainExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainPageReqVO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 盘点计划主 Mapper * @@ -80,4 +80,12 @@ public interface CountPlanMainMapper extends BaseMapperX { .orderByDesc(CountPlanMainDO::getId)); } + default List selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } + + default CountPlanMainDO selectByNumber(String number) { + return selectOne(CountPlanMainDO::getNumber, number); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java index 97eedd12..cdb83782 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestMainMapper.java @@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.countRequest.vo.CountRequestMainExportReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestMainPageReqVO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -43,10 +44,17 @@ public interface CountRequestMainMapper extends BaseMapperX .eqIfPresent(CountRequestMainDO::getDirectCreateRecord, reqVO.getDirectCreateRecord()) .orderByDesc(CountRequestMainDO::getId)); } + default CountRequestMainDO selectByPlanNumber(String planNumber) { return selectOne( CountRequestMainDO::getPlanNumber, planNumber); } + default Long selectByCountPlanNumber(String planNumber) { + return selectCount(new LambdaQueryWrapperX() + .eq(CountRequestMainDO::getPlanNumber, planNumber) + .ne(CountRequestMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } + default PageResult selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailService.java index 633c9011..4b14a647 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailService.java @@ -1,15 +1,14 @@ package com.win.module.wms.service.countPlan; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailCreateReqVO; -import com.win.module.wms.controller.countPlan.vo.CountPlanDetailExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailPageReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.List; /** * 盘点计划子 Service 接口 @@ -51,10 +50,10 @@ public interface CountPlanDetailService { /** * 获得盘点计划子列表 * - * @param ids 编号 + * @param masterId 父id * @return 盘点计划子列表 */ - List getCountPlanDetailList(Collection ids); + List selectList(Long masterId); /** * 获得盘点计划子分页 @@ -71,12 +70,4 @@ public interface CountPlanDetailService { */ PageResult getCountPlanDetailSenior(CustomConditions conditions); - /** - * 获得盘点计划子列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return 盘点计划子列表 - */ - List getCountPlanDetailList(CountPlanDetailExportReqVO exportReqVO); - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailServiceImpl.java index d5c694ef..1f88d886 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanDetailServiceImpl.java @@ -1,24 +1,21 @@ package com.win.module.wms.service.countPlan; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailCreateReqVO; -import com.win.module.wms.controller.countPlan.vo.CountPlanDetailExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailPageReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanDetailUpdateReqVO; +import com.win.module.wms.convert.countPlan.CountPlanDetailConvert; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; +import com.win.module.wms.dal.mysql.countPlan.CountPlanDetailMapper; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import java.util.*; - -import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.countPlan.CountPlanDetailConvert; -import com.win.module.wms.dal.mysql.countPlan.CountPlanDetailMapper; +import javax.annotation.Resource; +import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.*; +import static com.win.module.wms.enums.ErrorCodeConstants.COUNT_PLAN_DETAIL_NOT_EXISTS; /** * 盘点计划子 Service 实现类 @@ -70,21 +67,17 @@ public class CountPlanDetailServiceImpl implements CountPlanDetailService { } @Override - public List getCountPlanDetailList(Collection ids) { - return countPlanDetailMapper.selectBatchIds(ids); + public List selectList(Long masterId) { + return countPlanDetailMapper.selectList(masterId); } @Override public PageResult getCountPlanDetailPage(CountPlanDetailPageReqVO pageReqVO) { return countPlanDetailMapper.selectPage(pageReqVO); } + @Override public PageResult getCountPlanDetailSenior(CustomConditions conditions) { return countPlanDetailMapper.selectSenior(conditions); } - @Override - public List getCountPlanDetailList(CountPlanDetailExportReqVO exportReqVO) { - return countPlanDetailMapper.selectList(exportReqVO); - } - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java index d4d827c8..405ebd0f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java @@ -1,16 +1,17 @@ package com.win.module.wms.service.countPlan; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.countPlan.vo.CountPlanMainCreateReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainPageReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainUpdateReqVO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 盘点计划主 Service 接口 @@ -32,14 +33,14 @@ public interface CountPlanMainService { * * @param updateReqVO 更新信息 */ - void updateCountPlanMain(@Valid CountPlanMainUpdateReqVO updateReqVO); + int updateCountPlanMain(@Valid CountPlanMainUpdateReqVO updateReqVO); /** * 删除盘点计划主 * * @param id 编号 */ - void deleteCountPlanMain(Long id); + int deleteCountPlanMain(Long id); /** * 获得盘点计划主 @@ -64,6 +65,7 @@ public interface CountPlanMainService { * @return 盘点计划主分页 */ PageResult getCountPlanMainPage(CountPlanMainPageReqVO pageReqVO); + /** * 获得用高级搜索盘点计划主分页列表 * @@ -72,6 +74,14 @@ public interface CountPlanMainService { */ PageResult getCountPlanMainSenior(CustomConditions conditions); + /** + * 获得盘点计划申请主列表, 用于 Excel 导出 + * + * @param conditions 查询条件 + * @return 盘点计划申请主列表 + */ + List getCountPlanMainList(CustomConditions conditions); + /** * 获得盘点计划主列表, 用于 Excel 导出 * @@ -88,4 +98,54 @@ public interface CountPlanMainService { * @return */ CountPlanDetailDO selectCountPlanExist(String pnumber); + + /** + * 关闭 + * @param id + * @return + */ + Integer closeCountPlanMain(Long id); + + /** + * 打开 + * @param id + * @return + */ + Integer openCountPlanMain(Long id); + + /** + * 提交审批 + * @param id + * @return + */ + Integer submitCountPlanMain(Long id); + + /** + * 审批通过 + * @param id + * @return + */ + Integer agreeCountPlanMain(Long id); + + /** + * 审批驳回 + * @param id + * @return + */ + Integer rejectCountPlanMain(Long id); + + /** + * 发布 + * @param id + * @return + */ + Integer publishCountPlanMain(Long id); + + /** + * 重置 + * @param id + * @return + */ + Integer resettingCountPlanMain(Long id); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java index f8907575..7e895208 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java @@ -2,24 +2,29 @@ package com.win.module.wms.service.countPlan; import cn.hutool.core.exceptions.UtilException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.wms.controller.countPlan.vo.CountPlanMainCreateReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainPageReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainUpdateReqVO; +import com.win.module.wms.convert.countPlan.CountPlanMainConvert; import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; import com.win.module.wms.dal.mysql.countPlan.CountPlanDetailMapper; +import com.win.module.wms.dal.mysql.countPlan.CountPlanMainMapper; +import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper; +import com.win.module.wms.enums.plan.PlanStatusState; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import java.util.*; - -import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.countPlan.CountPlanMainConvert; -import com.win.module.wms.dal.mysql.countPlan.CountPlanMainMapper; +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.module.wms.enums.ErrorCodeConstants.*; @@ -35,40 +40,46 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { @Resource private CountPlanMainMapper countPlanMainMapper; - @Resource private CountPlanDetailMapper countPlanDetailMapper; + @Resource + private CountRequestMainMapper countRequestMainMapper; + @Resource + private TrendsApi trendsApi; @Override public Long createCountPlanMain(CountPlanMainCreateReqVO createReqVO) { // 插入 CountPlanMainDO countPlanMain = CountPlanMainConvert.INSTANCE.convert(createReqVO); countPlanMainMapper.insert(countPlanMain); - // 返回 + trendsApi.createTrends(countPlanMain.getId(), "countPlan", "增加了盘点计划", TrendsTypeEnum.CREATE); return countPlanMain.getId(); } @Override - public void updateCountPlanMain(CountPlanMainUpdateReqVO updateReqVO) { + public int updateCountPlanMain(CountPlanMainUpdateReqVO updateReqVO) { // 校验存在 validateCountPlanMainExists(updateReqVO.getId()); // 更新 CountPlanMainDO updateObj = CountPlanMainConvert.INSTANCE.convert(updateReqVO); - countPlanMainMapper.updateById(updateObj); + trendsApi.createTrends(updateObj.getId(), "countPlan", "增加了盘点计划", TrendsTypeEnum.CREATE); + return countPlanMainMapper.updateById(updateObj); } @Override - public void deleteCountPlanMain(Long id) { + public int deleteCountPlanMain(Long id) { // 校验存在 validateCountPlanMainExists(id); - // 删除 - countPlanMainMapper.deleteById(id); + trendsApi.createTrends(id, "countPlan", "删除了盘点计划", TrendsTypeEnum.DELETE); + return countPlanMainMapper.deleteById(id); } - private void validateCountPlanMainExists(Long id) { - if (countPlanMainMapper.selectById(id) == null) { + private CountPlanMainDO validateCountPlanMainExists(Long id) { + CountPlanMainDO countPlanMainDO = countPlanMainMapper.selectById(id); + if (countPlanMainDO == null) { throw exception(COUNT_PLAN_MAIN_NOT_EXISTS); } + return countPlanMainDO; } @Override @@ -84,6 +95,12 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { public PageResult getCountPlanMainSenior(CustomConditions conditions) { return countPlanMainMapper.selectSenior(conditions); } + + @Override + public List getCountPlanMainList(CustomConditions conditions) { + return countPlanMainMapper.selectSeniorList(conditions); + } + @Override public PageResult getCountPlanMainPage(CountPlanMainPageReqVO pageReqVO) { return countPlanMainMapper.selectPage(pageReqVO); @@ -96,26 +113,139 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { @Override public CountPlanDetailDO selectCountPlanExist(String pnumber){ - QueryWrapper queryWrapperMain = new QueryWrapper(); + QueryWrapper queryWrapperMain = new QueryWrapper<>(); queryWrapperMain.eq("number",pnumber); queryWrapperMain.eq("available","TRUE"); CountPlanMainDO countPlanMainDO = countPlanMainMapper.selectOne(queryWrapperMain); - if(countPlanMainDO != null){ - if(!"ClOSE".equals(countPlanMainDO.getStatus())){ - QueryWrapper queryWrapperDetail = new QueryWrapper(); - queryWrapperDetail.eq("number",pnumber); - queryWrapperDetail.eq("available","TRUE"); - CountPlanDetailDO countPlanDetailDO = countPlanDetailMapper.selectOne(queryWrapperDetail); - if(countPlanDetailDO != null){ - return countPlanDetailDO; - }else { - throw new UtilException("盘点计划" + pnumber + "无效"); - } - }else { - throw new UtilException("盘点计划" + pnumber + "已关闭"); - } - }else { + if(countPlanMainDO == null) { throw new UtilException("盘点计划" + pnumber + "无效"); } + if("ClOSE".equals(countPlanMainDO.getStatus())) { + throw new UtilException("盘点计划" + pnumber + "已关闭"); + } + QueryWrapper queryWrapperDetail = new QueryWrapper<>(); + queryWrapperDetail.eq("number", pnumber); + queryWrapperDetail.eq("available","TRUE"); + CountPlanDetailDO countPlanDetailDO = countPlanDetailMapper.selectOne(queryWrapperDetail); + if(countPlanDetailDO != null) { + return countPlanDetailDO; + } else { + throw new UtilException("盘点计划" + pnumber + "无效"); + } + } + + @Override + @Transactional + public Integer closeCountPlanMain(Long id) { + // 校验存在存在下级单据 + CountPlanMainDO mainDO = validateCountPlanMainExists(id); + Long count = countRequestMainMapper.selectByCountPlanNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(COUNT_PLAN_REQUEST_EXISTS); + } + PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); + boolean flag = planStatusState.close(); + if(!flag) { + throw new ServiceException(COUNT_PLAN_CANNOT_CLOSE); + } + mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countPlan", "关闭了盘点计划", TrendsTypeEnum.UPDATE); + return countPlanMainMapper.updateById(mainDO); } + + @Override + @Transactional + public Integer openCountPlanMain(Long id) { + // 校验存在存在下级单据 + CountPlanMainDO mainDO = validateCountPlanMainExists(id); + Long count = countRequestMainMapper.selectByCountPlanNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(COUNT_PLAN_REQUEST_EXISTS); + } + PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); + boolean flag = planStatusState.open(); + if(!flag) { + throw new ServiceException(COUNT_PLAN_CANNOT_OPEN); + } + mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countPlan", "打开了盘点计划", TrendsTypeEnum.UPDATE); + return countPlanMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer submitCountPlanMain(Long id) { + // 校验存在存在下级单据 + CountPlanMainDO mainDO = validateCountPlanMainExists(id); + PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); + boolean flag = planStatusState.submit(); + if(!flag) { + throw new ServiceException(COUNT_PLAN_CANNOT_SUBMIT); + } + mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countPlan", "提交了盘点计划", TrendsTypeEnum.UPDATE); + return countPlanMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer agreeCountPlanMain(Long id) { + // 校验存在存在下级单据 + CountPlanMainDO mainDO = validateCountPlanMainExists(id); + PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); + boolean flag = planStatusState.agree(); + if(!flag) { + throw new ServiceException(COUNT_PLAN_CANNOT_AGREE); + } + mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countPlan", "审批通过了盘点计划", TrendsTypeEnum.UPDATE); + return countPlanMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer rejectCountPlanMain(Long id) { + // 校验存在存在下级单据 + CountPlanMainDO mainDO = validateCountPlanMainExists(id); + PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); + boolean flag = planStatusState.reject(); + if(!flag) { + throw new ServiceException(COUNT_PLAN_CANNOT_REFUSE); + } + mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countPlan", "审批驳回了盘点计划", TrendsTypeEnum.UPDATE); + return countPlanMainMapper.updateById(mainDO); + } + + + @Override + @Transactional + public Integer publishCountPlanMain(Long id) { + // 校验存在存在下级单据 + CountPlanMainDO mainDO = validateCountPlanMainExists(id); + PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); + boolean flag = planStatusState.execute(); + if(!flag) { + throw new ServiceException(COUNT_PLAN_CANNOT_PUBLISH); + } + mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countPlan", "发布了盘点计划", TrendsTypeEnum.UPDATE); + return countPlanMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer resettingCountPlanMain(Long id) { + // 校验存在存在下级单据 + CountPlanMainDO mainDO = validateCountPlanMainExists(id); + PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); + boolean flag = planStatusState.resetting(); + if(!flag) { + throw new ServiceException(COUNT_PLAN_CANNOT_RESETTING); + } + mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "countPlan", "重置了盘点计划", TrendsTypeEnum.UPDATE); + return countPlanMainMapper.updateById(mainDO); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java index 62603be4..2a20c040 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java @@ -81,7 +81,7 @@ public interface DeliverPlanMainService { /** * 获得发货计划主列表, 用于 Excel 导出 * - * @param exportReqVO 查询条件 + * @param conditions 查询条件 * @return 发货计划主列表 */ List getDeliverPlanMainList(CustomConditions conditions); @@ -93,7 +93,7 @@ public interface DeliverPlanMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importDeliverPlanMainList(List datas, Integer mode, boolean updatePart); + List importDeliverPlanMainList(List datas, Integer mode, boolean updatePart); /** * 更新发货计划的已发货数量 @@ -101,54 +101,55 @@ public interface DeliverPlanMainService { * @param pitemCode * @param pshippedQty */ - public void updatePlanDeliveShippedQty(String pnumber, String pitemCode, BigDecimal pshippedQty); + void updatePlanDeliveShippedQty(String pnumber, String pitemCode, BigDecimal pshippedQty); + /** * 关闭 * @param id * @return */ - public Integer closeDeliverPlanMain(Long id); + Integer closeDeliverPlanMain(Long id); /** * 打开 * @param id * @return */ - public Integer openDeliverPlanMain(Long id); + Integer openDeliverPlanMain(Long id); /** * 提交审批 * @param id * @return */ - public Integer submitDeliverPlanMain(Long id); + Integer submitDeliverPlanMain(Long id); /** * 审批通过 * @param id * @return */ - public Integer agreeDeliverPlanMain(Long id); + Integer agreeDeliverPlanMain(Long id); /** * 审批驳回 * @param id * @return */ - public Integer refiesDeliverPlanMain(Long id); + Integer rejectDeliverPlanMain(Long id); /** * 发布 * @param id * @return */ - public Integer publishDeliverPlanMain(Long id); + Integer publishDeliverPlanMain(Long id); /** * 重置 * @param id * @return */ - public Integer resettingDeliverPlanMain(Long id); + Integer resettingDeliverPlanMain(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java index 6b789cdb..85e77b49 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java @@ -8,7 +8,6 @@ import com.win.framework.common.pojo.PageResult; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; -import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.deliverPlan.vo.*; @@ -237,7 +236,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { @Override @Transactional - public Integer refiesDeliverPlanMain(Long id) { + public Integer rejectDeliverPlanMain(Long id) { // 校验存在存在下级单据 DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java index c5126398..0151f04f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java @@ -159,7 +159,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService public Integer deleteInspectRequestMain(Long id) { // 校验存在 validateInspectRequestMainExists(id); - // 删除 + trendsApi.createTrends(id, "InspectRequest", "删除了到货校验申请", TrendsTypeEnum.DELETE); return inspectRequestMainMapper.deleteById(id); }