Browse Source

制品拆解申请

master
陈薪名 2 years ago
parent
commit
c756e55931
  1. 4
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/ProductdismantleRequestDetailbController.java
  3. 132
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/ProductdismantleRequestMainController.java
  4. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaBaseVO.java
  5. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaCreateReqVO.java
  6. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaExcelVO.java
  7. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaExportReqVO.java
  8. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaPageReqVO.java
  9. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaUpdateReqVO.java
  10. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbBaseVO.java
  11. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbExcelVO.java
  12. 21
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbExportReqVO.java
  13. 21
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbPageReqVO.java
  14. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbRespVO.java
  15. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestMainCreateReqVO.java
  16. 120
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestMainExcelVO.java
  17. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestDetailbConvert.java
  18. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestMainConvert.java
  19. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRecord/ProductdismantleRecordDetailaDO.java
  20. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRecord/ProductdismantleRecordDetailbDO.java
  21. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRequest/ProductdismantleRequestDetailaDO.java
  22. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRequest/ProductdismantleRequestDetailbDO.java
  23. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRequest/ProductdismantleRequestMainDO.java
  24. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRequest/ProductdismantleRequestDetailaMapper.java
  25. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRequest/ProductdismantleRequestDetailbMapper.java
  26. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRequest/ProductdismantleRequestMainMapper.java
  27. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaService.java
  28. 137
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java
  29. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailbService.java
  30. 110
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailbServiceImpl.java
  31. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainService.java
  32. 515
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java
  33. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/shift/ShiftServiceImpl.java
  34. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamServiceImpl.java

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

@ -678,6 +678,9 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCTDISMANTLE_REQUEST_DETAILA_NOT_EXISTS = new ErrorCode(1_001_105_001, "制品拆解申请子不存在"); ErrorCode PRODUCTDISMANTLE_REQUEST_DETAILA_NOT_EXISTS = new ErrorCode(1_001_105_001, "制品拆解申请子不存在");
//制品拆解申请子ErrorCode //制品拆解申请子ErrorCode
ErrorCode DISMANTLE_REQUEST_DETAILB_NOT_EXISTS = new ErrorCode(1_001_105_002, "制品拆解申请子不存在"); ErrorCode DISMANTLE_REQUEST_DETAILB_NOT_EXISTS = new ErrorCode(1_001_105_002, "制品拆解申请子不存在");
ErrorCode DISMANTLE_REQUEST_BOM_NOT_EXISTS = new ErrorCode(1_001_105_002, "没有添加Bom信息");
ErrorCode DISMANTLE_REQUEST_JOB_EXISTS = new ErrorCode(1_001_105_003, "制品拆解申请存在任务单");
ErrorCode DISMANTLE_REQUEST_MAIN_STATUS_ERROR = new ErrorCode(1_001_105_003, "制品拆解申请状态错误");
//制品拆解任务主ErrorCode //制品拆解任务主ErrorCode
ErrorCode PRODUCTDISMANTLE_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_106_000, "制品拆解任务主不存在"); ErrorCode PRODUCTDISMANTLE_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_106_000, "制品拆解任务主不存在");
//制品拆解任务子ErrorCode //制品拆解任务子ErrorCode
@ -691,6 +694,7 @@ public interface ErrorCodeConstants {
//制品拆解记录子ErrorCode //制品拆解记录子ErrorCode
ErrorCode PRODUCTDISMANTLE_RECORD_DETAILA_NOT_EXISTS = new ErrorCode(1_001_107_002, "制品拆解记录子不存在"); ErrorCode PRODUCTDISMANTLE_RECORD_DETAILA_NOT_EXISTS = new ErrorCode(1_001_107_002, "制品拆解记录子不存在");
ErrorCode PRODUCTDISMANTLE_REQUEST_DETAILA_QTY_ERROR = new ErrorCode(1_000_107_003, "制品拆解数量【{}】不能大于库存数量【{}】");
//制品返修申请主ErrorCode //制品返修申请主ErrorCode
ErrorCode PRODUCTREPAIR_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_108_000, "制品返修申请主不存在"); ErrorCode PRODUCTREPAIR_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_108_000, "制品返修申请主不存在");

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/ProductdismantleRequestDetailbController.java

@ -8,6 +8,8 @@ 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.productdismantleRequest.vo.*; import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestBomRespVO;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaPageReqVO;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO;
import com.win.module.wms.service.productdismantleRequest.ProductdismantleRequestDetailbService; import com.win.module.wms.service.productdismantleRequest.ProductdismantleRequestDetailbService;
@ -47,11 +49,11 @@ public class ProductdismantleRequestDetailbController {
return success(productdismantleRequestDetailbService.createDismantleRequestDetailb(createReqVO)); return success(productdismantleRequestDetailbService.createDismantleRequestDetailb(createReqVO));
} }
@PutMapping("/update") @PostMapping("/update")
@Operation(summary = "更新制品拆解申请子") @Operation(summary = "更新制品拆解申请子")
@PreAuthorize("@ss.hasPermission('wms:dismantle-request-detailb:update')") @PreAuthorize("@ss.hasPermission('wms:dismantle-request-detailb:update')")
public CommonResult<Boolean> updateDismantleRequestDetailb(@Valid @RequestBody ProductdismantleRequestDetailbUpdateReqVO updateReqVO) { public CommonResult<Boolean> updateDismantleRequestDetailb(@RequestParam("id") Long id, @RequestBody List<ProductdismantleRequestDetailbUpdateReqVO> updateReqVOList) {
productdismantleRequestDetailbService.updateDismantleRequestDetailb(updateReqVO); productdismantleRequestDetailbService.updateDismantleRequestDetailb(id, updateReqVOList);
return success(true); return success(true);
} }
@ -122,4 +124,12 @@ public class ProductdismantleRequestDetailbController {
return success(result); return success(result);
} }
@GetMapping("/bomPage")
@Operation(summary = "获取BOM接口")
@PreAuthorize("@ss.hasPermission('wms:dismantle-request-main:query')")
public CommonResult<PageResult<ProductdismantleRequestDetailbRespVO>> getBomInfoPage(ProductdismantleRequestDetailaPageReqVO pageVO) {
PageResult<ProductdismantleRequestDetailbRespVO> pageResult = productdismantleRequestDetailbService.getBomInfoPage(pageVO);
return success(pageResult);
}
} }

132
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/ProductdismantleRequestMainController.java

