Browse Source

生产收货记录

master
陈薪名 2 years ago
parent
commit
20ed5b8d50
  1. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueJob/IssueJobMainController.java
  2. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java
  3. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainBaseVO.java
  4. 124
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/ProductreceiptJobMainController.java
  5. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobDetailPageReqVO.java
  6. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobDetailUpdateReqVO.java
  7. 120
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobMainExcelVO.java
  8. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobMainUpdateReqVO.java
  9. 83
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbBaseVO.java
  11. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbExcelVO.java
  12. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbExportReqVO.java
  13. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbPageReqVO.java
  14. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordDetailExportReqVO.java
  15. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordDetailPageReqVO.java
  16. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainBaseVO.java
  17. 95
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainExcelVO.java
  18. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainExportReqVO.java
  19. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRequest/vo/ProductreceiptRequestDetailBaseVO.java
  20. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRequest/vo/ProductreceiptRequestMainBaseVO.java
  21. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptJob/ProductreceiptJobMainConvert.java
  22. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordMainConvert.java
  23. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productreceiptRecord/BackflushRecordDetailbDO.java
  24. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productreceiptRecord/ProductreceiptRecordDetailDO.java
  25. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptJob/ProductreceiptJobDetailMapper.java
  26. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptJob/ProductreceiptJobMainMapper.java
  27. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/BackflushRecordDetailbMapper.java
  28. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/ProductreceiptRecordDetailMapper.java
  29. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/ProductreceiptRecordMainMapper.java
  30. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java
  31. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java
  32. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java
  33. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java
  34. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java
  35. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java
  36. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java
  37. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobDetailService.java
  38. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobDetailServiceImpl.java
  39. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainService.java
  40. 377
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java
  41. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordDetailService.java
  42. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordDetailServiceImpl.java
  43. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java
  44. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java
  45. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainService.java
  46. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueJob/IssueJobMainController.java

