Browse Source

备料计划

master
陈薪名 2 years ago
parent
commit
9ef6b923da
  1. 7
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/PreparetoissueDetailController.java
  3. 162
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/PreparetoissueMainController.java
  4. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueDetailBaseVO.java
  5. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueDetailPageReqVO.java
  6. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueMainCreateReqVO.java
  7. 34
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueMainExcelVO.java
  8. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/ProductionMainController.java
  9. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/preparetoissue/PreparetoissueDetailConvert.java
  10. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/preparetoissue/PreparetoissueMainConvert.java
  11. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/preparetoissue/PreparetoissueDetailMapper.java
  12. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/preparetoissue/PreparetoissueMainMapper.java
  13. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueDetailService.java
  14. 89
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueDetailServiceImpl.java
  15. 33
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainService.java
  16. 304
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java
  17. 33
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java

7
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -499,6 +499,13 @@ public interface ErrorCodeConstants {
//备料计划子ErrorCode //备料计划子ErrorCode
ErrorCode PREPARETOISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_085_001, "备料计划子不存在"); ErrorCode PREPARETOISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_085_001, "备料计划子不存在");
ErrorCode PREPARETOISSUE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_085_002, "导入备料计划不能为空"); ErrorCode PREPARETOISSUE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_085_002, "导入备料计划不能为空");
ErrorCode PREPARETOISSUE_MAIN_CANNOT_CLOSE = new ErrorCode(1_000_085_003, "备料计划状态不支持关闭");
ErrorCode PREPARETOISSUE_MAIN_CANNOT_SUBMIT = new ErrorCode(1_000_085_004, "备料计划状态不支持提交");
ErrorCode PREPARETOISSUE_MAIN_CANNOT_OPEN = new ErrorCode(1_000_085_005, "备料计划状态不支持打开");
ErrorCode PREPARETOISSUE_MAIN_CANNOT_REJECT = new ErrorCode(1_000_085_006, "备料计划状态不支持驳回");
ErrorCode PREPARETOISSUE_MAIN_CANNOT_AGREE = new ErrorCode(1_000_085_007, "备料计划状态不支持审批通过");
ErrorCode PREPARETOISSUE_MAIN_CANNOT_PUBLISH = new ErrorCode(1_000_085_008, "备料计划状态不支持发布");
ErrorCode PREPARETOISSUE_MAIN_CANNOT_RESETTING = new ErrorCode(1_000_085_009, "备料计划状态不支持重置");
//补料申请主ErrorCode //补料申请主ErrorCode
ErrorCode REPLEINSH_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_086_000, "补料申请主不存在"); ErrorCode REPLEINSH_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_086_000, "补料申请主不存在");

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/PreparetoissueDetailController.java

@ -90,23 +90,6 @@ public class PreparetoissueDetailController {
return success(PreparetoissueDetailConvert.INSTANCE.convertPage(pageResult)); return success(PreparetoissueDetailConvert.INSTANCE.convertPage(pageResult));
} }
@GetMapping("/export-excel")
@Operation(summary = "导出备料计划子 Excel")
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-detail:export')")
@OperateLog(type = EXPORT)
public void exportPreparetoissueDetailExcel(@Valid PreparetoissueDetailExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<PreparetoissueDetailDO> list = preparetoissueDetailService.getPreparetoissueDetailList(exportReqVO);
// 导出 Excel
List<PreparetoissueDetailExcelVO> datas = PreparetoissueDetailConvert.INSTANCE.convertList02(list);
for(PreparetoissueDetailExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "备料计划子.xls", "数据", PreparetoissueDetailExcelVO.class, datas);
}
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得备料计划子分页") @Operation(summary = "高级搜索获得备料计划子分页")
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-detail:query')") @PreAuthorize("@ss.hasPermission('wms:preparetoissue-detail:query')")

162
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/PreparetoissueMainController.java