@ -3,13 +3,17 @@ package com.win.module.wms.controller.productdismantleRequest;
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.productdismantleRequest.vo.*; import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestMainConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestMainConvert;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productdismantleRequest.ProductdismantleRequestDetailaService;
import com.win.module.wms.service.productdismantleRequest.ProductdismantleRequestMainService; import com.win.module.wms.service.productdismantleRequest.ProductdismantleRequestMainService;
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;
@ -22,8 +26,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,6 +37,8 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Validated @Validated
public class ProductdismantleRequestMainController { public class ProductdismantleRequestMainController {
@Resource
private ProductdismantleRequestDetailaService productdismantleRequestDetailaService;
@Resource @Resource
private ProductdismantleRequestMainService productdismantleRequestMainService; private ProductdismantleRequestMainService productdismantleRequestMainService;
@ -90,23 +95,6 @@ public class ProductdismantleRequestMainController {
return success(ProductdismantleRequestMainConvert.INSTANCE.convertPage(pageResult)); return success(ProductdismantleRequestMainConvert.INSTANCE.convertPage(pageResult));
} }
@GetMapping("/export-excel")
@Operation(summary = "导出制品拆解申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductdismantleRequestMainExcel(@Valid ProductdismantleRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductdismantleRequestMainDO> list = productdismantleRequestMainService.getProductdismantleRequestMainList(exportReqVO);
// 导出 Excel
List<ProductdismantleRequestMainExcelVO> datas = ProductdismantleRequestMainConvert.INSTANCE.convertList02(list);
for(ProductdismantleRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "制品拆解申请主.xls", "数据", ProductdismantleRequestMainExcelVO.class, datas);
}
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得制品拆解申请主分页") @Operation(summary = "高级搜索获得制品拆解申请主分页")
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:query')") @PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:query')")
@ -121,4 +109,110 @@ public class ProductdismantleRequestMainController {
return success(result); return success(result);
} }
private List<ProductdismantleRequestMainExcelVO> getExcelVo(List<ProductdismantleRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] truefalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(12, truefalse);
mapDropDown.put(13, truefalse);
mapDropDown.put(14, truefalse);
mapDropDown.put(15, truefalse);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(33, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(40, uom);
List<ProductdismantleRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(ProductdismantleRequestMainDO mainDO : list) {
List<ProductdismantleRequestDetailaDO> subList = productdismantleRequestDetailaService.selectList(mainDO.getId());
for(ProductdismantleRequestDetailaDO detailDO : subList) {
ProductdismantleRequestMainExcelVO vo = ProductdismantleRequestMainConvert.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:productdismantle-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductdismantleRequestMainExcel(@Valid ProductdismantleRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductdismantleRequestMainDO> list = productdismantleRequestMainService.getProductdismantleRequestMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductdismantleRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "制品拆解申请.xlsx", "制品拆解申请", ProductdismantleRequestMainExcelVO.class, resultList, mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出制品拆解申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductdismantleRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ProductdismantleRequestMainDO> list = productdismantleRequestMainService.getProductdismantleRequestMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductdismantleRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "制品拆解申请.xlsx", "制品拆解申请", ProductdismantleRequestMainExcelVO.class, resultList, mapDropDown);
}
@PutMapping("/close")
@Operation(summary = "关闭")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:close')")
public CommonResult<Boolean> closeProductdismantleRequestMain(@RequestParam("id") Long id) {
Integer count = productdismantleRequestMainService.closeProductdismantleRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:reAdd')")
public CommonResult<Boolean> reAddProductdismantleRequestMain(@RequestParam("id") Long id) {
Integer count = productdismantleRequestMainService.reAddProductdismantleRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交审批")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:submit')")
public CommonResult<Boolean> submitProductdismantleRequestMain(@RequestParam("id") Long id) {
Integer count = productdismantleRequestMainService.submitProductdismantleRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "驳回")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:refused')")
public CommonResult<Boolean> refusedProductdismantleRequestMain(@RequestParam("id") Long id) {
Integer count = productdismantleRequestMainService.refusedProductdismantleRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:agree')")
public CommonResult<Boolean> agreeProductdismantleRequestMain(@RequestParam("id") Long id) {
Integer count = productdismantleRequestMainService.agreeProductdismantleRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productdismantle-request-main:handle')")
public CommonResult<Boolean> handleProductdismantleRequestMain(@RequestParam("id") Long id) {
Integer count = productdismantleRequestMainService.handleProductdismantleRequestMain(id);
return success(count > 0);
}
} }

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaBaseVO.java

@ -84,10 +84,10 @@ public class ProductdismantleRequestDetailaBaseVO {
private String itemDesc2; private String itemDesc2;
@Schema(description = "项目代码") @Schema(description = "项目代码")
private String projectOde; private String projectCode;
@Schema(description = "数量") @Schema(description = "数量")
private Double qty; private BigDecimal qty;
@Schema(description = "计量单位") @Schema(description = "计量单位")
private String uom; private String uom;
@ -105,4 +105,10 @@ public class ProductdismantleRequestDetailaBaseVO {
@Schema(description = "从货主代码") @Schema(description = "从货主代码")
private String fromOwnerCode; private String fromOwnerCode;
@Schema(description = "bom版本")
private String bomVersion;
@Schema(description = "主表ID")
private String masterId;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.productdismantleRequest.vo; package com.win.module.wms.controller.productdismantleRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO;
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 ProductdismantleRequestDetailaCreateReqVO extends ProductdismantleRequestDetailaBaseVO { public class ProductdismantleRequestDetailaCreateReqVO extends ProductdismantleRequestDetailaBaseVO {
@SubObject
@Schema(description = "二级子表数据")
private List<ProductdismantleRequestDetailbCreateReqVO> childList;
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaExcelVO.java

@ -82,7 +82,7 @@ public class ProductdismantleRequestDetailaExcelVO {
private String itemDesc2; private String itemDesc2;
@ExcelProperty("项目代码") @ExcelProperty("项目代码")
private String projectOde; private String projectCode;
@ExcelProperty("数量") @ExcelProperty("数量")
private Double qty; private Double qty;
@ -103,4 +103,7 @@ public class ProductdismantleRequestDetailaExcelVO {
@ExcelProperty("从货主代码") @ExcelProperty("从货主代码")
private String fromOwnerCode; private String fromOwnerCode;
@ExcelProperty("bom版本")
private String bomVersion;
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaExportReqVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productdismantleRequest.vo; package com.win.module.wms.controller.productdismantleRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*; import lombok.*;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -76,7 +77,7 @@ public class ProductdismantleRequestDetailaExportReqVO {
private String itemDesc2; private String itemDesc2;
@Schema(description = "项目代码") @Schema(description = "项目代码")
private String projectOde; private String projectCode;
@Schema(description = "数量") @Schema(description = "数量")
private Double qty; private Double qty;
@ -91,10 +92,16 @@ public class ProductdismantleRequestDetailaExportReqVO {
@Schema(description = "最后更新者用户名") @Schema(description = "最后更新者用户名")
private String updater; private String updater;
@Schema(description = "bom版本")
private String bomVersion;
@Schema(description = "从库位代码") @Schema(description = "从库位代码")
private String fromLocationCode; private String fromLocationCode;
@Schema(description = "从货主代码") @Schema(description = "从货主代码")
private String fromOwnerCode; private String fromOwnerCode;
@Schema(description = "主表ID")
private Long masterId;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaPageReqVO.java

@ -78,7 +78,7 @@ public class ProductdismantleRequestDetailaPageReqVO extends PageParam {
private String itemDesc2; private String itemDesc2;
@Schema(description = "项目代码") @Schema(description = "项目代码")
private String projectOde; private String projectCode;
@Schema(description = "数量") @Schema(description = "数量")
private Double qty; private Double qty;
@ -99,4 +99,10 @@ public class ProductdismantleRequestDetailaPageReqVO extends PageParam {
@Schema(description = "从货主代码") @Schema(description = "从货主代码")
private String fromOwnerCode; private String fromOwnerCode;
@Schema(description = "bom版本")
private String bomVersion;
@Schema(description = "主表ID")
private Long masterId;
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailaUpdateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.productdismantleRequest.vo; package com.win.module.wms.controller.productdismantleRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
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 ProductdismantleRequestDetailaUpdateReqVO extends ProductdismantleRequestDetailaBaseVO { public class ProductdismantleRequestDetailaUpdateReqVO extends ProductdismantleRequestDetailaBaseVO {
@SubObject
@Schema(description = "二级子表数据")
private List<ProductdismantleRequestDetailbCreateReqVO> childList;
} }

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbBaseVO.java

@ -72,4 +72,22 @@ public class ProductdismantleRequestDetailbBaseVO {
@Schema(description = "地点ID") @Schema(description = "地点ID")
private String siteId; private String siteId;
@Schema(description = "批次")
private String batch;
@Schema(description = "到库位代码")
private String toLocationCode;
@Schema(description = "到库位组代码")
private String toLocationGroupCode;
@Schema(description = "到库区代码")
private String toAreaCode;
@Schema(description = "库存状态")
private String inventoryStatus;
@Schema(description = "包装号")
private String packingNumber;
} }

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbExcelVO.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.productdismantleRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -66,4 +67,22 @@ public class ProductdismantleRequestDetailbExcelVO {
@ExcelProperty("地点ID") @ExcelProperty("地点ID")
private String siteId; private String siteId;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("到库位组代码")
private String toLocationGroupCode;
@ExcelProperty("到库区代码")
private String toAreaCode;
@ExcelProperty("库存状态")
private String inventoryStatus;
@ExcelProperty("包装号")
private String packingNumber;
} }

21
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbExportReqVO.java

@ -63,4 +63,25 @@ public class ProductdismantleRequestDetailbExportReqVO {
@Schema(description = "地点ID") @Schema(description = "地点ID")
private String siteId; private String siteId;
@Schema(description = "批次")
private String batch;
@Schema(description = "到库位代码")
private String toLocationCode;
@Schema(description = "到库位组代码")
private String toLocationGroupCode;
@Schema(description = "到库区代码")
private String toAreaCode;
@Schema(description = "库存状态")
private String inventoryStatus;
@Schema(description = "包装号")
private String packingNumber;
@Schema(description = "主表ID")
private Long masterId;
} }

21
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbPageReqVO.java

@ -68,4 +68,25 @@ public class ProductdismantleRequestDetailbPageReqVO extends PageParam {
@Schema(description = "地点ID") @Schema(description = "地点ID")
private String siteId; private String siteId;
@Schema(description = "批次")
private String batch;
@Schema(description = "到库位代码")
private String toLocationCode;
@Schema(description = "到库位组代码")
private String toLocationGroupCode;
@Schema(description = "到库区代码")
private String toAreaCode;
@Schema(description = "库存状态")
private String inventoryStatus;
@Schema(description = "包装号")
private String packingNumber;
@Schema(description = "主表ID")
private Long masterId;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestDetailbRespVO.java

@ -5,10 +5,16 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 制品拆解申请子 Response VO") @Schema(description = "管理后台 - 制品拆解申请子 Response VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class ProductdismantleRequestDetailbRespVO extends ProductdismantleRequestDetailbBaseVO { public class ProductdismantleRequestDetailbRespVO extends ProductdismantleRequestDetailbBaseVO {
private String itemCode;
private String uom;
private BigDecimal qty;
private String version;
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestMainCreateReqVO.java

@ -1,12 +1,19 @@
package com.win.module.wms.controller.productdismantleRequest.vo; package com.win.module.wms.controller.productdismantleRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaCreateReqVO;
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 ProductdismantleRequestMainCreateReqVO extends ProductdismantleRequestMainBaseVO { public class ProductdismantleRequestMainCreateReqVO extends ProductdismantleRequestMainBaseVO {
@SubObject
@Schema(description = "一级子表数据")
private List<ProductdismantleRequestDetailaCreateReqVO> subList;
} }

120
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRequest/vo/ProductdismantleRequestMainExcelVO.java

@ -1,5 +1,7 @@
package com.win.module.wms.controller.productdismantleRequest.vo; package com.win.module.wms.controller.productdismantleRequest.vo;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusConverter;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -21,6 +23,9 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class ProductdismantleRequestMainExcelVO { public class ProductdismantleRequestMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("车间代码") @ExcelProperty("车间代码")
private String workshopCode; private String workshopCode;
@ -30,22 +35,46 @@ public class ProductdismantleRequestMainExcelVO {
@ExcelProperty("班次") @ExcelProperty("班次")
private String shift; private String shift;
@ExcelProperty("从仓库代码") @ExcelProperty("申请时间")
private String fromWarehouseCode; private LocalDateTime requestTime;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @ExcelProperty("截止时间")
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private LocalDateTime dueTime;
@ExcelProperty(value = "状态", converter = RequestStatusConverter.class)
private String status;
@ExcelProperty("从库位类型范围")
private String fromLocationTypes; private String fromLocationTypes;
@ExcelProperty("从库区代码范围") @ExcelProperty("从库区代码范围")
private String fromAreaCodes; private String fromAreaCodes;
@ExcelProperty("单据号") @ExcelProperty("从仓库代码")
private String number; private String fromWarehouseCode;
@ExcelProperty("业务类型") @ExcelProperty("业务类型")
private String businessType; private String businessType;
@ExcelProperty("部门")
private String departmentCode;
@ExcelProperty(value = "自动提交", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoCommit;
@ExcelProperty(value = "自动通过", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoAgree;
@ExcelProperty(value = "自动执行", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoExecute;
@ExcelProperty(value = "直接生成记录", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String directCreateRecord;
@ExcelProperty("备注") @ExcelProperty("备注")
private String remark; private String remark;
@ -54,36 +83,73 @@ public class ProductdismantleRequestMainExcelVO {
@ExcelProperty("创建者用户名") @ExcelProperty("创建者用户名")
private String creator; private String creator;
@ExcelProperty("最后更新时间")
private LocalDateTime updateTime;
@ExcelProperty("申请时间") @ExcelProperty("最后更新者用户名")
private LocalDateTime requestTime; private String updater;
@ExcelProperty("截止时间") // 子表a
private LocalDateTime dueTime; @ExcelProperty("生产线代码")
private String productionLineCode;
@ExcelProperty("部门") @ExcelProperty("工位代码")
private String departmentCode; private String workStationCode;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty("工序代码")
@DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String processCode;
private String status;
@ExcelProperty("最后更新时间") @ExcelProperty("包装号")
private LocalDateTime updateTime; private String packingNumber;
@ExcelProperty("最后更新者用户名") @ExcelProperty("器具号")
private String updater; private String containerNumber;
@ExcelProperty("自动提交") @ExcelProperty("批次")
private String autoCommit; private String batch;
@ExcelProperty("自动通过") @ExcelProperty("生产日期")
private String autoAgree; private String produceDate;
@ExcelProperty("自动执行") @ExcelProperty("过期日期")
private String autoExecute; private String expireDate;
@ExcelProperty("直接生成记录") @ExcelProperty("从库位代码")
private String directCreateRecord; private String fromLocationCode;
@ExcelProperty("从库位组代码")
private String fromLocationGroupCode;
@ExcelProperty("从库区代码")
private String fromAreaCode;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@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;
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestDetailbConvert.java

@ -32,5 +32,4 @@ public interface ProductdismantleRequestDetailbConvert {
PageResult<ProductdismantleRequestDetailbRespVO> convertPage(PageResult<ProductdismantleRequestDetailbDO> page); PageResult<ProductdismantleRequestDetailbRespVO> convertPage(PageResult<ProductdismantleRequestDetailbDO> page);
List<ProductdismantleRequestDetailbExcelVO> convertList02(List<ProductdismantleRequestDetailbDO> list); List<ProductdismantleRequestDetailbExcelVO> convertList02(List<ProductdismantleRequestDetailbDO> list);
} }

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRequest/ProductdismantleRequestMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.productdismantleRequest.vo.Productdismantle
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainExcelVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainExcelVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainRespVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainRespVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainUpdateReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
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.productdismantleRequest.ProductdismantleRequestMainDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO;
@ -33,5 +36,13 @@ public interface ProductdismantleRequestMainConvert {
PageResult<ProductdismantleRequestMainRespVO> convertPage(PageResult<ProductdismantleRequestMainDO> page); PageResult<ProductdismantleRequestMainRespVO> convertPage(PageResult<ProductdismantleRequestMainDO> page);
List<ProductdismantleRequestMainExcelVO> convertList02(List<ProductdismantleRequestMainDO> list); List<ProductdismantleRequestMainExcelVO> convertList02(List<ProductdismantleRequestMainDO> 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"),
})
ProductdismantleRequestMainExcelVO convert(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDO);
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRecord/ProductdismantleRecordDetailaDO.java

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

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRecord/ProductdismantleRecordDetailbDO.java

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

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRequest/ProductdismantleRequestDetailaDO.java

@ -84,7 +84,7 @@ public class ProductdismantleRequestDetailaDO extends BaseDO {
/** /**
* 主表ID * 主表ID
*/ */
private String masterId; private Long masterId;
/** /**
* 单据号 * 单据号
*/ */
@ -116,11 +116,11 @@ public class ProductdismantleRequestDetailaDO extends BaseDO {
/** /**
* 项目代码 * 项目代码
*/ */
private String projectOde; private String projectCode;
/** /**
* 数量 * 数量
*/ */
private Double qty; private BigDecimal qty;
/** /**
* 计量单位 * 计量单位
* *
@ -139,5 +139,9 @@ public class ProductdismantleRequestDetailaDO extends BaseDO {
* 从货主代码 * 从货主代码
*/ */
private String fromOwnerCode; private String fromOwnerCode;
/**
* bom版本
*/
private String bomVersion;
} }

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRequest/ProductdismantleRequestDetailbDO.java

@ -42,7 +42,7 @@ public class ProductdismantleRequestDetailbDO extends BaseDO {
/** /**
* 主表ID * 主表ID
*/ */
private String masterId; private Long masterId;
/** /**
* 单据号 * 单据号
*/ */
@ -86,4 +86,34 @@ public class ProductdismantleRequestDetailbDO extends BaseDO {
*/ */
private String siteId; private String siteId;
/**
* 批次
*/
// private String batch;
/**
* 到库位代码
*/
// private String toLocationCode;
/**
* 到库位组代码
*/
// private String toLocationGroupCode;
/**
* 到库区代码
*/
// private String toAreaCode;
/**
* 库存状态
*/
// private String inventoryStatus;
/**
* 包装号
*/
// private String packingNumber;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productdismantleRequest/ProductdismantleRequestMainDO.java

@ -124,5 +124,13 @@ public class ProductdismantleRequestMainDO extends BaseDO {
* 直接生成记录 * 直接生成记录
*/ */
private String directCreateRecord; private String directCreateRecord;
/**
* 入库库存状态范围
*/
private String inInventoryStatuses;
/**
* 出库库存状态范围
*/
private String outInventoryStatuses;
} }

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRequest/ProductdismantleRequestDetailaMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaExportReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaExportReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaPageReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaPageReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface ProductdismantleRequestDetailaMapper extends BaseMapperX<Produc
default PageResult<ProductdismantleRequestDetailaDO> selectPage(ProductdismantleRequestDetailaPageReqVO reqVO) { default PageResult<ProductdismantleRequestDetailaDO> selectPage(ProductdismantleRequestDetailaPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ProductdismantleRequestDetailaDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ProductdismantleRequestDetailaDO>()
.eqIfPresent(ProductdismantleRequestDetailaDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductdismantleRequestDetailaDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProductdismantleRequestDetailaDO::getProductionLineCode, reqVO.getProductionLineCode())
.eqIfPresent(ProductdismantleRequestDetailaDO::getWorkStationCode, reqVO.getWorkStationCode()) .eqIfPresent(ProductdismantleRequestDetailaDO::getWorkStationCode, reqVO.getWorkStationCode())
.eqIfPresent(ProductdismantleRequestDetailaDO::getProcessCode, reqVO.getProcessCode()) .eqIfPresent(ProductdismantleRequestDetailaDO::getProcessCode, reqVO.getProcessCode())
@ -41,7 +43,7 @@ public interface ProductdismantleRequestDetailaMapper extends BaseMapperX<Produc
.likeIfPresent(ProductdismantleRequestDetailaDO::getItemName, reqVO.getItemName()) .likeIfPresent(ProductdismantleRequestDetailaDO::getItemName, reqVO.getItemName())
.eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc1, reqVO.getItemDesc1()) .eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc1, reqVO.getItemDesc1())
.eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc2, reqVO.getItemDesc2()) .eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc2, reqVO.getItemDesc2())
.eqIfPresent(ProductdismantleRequestDetailaDO::getProjectOde, reqVO.getProjectOde()) .eqIfPresent(ProductdismantleRequestDetailaDO::getProjectCode, reqVO.getProjectCode())
.eqIfPresent(ProductdismantleRequestDetailaDO::getQty, reqVO.getQty()) .eqIfPresent(ProductdismantleRequestDetailaDO::getQty, reqVO.getQty())
.eqIfPresent(ProductdismantleRequestDetailaDO::getUom, reqVO.getUom()) .eqIfPresent(ProductdismantleRequestDetailaDO::getUom, reqVO.getUom())
.betweenIfPresent(ProductdismantleRequestDetailaDO::getUpdateTime, reqVO.getUpdateTime()) .betweenIfPresent(ProductdismantleRequestDetailaDO::getUpdateTime, reqVO.getUpdateTime())
@ -57,6 +59,7 @@ public interface ProductdismantleRequestDetailaMapper extends BaseMapperX<Produc
default List<ProductdismantleRequestDetailaDO> selectList(ProductdismantleRequestDetailaExportReqVO reqVO) { default List<ProductdismantleRequestDetailaDO> selectList(ProductdismantleRequestDetailaExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ProductdismantleRequestDetailaDO>() return selectList(new LambdaQueryWrapperX<ProductdismantleRequestDetailaDO>()
.eqIfPresent(ProductdismantleRequestDetailaDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductdismantleRequestDetailaDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProductdismantleRequestDetailaDO::getProductionLineCode, reqVO.getProductionLineCode())
.eqIfPresent(ProductdismantleRequestDetailaDO::getWorkStationCode, reqVO.getWorkStationCode()) .eqIfPresent(ProductdismantleRequestDetailaDO::getWorkStationCode, reqVO.getWorkStationCode())
.eqIfPresent(ProductdismantleRequestDetailaDO::getProcessCode, reqVO.getProcessCode()) .eqIfPresent(ProductdismantleRequestDetailaDO::getProcessCode, reqVO.getProcessCode())
@ -76,7 +79,7 @@ public interface ProductdismantleRequestDetailaMapper extends BaseMapperX<Produc
.likeIfPresent(ProductdismantleRequestDetailaDO::getItemName, reqVO.getItemName()) .likeIfPresent(ProductdismantleRequestDetailaDO::getItemName, reqVO.getItemName())
.eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc1, reqVO.getItemDesc1()) .eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc1, reqVO.getItemDesc1())
.eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc2, reqVO.getItemDesc2()) .eqIfPresent(ProductdismantleRequestDetailaDO::getItemDesc2, reqVO.getItemDesc2())
.eqIfPresent(ProductdismantleRequestDetailaDO::getProjectOde, reqVO.getProjectOde()) .eqIfPresent(ProductdismantleRequestDetailaDO::getProjectCode, reqVO.getProjectCode())
.eqIfPresent(ProductdismantleRequestDetailaDO::getQty, reqVO.getQty()) .eqIfPresent(ProductdismantleRequestDetailaDO::getQty, reqVO.getQty())
.eqIfPresent(ProductdismantleRequestDetailaDO::getUom, reqVO.getUom()) .eqIfPresent(ProductdismantleRequestDetailaDO::getUom, reqVO.getUom())
.betweenIfPresent(ProductdismantleRequestDetailaDO::getUpdateTime, reqVO.getUpdateTime()) .betweenIfPresent(ProductdismantleRequestDetailaDO::getUpdateTime, reqVO.getUpdateTime())
@ -86,4 +89,8 @@ public interface ProductdismantleRequestDetailaMapper extends BaseMapperX<Produc
.orderByDesc(ProductdismantleRequestDetailaDO::getId)); .orderByDesc(ProductdismantleRequestDetailaDO::getId));
} }
default List<ProductdismantleRequestDetailaDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<ProductdismantleRequestDetailaDO>()
.eq(ProductdismantleRequestDetailaDO::getMasterId, masterId));
}
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRequest/ProductdismantleRequestDetailbMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbExportReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbExportReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbPageReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbPageReqVO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO;
import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestDetailbDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@ -22,6 +23,7 @@ public interface ProductdismantleRequestDetailbMapper extends BaseMapperX<Produc
default PageResult<ProductdismantleRequestDetailbDO> selectPage(ProductdismantleRequestDetailbPageReqVO reqVO) { default PageResult<ProductdismantleRequestDetailbDO> selectPage(ProductdismantleRequestDetailbPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ProductdismantleRequestDetailbDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ProductdismantleRequestDetailbDO>()
.eqIfPresent(ProductdismantleRequestDetailbDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductdismantleRequestDetailbDO::getProcessCode, reqVO.getProcessCode()) .eqIfPresent(ProductdismantleRequestDetailbDO::getProcessCode, reqVO.getProcessCode())
.eqIfPresent(ProductdismantleRequestDetailbDO::getBomVersion, reqVO.getBomVersion()) .eqIfPresent(ProductdismantleRequestDetailbDO::getBomVersion, reqVO.getBomVersion())
.eqIfPresent(ProductdismantleRequestDetailbDO::getItemCode, reqVO.getItemCode()) .eqIfPresent(ProductdismantleRequestDetailbDO::getItemCode, reqVO.getItemCode())
@ -47,6 +49,7 @@ public interface ProductdismantleRequestDetailbMapper extends BaseMapperX<Produc
default List<ProductdismantleRequestDetailbDO> selectList(ProductdismantleRequestDetailbExportReqVO reqVO) { default List<ProductdismantleRequestDetailbDO> selectList(ProductdismantleRequestDetailbExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ProductdismantleRequestDetailbDO>() return selectList(new LambdaQueryWrapperX<ProductdismantleRequestDetailbDO>()
.eqIfPresent(ProductdismantleRequestDetailbDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductdismantleRequestDetailbDO::getProcessCode, reqVO.getProcessCode()) .eqIfPresent(ProductdismantleRequestDetailbDO::getProcessCode, reqVO.getProcessCode())
.eqIfPresent(ProductdismantleRequestDetailbDO::getBomVersion, reqVO.getBomVersion()) .eqIfPresent(ProductdismantleRequestDetailbDO::getBomVersion, reqVO.getBomVersion())
.eqIfPresent(ProductdismantleRequestDetailbDO::getItemCode, reqVO.getItemCode()) .eqIfPresent(ProductdismantleRequestDetailbDO::getItemCode, reqVO.getItemCode())
@ -66,4 +69,8 @@ public interface ProductdismantleRequestDetailbMapper extends BaseMapperX<Produc
.orderByDesc(ProductdismantleRequestDetailbDO::getId)); .orderByDesc(ProductdismantleRequestDetailbDO::getId));
} }
default List<ProductdismantleRequestDetailbDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<ProductdismantleRequestDetailbDO>()
.eqIfPresent(ProductdismantleRequestDetailbDO::getMasterId,masterId));
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productdismantleRequest/ProductdismantleRequestMainMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainExportReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainExportReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainPageReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -76,4 +77,7 @@ public interface ProductdismantleRequestMainMapper extends BaseMapperX<Productdi
.orderByDesc(ProductdismantleRequestMainDO::getId)); .orderByDesc(ProductdismantleRequestMainDO::getId));
} }
default List<ProductdismantleRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaService.java

@ -2,10 +2,7 @@ package com.win.module.wms.service.productdismantleRequest;
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.productdismantleRequest.vo.ProductdismantleRequestDetailaCreateReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaExportReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaPageReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaUpdateReqVO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
import javax.validation.Valid; import javax.validation.Valid;
@ -81,5 +78,5 @@ public interface ProductdismantleRequestDetailaService {
*/ */
PageResult<ProductdismantleRequestDetailaDO> getProductdismantleRequestDetailaSenior(CustomConditions conditions); PageResult<ProductdismantleRequestDetailaDO> getProductdismantleRequestDetailaSenior(CustomConditions conditions);
List<ProductdismantleRequestDetailaDO> selectList(Long id);
} }

137
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java

@ -1,23 +1,39 @@
package com.win.module.wms.service.productdismantleRequest; package com.win.module.wms.service.productdismantleRequest;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.productdismantleRequest.vo.ProductdismantleRequestDetailaCreateReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaExportReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaPageReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailaUpdateReqVO;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailaConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailaConvert;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert;
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.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailaMapper; import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailaMapper;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailbMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.apache.commons.lang3.StringUtils;
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.ArrayList;
import java.util.Arrays;
import java.util.Collection; 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.PRODUCTDISMANTLE_REQUEST_DETAILA_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
* 制品拆解申请子 Service 实现类 * 制品拆解申请子 Service 实现类
@ -28,39 +44,127 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_REQUE
@Validated @Validated
public class ProductdismantleRequestDetailaServiceImpl implements ProductdismantleRequestDetailaService { public class ProductdismantleRequestDetailaServiceImpl implements ProductdismantleRequestDetailaService {
@Resource
private WorkstationService workstationService;
@Resource
private ProductionlineService productionlineService;
@Resource
private ItembasicService itembasicService;
@Resource
private ProductdismantleRequestDetailbMapper productdismantleRequestDetailbMapper;
@Resource
private JobUtils jobUtils;
@Resource
private ProductdismantleRequestMainService productdismantleRequestMainService;
@Resource @Resource
private ProductdismantleRequestDetailaMapper productdismantleRequestDetailaMapper; private ProductdismantleRequestDetailaMapper productdismantleRequestDetailaMapper;
@Override @Override
@Transactional
public Long createProductdismantleRequestDetaila(ProductdismantleRequestDetailaCreateReqVO createReqVO) { public Long createProductdismantleRequestDetaila(ProductdismantleRequestDetailaCreateReqVO createReqVO) {
// 插入 ProductdismantleRequestDetailaDO detailaDO = ProductdismantleRequestDetailaConvert.INSTANCE.convert(createReqVO);
ProductdismantleRequestDetailaDO productdismantleRequestDetaila = ProductdismantleRequestDetailaConvert.INSTANCE.convert(createReqVO); validatorDetail(detailaDO);
productdismantleRequestDetailaMapper.insert(productdismantleRequestDetaila); productdismantleRequestDetailaMapper.insert(detailaDO);
// 返回 return detailaDO.getId();
return productdismantleRequestDetaila.getId();
} }
@Override @Override
@Transactional
public void updateProductdismantleRequestDetaila(ProductdismantleRequestDetailaUpdateReqVO updateReqVO) { public void updateProductdismantleRequestDetaila(ProductdismantleRequestDetailaUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validateProductdismantleRequestDetailaExists(updateReqVO.getId()); validateProductdismantleRequestDetailaExists(updateReqVO.getId());
// 更新 // 更新
ProductdismantleRequestDetailaDO updateObj = ProductdismantleRequestDetailaConvert.INSTANCE.convert(updateReqVO); ProductdismantleRequestDetailaDO updateObj = ProductdismantleRequestDetailaConvert.INSTANCE.convert(updateReqVO);
validatorDetail(updateObj);
productdismantleRequestDetailaMapper.updateById(updateObj); productdismantleRequestDetailaMapper.updateById(updateObj);
} }
private ProductdismantleRequestDetailaDO validatorDetail(ProductdismantleRequestDetailaDO detailaDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductDisassembleRequest");
// 主表信息
ProductdismantleRequestMainDO mainBo = productdismantleRequestMainService.getProductdismantleRequestMain(detailaDO.getMasterId());
detailaDO.setMasterId(mainBo.getId());
detailaDO.setNumber(mainBo.getNumber());
detailaDO.setInventoryStatus(businesstypeDO.getOutInventoryStatuses());
// 校验
validateDetailMethod(mainBo,detailaDO,businesstypeDO);
return detailaDO;
}
/**
* 校验 子表
* @param mainDO
* @param detailDo
* @param businesstypeDO
*/
private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDo, BusinesstypeDO businesstypeDO) {
// 校验--生产线基本信息
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode());
detailDo.setFromLocationCode(productionlineDO.getRawLocationCode());
// 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
// 赋值物品Item相关信息
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
if (!itembasicDO.getUom().equals(detailDo.getUom())) {
// 提示:计量单位【uom】错误,应该是【item.uom】
throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom());
}
// 校验--工位基础信息
if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode());
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
// 校验--库存余额 TB——>TB1
validateBalance(detailDo,mainDO);
// 校验--物品类型 DBT——>DBT2——>IT
jobUtils.ifInType(itembasicDO.getType(),businesstypeDO);
// 校验--来源库位 DBT——>DBT2——>LO
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
// 校验--库存状态 DBT——>DBT2——>ISO
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO);
}
private void validateBalance(ProductdismantleRequestDetailaDO detailDo, ProductdismantleRequestMainDO mainDO) {
String inventoryStatus = detailDo.getInventoryStatus();
String[] inventoryArray = inventoryStatus.split(",");
List<String> inventorystatus = Arrays.asList(inventoryArray);
List<BalanceDO> list = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus);
if(list != null && list.size() > 0){
BalanceDO balanceDO = list.get(0);
mainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
if(balanceDO.getQty().compareTo(detailDo.getQty()) < 0){
// 拆解数量【qty】不能大于库存数量【banlance.qty】
throw exception(PRODUCTDISMANTLE_REQUEST_DETAILA_QTY_ERROR,detailDo.getQty(),balanceDO.getQty());
}
}else {
// 余额校验异常
throw exception(PRODUCTREPAIR_REQUEST_DETAILA_BALANCE_ERROR);
}
}
@Override @Override
@Transactional
public void deleteProductdismantleRequestDetaila(Long id) { public void deleteProductdismantleRequestDetaila(Long id) {
// 校验存在 // 校验存在
validateProductdismantleRequestDetailaExists(id); ProductdismantleRequestDetailaDO productdismantleRequestDetailaDO = validateProductdismantleRequestDetailaExists(id);
// 删除从子表 Detailb
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("master_id",productdismantleRequestDetailaDO.getMasterId().toString());
productdismantleRequestDetailbMapper.delete(queryWrapper);
// 删除 // 删除
productdismantleRequestDetailaMapper.deleteById(id); productdismantleRequestDetailaMapper.deleteById(id);
} }
private void validateProductdismantleRequestDetailaExists(Long id) { private ProductdismantleRequestDetailaDO validateProductdismantleRequestDetailaExists(Long id) {
if (productdismantleRequestDetailaMapper.selectById(id) == null) { ProductdismantleRequestDetailaDO productdismantleRequestDetailaDO = productdismantleRequestDetailaMapper.selectById(id);
if (productdismantleRequestDetailaDO == null) {
throw exception(PRODUCTDISMANTLE_REQUEST_DETAILA_NOT_EXISTS); throw exception(PRODUCTDISMANTLE_REQUEST_DETAILA_NOT_EXISTS);
} }
return productdismantleRequestDetailaDO;
} }
@Override @Override
@ -88,4 +192,11 @@ public class ProductdismantleRequestDetailaServiceImpl implements Productdismant
return productdismantleRequestDetailaMapper.selectSenior(conditions); return productdismantleRequestDetailaMapper.selectSenior(conditions);
} }
@Override
public List<ProductdismantleRequestDetailaDO> selectList(Long masterId) {
return productdismantleRequestDetailaMapper.selectList(masterId);
}
} }

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailbService.java