@ -78,6 +78,12 @@ public class IssueJobMainController {
@PreAuthorize("@ss.hasPermission('wms:issue-job-main:query')")
public CommonResult<PageResult<IssueJobMainRespVO>> getIssueJobMainPage(@Valid IssueJobMainPageReqVO pageVO) {
PageResult<IssueJobMainDO> pageResult = issueJobMainService.getIssueJobMainPage(pageVO);
for(IssueJobMainDO issueJobMainDO : pageResult.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(issueJobMainDO.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
issueJobMainDO.setCreator(user.getNickname());
issueJobMainDO.setUpdater(user.getNickname());
}
return success(IssueJobMainConvert.INSTANCE.convertPage(pageResult));
}
@ -91,6 +97,7 @@ public class IssueJobMainController {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
vo.setUpdater(user.getNickname());
}
return success(result);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java

@ -155,7 +155,7 @@ public class IssueRequestMainController {
}
@GetMapping("/export-excel-senior")
@Operation(summary = "导出生产计划主 Excel")
@Operation(summary = "导出发料申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:issue-request-main:export')")
@OperateLog(type = EXPORT)
public void exportIssueRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainBaseVO.java

@ -83,19 +83,15 @@ public class ProductputawayRequestMainBaseVO {
private String updater;
@Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动提交不能为空")
private String autoCommit;
@Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动通过不能为空")
private String autoAgree;
@Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动执行不能为空")
private String autoExecute;
@Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "直接生成记录不能为空")
private String directCreateRecord;
}

124
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/ProductreceiptJobMainController.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.productreceiptJob;
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;
@ -12,6 +13,7 @@ import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobDetailConve
import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobMainConvert;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productreceiptJob.ProductreceiptJobDetailService;
import com.win.module.wms.service.productreceiptJob.ProductreceiptJobMainService;
import io.swagger.v3.oas.annotations.Operation;
@ -26,10 +28,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -96,27 +95,15 @@ public class ProductreceiptJobMainController {
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:query')")
public CommonResult<PageResult<ProductreceiptJobMainRespVO>> getProductreceiptJobMainPage(@Valid ProductreceiptJobMainPageReqVO pageVO) {
PageResult<ProductreceiptJobMainDO> pageResult = productreceiptJobMainService.getProductreceiptJobMainPage(pageVO);
return success(ProductreceiptJobMainConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出制品收货任务主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:export')")
@OperateLog(type = EXPORT)
public void exportProductreceiptJobMainExcel(@Valid ProductreceiptJobMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductreceiptJobMainDO> list = productreceiptJobMainService.getProductreceiptJobMainList(exportReqVO);
// 导出 Excel
List<ProductreceiptJobMainExcelVO> datas = ProductreceiptJobMainConvert.INSTANCE.convertList02(list);
for(ProductreceiptJobMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
for(ProductreceiptJobMainDO productreceiptJobMainDO : pageResult.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(productreceiptJobMainDO.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
productreceiptJobMainDO.setCreator(user.getNickname());
productreceiptJobMainDO.setUpdater(user.getNickname());
}
ExcelUtils.write(response, "制品收货任务主.xls", "数据", ProductreceiptJobMainExcelVO.class, datas);
return success(ProductreceiptJobMainConvert.INSTANCE.convertPage(pageResult));
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得制品收货任务主分页")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:query')")
@ -127,10 +114,73 @@ public class ProductreceiptJobMainController {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
vo.setUpdater(user.getNickname());
}
return success(result);
}
private List<ProductreceiptJobMainExcelVO> getExcelVo(List<ProductreceiptJobMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(20, locationType);
mapDropDown.put(21, locationType);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(27, trueFalse);
mapDropDown.put(28, trueFalse);
mapDropDown.put(29, trueFalse);
mapDropDown.put(30, trueFalse);
mapDropDown.put(31, trueFalse);
mapDropDown.put(32, trueFalse);
mapDropDown.put(33, trueFalse);
mapDropDown.put(34, trueFalse);
mapDropDown.put(35, trueFalse);
mapDropDown.put(36, trueFalse);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(45, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(50, uom);
mapDropDown.put(57, uom);
List<ProductreceiptJobMainExcelVO> resultList = new ArrayList<>();
// 导出
for(ProductreceiptJobMainDO mainDO : list) {
List<ProductreceiptJobDetailDO> subList = productreceiptJobDetailService.selectList(mainDO.getId());
for(ProductreceiptJobDetailDO detailDO : subList) {
ProductreceiptJobMainExcelVO vo = ProductreceiptJobMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
vo.setUpdater(user.getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/export-excel")
@Operation(summary = "导出制品收货任务 Excel")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:export')")
@OperateLog(type = EXPORT)
public void exportProductreceiptJobMainExcel(@Valid ProductreceiptJobMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductreceiptJobMainDO> list = productreceiptJobMainService.getProductreceiptJobMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductreceiptJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "制品收货任务.xlsx", "制品收货任务", ProductreceiptJobMainExcelVO.class, resultList, mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出制品收货任务 Excel")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:export')")
@OperateLog(type = EXPORT)
public void exportProductreceiptJobMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ProductreceiptJobMainDO> list = productreceiptJobMainService.getProductreceiptJobMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductreceiptJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "制品收货任务.xlsx", "制品收货任务", ProductreceiptJobMainExcelVO.class, resultList, mapDropDown);
}
@GetMapping("/getProductreceiptJobById")
@Operation(summary = "APP获得制品收货任务主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@ -164,4 +214,36 @@ public class ProductreceiptJobMainController {
return success(countByStatus);
}
@PutMapping(value = "/accept")
@Operation(summary = "承接任务")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:accept')")
public CommonResult<Boolean> acceptProductreceiptJobMain(@RequestParam("id") Long id) {
int result = productreceiptJobMainService.acceptProductreceiptJobMain(id);
return success(result > 0);
}
@PutMapping(value = "/abandon")
@Operation(summary = "放弃任务")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:abandon')")
public CommonResult<Boolean> abandonProductreceiptJobMain(@RequestParam("id") Long id) {
int result = productreceiptJobMainService.abandonProductreceiptJobMain(id);
return success(result > 0);
}
@PutMapping(value = "/close")
@Operation(summary = "关闭任务")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:close')")
public CommonResult<Boolean> closeProductreceiptJobMain(@RequestParam("id") Long id) {
int result = productreceiptJobMainService.closeProductreceiptJobMain(id);
return success(result > 0);
}
@PutMapping("/execute")
@Operation(summary = "执行任务")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-job-main:execute')")
public CommonResult<String> executeProductreceiptJobMain(@Valid @RequestBody ProductreceiptJobMainUpdateReqVO updateReqVO) {
String number = productreceiptJobMainService.executeProductreceiptJobMain(updateReqVO);
return success(number);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobDetailPageReqVO.java

@ -98,4 +98,6 @@ public class ProductreceiptJobDetailPageReqVO extends PageParam {
@Schema(description = "到货主代码")
private String toOwnerCode;
@Schema(description = "主表ID")
private String masterId;
}

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobDetailUpdateReqVO.java

@ -3,10 +3,29 @@ package com.win.module.wms.controller.productreceiptJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 制品收货任务子更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProductreceiptJobDetailUpdateReqVO extends ProductreceiptJobDetailBaseVO {
@Schema(description = "实际收货数量")
private BigDecimal handleQty;
@Schema(description = "到包装")
private String toPackingNumber;
@Schema(description = "到器具")
private String toContainerNumber;
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "到库存状态")
private String toInventoryStatus;
@Schema(description = "到库位")
private String toLocationCode;
}

120
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobMainExcelVO.java

@ -1,5 +1,7 @@
package com.win.module.wms.controller.productreceiptJob.vo;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.job.JobStatusConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -39,17 +41,13 @@ public class ProductreceiptJobMainExcelVO {
@ExcelProperty("班次")
private String shift;
@ExcelProperty("明细")
private String details;
@ExcelProperty("申请时间")
private LocalDateTime requestTime;
@ExcelProperty("要求截止时间")
private LocalDateTime requestDueTime;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@ExcelProperty(value = "状态", converter = JobStatusConverter.class)
private String status;
@ExcelProperty("过期时间")
@ -61,13 +59,6 @@ public class ProductreceiptJobMainExcelVO {
@ExcelProperty("最后更新者Id")
private String updater;
@ExcelProperty("并发乐观锁")
private String concurrencyStamp;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat("job_stage_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String jobStageStatus;
@ExcelProperty("优先级")
private Integer priority;
@ -96,11 +87,11 @@ public class ProductreceiptJobMainExcelVO {
private String toAreaCodes;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.LOCATION_TYPE)
private String fromLocationTypes;
@ExcelProperty(value = "到库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
@DictFormat(DictTypeConstants.LOCATION_TYPE)
private String toLocationTypes;
@ExcelProperty("单据号")
@ -118,34 +109,113 @@ public class ProductreceiptJobMainExcelVO {
@ExcelProperty("创建者id")
private String creator;
@ExcelProperty("自动完成")
@ExcelProperty(value = "自动完成", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoComplete;
@ExcelProperty("允许修改库位")
@ExcelProperty(value = "允许修改库位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyLocation;
@ExcelProperty("允许修改数量")
@ExcelProperty(value = "允许修改数量", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyQty;
@ExcelProperty("允许大于推荐数量")
@ExcelProperty(value = "允许大于推荐数量", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowBiggerQty;
@ExcelProperty("允许小于推荐数量")
@ExcelProperty(value = "允许小于推荐数量", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowSmallerQty;
@ExcelProperty("允许修改库存状态")
@ExcelProperty(value = "允许修改库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyInventoryStatus;
@ExcelProperty("允许连续扫描")
@ExcelProperty(value = "允许连续扫描", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowContinuousScanning;
@ExcelProperty("允许部分完成")
@ExcelProperty(value = "允许部分完成", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowPartialComplete;
@ExcelProperty("允许修改批次")
@ExcelProperty(value = "允许修改箱码", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyPackingNumber;
@ExcelProperty(value = "允许修改批次", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyBatch;
@ExcelProperty("允许修改箱码")
private String allowModifyPackingNumber;
// 子表数据
@ExcelProperty("生产线代码")
private String productionLineCode;
@ExcelProperty("工位代码")
private String workStationCode;
@ExcelProperty("工序代码")
private String processCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("生产日期")
private String produceDate;
@ExcelProperty("过期日期")
private String expireDate;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("订单号")
private String woNumber;
@ExcelProperty("订单行")
private String woLine;
@ExcelProperty("标包数量")
private String stdPackQty;
@ExcelProperty(value = "标包单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String stdPackUnit;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("到货主代码")
private String toOwnerCode;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/vo/ProductreceiptJobMainUpdateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.productreceiptJob.vo;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.Valid;
import java.util.List;
@Schema(description = "管理后台 - 制品收货任务主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProductreceiptJobMainUpdateReqVO extends ProductreceiptJobMainBaseVO {
@Schema(description = "子表数据")
private List<@Valid ProductreceiptJobDetailUpdateReqVO> subList;
}

83
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java

@ -3,13 +3,22 @@ package com.win.module.wms.controller.productreceiptRecord;
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.issueJob.vo.IssueJobMainExcelVO;
import com.win.module.wms.controller.productreceiptRecord.vo.*;
import com.win.module.wms.convert.issueJob.IssueJobMainConvert;
import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordMainConvert;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productreceiptRecord.ProductreceiptRecordDetailService;
import com.win.module.wms.service.productreceiptRecord.ProductreceiptRecordMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -22,8 +31,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;
@ -34,6 +42,8 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Validated
public class ProductreceiptRecordMainController {
@Resource
private ProductreceiptRecordDetailService productreceiptRecordDetailService;
@Resource
private ProductreceiptRecordMainService productreceiptRecordMainService;
@ -90,23 +100,6 @@ public class ProductreceiptRecordMainController {
return success(ProductreceiptRecordMainConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出制品收货记录主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-record-main:export')")
@OperateLog(type = EXPORT)
public void exportProductreceiptRecordMainExcel(@Valid ProductreceiptRecordMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductreceiptRecordMainDO> list = productreceiptRecordMainService.getProductreceiptRecordMainList(exportReqVO);
// 导出 Excel
List<ProductreceiptRecordMainExcelVO> datas = ProductreceiptRecordMainConvert.INSTANCE.convertList02(list);
for(ProductreceiptRecordMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "制品收货记录主.xls", "数据", ProductreceiptRecordMainExcelVO.class, datas);
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得制品收货记录主分页")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-record-main:query')")
@ -120,5 +113,57 @@ public class ProductreceiptRecordMainController {
}
return success(result);
}
private List<ProductreceiptRecordMainExcelVO> getExcelVo(List<ProductreceiptRecordMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(21, locationType);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(23, trueFalse);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(32, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(40, uom);
mapDropDown.put(47, uom);
List<ProductreceiptRecordMainExcelVO> resultList = new ArrayList<>();
// 导出
for(ProductreceiptRecordMainDO mainDO : list) {
List<ProductreceiptRecordDetailDO> subList = productreceiptRecordDetailService.selectList(mainDO.getId());
for(ProductreceiptRecordDetailDO detailDO : subList) {
ProductreceiptRecordMainExcelVO vo = ProductreceiptRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator()));
vo.setCreator(user.getNickname());
vo.setUpdater(user.getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/export-excel")
@Operation(summary = "导出制品收货记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-record-main:export')")
@OperateLog(type = EXPORT)
public void exportProductreceiptRecordMainExcel(@Valid ProductreceiptRecordMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductreceiptRecordMainDO> list = productreceiptRecordMainService.getProductreceiptRecordMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductreceiptRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "制品收货记录.xlsx", "制品收货记录", ProductreceiptRecordMainExcelVO.class, resultList, mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出制品收货记录 Excel")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-record-main:export')")
@OperateLog(type = EXPORT)
public void exportProductreceiptRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ProductreceiptRecordMainDO> list = productreceiptRecordMainService.getProductreceiptRecordMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductreceiptRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "制品收货记录.xlsx", "制品收货记录", ProductreceiptRecordMainExcelVO.class, resultList, mapDropDown);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbBaseVO.java

@ -55,6 +55,9 @@ public class BackflushRecordDetailbBaseVO {
@Schema(description = "项目代码")
private String projectCode;
@Schema(description = "数量")
private String qty;
@Schema(description = "计量单位")
private String uom;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbExcelVO.java

@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@ -54,6 +55,9 @@ public class BackflushRecordDetailbExcelVO {
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbExportReqVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productreceiptRecord.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ -48,6 +49,9 @@ public class BackflushRecordDetailbExportReqVO {
@Schema(description = "项目代码")
private String projectCode;
@ExcelProperty("数量")
private String qty;
@Schema(description = "计量单位")
private String uom;
@ -76,4 +80,7 @@ public class BackflushRecordDetailbExportReqVO {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主表id")
private Long masterId;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/BackflushRecordDetailbPageReqVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productreceiptRecord.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ -53,6 +54,9 @@ public class BackflushRecordDetailbPageReqVO extends PageParam {
@Schema(description = "项目代码")
private String projectCode;
@Schema(description = "数量")
private String qty;
@Schema(description = "计量单位")
private String uom;
@ -81,4 +85,7 @@ public class BackflushRecordDetailbPageReqVO extends PageParam {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主表id")
private Long masterId;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordDetailExportReqVO.java

@ -111,4 +111,6 @@ public class ProductreceiptRecordDetailExportReqVO {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主表id")
private Long masterId;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordDetailPageReqVO.java

@ -113,4 +113,6 @@ public class ProductreceiptRecordDetailPageReqVO extends PageParam {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主表id")
private Long masterId;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productreceiptRecord.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -111,4 +112,10 @@ public class ProductreceiptRecordMainBaseVO {
@NotNull(message = "是否可用不能为空")
private String available;
@Schema(description ="更新时间")
private LocalDateTime updateTime;
@Schema(description ="更新者Id")
private String updater;
}

95
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainExcelVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productreceiptRecord.vo;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -61,10 +62,6 @@ public class ProductreceiptRecordMainExcelVO {
@ExcelProperty("部门")
private String departmentCode;
@ExcelProperty(value = "接口类型", converter = DictConvert.class)
@DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String interfaceType;
@ExcelProperty("单据号")
private String number;
@ -80,19 +77,101 @@ public class ProductreceiptRecordMainExcelVO {
@ExcelProperty("创建者Id")
private String creator;
@ExcelProperty("代码")
private String code;
@ExcelProperty("更新时间")
private LocalDateTime updateTime;
@ExcelProperty("更新者Id")
private String updater;
@ExcelProperty("到仓库代码")
private String toWarehouseCode;
@ExcelProperty("到库位类型范围")
@ExcelProperty(value = "到库位类型范围", converter = DictConvert.class)
@DictFormat(DictTypeConstants.LOCATION_TYPE)
private String toLocationTypes;
@ExcelProperty("到库区代码范围")
private String toAreaCodes;
@ExcelProperty("是否可用")
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
// 子表数据
@ExcelProperty("生产线代码")
private String productionlineCode;
@ExcelProperty("工位代码")
private String workStationCode;
@ExcelProperty("工序代码")
private String processCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("生产日期")
private String produceDate;
@ExcelProperty("过期日期")
private String expireDate;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("到库位组代码")
private String toLocationGroupCode;
@ExcelProperty("到库区代码")
private String toAreaCode;
@ExcelProperty("到货主代码")
private String toOwnerCode;
@ExcelProperty("订单号")
private String woNumber;
@ExcelProperty("订单行")
private String woLine;
@ExcelProperty("标包数量")
private String stdPackQty;
@ExcelProperty(value = "标包单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String stdPackUnit;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainExportReqVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productreceiptRecord.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
@ -90,4 +91,10 @@ public class ProductreceiptRecordMainExportReqVO {
@Schema(description = "是否可用")
private String available;
@ExcelProperty("更新时间")
private LocalDateTime updateTime;
@ExcelProperty("更新者Id")
private String updater;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRequest/vo/ProductreceiptRequestDetailBaseVO.java

@ -99,7 +99,7 @@ public class ProductreceiptRequestDetailBaseVO {
private String projectCode;
@Schema(description = "数量")
private Double qty;
private BigDecimal qty;
@Schema(description = "计量单位")
private String uom;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRequest/vo/ProductreceiptRequestMainBaseVO.java

@ -83,19 +83,15 @@ public class ProductreceiptRequestMainBaseVO {
private String updater;
@Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动提交不能为空")
private String autoCommit;
@Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动通过不能为空")
private String autoAgree;
@Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动执行不能为空")
private String autoExecute;
@Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "直接生成记录不能为空")
private String directCreateRecord;
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptJob/ProductreceiptJobMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobMainC
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobMainExcelVO;
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobMainRespVO;
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO;
@ -33,5 +36,13 @@ public interface ProductreceiptJobMainConvert {
PageResult<ProductreceiptJobMainRespVO> convertPage(PageResult<ProductreceiptJobMainDO> page);
List<ProductreceiptJobMainExcelVO> convertList02(List<ProductreceiptJobMainDO> 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"),
})
ProductreceiptJobMainExcelVO convert(ProductreceiptJobMainDO mainDO, ProductreceiptJobDetailDO detailDO);
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecor
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainExcelVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainRespVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO;
@ -34,4 +37,13 @@ public interface ProductreceiptRecordMainConvert {
List<ProductreceiptRecordMainExcelVO> convertList02(List<ProductreceiptRecordMainDO> 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"),
})
ProductreceiptRecordMainExcelVO convert(ProductreceiptRecordMainDO mainDO, ProductreceiptRecordDetailDO detailDO);
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productreceiptRecord/BackflushRecordDetailbDO.java

@ -7,6 +7,8 @@ import com.sun.xml.bind.v2.TODO;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.math.BigDecimal;
/**
* 制品收货记录子 DO
*
@ -76,6 +78,10 @@ public class BackflushRecordDetailbDO extends BaseDO {
* 项目代码
*/
private String projectCode;
/**
* 数量
*/
private BigDecimal qty;
/**
* 计量单位
*
@ -85,7 +91,7 @@ public class BackflushRecordDetailbDO extends BaseDO {
/**
* 主表ID
*/
private String masterId;
private Long masterId;
/**
* 单据号
*/

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productreceiptRecord/ProductreceiptRecordDetailDO.java

@ -108,7 +108,7 @@ public class ProductreceiptRecordDetailDO extends BaseDO {
/**
* 主表ID
*/
private String masterId;
private Long masterId;
/**
* 单据号
*/

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptJob/ProductreceiptJobDetailMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobDetailExportReqVO;
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobDetailPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO;
import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface ProductreceiptJobDetailMapper extends BaseMapperX<Productreceip
default PageResult<ProductreceiptJobDetailDO> selectPage(ProductreceiptJobDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ProductreceiptJobDetailDO>()
.eqIfPresent(ProductreceiptJobDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductreceiptJobDetailDO::getProductionLineCode, reqVO.getProductionLineCode())
.eqIfPresent(ProductreceiptJobDetailDO::getWorkStationCode, reqVO.getWorkStationCode())
.eqIfPresent(ProductreceiptJobDetailDO::getProcessCode, reqVO.getProcessCode())
@ -87,4 +89,8 @@ public interface ProductreceiptJobDetailMapper extends BaseMapperX<Productreceip
.orderByDesc(ProductreceiptJobDetailDO::getId));
}
default List<ProductreceiptJobDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<ProductreceiptJobDetailDO>()
.eq(ProductreceiptJobDetailDO::getMasterId, masterId));
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptJob/ProductreceiptJobMainMapper.java

@ -132,4 +132,8 @@ public interface ProductreceiptJobMainMapper extends BaseMapperX<ProductreceiptJ
.eq(ProductreceiptJobMainDO::getRequestNumber, requestNumber)
.ne(ProductreceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
default List<ProductreceiptJobMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/BackflushRecordDetailbMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productreceiptRecord.vo.BackflushRecordDetailbExportReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.BackflushRecordDetailbPageReqVO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.BackflushRecordDetailbDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -22,6 +23,7 @@ public interface BackflushRecordDetailbMapper extends BaseMapperX<BackflushRecor
default PageResult<BackflushRecordDetailbDO> selectPage(BackflushRecordDetailbPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BackflushRecordDetailbDO>()
.eqIfPresent(BackflushRecordDetailbDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(BackflushRecordDetailbDO::getProcessCode, reqVO.getProcessCode())
.eqIfPresent(BackflushRecordDetailbDO::getBomVersion, reqVO.getBomVersion())
.eqIfPresent(BackflushRecordDetailbDO::getPackingNumber, reqVO.getPackingNumber())
@ -52,6 +54,7 @@ public interface BackflushRecordDetailbMapper extends BaseMapperX<BackflushRecor
default List<BackflushRecordDetailbDO> selectList(BackflushRecordDetailbExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BackflushRecordDetailbDO>()
.eqIfPresent(BackflushRecordDetailbDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(BackflushRecordDetailbDO::getProcessCode, reqVO.getProcessCode())
.eqIfPresent(BackflushRecordDetailbDO::getBomVersion, reqVO.getBomVersion())
.eqIfPresent(BackflushRecordDetailbDO::getPackingNumber, reqVO.getPackingNumber())

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/ProductreceiptRecordDetailMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailExportReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface ProductreceiptRecordDetailMapper extends BaseMapperX<Productrec
default PageResult<ProductreceiptRecordDetailDO> selectPage(ProductreceiptRecordDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ProductreceiptRecordDetailDO>()
.eqIfPresent(ProductreceiptRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductreceiptRecordDetailDO::getProductionlineCode, reqVO.getProductionlineCode())
.eqIfPresent(ProductreceiptRecordDetailDO::getWorkStationCode, reqVO.getWorkStationCode())
.eqIfPresent(ProductreceiptRecordDetailDO::getProcessCode, reqVO.getProcessCode())
@ -62,6 +64,7 @@ public interface ProductreceiptRecordDetailMapper extends BaseMapperX<Productrec
default List<ProductreceiptRecordDetailDO> selectList(ProductreceiptRecordDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ProductreceiptRecordDetailDO>()
.eqIfPresent(ProductreceiptRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductreceiptRecordDetailDO::getProductionlineCode, reqVO.getProductionlineCode())
.eqIfPresent(ProductreceiptRecordDetailDO::getWorkStationCode, reqVO.getWorkStationCode())
.eqIfPresent(ProductreceiptRecordDetailDO::getProcessCode, reqVO.getProcessCode())
@ -96,4 +99,8 @@ public interface ProductreceiptRecordDetailMapper extends BaseMapperX<Productrec
.orderByDesc(ProductreceiptRecordDetailDO::getId));
}
default List<ProductreceiptRecordDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<ProductreceiptRecordDetailDO>()
.eq(ProductreceiptRecordDetailDO::getMasterId, masterId));
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productreceiptRecord/ProductreceiptRecordMainMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainExportReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO;
import org.apache.ibatis.annotations.Mapper;
@ -82,4 +83,7 @@ public interface ProductreceiptRecordMainMapper extends BaseMapperX<Productrecei
.orderByDesc(ProductreceiptRecordMainDO::getId));
}
default List<ProductreceiptRecordMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java

@ -53,7 +53,7 @@ public class BalanceServiceImpl implements BalanceService {
public List<BalanceDO> selectNumber(String itemCode, List<String> inventoryStatus, String locationCode) {
QueryWrapper<BalanceDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("item_code", itemCode);
queryWrapper.eq("inventory_status", inventoryStatus);
queryWrapper.in("inventory_status", inventoryStatus);
queryWrapper.eq("location_code", locationCode);
List<BalanceDO> balanceDO = balanceMapper.selectList(queryWrapper);
if (!balanceDO.isEmpty()) {

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java

@ -343,8 +343,7 @@ public class IssueJobMainServiceImpl implements IssueJobMainService {
transactionCreateReqVOOut.setContainerNumber(issueRecordDetailDO.getToContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(issueRecordMainDO.getToWarehouseCode());
// 如果使用在途库 库存事务 库位赋值为 在途库
transactionCreateReqVOOut.setLocationCode(issueRecordMainDO.getUseOnTheWayLocation().equals("TRUE")?issueRecordDetailDO.getOnTheWayLocationCode():recordLstItem.get("toLocationCode").toString());
transactionCreateReqVOOut.setLocationCode(subListItem.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
});
}
@ -424,6 +423,7 @@ public class IssueJobMainServiceImpl implements IssueJobMainService {
productionreceiptJobDetailDO.setPackingNumber(item.getToPackingNumber());
productionreceiptJobDetailDO.setContainerNumber(item.getToContainerNumber());
productionreceiptJobDetailDO.setBatch(item.getToBatch());
productionreceiptJobDetailDO.setFromLocationCode(item.getOnTheWayLocationCode());
productionreceiptJobDetailDO.setMasterId(productionreceiptJobMainDO.getId());
productionreceiptJobDetailDO.setNumber(productionreceiptJobMainDO.getNumber());
productionreceiptJobDetailDO.setCreator(null);

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java

@ -465,8 +465,9 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
this.validatorIfInType(itembasicDO.getType(), businesstypeDO);
this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom());
validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode());
validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode());
// 暂时不校验 生产线物品关系
WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode());
issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode());
// 暂时不校验 生产线物品关系
// ProductionlineitemDO productionlineitemDO = this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode());
// issueRequestDetailDO.setToLocationCode(productionlineitemDO.getRawLocationCode());

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java

@ -80,7 +80,6 @@ public interface ItembasicService {
/**
* 获得货主列表
*
* @param ids 编号
* @return 货主列表
*/
List<ItembasicDO> getItembasicList();
@ -109,4 +108,11 @@ public interface ItembasicService {
* @return 物品基本信息
*/
public ItembasicDO selectItembasic(String code);
/**
* 判断 物品 是否为下线结算物品
* @param code
* @return
*/
public Boolean isOfflines(String code);
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java

@ -360,4 +360,15 @@ public class ItembasicServiceImpl implements ItembasicService {
throw exception(ITEMBASIC_NOT_EXISTS);
}
}
@Override
public Boolean isOfflines(String code) {
QueryWrapper<ItembasicDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code",code);
queryWrapper.eq("available","TRUE");
// queryWrapper.eq("status","ENABLE");
ItembasicDO itembasicDO = itembasicMapper.selectOne(queryWrapper);
// TODO: 如何判断是否 下线结算件
return false;
}
}

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

@ -20,6 +20,8 @@ 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.productreceiptRequest.vo.ProductreceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.work.vo.WorkDetailCreateReqVO;
import com.win.module.wms.controller.work.vo.WorkMainImportErrorVO;
import com.win.module.wms.convert.production.ProductionDetailConvert;
@ -39,6 +41,7 @@ import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.team.TeamDO;
import com.win.module.wms.dal.dataobject.work.WorkDetailDO;
import com.win.module.wms.dal.dataobject.work.WorkMainDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.documentSwitch.SwitchMapper;
import com.win.module.wms.dal.mysql.documentsetting.DocumentsettingMapper;
import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueMainMapper;
@ -46,6 +49,7 @@ import com.win.module.wms.dal.mysql.production.ProductionDetailMapper;
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.productreceiptRequest.ProductreceiptRequestMainMapper;
import com.win.module.wms.dal.mysql.workstation.WorkstationMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.plan.PlanStatusState;
@ -56,11 +60,13 @@ import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.preparetoissue.PreparetoissueMainService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestMainService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.service.team.TeamService;
import com.win.module.wms.service.work.WorkMainService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -75,6 +81,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@ -92,6 +99,10 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
@Validated
public class ProductionMainServiceImpl implements ProductionMainService {
@Resource
private WorkstationMapper workstationMapper;
@Resource
private ProductreceiptRequestMainService productreceiptRequestMainService;
@Resource
private SwitchMapper switchMapper;
@Resource
@ -132,6 +143,9 @@ public class ProductionMainServiceImpl implements ProductionMainService {
@Resource
private WorkMainService workMainService;
public ProductionMainServiceImpl() {
}
@Override
@Transactional
public Long createProductionMain(ProductionMainCreateReqVO createReqVO) {
@ -540,8 +554,32 @@ public class ProductionMainServiceImpl implements ProductionMainService {
}
// 判断单据设置:该计划发布后 是否创建 制品收货申请
if(switchMapper.selectByCode("CreateProductReciptRequestAfterProductionPlanPublished").getEffectiveSetValue().equals("TRUE")) {
// TODO:先做制品收货申请导入新增编辑 之后再补充这里
ProductreceiptRequestMainCreateReqVO productreceiptRequestMainCreateReqVO = new ProductreceiptRequestMainCreateReqVO();
productreceiptRequestMainCreateReqVO.setProductionPlanNumber(mainDO.getNumber());
productreceiptRequestMainCreateReqVO.setWorkshopCode(mainDO.getWorkshop());
productreceiptRequestMainCreateReqVO.setTeam(mainDO.getTeam());
productreceiptRequestMainCreateReqVO.setShift(mainDO.getShift());
List<ProductreceiptRequestDetailCreateReqVO> subList = new ArrayList<>();
for(ProductionDetailDO productionDetailDO: detailDOList) {
ProductreceiptRequestDetailCreateReqVO productreceiptRequestDetailCreateReqVO = new ProductreceiptRequestDetailCreateReqVO();
// 根据 生产线代码 车间 查询 工位代码 信息 默认工位信息第一条
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("workshop_code",mainDO.getWorkshop());
queryWrapper.eq("production_line_code",mainDO.getProductionLine());
List<WorkstationDO> workstationDOList = workstationMapper.selectList(queryWrapper);
productreceiptRequestDetailCreateReqVO.setWorkStationCode(workstationDOList.get(0).getCode());
productreceiptRequestDetailCreateReqVO.setProductionLineCode(mainDO.getProductionLine());
productreceiptRequestDetailCreateReqVO.setItemCode(productionDetailDO.getItemCode());
productreceiptRequestDetailCreateReqVO.setBomVersion(productionDetailDO.getBomVersion());
LocalDate today = LocalDate.now(); // 获取当前日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); // 定义日期格式
productreceiptRequestDetailCreateReqVO.setBatch(today.format(formatter));
productreceiptRequestDetailCreateReqVO.setQty(productionDetailDO.getPlanQty());
productreceiptRequestDetailCreateReqVO.setUom(productionDetailDO.getUom());
subList.add(productreceiptRequestDetailCreateReqVO);
}
productreceiptRequestMainCreateReqVO.setSubList(subList);
productreceiptRequestMainService.createProductreceiptRequestMain(productreceiptRequestMainCreateReqVO);
}
}
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java

@ -346,11 +346,11 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob
transactionCreateReqVOOut.setOwnerCode(productionreceiptRecordDetailDO.getFromOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(productionreceiptRecordDetailDO.getToPackingNumber());
transactionCreateReqVOOut.setBatch(productionreceiptRecordDetailDO.getToBatch());
transactionCreateReqVOOut.setContainerNumber(productionreceiptRecordDetailDO.getToContainerNumber());
transactionCreateReqVOOut.setPackingNumber(productionreceiptRecordDetailDO.getFromPackingNumber());
transactionCreateReqVOOut.setBatch(productionreceiptRecordDetailDO.getFromBatch());
transactionCreateReqVOOut.setContainerNumber(productionreceiptRecordDetailDO.getFromContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setLocationCode(productionreceiptRecordDetailDO.getToLocationCode());
transactionCreateReqVOOut.setLocationCode(productionreceiptRecordDetailDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
});
@ -358,6 +358,7 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob
if(!productionreceiptRecordDetailDOList.isEmpty()) {
productionreceiptRecordDetailMapper.insertBatch(productionreceiptRecordDetailDOList);
}
// TODO:判断 物品 是否为 上线结算物品
// 创建 上线结算记录
createOnlinesettlementRecord(productionreceiptRecordMainDO,productionreceiptRecordDetailDOList);
//增加库存事务

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobDetailService.java

@ -80,4 +80,6 @@ public interface ProductreceiptJobDetailService {
* @return 分页列表
*/
PageResult<ProductreceiptJobDetailDO> getProductreceiptJobDetailSenior(CustomConditions conditions);
List<ProductreceiptJobDetailDO> selectList(Long id);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobDetailServiceImpl.java

@ -88,4 +88,9 @@ public class ProductreceiptJobDetailServiceImpl implements ProductreceiptJobDeta
public PageResult<ProductreceiptJobDetailDO> getProductreceiptJobDetailSenior(CustomConditions conditions) {
return productreceiptJobDetailMapper.selectSenior(conditions);
}
@Override
public List<ProductreceiptJobDetailDO> selectList(Long masterId) {
return productreceiptJobDetailMapper.selectList(masterId);
}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainService.java

@ -106,4 +106,14 @@ public interface ProductreceiptJobMainService {
* @return
*/
Map<String,Integer> getCountByStatus(@Nullable Collection<String> types);
List<ProductreceiptJobMainDO> getProductreceiptJobMainList(CustomConditions conditions);
Integer acceptProductreceiptJobMain(Long id);
Integer abandonProductreceiptJobMain(Long id);
Integer closeProductreceiptJobMain(Long id);
String executeProductreceiptJobMain(ProductreceiptJobMainUpdateReqVO updateReqVO);
}

377
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java

@ -1,29 +1,74 @@
package com.win.module.wms.service.productreceiptJob;
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.wms.controller.productreceiptJob.vo.ProductreceiptJobMainCreateReqVO;
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobMainExportReqVO;
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobMainPageReqVO;
import com.win.module.wms.controller.productreceiptJob.vo.ProductreceiptJobMainUpdateReqVO;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.issueJob.vo.IssueJobDetailUpdateReqVO;
import com.win.module.wms.controller.productreceiptJob.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobMainConvert;
import com.win.module.wms.dal.dataobject.backflushRequest.BackflushRequestDetailbDO;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.documentSwitch.SwitchDO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.BackflushRecordDetailbDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.backflushRequest.BackflushRequestDetailbMapper;
import com.win.module.wms.dal.mysql.productreceiptJob.ProductreceiptJobMainMapper;
import com.win.module.wms.dal.mysql.productreceiptRecord.BackflushRecordDetailbMapper;
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.service.backflushRequest.BackflushRequestDetailbService;
import com.win.module.wms.service.balance.BalanceService;
import com.win.module.wms.service.businesstype.BusinesstypeService;
import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.production.ProductionMainService;
import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestDetailService;
import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestMainService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.service.transactiontype.TransactiontypeService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTRECEIPT_JOB_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTRECEIPT_JOB_MAIN_STATUS_ERROR;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 制品收货任务主 Service 实现类
@ -34,9 +79,50 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTRECEIPT_JOB_MAI
@Validated
public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainService {
@Resource
private ItembasicService itembasicService;
@Resource
private BusinesstypeService businesstypeService;
@Resource
private TransactiontypeService transactiontypeService;
@Resource
private SwitchService switchService;
@Resource
private BackflushRecordDetailbMapper backflushRecordDetailbMapper;
@Resource
private BalanceService balanceService;
@Resource
private WorkstationService workstationService;
@Resource
private BackflushRequestDetailbMapper backflushRequestDetailbMapper;
@Resource
private ProductreceiptRequestMainService productreceiptRequestService;
@Resource
private ProductreceiptRequestDetailService productreceiptRequestDetailService;
@Resource
private ExpectinService expectinService;
@Resource
private TransactionService transactionService;
@Resource
private ProductreceiptRecordDetailMapper productreceiptRecordDetailMapper;
@Resource
private LocationService locationService;
@Resource
private ProductreceiptRecordMainMapper productreceiptRecordMainMapper;
@Resource
private JobUtils jobUtils;
@Resource
private RecordsettingService recordsettingService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private ProductreceiptJobDetailService productreceiptJobDetailService;
@Resource
private TrendsApi trendsApi;
@Resource
private AdminUserApi userApi;
@Resource
private ProductreceiptJobMainMapper productreceiptJobMainMapper;
@Resource
private ProductionMainService productionMainService;
@ -66,10 +152,12 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
productreceiptJobMainMapper.deleteById(id);
}
private void validateProductreceiptJobMainExists(Long id) {
if (productreceiptJobMainMapper.selectById(id) == null) {
private ProductreceiptJobMainDO validateProductreceiptJobMainExists(Long id) {
ProductreceiptJobMainDO productreceiptJobMainDO = productreceiptJobMainMapper.selectById(id);
if ( productreceiptJobMainDO == null) {
throw exception(PRODUCTRECEIPT_JOB_MAIN_NOT_EXISTS);
}
return productreceiptJobMainDO;
}
@Override
@ -123,4 +211,267 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
map.put("count", l.intValue());
return map;
}
@Override
public List<ProductreceiptJobMainDO> getProductreceiptJobMainList(CustomConditions conditions) {
return productreceiptJobMainMapper.selectSeniorList(conditions);
}
@Override
@Transactional
public Integer acceptProductreceiptJobMain(Long id) {
ProductreceiptJobMainDO productreceiptJobMainDO = this.validateProductreceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(productreceiptJobMainDO.getStatus());
if(!jobStatusState.accept()) {
throw exception(PRODUCTRECEIPT_JOB_MAIN_STATUS_ERROR);
}
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
productreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
productreceiptJobMainDO.setAcceptUserId(String.valueOf(userId));
productreceiptJobMainDO.setAcceptUserName(userRespDTO.getNickname());
productreceiptJobMainDO.setAcceptTime(LocalDateTime.now());
trendsApi.createTrends(id, "productreceiptJob", "承接了制品收货任务", TrendsTypeEnum.UPDATE);
return productreceiptJobMainMapper.updateById(productreceiptJobMainDO);
}
@Override
@Transactional
public Integer abandonProductreceiptJobMain(Long id) {
ProductreceiptJobMainDO productreceiptJobMainDO = this.validateProductreceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(productreceiptJobMainDO.getStatus());
if(!jobStatusState.cancelAccept()) {
throw exception(PRODUCTRECEIPT_JOB_MAIN_STATUS_ERROR);
}
productreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
productreceiptJobMainDO.setAcceptUserId(null);
productreceiptJobMainDO.setAcceptUserName(null);
productreceiptJobMainDO.setAcceptTime(null);
trendsApi.createTrends(id, "productreceiptJob", "取消了制品收货任务", TrendsTypeEnum.UPDATE);
return productreceiptJobMainMapper.updateById(productreceiptJobMainDO);
}
@Override
@Transactional
public Integer closeProductreceiptJobMain(Long id) {
ProductreceiptJobMainDO productreceiptJobMainDO = this.validateProductreceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(productreceiptJobMainDO.getStatus());
if(!jobStatusState.close()) {
throw exception(PRODUCTRECEIPT_JOB_MAIN_STATUS_ERROR);
}
productreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "productreceiptJob", "关闭了制品收货任务", TrendsTypeEnum.UPDATE);
return productreceiptJobMainMapper.updateById(productreceiptJobMainDO);
}
@Override
@Transactional
public String executeProductreceiptJobMain(ProductreceiptJobMainUpdateReqVO updateReqVO) {
//查询数据
ProductreceiptJobMainDO productreceiptJobMainDO = this.validateProductreceiptJobMainExists(updateReqVO.getId());
List<ProductreceiptJobDetailDO> subList = productreceiptJobDetailService.selectList(productreceiptJobMainDO.getId());
JobStatusState jobStatusState = new JobStatusState(productreceiptJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if(!flag) {
throw new ServiceException(PRODUCTRECEIPT_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
productreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
productreceiptJobMainDO.setCompleteTime(LocalDateTime.now());
productreceiptJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
productreceiptJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
int result = productreceiptJobMainMapper.updateById(productreceiptJobMainDO);
//创建 记录 主表
ProductreceiptRecordMainDO productreceiptRecordMainDO = new ProductreceiptRecordMainDO();
BeanUtils.copyProperties(productreceiptJobMainDO, productreceiptRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_RECORD.getCode());
productreceiptRecordMainDO.setNumber(number);
productreceiptRecordMainDO.setRequestNumber(productreceiptJobMainDO.getRequestNumber());
productreceiptRecordMainDO.setJobNumber(productreceiptJobMainDO.getNumber());
productreceiptRecordMainDO.setWorkshopCode(productreceiptJobMainDO.getWorkShopCode());
productreceiptRecordMainDO.setExecuteTime(LocalDateTime.now());
productreceiptRecordMainDO.setActiveDate(LocalDateTime.now());
productreceiptRecordMainDO.setAvailable("TRUE");
productreceiptRecordMainDO.setDueTime(productreceiptJobMainDO.getRequestDueTime());
productreceiptRecordMainDO.setId(null);
productreceiptRecordMainDO.setCreator(null);
productreceiptRecordMainDO.setCreateTime(null);
productreceiptRecordMainDO.setUpdater(null);
productreceiptRecordMainDO.setUpdateTime(null);
// 接口类型
productreceiptRecordMainDO.setInterfaceType(recordsettingService.selectRecordsettingExist("IssueRecord").getInterfaceType());
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRecord");
productreceiptRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
productreceiptRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType());
productreceiptRecordMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
productreceiptRecordMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
productreceiptRecordMainDO.setBusinessType(businesstypeDO.getCode());
productreceiptRecordMainMapper.insert(productreceiptRecordMainDO);
// 获取参数中的sublist
List<ProductreceiptJobDetailUpdateReqVO> productreceiptJobDetailUpdateReqVOList = updateReqVO.getSubList();
//发料记录子
List<ProductreceiptRecordDetailDO> productreceiptRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
subList.forEach(subListItem -> {
// 获取参数中recordLst
productreceiptJobDetailUpdateReqVOList.forEach(DetailUpdateItem -> {
// 匹配任务子表与参数中子表
if (DetailUpdateItem.getId().equals(subListItem.getId())) {
ProductreceiptRecordDetailDO productreceiptRecordDetailDO = new ProductreceiptRecordDetailDO();
BeanUtils.copyProperties(subListItem, productreceiptRecordDetailDO);
productreceiptRecordDetailDO.setNumber(number);
productreceiptRecordDetailDO.setMasterId(productreceiptRecordMainDO.getId());
productreceiptRecordDetailDO.setProductionlineCode(subListItem.getProductionLineCode());
productreceiptRecordDetailDO.setId(null);
productreceiptRecordDetailDO.setCreator(null);
productreceiptRecordDetailDO.setCreateTime(null);
productreceiptRecordDetailDO.setUpdater(null);
productreceiptRecordDetailDO.setUpdateTime(null);
// 根据recordLst 进行赋值子表部分数据
productreceiptRecordDetailDO.setQty(DetailUpdateItem.getHandleQty());
productreceiptRecordDetailDO.setPackingNumber(DetailUpdateItem.getToPackingNumber());
productreceiptRecordDetailDO.setContainerNumber(DetailUpdateItem.getToContainerNumber());
productreceiptRecordDetailDO.setBatch(DetailUpdateItem.getToBatch());
productreceiptRecordDetailDO.setToLocationCode(DetailUpdateItem.getToLocationCode());
productreceiptRecordDetailDO.setInventoryStatus(DetailUpdateItem.getToInventoryStatus());
// 根据 to库位 查询 库位组 库区
LocationDO locationDO = locationService.selectLocation(DetailUpdateItem.getToLocationCode());
productreceiptRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode());
productreceiptRecordDetailDO.setToAreaCode(locationDO.getAreaCode());
productreceiptRecordDetailMapper.insert(productreceiptRecordDetailDO);
productreceiptRecordDetailDOList.add(productreceiptRecordDetailDO); // 不用批量执行 因为要用到返回的id 赋值回冲用
//添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVO);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(productreceiptRecordMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode(productreceiptRecordDetailDO.getToOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVO.setBatch(productreceiptRecordDetailDO.getBatch());
transactionCreateReqVO.setContainerNumber(productreceiptRecordDetailDO.getContainerNumber());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(productreceiptRecordMainDO.getToWarehouseCode());
transactionCreateReqVO.setLocationCode(DetailUpdateItem.getToLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
}
});
});
// if(!productreceiptRecordDetailDOList.isEmpty()) {
// productreceiptRecordDetailMapper.insertBatch(productreceiptRecordDetailDOList);
// }
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入
expectinService.deleteExpectinByJobNumber(productreceiptJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(productreceiptJobMainDO.getId(), "productreceiptJob", "执行了制品收货任务", TrendsTypeEnum.UPDATE);
// 根据单据开关判断是否创建 回冲记录
SwitchDO switchDOBack = switchService.selectSwitchExist("CreateBackflushRecordAfterProductreceiptRecordCreated");
if (switchDOBack.getEffectiveSetValue().equals("TRUE")) {
// 创建 回冲记录(record_backflush_detailb)
generateBackflushRecord(productreceiptRecordMainDO, productreceiptRecordDetailDOList);
}
// 根据单据开关判断是否创建 制品上架申请
SwitchDO switchDO = switchService.selectSwitchExist("CreateProductputawayRequestAfterProductreceiptRecordCreated");
if (switchDO.getEffectiveSetValue().equals("TRUE")) {
// TODO: 创建 制品上架申请
}
return number;
}
/**
* 创建 回冲记录
* @param productreceiptRecordMainDO
* @param productreceiptRecordDetailDOList
*/
private void generateBackflushRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List<ProductreceiptRecordDetailDO> productreceiptRecordDetailDOList) {
List<ProductreceiptRequestDetailDO> productreceiptRequestDetailDOList = productreceiptRequestService.getProductreceiptRequestDetailDOByNumber(productreceiptRecordMainDO.getRequestNumber());
List<BackflushRecordDetailbDO> backflushRecordDetailbDOList = new ArrayList<>();
// 下线结算集合
List<BackflushRecordDetailbDO> offlinesettlementRecordList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(ProductreceiptRequestDetailDO productreceiptRequestDetailDO: productreceiptRequestDetailDOList){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("master_id",productreceiptRequestDetailDO.getId().toString());
List<BackflushRequestDetailbDO> backflushRequestDetailbDOList = backflushRequestDetailbMapper.selectList(queryWrapper);
for(BackflushRequestDetailbDO backflushRequestDetailbDO: backflushRequestDetailbDOList ) {
ProductreceiptRecordDetailDO productreceiptRecordDetailDO = productreceiptRecordDetailDOList.stream().filter(item -> item.getItemCode().equals(productreceiptRequestDetailDO.getItemCode())).collect(Collectors.toList()).get(0);
BackflushRecordDetailbDO backflushRecordDetailbDO = new BackflushRecordDetailbDO();
BeanUtils.copyProperties(backflushRequestDetailbDO,backflushRecordDetailbDO);
backflushRecordDetailbDO.setMasterId(productreceiptRecordDetailDO.getId());
backflushRecordDetailbDO.setNumber(productreceiptRecordDetailDO.getNumber());
backflushRecordDetailbDO.setId(null);
backflushRecordDetailbDO.setCreator(null);
backflushRecordDetailbDO.setCreateTime(null);
backflushRecordDetailbDO.setUpdater(null);
backflushRecordDetailbDO.setUpdateTime(null);
// from_location_code 工位表中原料库位
// 根据 生产线 工位 查询工位信息 并赋值 from_location_code
WorkstationDO workstationDO = workstationService.selectWorkstationExist(productreceiptRecordDetailDO.getWorkStationCode(),productreceiptRecordMainDO.getWorkshopCode(),productreceiptRecordDetailDO.getProductionlineCode());
backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode());
// 根据 from_location_code 查询库存余额
List inventoryStatus = new ArrayList();
inventoryStatus.add("OK");
List<BalanceDO> balanceDOList = balanceService.selectNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode());
backflushRecordDetailbDO.setPackingNumber(balanceDOList.get(0).getPackingNumber());
backflushRecordDetailbDO.setBatch(balanceDOList.get(0).getBatch());
backflushRecordDetailbDO.setInventoryStatus("OK");
backflushRecordDetailbDO.setFromAreaCode(balanceDOList.get(0).getAreaCode());
backflushRecordDetailbDO.setFromLocationGroupCode(balanceDOList.get(0).getLocationGroupCode());
backflushRecordDetailbDOList.add(backflushRecordDetailbDO);
//添加库存事务list
// 出动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(backflushRecordDetailbDO, transactionCreateReqVO);
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist(productreceiptRecordMainDO.getBusinessType());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
transactionCreateReqVO.setOwnerCode("");
transactionCreateReqVO.setRecordNumber(backflushRecordDetailbDO.getNumber());
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(backflushRecordDetailbDO.getPackingNumber());
transactionCreateReqVO.setBatch(backflushRecordDetailbDO.getBatch());
transactionCreateReqVO.setContainerNumber("");
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode("");
transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断 物品 是否为 下线结算物品 创建 下线结算记录
// ItembasicDO itembasicDO = itembasicService.s
// if (backflushRecordDetailbDO.getItemCode()) {
//
// }
offlinesettlementRecordList.add(backflushRecordDetailbDO);
}
}
backflushRecordDetailbMapper.insertBatch(backflushRecordDetailbDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
// TODO:判断 物品 是否为 下线结算物品 创建 下线结算记录
generateOfflinesettlementRecord(productreceiptRecordMainDO, offlinesettlementRecordList);
}
/**
* 创建 下线结算 记录
* @param productreceiptRecordMainDO
* @param offlinesettlementRecordList
*/
private void generateOfflinesettlementRecord(ProductreceiptRecordMainDO productreceiptRecordMainDO, List<BackflushRecordDetailbDO> offlinesettlementRecordList) {
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordDetailService.java

@ -80,4 +80,6 @@ public interface ProductreceiptRecordDetailService {
* @return 分页列表
*/
PageResult<ProductreceiptRecordDetailDO> getProductreceiptRecordDetailSenior(CustomConditions conditions);
List<ProductreceiptRecordDetailDO> selectList(Long id);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordDetailServiceImpl.java

@ -88,4 +88,9 @@ public class ProductreceiptRecordDetailServiceImpl implements ProductreceiptReco
public PageResult<ProductreceiptRecordDetailDO> getProductreceiptRecordDetailSenior(CustomConditions conditions) {
return productreceiptRecordDetailMapper.selectSenior(conditions);
}
@Override
public List<ProductreceiptRecordDetailDO> selectList(Long masterId) {
return productreceiptRecordDetailMapper.selectList(masterId);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java

@ -80,4 +80,6 @@ public interface ProductreceiptRecordMainService {
* @return 分页列表
*/
PageResult<ProductreceiptRecordMainDO> getProductreceiptRecordMainSenior(CustomConditions conditions);
List<ProductreceiptRecordMainDO> getProductreceiptRecordMainList(CustomConditions conditions);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java

@ -88,4 +88,9 @@ public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecord
public PageResult<ProductreceiptRecordMainDO> getProductreceiptRecordMainSenior(CustomConditions conditions) {
return productreceiptRecordMainMapper.selectSenior(conditions);
}
@Override
public List<ProductreceiptRecordMainDO> getProductreceiptRecordMainList(CustomConditions conditions) {
return productreceiptRecordMainMapper.selectSeniorList(conditions);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainService.java

@ -84,6 +84,8 @@ public interface ProductreceiptRequestMainService {
List<ProductreceiptRequestImportErrorVO> importProductreceiptRequestList(List<ProductreceiptRequestMainCreateReqVO> createReqVOList, Integer mode, Boolean updatePart);
List<ProductreceiptRequestDetailDO> getProductreceiptRequestDetailDOByNumber(String requestNumber);
void generateBackflushRequest(ProductreceiptRequestDetailDO detailbDO);
Integer closeProductreceiptRequestMain(Long id);

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java

@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
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;
@ -500,6 +501,13 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque
return errorList;
}
@Override
public List<ProductreceiptRequestDetailDO> getProductreceiptRequestDetailDOByNumber(String requestNumber) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("number", requestNumber);
return productreceiptRequestDetailMapper.selectList(queryWrapper);
}
/**
* 创建 制品收货申请第二子表bom相关
* @param detailbDO

Loading…
Cancel
Save