@ -3,14 +3,26 @@ package com.win.module.wms.controller.preparetoissue;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; 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.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.preparetoissue.vo.*; import com.win.module.wms.controller.preparetoissue.vo.*;
import com.win.module.wms.controller.production.vo.ProductionMainExcelVO;
import com.win.module.wms.controller.production.vo.ProductionMainImportVO;
import com.win.module.wms.convert.preparetoissue.PreparetoissueDetailConvert;
import com.win.module.wms.convert.preparetoissue.PreparetoissueMainConvert; import com.win.module.wms.convert.preparetoissue.PreparetoissueMainConvert;
import com.win.module.wms.convert.production.ProductionMainConvert;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import com.win.module.wms.dal.mysql.production.ProductionDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.preparetoissue.PreparetoissueDetailService;
import com.win.module.wms.service.preparetoissue.PreparetoissueMainService; import com.win.module.wms.service.preparetoissue.PreparetoissueMainService;
import com.win.module.wms.service.production.ProductionMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -22,8 +34,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.util.Collection; import java.util.*;
import java.util.List;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -34,10 +45,16 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Validated @Validated
public class PreparetoissueMainController { public class PreparetoissueMainController {
@Resource
private PreparetoissueDetailService preparetoissueDetailService;
@Resource @Resource
private PreparetoissueMainService preparetoissueMainService; private PreparetoissueMainService preparetoissueMainService;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@Resource
private ProductionMainService productionMainService;
@Resource
private ProductionDetailMapper productionDetailMapper;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建备料计划主") @Operation(summary = "创建备料计划主")
@ -89,6 +106,35 @@ public class PreparetoissueMainController {
return success(PreparetoissueMainConvert.INSTANCE.convertPage(pageResult)); return success(PreparetoissueMainConvert.INSTANCE.convertPage(pageResult));
} }
@PostMapping("/senior")
@Operation(summary = "高级搜索获得备料计划主分页")
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:query')")
public CommonResult<PageResult<PreparetoissueMainRespVO>> getPreparetoissueMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<PreparetoissueMainDO> pageResult = preparetoissueMainService.getPreparetoissueMainSenior(conditions);
PageResult<PreparetoissueMainRespVO> result = PreparetoissueMainConvert.INSTANCE.convertPage(pageResult);
for(PreparetoissueMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
return success(result);
}
private List<PreparetoissueMainExcelVO> getExcelVo(List<PreparetoissueMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(13, available);
List<PreparetoissueMainExcelVO> resultList = new ArrayList<>();
// 导出
for(PreparetoissueMainDO mainDO : list) {
List<PreparetoissueDetailDO> subList = preparetoissueDetailService.selectList(mainDO.getId());
for(PreparetoissueDetailDO detailDO : subList) {
PreparetoissueMainExcelVO vo = PreparetoissueMainConvert.INSTANCE.convert(mainDO, detailDO);
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出备料计划主 Excel") @Operation(summary = "导出备料计划主 Excel")
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:export')") @PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:export')")
@ -96,28 +142,108 @@ public class PreparetoissueMainController {
public void exportPreparetoissueMainExcel(@Valid PreparetoissueMainExportReqVO exportReqVO, public void exportPreparetoissueMainExcel(@Valid PreparetoissueMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
List<PreparetoissueMainDO> list = preparetoissueMainService.getPreparetoissueMainList(exportReqVO); List<PreparetoissueMainDO> list = preparetoissueMainService.getPreparetoissueMainList(exportReqVO);
// 导出 Excel //组装vo
List<PreparetoissueMainExcelVO> datas = PreparetoissueMainConvert.INSTANCE.convertList02(list); Map<Integer, String[]> mapDropDown = new HashMap<>();
for(PreparetoissueMainExcelVO vo : datas) { List<PreparetoissueMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); for(PreparetoissueMainExcelVO vo : resultList) {
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
//后端创建个字段作为前端展示的虚拟字段
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
} }
ExcelUtils.write(response, "备料计划主.xls", "数据", PreparetoissueMainExcelVO.class, datas); ExcelUtils.write(response, "备料计划主.xls", "备料计划主", PreparetoissueMainExcelVO.class, resultList);
} }
@PostMapping("/senior") @GetMapping("/export-excel-senior")
@Operation(summary = "高级搜索获得备料计划主分页") @Operation(summary = "导出备料计划主 Excel")
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:query')") @PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:export')")
public CommonResult<PageResult<PreparetoissueMainRespVO>> getPreparetoissueMainSenior(@Valid @RequestBody CustomConditions conditions) { @OperateLog(type = EXPORT)
PageResult<PreparetoissueMainDO> pageResult = preparetoissueMainService.getPreparetoissueMainSenior(conditions); public void exportProductionMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
PageResult<PreparetoissueMainRespVO> result = PreparetoissueMainConvert.INSTANCE.convertPage(pageResult); List<PreparetoissueMainDO> list = preparetoissueMainService.getPreparetoissueMainList(conditions);
for(PreparetoissueMainRespVO vo : result.getList()) { //组装vo
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); Map<Integer, String[]> mapDropDown = new HashMap<>();
List<PreparetoissueMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
for(PreparetoissueMainExcelVO vo : resultList) {
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
//后端创建个字段作为前端展示的虚拟字段
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
} }
return success(result); ExcelUtils.write(response, "生产计划.xlsx", "生产计划", PreparetoissueMainExcelVO.class, resultList, mapDropDown);
}
@GetMapping("/getBomDisassemble")
@Operation(summary = "关闭")
@Parameter(name = "id", description = "编号", required = true)
public CommonResult<List<PreparetoissueDetailDO>> getBomDisassemble(@RequestParam("id") Long id) {
ProductionMainDO productionMainDO = productionMainService.getProductionMain(id);
List<PreparetoissueDetailCreateReqVO> list = preparetoissueMainService.BomDisassemble(productionMainDO, productionDetailMapper.selectList(productionMainDO.getId()));
return success(PreparetoissueDetailConvert.INSTANCE.convertList03(list));
}
@PutMapping("/close")
@Operation(summary = "关闭")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:close')")
public CommonResult<Boolean> closePreparetoissueMain(@RequestParam("id") Long id) {
Integer count = preparetoissueMainService.closeProductionMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:submit')")
public CommonResult<Boolean> submitPreparetoissueMain(@RequestParam("id") Long id) {
Integer count = preparetoissueMainService.submitProductionMain(id);
return success(count > 0);
}
@PutMapping("/open")
@Operation(summary = "打开")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:open')")
public CommonResult<Boolean> openPreparetoissueMain(@RequestParam("id") Long id) {
Integer count = preparetoissueMainService.openProductionMain(id);
return success(count > 0);
}
@PutMapping("/reject")
@Operation(summary = "驳回")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:reject')")
public CommonResult<Boolean> rejectPreparetoissueMain(@RequestParam("id") Long id) {
Integer count = preparetoissueMainService.rejectProductionMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:agree')")
public CommonResult<Boolean> agreePreparetoissueMain(@RequestParam("id") Long id) {
Integer count = preparetoissueMainService.agreeProductionMain(id);
return success(count > 0);
} }
@PutMapping("/publish")
@Operation(summary = "发布")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:publish')")
public CommonResult<Boolean> publishPreparetoissueMain(@RequestParam("id") Long id) {
Integer count = preparetoissueMainService.publishProductionMain(id);
return success(count > 0);
}
@PutMapping("/resetting")
@Operation(summary = "重置")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:preparetoissue-main:resetting')")
public CommonResult<Boolean> resettingPreparetoissueMain(@RequestParam("id") Long id) {
Integer count = preparetoissueMainService.resettingProductionMain(id);
return success(count > 0);
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueDetailBaseVO.java

@ -44,7 +44,6 @@ public class PreparetoissueDetailBaseVO {
private String remark; private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime; private LocalDateTime createTime;
@ -69,4 +68,7 @@ public class PreparetoissueDetailBaseVO {
@Schema(description = "是否可用") @Schema(description = "是否可用")
private String available; private String available;
@Schema(description = "主表ID")
private Long masterId;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueDetailPageReqVO.java

@ -36,6 +36,9 @@ public class PreparetoissueDetailPageReqVO extends PageParam {
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
@Schema(description = "主表ID")
private String masterId;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime; private LocalDateTime[] createTime;

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueMainCreateReqVO.java

@ -1,12 +1,20 @@
package com.win.module.wms.controller.preparetoissue.vo; package com.win.module.wms.controller.preparetoissue.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.production.vo.ProductionDetailCreateReqVO;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 备料计划主创建 Request VO") @Schema(description = "管理后台 - 备料计划主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class PreparetoissueMainCreateReqVO extends PreparetoissueMainBaseVO { public class PreparetoissueMainCreateReqVO extends PreparetoissueMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PreparetoissueDetailCreateReqVO> subList;
} }

34
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/preparetoissue/vo/PreparetoissueMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.preparetoissue.vo; package com.win.module.wms.controller.preparetoissue.vo;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -65,14 +68,39 @@ public class PreparetoissueMainExcelVO {
@DictFormat("plan_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("plan_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String status; private String status;
@ExcelProperty("是否可用")
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名") @ExcelProperty("最后更新者用户名")
private String updater; private String updater;
@ExcelProperty(value = "是否可用", converter = DictConvert.class) @ExcelProperty("物品代码")
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String itemCode;
private String available;
@ExcelProperty("目标库位")
private String toLocationCode;
@ExcelProperty("工位")
private String workStation;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
@ExcelProperty("计划数量")
private BigDecimal planQty;
@ExcelProperty("计量单位")
private String uom;
@ExcelProperty("是否可用")
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String availableDetail;
@ExcelProperty("备注")
private String remarkDetail;
} }

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/ProductionMainController.java

@ -100,7 +100,14 @@ public class ProductionMainController {
@PreAuthorize("@ss.hasPermission('wms:production-main:query')") @PreAuthorize("@ss.hasPermission('wms:production-main:query')")
public CommonResult<PageResult<ProductionMainRespVO>> getProductionMainPage(@Valid ProductionMainPageReqVO pageVO) { public CommonResult<PageResult<ProductionMainRespVO>> getProductionMainPage(@Valid ProductionMainPageReqVO pageVO) {
PageResult<ProductionMainDO> pageResult = productionMainService.getProductionMainPage(pageVO); PageResult<ProductionMainDO> pageResult = productionMainService.getProductionMainPage(pageVO);
return success(ProductionMainConvert.INSTANCE.convertPage(pageResult)); // return success(ProductionMainConvert.INSTANCE.convertPage(pageResult));
PageResult<ProductionMainRespVO> result = ProductionMainConvert.INSTANCE.convertPage(pageResult);
result.getList().forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段
item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
return success(result);
} }
@PostMapping("/senior") @PostMapping("/senior")
@ -109,11 +116,11 @@ public class ProductionMainController {
public CommonResult<PageResult<ProductionMainRespVO>> getProductionMainSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<ProductionMainRespVO>> getProductionMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ProductionMainDO> pageResult = productionMainService.getProductionMainSenior(conditions); PageResult<ProductionMainDO> pageResult = productionMainService.getProductionMainSenior(conditions);
PageResult<ProductionMainRespVO> result = ProductionMainConvert.INSTANCE.convertPage(pageResult); PageResult<ProductionMainRespVO> result = ProductionMainConvert.INSTANCE.convertPage(pageResult);
for(ProductionMainRespVO vo : result.getList()) { result.getList().forEach(item -> {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
} item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
return success(result); return success(result);
} }
@ -142,12 +149,11 @@ public class ProductionMainController {
//组装vo //组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductionMainExcelVO> resultList = this.getExcelVo(list, mapDropDown); List<ProductionMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
for(ProductionMainExcelVO vo : resultList) { resultList.forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
//后端创建个字段作为前端展示的虚拟字段 item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); });
}
ExcelUtils.write(response, "生产计划.xls", "生产计划", ProductionMainExcelVO.class, resultList); ExcelUtils.write(response, "生产计划.xls", "生产计划", ProductionMainExcelVO.class, resultList);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/preparetoissue/PreparetoissueDetailConvert.java

@ -8,6 +8,8 @@ import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailCreat
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailExcelVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailExcelVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailRespVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailRespVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailUpdateReqVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailUpdateReqVO;
import com.win.module.wms.controller.production.vo.ProductionDetailCreateReqVO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO;
@ -34,4 +36,6 @@ public interface PreparetoissueDetailConvert {
List<PreparetoissueDetailExcelVO> convertList02(List<PreparetoissueDetailDO> list); List<PreparetoissueDetailExcelVO> convertList02(List<PreparetoissueDetailDO> list);
List<PreparetoissueDetailDO> convertList03(List<PreparetoissueDetailCreateReqVO> list);
} }

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/preparetoissue/PreparetoissueMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainCreateR
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainExcelVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainExcelVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainRespVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainRespVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainUpdateReqVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO;
@ -33,5 +36,16 @@ public interface PreparetoissueMainConvert {
PageResult<PreparetoissueMainRespVO> convertPage(PageResult<PreparetoissueMainDO> page); PageResult<PreparetoissueMainRespVO> convertPage(PageResult<PreparetoissueMainDO> page);
List<PreparetoissueMainExcelVO> convertList02(List<PreparetoissueMainDO> list); List<PreparetoissueMainExcelVO> convertList02(List<PreparetoissueMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
@Mapping(source = "mainDO.available", target = "available"),
@Mapping(source = "detailDO.available", target = "availableDetail"),
@Mapping(source = "detailDO.remark", target = "remarkDetail"),
})
PreparetoissueMainExcelVO convert(PreparetoissueMainDO mainDO, PreparetoissueDetailDO detailDO);
} }

37
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/preparetoissue/PreparetoissueDetailMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailExportReqVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailExportReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailPageReqVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailPageReqVO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -22,6 +23,7 @@ public interface PreparetoissueDetailMapper extends BaseMapperX<PreparetoissueDe
default PageResult<PreparetoissueDetailDO> selectPage(PreparetoissueDetailPageReqVO reqVO) { default PageResult<PreparetoissueDetailDO> selectPage(PreparetoissueDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<PreparetoissueDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<PreparetoissueDetailDO>()
.eq(PreparetoissueDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(PreparetoissueDetailDO::getToLocationCode, reqVO.getToLocationCode()) .eqIfPresent(PreparetoissueDetailDO::getToLocationCode, reqVO.getToLocationCode())
.eqIfPresent(PreparetoissueDetailDO::getWorkStation, reqVO.getWorkStation()) .eqIfPresent(PreparetoissueDetailDO::getWorkStation, reqVO.getWorkStation())
.betweenIfPresent(PreparetoissueDetailDO::getDueTime, reqVO.getDueTime()) .betweenIfPresent(PreparetoissueDetailDO::getDueTime, reqVO.getDueTime())
@ -42,22 +44,27 @@ public interface PreparetoissueDetailMapper extends BaseMapperX<PreparetoissueDe
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
default List<PreparetoissueDetailDO> selectList(PreparetoissueDetailExportReqVO reqVO) { default List<PreparetoissueDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<PreparetoissueDetailDO>() return selectList(new LambdaQueryWrapperX<PreparetoissueDetailDO>()
.eqIfPresent(PreparetoissueDetailDO::getToLocationCode, reqVO.getToLocationCode()) .eq(PreparetoissueDetailDO::getMasterId, masterId));
.eqIfPresent(PreparetoissueDetailDO::getWorkStation, reqVO.getWorkStation())
.betweenIfPresent(PreparetoissueDetailDO::getDueTime, reqVO.getDueTime())
.eqIfPresent(PreparetoissueDetailDO::getNumber, reqVO.getNumber())
.eqIfPresent(PreparetoissueDetailDO::getItemCode, reqVO.getItemCode())
.eqIfPresent(PreparetoissueDetailDO::getRemark, reqVO.getRemark())
.betweenIfPresent(PreparetoissueDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(PreparetoissueDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(PreparetoissueDetailDO::getPlanQty, reqVO.getPlanQty())
.eqIfPresent(PreparetoissueDetailDO::getUom, reqVO.getUom())
.betweenIfPresent(PreparetoissueDetailDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(PreparetoissueDetailDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(PreparetoissueDetailDO::getAvailable, reqVO.getAvailable())
.orderByDesc(PreparetoissueDetailDO::getId));
} }
// default List<PreparetoissueDetailDO> selectList(PreparetoissueDetailExportReqVO reqVO) {
// return selectList(new LambdaQueryWrapperX<PreparetoissueDetailDO>()
// .eqIfPresent(PreparetoissueDetailDO::getToLocationCode, reqVO.getToLocationCode())
// .eqIfPresent(PreparetoissueDetailDO::getWorkStation, reqVO.getWorkStation())
// .betweenIfPresent(PreparetoissueDetailDO::getDueTime, reqVO.getDueTime())
// .eqIfPresent(PreparetoissueDetailDO::getNumber, reqVO.getNumber())
// .eqIfPresent(PreparetoissueDetailDO::getItemCode, reqVO.getItemCode())
// .eqIfPresent(PreparetoissueDetailDO::getRemark, reqVO.getRemark())
// .betweenIfPresent(PreparetoissueDetailDO::getCreateTime, reqVO.getCreateTime())
// .eqIfPresent(PreparetoissueDetailDO::getCreator, reqVO.getCreator())
// .eqIfPresent(PreparetoissueDetailDO::getPlanQty, reqVO.getPlanQty())
// .eqIfPresent(PreparetoissueDetailDO::getUom, reqVO.getUom())
// .betweenIfPresent(PreparetoissueDetailDO::getUpdateTime, reqVO.getUpdateTime())
// .eqIfPresent(PreparetoissueDetailDO::getUpdater, reqVO.getUpdater())
// .eqIfPresent(PreparetoissueDetailDO::getAvailable, reqVO.getAvailable())
// .orderByDesc(PreparetoissueDetailDO::getId));
// }
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/preparetoissue/PreparetoissueMainMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainExportReqVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainExportReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainPageReqVO; import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainPageReqVO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@ -68,4 +69,7 @@ public interface PreparetoissueMainMapper extends BaseMapperX<PreparetoissueMain
.orderByDesc(PreparetoissueMainDO::getId)); .orderByDesc(PreparetoissueMainDO::getId));
} }
default List<PreparetoissueMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueDetailService.java

@ -2,11 +2,11 @@ package com.win.module.wms.service.preparetoissue;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailCreateReqVO; import com.win.module.wms.controller.preparetoissue.vo.*;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailExportReqVO; import com.win.module.wms.controller.production.vo.ProductionMainExportReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailPageReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Collection; import java.util.Collection;
@ -32,14 +32,14 @@ public interface PreparetoissueDetailService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updatePreparetoissueDetail(@Valid PreparetoissueDetailUpdateReqVO updateReqVO); Integer updatePreparetoissueDetail(@Valid PreparetoissueDetailUpdateReqVO updateReqVO);
/** /**
* 删除备料计划子 * 删除备料计划子
* *
* @param id 编号 * @param id 编号
*/ */
void deletePreparetoissueDetail(Long id); Integer deletePreparetoissueDetail(Long id);
/** /**
* 获得备料计划子 * 获得备料计划子
@ -71,7 +71,7 @@ public interface PreparetoissueDetailService {
* @param exportReqVO 查询条件 * @param exportReqVO 查询条件
* @return 备料计划子列表 * @return 备料计划子列表
*/ */
List<PreparetoissueDetailDO> getPreparetoissueDetailList(PreparetoissueDetailExportReqVO exportReqVO); // List<PreparetoissueDetailDO> getPreparetoissueDetailList(PreparetoissueDetailExportReqVO exportReqVO);
/** /**
* 获得用高级搜索户分页列表 * 获得用高级搜索户分页列表
@ -82,4 +82,5 @@ public interface PreparetoissueDetailService {
PageResult<PreparetoissueDetailDO> getPreparetoissueDetailSenior(CustomConditions conditions); PageResult<PreparetoissueDetailDO> getPreparetoissueDetailSenior(CustomConditions conditions);
List<PreparetoissueDetailDO> selectList(Long masterId);
} }

89
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueDetailServiceImpl.java

@ -2,14 +2,26 @@ package com.win.module.wms.service.preparetoissue;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailCreateReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailExportReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailPageReqVO; import com.win.module.system.api.dict.DictDataApi;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailUpdateReqVO; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.preparetoissue.vo.*;
import com.win.module.wms.convert.preparetoissue.PreparetoissueDetailConvert; import com.win.module.wms.convert.preparetoissue.PreparetoissueDetailConvert;
import com.win.module.wms.convert.preparetoissue.PreparetoissueMainConvert;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO;
import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueDetailMapper; import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueDetailMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.team.TeamService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -17,6 +29,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.ITEMBASIC_UOM_EXCEPTION;
import static com.win.module.wms.enums.ErrorCodeConstants.PREPARETOISSUE_DETAIL_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.PREPARETOISSUE_DETAIL_NOT_EXISTS;
/** /**
@ -28,6 +41,26 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PREPARETOISSUE_DETAIL_
@Validated @Validated
public class PreparetoissueDetailServiceImpl implements PreparetoissueDetailService { public class PreparetoissueDetailServiceImpl implements PreparetoissueDetailService {
@Resource
private PreparetoissueMainService preparetoissueMainService;
@Resource
private WorkstationService workstationService;
@Resource
private DictDataApi dictDataApi;
@Resource
private ItembasicService itembasicService;
@Resource
private ProductionlineitemService productionlineitemService;
@Resource
private ShiftService shiftService;
@Resource
private TeamService teamService;
@Resource
private ProductionlineService productionlineService;
@Resource
private WorkshopService workshopService;
@Resource
private TrendsApi trendsApi;
@Resource @Resource
private PreparetoissueDetailMapper preparetoissueDetailMapper; private PreparetoissueDetailMapper preparetoissueDetailMapper;
@ -35,26 +68,35 @@ public class PreparetoissueDetailServiceImpl implements PreparetoissueDetailServ
public Long createPreparetoissueDetail(PreparetoissueDetailCreateReqVO createReqVO) { public Long createPreparetoissueDetail(PreparetoissueDetailCreateReqVO createReqVO) {
// 插入 // 插入
PreparetoissueDetailDO preparetoissueDetail = PreparetoissueDetailConvert.INSTANCE.convert(createReqVO); PreparetoissueDetailDO preparetoissueDetail = PreparetoissueDetailConvert.INSTANCE.convert(createReqVO);
validatePreparetoissueDetailCreate(preparetoissueDetail);
preparetoissueDetailMapper.insert(preparetoissueDetail); preparetoissueDetailMapper.insert(preparetoissueDetail);
//增加操作记录
trendsApi.createTrends(preparetoissueDetail.getId(), "preparetoissueDetail", "增加了备料计划子表", TrendsTypeEnum.CREATE);
// 返回 // 返回
return preparetoissueDetail.getId(); return preparetoissueDetail.getId();
} }
@Override @Override
public void updatePreparetoissueDetail(PreparetoissueDetailUpdateReqVO updateReqVO) { public Integer updatePreparetoissueDetail(PreparetoissueDetailUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validatePreparetoissueDetailExists(updateReqVO.getId()); validatePreparetoissueDetailExists(updateReqVO.getId());
// 更新 // 更新
PreparetoissueDetailDO updateObj = PreparetoissueDetailConvert.INSTANCE.convert(updateReqVO); PreparetoissueDetailDO updateObj = PreparetoissueDetailConvert.INSTANCE.convert(updateReqVO);
preparetoissueDetailMapper.updateById(updateObj); validatePreparetoissueDetailCreate(updateObj);
//增加操作记录
trendsApi.createTrends(updateObj.getId(), "preparetoissueDetail", "更新了备料计划子表", TrendsTypeEnum.UPDATE);
return preparetoissueDetailMapper.updateById(updateObj);
} }
@Override @Override
public void deletePreparetoissueDetail(Long id) { @Transactional
public Integer deletePreparetoissueDetail(Long id) {
// 校验存在 // 校验存在
validatePreparetoissueDetailExists(id); validatePreparetoissueDetailExists(id);
//增加操作记录
trendsApi.createTrends(id, "preparetoissueDetail", "删除了备料计划子表", TrendsTypeEnum.DELETE);
// 删除 // 删除
preparetoissueDetailMapper.deleteById(id); return preparetoissueDetailMapper.deleteById(id);
} }
private void validatePreparetoissueDetailExists(Long id) { private void validatePreparetoissueDetailExists(Long id) {
@ -78,14 +120,37 @@ public class PreparetoissueDetailServiceImpl implements PreparetoissueDetailServ
return preparetoissueDetailMapper.selectPage(pageReqVO); return preparetoissueDetailMapper.selectPage(pageReqVO);
} }
@Override // @Override
public List<PreparetoissueDetailDO> getPreparetoissueDetailList(PreparetoissueDetailExportReqVO exportReqVO) { // public List<PreparetoissueDetailDO> getPreparetoissueDetailList(PreparetoissueDetailExportReqVO exportReqVO) {
return preparetoissueDetailMapper.selectList(exportReqVO); // return preparetoissueDetailMapper.selectList(exportReqVO);
} // }
@Override @Override
public PageResult<PreparetoissueDetailDO> getPreparetoissueDetailSenior(CustomConditions conditions) { public PageResult<PreparetoissueDetailDO> getPreparetoissueDetailSenior(CustomConditions conditions) {
return preparetoissueDetailMapper.selectSenior(conditions); return preparetoissueDetailMapper.selectSenior(conditions);
} }
@Override
public List<PreparetoissueDetailDO> selectList(Long masterId) {
return preparetoissueDetailMapper.selectList(masterId);
}
/**
* 新增校验
* @param detailDo
* @return
*/
private void validatePreparetoissueDetailCreate(PreparetoissueDetailDO detailDo) {
// 校验物品代码
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
if (!itembasicDO.getUom().equals(detailDo.getUom())) {
throw exception(ITEMBASIC_UOM_EXCEPTION, dictDataApi.selectDictValue(detailDo.getUom()).getLabel(), dictDataApi.selectDictValue(itembasicDO.getUom()).getLabel());
}
PreparetoissueMainDO mainDo = preparetoissueMainService.getPreparetoissueMain(detailDo.getMasterId());
// 校验工位基础信息
workstationService.selectWorkstationExist(detailDo.getWorkStation(),mainDo.getWorkshop(),mainDo.getProdLine());
// 校验生产线和物品关系
productionlineitemService.productionLineCodeAndpItemCodeExist(mainDo.getProdLine(), detailDo.getItemCode());
}
} }

33
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainService.java

@ -2,11 +2,10 @@ package com.win.module.wms.service.preparetoissue;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainCreateReqVO; import com.win.module.wms.controller.preparetoissue.vo.*;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainExportReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainPageReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Collection; import java.util.Collection;
@ -32,7 +31,7 @@ public interface PreparetoissueMainService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updatePreparetoissueMain(@Valid PreparetoissueMainUpdateReqVO updateReqVO); Integer updatePreparetoissueMain(@Valid PreparetoissueMainUpdateReqVO updateReqVO);
/** /**
* 删除备料计划主 * 删除备料计划主
@ -57,6 +56,14 @@ public interface PreparetoissueMainService {
*/ */
List<PreparetoissueMainDO> getPreparetoissueMainList(Collection<Long> ids); List<PreparetoissueMainDO> getPreparetoissueMainList(Collection<Long> ids);
/**
* 获得备料计划主列表, 用于 Excel 导出
*
* @param conditions 查询条件
* @return 备料计划主列表
*/
List<PreparetoissueMainDO> getPreparetoissueMainList(CustomConditions conditions);
/** /**
* 获得备料计划主分页 * 获得备料计划主分页
* *
@ -82,4 +89,20 @@ public interface PreparetoissueMainService {
*/ */
List<PreparetoissueMainDO> getPreparetoissueMainList(PreparetoissueMainExportReqVO exportReqVO); List<PreparetoissueMainDO> getPreparetoissueMainList(PreparetoissueMainExportReqVO exportReqVO);
List<PreparetoissueDetailCreateReqVO> BomDisassemble(ProductionMainDO mainDO, List<ProductionDetailDO> detailDOList);
Integer closeProductionMain(Long id);
Integer submitProductionMain(Long id);
Integer openProductionMain(Long id);
Integer rejectProductionMain(Long id);
Integer agreeProductionMain(Long id);
Integer publishProductionMain(Long id);
Integer resettingProductionMain(Long id);
} }

304
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java

@ -1,23 +1,46 @@
package com.win.module.wms.service.preparetoissue; package com.win.module.wms.service.preparetoissue;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainCreateReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainExportReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainPageReqVO; import com.win.module.system.api.dict.DictDataApi;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainUpdateReqVO; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.bom.vo.BomExportReqVO;
import com.win.module.wms.controller.preparetoissue.vo.*;
import com.win.module.wms.convert.preparetoissue.PreparetoissueDetailConvert;
import com.win.module.wms.convert.preparetoissue.PreparetoissueMainConvert; import com.win.module.wms.convert.preparetoissue.PreparetoissueMainConvert;
import com.win.module.wms.convert.production.ProductionDetailConvert;
import com.win.module.wms.convert.production.ProductionMainConvert;
import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueDetailDO;
import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO; import com.win.module.wms.dal.dataobject.preparetoissue.PreparetoissueMainDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueDetailMapper;
import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueMainMapper; import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueMainMapper;
import com.win.module.wms.enums.plan.PlanStatusState;
import com.win.module.wms.service.bom.BomService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.team.TeamService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collection; import java.math.BigDecimal;
import java.util.List; import java.util.*;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PREPARETOISSUE_MAIN_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
* 备料计划主 Service 实现类 * 备料计划主 Service 实现类
@ -27,26 +50,68 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PREPARETOISSUE_MAIN_NO
@Service @Service
@Validated @Validated
public class PreparetoissueMainServiceImpl implements PreparetoissueMainService { public class PreparetoissueMainServiceImpl implements PreparetoissueMainService {
@Resource
private BomService bomService;
@Resource
private WorkstationService workstationService;
@Resource
private DictDataApi dictDataApi;
@Resource
private ItembasicService itembasicService;
@Resource
private ProductionlineitemService productionlineitemService;
@Resource
private ShiftService shiftService;
@Resource
private TeamService teamService;
@Resource
private ProductionlineService productionlineService;
@Resource
private WorkshopService workshopService;
@Resource @Resource
private PreparetoissueMainMapper preparetoissueMainMapper; private PreparetoissueMainMapper preparetoissueMainMapper;
@Resource
private PreparetoissueDetailMapper preparetoissueDetailMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Override @Override
@Transactional
public Long createPreparetoissueMain(PreparetoissueMainCreateReqVO createReqVO) { public Long createPreparetoissueMain(PreparetoissueMainCreateReqVO createReqVO) {
// 插入 // 插入
PreparetoissueMainDO preparetoissueMain = PreparetoissueMainConvert.INSTANCE.convert(createReqVO); PreparetoissueMainDO mainDO = PreparetoissueMainConvert.INSTANCE.convert(createReqVO);
preparetoissueMainMapper.insert(preparetoissueMain); List<PreparetoissueDetailDO> subDOList = PreparetoissueDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
for (PreparetoissueDetailDO detailDO : subDOList) {
this.validatePreparetoissueDetailCreate(mainDO, detailDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.MATERIAL_PREPARE_PLAN.getCode());
mainDO.setNumber(number);
mainDO.setBusinessType("Issue"); // 业务类型:发料
preparetoissueMainMapper.insert(mainDO);
for (PreparetoissueDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
}
preparetoissueDetailMapper.insertBatch(subDOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "preparetoissueMain", "增加了备料计划", TrendsTypeEnum.CREATE);
// 返回 // 返回
return preparetoissueMain.getId(); return mainDO.getId();
} }
@Override @Override
public void updatePreparetoissueMain(PreparetoissueMainUpdateReqVO updateReqVO) { @Transactional
public Integer updatePreparetoissueMain(PreparetoissueMainUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validatePreparetoissueMainExists(updateReqVO.getId()); validatePreparetoissueMainExists(updateReqVO.getId());
// 更新 // 更新
PreparetoissueMainDO updateObj = PreparetoissueMainConvert.INSTANCE.convert(updateReqVO); PreparetoissueMainDO updateObj = PreparetoissueMainConvert.INSTANCE.convert(updateReqVO);
preparetoissueMainMapper.updateById(updateObj); this.validatePreparetoissueMainUpdate(updateObj);
//增加操作记录
trendsApi.createTrends(updateObj.getId(), "preparetoissueMain", "更新了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(updateObj);
} }
@Override @Override
@ -57,10 +122,12 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService
preparetoissueMainMapper.deleteById(id); preparetoissueMainMapper.deleteById(id);
} }
private void validatePreparetoissueMainExists(Long id) { private PreparetoissueMainDO validatePreparetoissueMainExists(Long id) {
if (preparetoissueMainMapper.selectById(id) == null) { PreparetoissueMainDO existPreparetoissueMainDO = preparetoissueMainMapper.selectById(id);
if (existPreparetoissueMainDO == null) {
throw exception(PREPARETOISSUE_MAIN_NOT_EXISTS); throw exception(PREPARETOISSUE_MAIN_NOT_EXISTS);
} }
return existPreparetoissueMainDO;
} }
@Override @Override
@ -73,6 +140,11 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService
return preparetoissueMainMapper.selectBatchIds(ids); return preparetoissueMainMapper.selectBatchIds(ids);
} }
@Override
public List<PreparetoissueMainDO> getPreparetoissueMainList(CustomConditions conditions) {
return preparetoissueMainMapper.selectSeniorList(conditions);
}
@Override @Override
public PageResult<PreparetoissueMainDO> getPreparetoissueMainPage(PreparetoissueMainPageReqVO pageReqVO) { public PageResult<PreparetoissueMainDO> getPreparetoissueMainPage(PreparetoissueMainPageReqVO pageReqVO) {
return preparetoissueMainMapper.selectPage(pageReqVO); return preparetoissueMainMapper.selectPage(pageReqVO);
@ -88,4 +160,206 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService
return preparetoissueMainMapper.selectList(exportReqVO); return preparetoissueMainMapper.selectList(exportReqVO);
} }
@Override
@Transactional
public Integer closeProductionMain(Long id) {
// 校验存在存在下级单据
PreparetoissueMainDO mainDO = validatePreparetoissueMainExists(id);
PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus());
boolean flag = planStatusState.close();
if(!flag) {
throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_CLOSE);
}
mainDO.setStatus(planStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "preparetoissueMain", "关闭了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer submitProductionMain(Long id) {
PreparetoissueMainDO mainDO = validatePreparetoissueMainExists(id);
PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus());
boolean flag = planStatusState.submit();
if(!flag) {
throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_SUBMIT);
}
mainDO.setStatus(planStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "preparetoissueMain", "提交了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer openProductionMain(Long id) {
PreparetoissueMainDO mainDO = validatePreparetoissueMainExists(id);
PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus());
boolean flag = planStatusState.open();
if(!flag) {
throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_OPEN);
}
mainDO.setStatus(planStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "preparetoissueMain", "打开了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer rejectProductionMain(Long id) {
PreparetoissueMainDO mainDO = validatePreparetoissueMainExists(id);
PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus());
boolean flag = planStatusState.reject();
if(!flag) {
throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_REJECT);
}
mainDO.setStatus(planStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "preparetoissueMain", "驳回了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer agreeProductionMain(Long id) {
PreparetoissueMainDO mainDO = validatePreparetoissueMainExists(id);
PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus());
boolean flag = planStatusState.agree();
if(!flag) {
throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_AGREE);
}
mainDO.setStatus(planStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "preparetoissueMain", "审批通过了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer publishProductionMain(Long id) {
PreparetoissueMainDO mainDO = validatePreparetoissueMainExists(id);
PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus());
boolean flag = planStatusState.publish();
if(!flag) {
throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_PUBLISH);
}
mainDO.setStatus(planStatusState.getState().getCode());
// 生成申请单据
// this.generateRequest(mainDO, productionDetailMapper.selectList(mainDO.getId()));
//增加操作记录
trendsApi.createTrends(id, "preparetoissueMain", "发布了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer resettingProductionMain(Long id) {
PreparetoissueMainDO mainDO = validatePreparetoissueMainExists(id);
PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus());
boolean flag = planStatusState.resetting();
if(!flag) {
throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_RESETTING);
}
mainDO.setStatus(planStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "preparetoissueMain", "重置了备料计划", TrendsTypeEnum.UPDATE);
return preparetoissueMainMapper.updateById(mainDO);
}
/**
* 新增校验
* @param detailDo
* @return
*/
private void validatePreparetoissueDetailCreate(PreparetoissueMainDO mainDo, PreparetoissueDetailDO detailDo) {
// 校验物品代码
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
if (!itembasicDO.getUom().equals(detailDo.getUom())) {
throw exception(ITEMBASIC_UOM_EXCEPTION, dictDataApi.selectDictValue(detailDo.getUom()).getLabel(), dictDataApi.selectDictValue(itembasicDO.getUom()).getLabel());
}
// 校验车间 基础信息
workshopService.selectWorkshopExist(mainDo.getWorkshop());
// 校验生产线基础信息
productionlineService.productionLineCodeExist(mainDo.getProdLine());
// 校验班组基础信息
teamService.selectTeamExist(mainDo.getTeam());
// 校验班次基础信息
shiftService.selectShiftExist(mainDo.getShift());
// 校验工位基础信息
if (detailDo.getWorkStation() != null) {
workstationService.selectWorkstationExist(detailDo.getWorkStation(),mainDo.getWorkshop(),mainDo.getProdLine());
}
// 校验生产线和物品关系
// productionlineitemService.productionLineCodeAndpItemCodeExist(mainDo.getProdLine(), detailDo.getItemCode());
}
/**
* 编辑校验
* @param mainDo
*/
public void validatePreparetoissueMainUpdate(PreparetoissueMainDO mainDo) {
// 校验车间 基础信息
workshopService.selectWorkshopExist(mainDo.getWorkshop());
// 校验生产线基础信息
productionlineService.productionLineCodeExist(mainDo.getProdLine());
// 校验班组基础信息
teamService.selectTeamExist(mainDo.getTeam());
// 校验班次基础信息
shiftService.selectShiftExist(mainDo.getShift());
}
/**
* bom拆解
* @param mainDO
* @param detailDOList
* @return
*/
@Override
public List<PreparetoissueDetailCreateReqVO> BomDisassemble(ProductionMainDO mainDO, List<ProductionDetailDO> detailDOList ) {
List<PreparetoissueDetailCreateReqVO> subList = new ArrayList<>();
detailDOList.forEach(item -> {
List<Map<String,Object>> list = new ArrayList<>();
this.BomRecursion(item.getItemCode(), list);
list.forEach(itemBom -> {
PreparetoissueDetailCreateReqVO preparetoissueDetailCreateReqVO = new PreparetoissueDetailCreateReqVO();
preparetoissueDetailCreateReqVO.setAvailable(item.getAvailable());
preparetoissueDetailCreateReqVO.setToLocationCode(productionlineitemService.productionLineCodeAndpItemCodeExist(mainDO.getProductionLine(), item.getItemCode()).getRawLocationCode());
preparetoissueDetailCreateReqVO.setMasterId(item.getMasterId());
preparetoissueDetailCreateReqVO.setItemCode(itemBom.get("itemCode").toString());
preparetoissueDetailCreateReqVO.setPlanQty(new BigDecimal(itemBom.get("qty").toString()).multiply(item.getPlanQty()));
preparetoissueDetailCreateReqVO.setUom(itemBom.get("uom").toString());
subList.add(preparetoissueDetailCreateReqVO);
});
});
return subList;
}
/**
* bom解析递归
* @param itemCode
* @param list
*/
private void BomRecursion (String itemCode,List<Map<String,Object>> list) {
BomExportReqVO bomExportReqVO = new BomExportReqVO();
bomExportReqVO.setProductItemCode(itemCode);
bomExportReqVO.setAvailable("TRUE");
List<BomDO> bomDOList = bomService.getBomList(bomExportReqVO);
bomDOList.forEach(item -> {
// 判断物品是否是虚零件
if (itembasicService.selectItembasic(item.getComponentItemCode()).getIsPhantom().equals("TRUE")) {
this.BomRecursion(item.getComponentItemCode(),list);
} else {
Map<String,Object> map = new HashMap<>();
map.put("itemCode",item.getComponentItemCode());
map.put("uom",item.getComponentUom());
map.put("qty",item.getComponentQty());
list.add(map);
}
});
}
} }