@ -2,10 +2,7 @@ package com.win.module.wms.service.productdismantleRequest;
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.productdismantleRequest.vo.ProductdismantleRequestDetailbCreateReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbExportReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbPageReqVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbUpdateReqVO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO;
import javax.validation.Valid; import javax.validation.Valid;
@ -30,9 +27,8 @@ public interface ProductdismantleRequestDetailbService {
/** /**
* 更新制品拆解申请子 * 更新制品拆解申请子
* *
* @param updateReqVO 更新信息
*/ */
void updateDismantleRequestDetailb(@Valid ProductdismantleRequestDetailbUpdateReqVO updateReqVO); void updateDismantleRequestDetailb(Long id, List<ProductdismantleRequestDetailbUpdateReqVO> updateReqVOList);
/** /**
* 删除制品拆解申请子 * 删除制品拆解申请子
@ -80,4 +76,6 @@ public interface ProductdismantleRequestDetailbService {
* @return 分页列表 * @return 分页列表
*/ */
PageResult<ProductdismantleRequestDetailbDO> getProductdismantleRequestDetailbSenior(CustomConditions conditions); PageResult<ProductdismantleRequestDetailbDO> getProductdismantleRequestDetailbSenior(CustomConditions conditions);
PageResult<ProductdismantleRequestDetailbRespVO> getBomInfoPage(ProductdismantleRequestDetailaPageReqVO pageVO);
} }

110
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailbServiceImpl.java

@ -1,21 +1,33 @@
package com.win.module.wms.service.productdismantleRequest; package com.win.module.wms.service.productdismantleRequest;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.productdismantleRequest.vo.ProductdismantleRequestDetailbCreateReqVO; import com.win.framework.mybatis.core.util.MyBatisUtils;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbExportReqVO; import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbPageReqVO; import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestBomRespVO;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestDetailbUpdateReqVO;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert;
import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailbConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO;
import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestDetailbDO;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailaMapper;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailbMapper; import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailbMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.util.JobUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
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 java.util.stream.Collectors;
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.DISMANTLE_REQUEST_DETAILB_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.DISMANTLE_REQUEST_DETAILB_NOT_EXISTS;
@ -29,6 +41,12 @@ import static com.win.module.wms.enums.ErrorCodeConstants.DISMANTLE_REQUEST_DETA
@Validated @Validated
public class ProductdismantleRequestDetailbServiceImpl implements ProductdismantleRequestDetailbService { public class ProductdismantleRequestDetailbServiceImpl implements ProductdismantleRequestDetailbService {
@Resource
private JobUtils jobUtils;
@Resource
private ProductdismantleRequestDetailaMapper productdismantleRequestDetailaMapper;
@Resource
private ItembasicService itembasicService;
@Resource @Resource
private ProductdismantleRequestDetailbMapper productdismantleRequestDetailbMapper; private ProductdismantleRequestDetailbMapper productdismantleRequestDetailbMapper;
@ -42,12 +60,48 @@ public class ProductdismantleRequestDetailbServiceImpl implements Productdismant
} }
@Override @Override
public void updateDismantleRequestDetailb(ProductdismantleRequestDetailbUpdateReqVO updateReqVO) { @Transactional
public void updateDismantleRequestDetailb(Long id,List<ProductdismantleRequestDetailbUpdateReqVO> updateReqVOList) {
// 校验存在 // 校验存在
validateDismantleRequestDetailbExists(updateReqVO.getId()); // validateDismantleRequestDetailbExists(updateReqVO.getId());
// 更新 // 更新
ProductdismantleRequestDetailbDO updateObj = ProductdismantleRequestDetailbConvert.INSTANCE.convert(updateReqVO); // ProductdismantleRequestDetailbDO updateObj = ProductdismantleRequestDetailbConvert.INSTANCE.convert(updateReqVO);
productdismantleRequestDetailbMapper.updateById(updateObj); // productdismantleRequestDetailbMapper.updateById(updateObj);
validateDetailbBom(id, updateReqVOList);
}
/**
* 创建 二级 子表数据
* @param id
* @param consumereDetailbList
*/
private void validateDetailbBom(Long id, List<ProductdismantleRequestDetailbUpdateReqVO> consumereDetailbList) {
// 删除从子表 Detailb
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("master_id",id.toString());
productdismantleRequestDetailbMapper.delete(queryWrapper);
QueryWrapper queryWrapperDetaila = new QueryWrapper<>();
queryWrapperDetaila.eq("id",id.toString());
ProductdismantleRequestDetailaDO detailaDO = productdismantleRequestDetailaMapper.selectOne(queryWrapperDetaila);
List<ProductdismantleRequestDetailbDO> childList = new ArrayList<>();
for(ProductdismantleRequestDetailbUpdateReqVO productdismantleRequestDetailbUpdateReqVO:consumereDetailbList){
ProductdismantleRequestDetailbDO detailbDO = ProductdismantleRequestDetailbConvert.INSTANCE.convert(productdismantleRequestDetailbUpdateReqVO);
detailbDO.setProcessCode(detailaDO.getProcessCode());
detailbDO.setBomVersion(detailaDO.getBomVersion());
detailbDO.setMasterId(detailaDO.getId());
detailbDO.setNumber(detailaDO.getNumber());
detailbDO.setId(null);
// 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailbDO.getItemCode());
// 赋值物品Item相关信息
detailbDO.setItemDesc1(itembasicDO.getDesc1());
detailbDO.setItemDesc2(itembasicDO.getDesc2());
detailbDO.setItemName(itembasicDO.getName());
detailbDO.setProjectCode(itembasicDO.getProject());
childList.add(detailbDO);
}
productdismantleRequestDetailbMapper.insertBatch(childList);
} }
@Override @Override
@ -89,4 +143,40 @@ public class ProductdismantleRequestDetailbServiceImpl implements Productdismant
return productdismantleRequestDetailbMapper.selectSenior(conditions); return productdismantleRequestDetailbMapper.selectSenior(conditions);
} }
@Override
public PageResult<ProductdismantleRequestDetailbRespVO> getBomInfoPage(ProductdismantleRequestDetailaPageReqVO pageVO) {
IPage<ProductdismantleRequestDetailbRespVO> myPage = MyBatisUtils.buildPage(pageVO);
List<Map<String,Object>> list = jobUtils.bomDismantleList(pageVO.getItemCode(),pageVO.getBomVersion());
List<ProductdismantleRequestDetailbRespVO> resultList = new ArrayList<>();
Map<String, ProductdismantleRequestDetailbDO> detailbDOMap = new HashMap<>();
if(pageVO.getMasterId() != null){
List<ProductdismantleRequestDetailbDO> detailbBOList = productdismantleRequestDetailbMapper.selectList(pageVO.getMasterId());
if(detailbBOList != null && detailbBOList.size() > 0){
detailbDOMap.putAll(detailbBOList.stream().collect(Collectors.toMap(ProductdismantleRequestDetailbDO::getItemCode, item -> item)));
}
}
for(Map<String,Object> map:list){
ProductdismantleRequestDetailbRespVO productdismantleRequestDetailbRespVO = new ProductdismantleRequestDetailbRespVO();
String itemCode = map.get("itemCode") != null?map.get("itemCode").toString():"";
productdismantleRequestDetailbRespVO.setItemCode(itemCode);
if(StringUtils.isNotEmpty(productdismantleRequestDetailbRespVO.getItemCode())){
if(detailbDOMap.get(productdismantleRequestDetailbRespVO.getItemCode()) != null){
ProductdismantleRequestDetailbDO productdismantleRequestDetailbDO = detailbDOMap.get(productdismantleRequestDetailbRespVO.getItemCode());
productdismantleRequestDetailbRespVO = ProductdismantleRequestDetailbConvert.INSTANCE.convert(productdismantleRequestDetailbDO);
}else {
productdismantleRequestDetailbRespVO.setQty(BigDecimal.ZERO);
}
}else {
productdismantleRequestDetailbRespVO.setQty(BigDecimal.ZERO);
}
productdismantleRequestDetailbRespVO.setUom(map.get("uom") != null?map.get("uom").toString():"");
productdismantleRequestDetailbRespVO.setVersion(map.get("version") != null?map.get("version").toString():"");
resultList.add(productdismantleRequestDetailbRespVO);
}
myPage.setRecords(resultList);
myPage.setTotal(resultList.size());
PageResult<ProductdismantleRequestDetailbRespVO> pageResult = new PageResult(myPage.getRecords(),myPage.getTotal());
return pageResult;
}
} }

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainService.java