33
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java

@ -15,6 +15,10 @@ import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.bom.vo.BomBaseVO;
import com.win.module.wms.controller.bom.vo.BomExportReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueDetailCreateReqVO;
import com.win.module.wms.controller.preparetoissue.vo.PreparetoissueMainCreateReqVO;
import com.win.module.wms.controller.production.vo.*; import com.win.module.wms.controller.production.vo.*;
import com.win.module.wms.controller.work.vo.WorkDetailCreateReqVO; import com.win.module.wms.controller.work.vo.WorkDetailCreateReqVO;
import com.win.module.wms.controller.work.vo.WorkMainImportErrorVO; import com.win.module.wms.controller.work.vo.WorkMainImportErrorVO;
@ -23,6 +27,7 @@ import com.win.module.wms.convert.production.ProductionMainConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
import com.win.module.wms.convert.work.WorkDetailConvert; import com.win.module.wms.convert.work.WorkDetailConvert;
import com.win.module.wms.convert.work.WorkMainConvert; import com.win.module.wms.convert.work.WorkMainConvert;
import com.win.module.wms.dal.dataobject.bom.BomDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
@ -42,6 +47,7 @@ import com.win.module.wms.dal.mysql.production.ProductionMainMapper;
import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobDetailMapper; import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobDetailMapper;
import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestMainMapper; import com.win.module.wms.dal.mysql.productreceiptRequest.ProductreceiptRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.plan.PlanStatusState; import com.win.module.wms.enums.plan.PlanStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.enums.request.RequestStatusState;
@ -71,10 +77,7 @@ import javax.validation.Validator;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
@ -99,9 +102,13 @@ public class ProductionMainServiceImpl implements ProductionMainService {
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private Validator validator; private Validator validator;
@Resource @Resource
private BomService bomService; private BomService bomService;
@Resource
PreparetoissueMainService preparetoissueMainService;
@Resource
private ItembasicService itembasicService;
@Resource @Resource
private ProductionMainMapper productionMainMapper; private ProductionMainMapper productionMainMapper;
@Resource @Resource
@ -111,8 +118,6 @@ public class ProductionMainServiceImpl implements ProductionMainService {
@Resource @Resource
private ShiftService shiftService; private ShiftService shiftService;
@Resource @Resource
private ItembasicService itembasicService;
@Resource
private SupplieritemService supplieritemService; private SupplieritemService supplieritemService;
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@ -519,7 +524,19 @@ public class ProductionMainServiceImpl implements ProductionMainService {
private void generateRequest(ProductionMainDO mainDO, List<ProductionDetailDO> detailDOList ) { private void generateRequest(ProductionMainDO mainDO, List<ProductionDetailDO> detailDOList ) {
// 判断单据设置:该计划发布后 是否创建 备料计划 // 判断单据设置:该计划发布后 是否创建 备料计划
if(switchMapper.selectByCode("CreatePrepareToIssuePlanAfterProductionPlanPublished").getEffectiveSetValue().equals("TRUE")) { if(switchMapper.selectByCode("CreatePrepareToIssuePlanAfterProductionPlanPublished").getEffectiveSetValue().equals("TRUE")) {
// TODO:先做备料计划导入新增编辑 之后再补充这里 PreparetoissueMainCreateReqVO preparetoissueMainCreateReqVO = new PreparetoissueMainCreateReqVO();
preparetoissueMainCreateReqVO.setBeginTime(mainDO.getBeginTime());
preparetoissueMainCreateReqVO.setEndTime(mainDO.getEndTime());
preparetoissueMainCreateReqVO.setProductionPlanNumber(mainDO.getNumber());
preparetoissueMainCreateReqVO.setWorkshop(mainDO.getWorkshop());
preparetoissueMainCreateReqVO.setProdLine(mainDO.getProductionLine());
preparetoissueMainCreateReqVO.setShift(mainDO.getShift());
preparetoissueMainCreateReqVO.setTeam(mainDO.getTeam());
preparetoissueMainCreateReqVO.setPlanDate(mainDO.getPlanDate());
preparetoissueMainCreateReqVO.setAvailable(mainDO.getAvailable());
preparetoissueMainCreateReqVO.setStatus(PlanStatusEnum.NEW.getCode());
preparetoissueMainCreateReqVO.setSubList(preparetoissueMainService.BomDisassemble(mainDO,detailDOList));
preparetoissueMainService.createPreparetoissueMain(preparetoissueMainCreateReqVO);
} }
// 判断单据设置:该计划发布后 是否创建 制品收货申请 // 判断单据设置:该计划发布后 是否创建 制品收货申请
if(switchMapper.selectByCode("CreateProductReciptRequestAfterProductionPlanPublished").getEffectiveSetValue().equals("TRUE")) { if(switchMapper.selectByCode("CreateProductReciptRequestAfterProductionPlanPublished").getEffectiveSetValue().equals("TRUE")) {

Loading…
Cancel
Save