@ -32,7 +32,7 @@ public interface ProductdismantleRequestMainService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updateProductdismantleRequestMain(@Valid ProductdismantleRequestMainUpdateReqVO updateReqVO); Long updateProductdismantleRequestMain(@Valid ProductdismantleRequestMainUpdateReqVO updateReqVO);
/** /**
* 删除制品拆解申请主 * 删除制品拆解申请主
@ -81,4 +81,17 @@ public interface ProductdismantleRequestMainService {
*/ */
PageResult<ProductdismantleRequestMainDO> getProductdismantleRequestMainSenior(CustomConditions conditions); PageResult<ProductdismantleRequestMainDO> getProductdismantleRequestMainSenior(CustomConditions conditions);
List<ProductdismantleRequestMainDO> getProductdismantleRequestMainList(CustomConditions conditions);
Integer closeProductdismantleRequestMain(Long id);
Integer reAddProductdismantleRequestMain(Long id);
Integer submitProductdismantleRequestMain(Long id);
Integer refusedProductdismantleRequestMain(Long id);
Integer agreeProductdismantleRequestMain(Long id);
Integer handleProductdismantleRequestMain(Long id);
} }

515
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java

@ -1,24 +1,85 @@
package com.win.module.wms.service.productdismantleRequest; package com.win.module.wms.service.productdismantleRequest;
import cn.hutool.core.exceptions.UtilException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainCreateReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainExportReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainPageReqVO; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.wms.controller.productdismantleRequest.vo.ProductdismantleRequestMainUpdateReqVO; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaBaseVO;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaCreateReqVO;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailaConvert;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestMainConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestMainConvert;
import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailaConvert;
import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailbConvert;
import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestMainConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
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.issueRequest.IssueRequestMainDO;
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.productdismantleRecord.ProductdismantleRecordDetailaDO;
import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailbDO;
import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO; import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestMainDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestDetailaDO;
import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestDetailbDO;
import com.win.module.wms.dal.dataobject.productrepairRequest.ProductrepairRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.dal.dataobject.team.TeamDO;
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.productdismantleJob.ProductdismantleJobMainMapper;
import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordDetailaMapper;
import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordDetailbMapper;
import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordMainMapper;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailaMapper;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailbMapper;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestMainMapper; import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestMainMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.team.TeamService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
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 javax.management.Query;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; 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.PRODUCTDISMANTLE_REQUEST_MAIN_NOT_EXISTS; import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
* 制品拆解申请主 Service 实现类 * 制品拆解申请主 Service 实现类
@ -29,25 +90,236 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_REQUE
@Validated @Validated
public class ProductdismantleRequestMainServiceImpl implements ProductdismantleRequestMainService { public class ProductdismantleRequestMainServiceImpl implements ProductdismantleRequestMainService {
@Resource
private TransactionService transactionService;
@Resource
private ProductdismantleRecordDetailbMapper productdismantleRecordDetailbMapper;
@Resource
private ProductdismantleRecordDetailaMapper productdismantleRecordDetailaMapper;
@Resource
private ProductdismantleRequestDetailbService productdismantleRequestDetailbService;
@Resource
private ProductdismantleRecordMainMapper productdismantleRecordMainMapper;
@Resource
private RecordsettingService recordsettingService;
@Resource
private ProductdismantleJobMainMapper productdismantleJobMainMapper;
@Resource
private LocationService locationService;
@Resource
private WorkshopService workshopService;
@Resource
private TeamService teamService;
@Resource
private ShiftService shiftService;
@Resource
private ProductionlineService productionlineService;
@Resource
private ItembasicService itembasicService;
@Resource
private WorkstationService workstationService;
@Resource
private ProductdismantleRequestDetailbMapper productdismantleRequestDetailbMapper;
@Resource
private AdminUserApi userApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private ProductdismantleRequestDetailaMapper productdismantleRequestDetailaMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Resource @Resource
private ProductdismantleRequestMainMapper productdismantleRequestMainMapper; private ProductdismantleRequestMainMapper productdismantleRequestMainMapper;
@Override @Override
@Transactional
public Long createProductdismantleRequestMain(ProductdismantleRequestMainCreateReqVO createReqVO) { public Long createProductdismantleRequestMain(ProductdismantleRequestMainCreateReqVO createReqVO) {
// 插入 // 插入
ProductdismantleRequestMainDO productdismantleRequestMain = ProductdismantleRequestMainConvert.INSTANCE.convert(createReqVO); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductDisassembleRequest");
productdismantleRequestMainMapper.insert(productdismantleRequestMain); ProductdismantleRequestMainDO productdismantleRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(productdismantleRequestMainDO.getStatus())) {
List<ProductdismantleRequestDetailaDO> detailaDOList = productdismantleRequestDetailaMapper.selectList(productdismantleRequestMainDO.getId());
this.generateJob(productdismantleRequestMainDO, detailaDOList);
}
trendsApi.createTrends(productdismantleRequestMainDO.getId(), "ProductdismantleRequest", "增加了制品拆解申请", TrendsTypeEnum.CREATE);
// 返回 // 返回
return productdismantleRequestMain.getId(); return productdismantleRequestMainDO.getId();
} }
@Override @Override
public void updateProductdismantleRequestMain(ProductdismantleRequestMainUpdateReqVO updateReqVO) { @Transactional
public Long updateProductdismantleRequestMain(ProductdismantleRequestMainUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validateProductdismantleRequestMainExists(updateReqVO.getId()); validateProductdismantleRequestMainExists(updateReqVO.getId());
// 更新 // 更新
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductDisassembleRequest");
ProductdismantleRequestMainDO productdismantleRequestMainDO = validatorToUpdate(updateReqVO,requestsettingDO);
trendsApi.createTrends(productdismantleRequestMainDO.getId(), "ProductdismantleRequest", "增加了制品拆解申请", TrendsTypeEnum.CREATE);
// 返回
return productdismantleRequestMainDO.getId();
}
private ProductdismantleRequestMainDO validatorToUpdate(ProductdismantleRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
ProductdismantleRequestMainDO updateObj = ProductdismantleRequestMainConvert.INSTANCE.convert(updateReqVO); ProductdismantleRequestMainDO updateObj = ProductdismantleRequestMainConvert.INSTANCE.convert(updateReqVO);
productdismantleRequestMainMapper.updateById(updateObj); // DBT——>DBT3("ProductdismantleRequest")
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductDisassembleRequest");
ProductdismantleRequestMainDO mainBo = validateMainMethod(updateObj,businesstypeDO,requestsettingDO);
productdismantleRequestMainMapper.updateById(mainBo);
return mainBo;
}
private ProductdismantleRequestMainDO validatorToCreate(ProductdismantleRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
ProductdismantleRequestMainDO productdismantleRequestMainDO = ProductdismantleRequestMainConvert.INSTANCE.convert(createReqVO);
// DBT——>DBT3("ProductdismantleRequest")
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductDisassembleRequest");
ProductdismantleRequestMainDO mainBo = validateMainMethod(productdismantleRequestMainDO,businesstypeDO,requestsettingDO);
// 子表处理逻辑 ProductdismantleRequestDetailaDO
List<ProductdismantleRequestDetailaCreateReqVO> subList = createReqVO.getSubList();
for(ProductdismantleRequestDetailaCreateReqVO productdismantleRequestDetailaCreateReqVO:subList){
validateDetailMethod(mainBo, productdismantleRequestDetailaCreateReqVO,businesstypeDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_REPAIR_REQUEST.getCode());
mainBo.setNumber(number);
mainBo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
productdismantleRequestMainMapper.insert(mainBo);
for(ProductdismantleRequestDetailaCreateReqVO productdismantleRequestDetailaCreateReqVO:subList){
ProductdismantleRequestDetailaDO detailaDO = ProductdismantleRequestDetailaConvert.INSTANCE.convert(productdismantleRequestDetailaCreateReqVO);
detailaDO.setMasterId(mainBo.getId());
detailaDO.setNumber(mainBo.getNumber());
detailaDO.setInventoryStatus(businesstypeDO.getOutInventoryStatuses());
productdismantleRequestDetailaMapper.insert(detailaDO);
List<ProductdismantleRequestDetailbCreateReqVO> consumereDetailbList = productdismantleRequestDetailaCreateReqVO.getChildList();
if (consumereDetailbList == null || consumereDetailbList.size() == 0) {
throw exception(DISMANTLE_REQUEST_BOM_NOT_EXISTS);
}
List<ProductdismantleRequestDetailbDO> childList = new ArrayList<>();
for(ProductdismantleRequestDetailbCreateReqVO productdismantleRequestDetailbCreateReqVO:consumereDetailbList){
ProductdismantleRequestDetailbDO detailbDO = ProductdismantleRequestDetailbConvert.INSTANCE.convert(productdismantleRequestDetailbCreateReqVO);
validateDetailbBom(detailbDO,detailaDO,mainBo); // 创建二级子表数据
childList.add(detailbDO);
}
productdismantleRequestDetailbMapper.insertBatch(childList);
}
return mainBo;
}
/**
* 创建 二级 子表数据
* @param detailbDO
* @param detailaDO
* @param mainBo
*/
private void validateDetailbBom(ProductdismantleRequestDetailbDO detailbDO, ProductdismantleRequestDetailaDO detailaDO, ProductdismantleRequestMainDO mainBo) {
detailbDO.setProcessCode(detailaDO.getProcessCode());
detailbDO.setBomVersion(detailaDO.getBomVersion());
detailbDO.setMasterId(detailaDO.getId());
detailbDO.setNumber(detailaDO.getNumber());
// 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailbDO.getItemCode());
// 赋值物品Item相关信息
detailbDO.setItemDesc1(itembasicDO.getDesc1());
detailbDO.setItemDesc2(itembasicDO.getDesc2());
detailbDO.setItemName(itembasicDO.getName());
detailbDO.setProjectCode(itembasicDO.getProject());
}
/**
* 校验 子表
* @param mainDO
* @param detailDo
* @param businesstypeDO
*/
private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaCreateReqVO detailDo, BusinesstypeDO businesstypeDO) {
// 校验--生产线基本信息
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode());
detailDo.setFromLocationCode(productionlineDO.getRawLocationCode());
// 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
// 赋值物品Item相关信息
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
if (!itembasicDO.getUom().equals(detailDo.getUom())) {
// 提示:计量单位【uom】错误,应该是【item.uom】
throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom());
}
// 校验--工位基础信息
if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode());
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
// 校验--库存余额 TB——>TB1
validateBalance(detailDo,mainDO);
// 校验--物品类型 DBT——>DBT2——>IT
jobUtils.ifInType(itembasicDO.getType(),businesstypeDO);
// 校验--来源库位 DBT——>DBT2——>LO
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
// 校验--库存状态 DBT——>DBT2——>ISO
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO);
}
/**
* 校验 主表
* @param productdismantleRequestMainDO
* @param businesstypeDO
* @param requestsettingDO
* @return
*/
private ProductdismantleRequestMainDO validateMainMethod(ProductdismantleRequestMainDO productdismantleRequestMainDO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
// 校验--车间
workshopService.selectWorkshopExist(productdismantleRequestMainDO.getWorkshopCode());
// 校验--班组
teamService.selectTeamExist(productdismantleRequestMainDO.getTeam());
// 校验--班次
shiftService.selectShiftExist(productdismantleRequestMainDO.getShift());
// 校验--截止时间
validordurtime(productdismantleRequestMainDO.getDueTime());
// 赋值逻辑
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(productdismantleRequestMainDO.getAutoCommit(), productdismantleRequestMainDO.getAutoAgree(), productdismantleRequestMainDO.getAutoExecute());
productdismantleRequestMainDO.setStatus(requestStatusState.getState().getCode());
productdismantleRequestMainDO.setRequestTime(LocalDateTime.now());
productdismantleRequestMainDO.setCreateTime(LocalDateTime.now());
productdismantleRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
productdismantleRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
productdismantleRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
productdismantleRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
productdismantleRequestMainDO.setBusinessType(businesstypeDO.getCode());
productdismantleRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
productdismantleRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
productdismantleRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围
productdismantleRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围
return productdismantleRequestMainDO;
}
private void validateBalance(ProductdismantleRequestDetailaBaseVO detailDo, ProductdismantleRequestMainDO mainDO) {
String inventoryStatus = detailDo.getInventoryStatus();
String[] inventoryArray = inventoryStatus.split(",");
List<String> inventorystatus = Arrays.asList(inventoryArray);
List<BalanceDO> list = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus);
if(list != null && list.size() > 0){
BalanceDO balanceDO = list.get(0);
mainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
if(balanceDO.getQty().compareTo(detailDo.getQty()) < 0){
// 拆解数量【qty】不能大于库存数量【banlance.qty】
throw exception(PRODUCTDISMANTLE_REQUEST_DETAILA_QTY_ERROR,detailDo.getQty(),balanceDO.getQty());
}
}else {
// 余额校验异常
throw exception(PRODUCTREPAIR_REQUEST_DETAILA_BALANCE_ERROR);
}
}
private void validordurtime(LocalDateTime durtime){
if(!durtime.isAfter(LocalDateTime.now())){
throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
}
} }
@Override @Override
@ -58,10 +330,12 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR
productdismantleRequestMainMapper.deleteById(id); productdismantleRequestMainMapper.deleteById(id);
} }
private void validateProductdismantleRequestMainExists(Long id) { private ProductdismantleRequestMainDO validateProductdismantleRequestMainExists(Long id) {
if (productdismantleRequestMainMapper.selectById(id) == null) { ProductdismantleRequestMainDO productdismantleRequestMainDO = productdismantleRequestMainMapper.selectById(id);
if ( productdismantleRequestMainDO == null) {
throw exception(PRODUCTDISMANTLE_REQUEST_MAIN_NOT_EXISTS); throw exception(PRODUCTDISMANTLE_REQUEST_MAIN_NOT_EXISTS);
} }
return productdismantleRequestMainDO;
} }
@Override @Override
@ -88,4 +362,221 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR
public PageResult<ProductdismantleRequestMainDO> getProductdismantleRequestMainSenior(CustomConditions conditions) { public PageResult<ProductdismantleRequestMainDO> getProductdismantleRequestMainSenior(CustomConditions conditions) {
return productdismantleRequestMainMapper.selectSenior(conditions); return productdismantleRequestMainMapper.selectSenior(conditions);
} }
@Override
public List<ProductdismantleRequestMainDO> getProductdismantleRequestMainList(CustomConditions conditions) {
return productdismantleRequestMainMapper.selectSeniorList(conditions);
}
@Override
public Integer closeProductdismantleRequestMain(Long id) {
ProductdismantleRequestMainDO mainDO = validateProductdismantleRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(DISMANTLE_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "productdismantleRequest", "关闭了制品拆解申请", TrendsTypeEnum.UPDATE);
return productdismantleRequestMainMapper.updateById(mainDO);
}
@Override
public Integer reAddProductdismantleRequestMain(Long id) {
ProductdismantleRequestMainDO mainDO = validateProductdismantleRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(DISMANTLE_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "productdismantleRequest", "打开了制品拆解申请", TrendsTypeEnum.UPDATE);
return productdismantleRequestMainMapper.updateById(mainDO);
}
@Override
public Integer submitProductdismantleRequestMain(Long id) {
ProductdismantleRequestMainDO mainDO = validateProductdismantleRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(DISMANTLE_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, productdismantleRequestDetailaMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "productdismantleRequest", "提交了制品拆解申请", TrendsTypeEnum.UPDATE);
return productdismantleRequestMainMapper.updateById(mainDO);
}
@Override
public Integer refusedProductdismantleRequestMain(Long id) {
ProductdismantleRequestMainDO mainDO = validateProductdismantleRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(DISMANTLE_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "productdismantleRequest", "驳回了制品拆解申请", TrendsTypeEnum.UPDATE);
return productdismantleRequestMainMapper.updateById(mainDO);
}
@Override
public Integer agreeProductdismantleRequestMain(Long id) {
ProductdismantleRequestMainDO mainDO = validateProductdismantleRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoAgree());
if(!flag) {
throw new ServiceException(DISMANTLE_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, productdismantleRequestDetailaMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "productdismantleRequest", "审批通过了制品拆解申请", TrendsTypeEnum.UPDATE);
return productdismantleRequestMainMapper.updateById(mainDO);
}
@Override
public Integer handleProductdismantleRequestMain(Long id) {
ProductdismantleRequestMainDO mainDO = validateProductdismantleRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(DISMANTLE_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
this.generateJob(mainDO, productdismantleRequestDetailaMapper.selectList(mainDO.getId()));
trendsApi.createTrends(id, "productdismantleRequest", "执行了制品拆解申请", TrendsTypeEnum.UPDATE);
return productdismantleRequestMainMapper.updateById(mainDO);
}
/**
* 创建 记录
* @param mainDO
* @param detailaDOList
*/
private void generateJob(ProductdismantleRequestMainDO mainDO, List<ProductdismantleRequestDetailaDO> detailaDOList) {
//跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())) {
ProductdismantleRecordMainDO productdismantleRecordMainDO = new ProductdismantleRecordMainDO();
BeanUtils.copyProperties(mainDO, productdismantleRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_DISASSEMBLE_RECORD.getCode());
productdismantleRecordMainDO.setNumber(number);
productdismantleRecordMainDO.setRequestNumber(mainDO.getNumber());
productdismantleRecordMainDO.setExecuteTime(LocalDateTime.now());
productdismantleRecordMainDO.setActiveDate(LocalDateTime.now());
productdismantleRecordMainDO.setAvailable("TRUE");
productdismantleRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
productdismantleRecordMainDO.setId(null);
productdismantleRecordMainDO.setCreateTime(null);
productdismantleRecordMainDO.setCreator(null);
productdismantleRecordMainDO.setUpdateTime(null);
productdismantleRecordMainDO.setUpdater(null);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductDisassembleRecord");
productdismantleRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
productdismantleRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType());
productdismantleRecordMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
productdismantleRecordMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
productdismantleRecordMainDO.setBusinessType(businesstypeDO.getCode());
// 接口类型
productdismantleRecordMainDO.setInterfaceType(recordsettingService.selectRecordsettingExist("ProductDisassembleRecord").getInterfaceType());
productdismantleRecordMainMapper.insert(productdismantleRecordMainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
// 子表b 集合
List<ProductdismantleRecordDetailbDO> detailbDOList = new ArrayList<>();
for(ProductdismantleRequestDetailaDO productdismantleRequestDetailaDO : detailaDOList) {
ProductdismantleRecordDetailaDO productdismantleRecordDetailaDO = new ProductdismantleRecordDetailaDO();
BeanUtils.copyProperties(productdismantleRequestDetailaDO, productdismantleRecordDetailaDO);
LocationDO locationDO = locationService.selectLocation(productdismantleRecordDetailaDO.getFromLocationCode());
productdismantleRecordDetailaDO.setFromAreaCode(locationDO.getAreaCode());
productdismantleRecordDetailaDO.setFromLocationGroupCode(locationDO.getLocationGroupCode());
productdismantleRecordDetailaDO.setMasterId(productdismantleRecordMainDO.getId());
productdismantleRecordDetailaDO.setId(null);
productdismantleRecordDetailaDO.setCreateTime(null);
productdismantleRecordDetailaDO.setCreator(null);
productdismantleRecordDetailaDO.setUpdateTime(null);
productdismantleRecordDetailaDO.setUpdater(null);
productdismantleRecordDetailaMapper.insert(productdismantleRecordDetailaDO);
//添加库存事务list
// 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(productdismantleRecordDetailaDO, transactionCreateReqVOOut);
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(productdismantleRecordMainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(productdismantleRecordDetailaDO.getFromOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(productdismantleRecordDetailaDO.getPackingNumber());
transactionCreateReqVOOut.setBatch(productdismantleRecordDetailaDO.getBatch());
transactionCreateReqVOOut.setContainerNumber(productdismantleRecordDetailaDO.getContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(productdismantleRecordMainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setLocationCode(productdismantleRecordDetailaDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
// 根据申请子表a id 查询 申请 子表b
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("master_id", productdismantleRequestDetailaDO.getId().toString());
List<ProductdismantleRequestDetailbDO> productdismantleRequestDetailbDOList = productdismantleRequestDetailbMapper.selectList(queryWrapper);
for(ProductdismantleRequestDetailbDO productdismantleRequestDetailbDO:productdismantleRequestDetailbDOList) {
ProductdismantleRecordDetailbDO productdismantleRecordDetailbDO = new ProductdismantleRecordDetailbDO();
BeanUtils.copyProperties(productdismantleRequestDetailbDO, productdismantleRecordDetailbDO);
productdismantleRecordDetailbDO.setMasterId(productdismantleRecordDetailaDO.getId());
productdismantleRecordDetailbDO.setNumber(productdismantleRecordDetailaDO.getNumber());
productdismantleRecordDetailbDO.setBatch("000000");
productdismantleRecordDetailbDO.setPackingNumber("");
productdismantleRecordDetailbDO.setInventoryStatus("OK");
// 根据成品物品 对应工位 查询 原料库位
WorkstationDO workstationDO = workstationService.selectWorkstationExist(productdismantleRecordDetailaDO.getWorkStationCode(),productdismantleRecordMainDO.getWorkshopCode(),productdismantleRecordDetailaDO.getProductionLineCode());
productdismantleRecordDetailbDO.setToLocationCode(workstationDO.getRawLocationCode());
LocationDO locationDODetailb = locationService.selectLocation(workstationDO.getRawLocationCode());
productdismantleRecordDetailbDO.setToAreaCode(locationDODetailb.getAreaCode());
productdismantleRecordDetailbDO.setToLocationGroupCode(locationDODetailb.getLocationGroupCode());
productdismantleRecordDetailbDO.setId(null);
productdismantleRecordDetailbDO.setCreateTime(null);
productdismantleRecordDetailbDO.setCreator(null);
productdismantleRecordDetailbDO.setUpdateTime(null);
productdismantleRecordDetailbDO.setUpdater(null);
detailbDOList.add(productdismantleRecordDetailbDO);
//添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productdismantleRecordDetailbDO, 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(productdismantleRecordMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode("");
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(productdismantleRecordDetailbDO.getPackingNumber());
transactionCreateReqVO.setBatch(productdismantleRecordDetailbDO.getBatch());
transactionCreateReqVO.setContainerNumber("");
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(productdismantleRecordMainDO.getFromWarehouseCode());
transactionCreateReqVO.setLocationCode(productdismantleRecordDetailbDO.getToLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
}
}
if (detailbDOList != null && detailbDOList.size() > 0) {
productdismantleRecordDetailbMapper.insertBatch(detailbDOList);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
} else {
throw new UtilException("该功能无任务!请到单据设置管理-申请设置功能中重新设置!");
}
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/shift/ShiftServiceImpl.java

@ -81,7 +81,7 @@ public class ShiftServiceImpl implements ShiftService {
if(shiftDO != null && "TRUE".equals(shiftDO.getAvailable())){ if(shiftDO != null && "TRUE".equals(shiftDO.getAvailable())){
return shiftDO; return shiftDO;
}else { }else {
return null; throw exception(SHIFT_NOT_EXISTS);
} }
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamServiceImpl.java

@ -84,7 +84,7 @@ public class TeamServiceImpl implements TeamService {
if(teamDO != null && "TRUE".equals(teamDO.getAvailable())){ if(teamDO != null && "TRUE".equals(teamDO.getAvailable())){
return teamDO; return teamDO;
}else { }else {
return null; throw exception(TEAM_NOT_EXISTS);
} }
} }

Loading…
Cancel
Save