Browse Source

Merge remote-tracking branch 'origin/master'

master
赵雪冰 2 years ago
parent
commit
e4869ecb82
  1. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainBaseVO.java
  3. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainPageReqVO.java
  4. 149
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/ProductputawayRequestMainController.java
  5. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayImportVO.java
  6. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestDetailBaseVO.java
  7. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestDetailPageReqVO.java
  8. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestImportVO.java
  9. 77
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainExcelVO.java
  10. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptJob/ProductreceiptJobMainController.java
  11. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java
  12. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestMainConvert.java
  13. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayJob/ProductputawayJobMainDO.java
  14. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java
  15. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestDetailMapper.java
  16. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestMainMapper.java
  17. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java
  18. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java
  19. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java
  20. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailService.java
  21. 62
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java
  22. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainService.java
  23. 328
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java
  24. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRequest/ProductreceiptRequestMainServiceImpl.java

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

@ -736,6 +736,8 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCTPUTAWAY_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_112_001, "制品上架申请子不存在"); ErrorCode PRODUCTPUTAWAY_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_112_001, "制品上架申请子不存在");
//制品上架申请ErrorCode //制品上架申请ErrorCode
ErrorCode PRODUCTPUTAWAY_REQUEST_NOT_EXISTS = new ErrorCode(1_000_112_002, "制品上架申请不存在"); ErrorCode PRODUCTPUTAWAY_REQUEST_NOT_EXISTS = new ErrorCode(1_000_112_002, "制品上架申请不存在");
ErrorCode PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR = new ErrorCode(1_000_112_003, "制品上架申请状态错误");
ErrorCode PRODUCTPUTAWAY_REQUEST_JOB_EXISTS = new ErrorCode(1_000_112_004, "制品上架申请存在制品上架任务单");
//制品上架任务ErrorCode //制品上架任务ErrorCode
ErrorCode PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_113_000, "制品上架任务主不存在"); ErrorCode PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_113_000, "制品上架任务主不存在");
ErrorCode PRODUCTPUTAWAY_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_113_001, "制品上架任务子不存在"); ErrorCode PRODUCTPUTAWAY_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_113_001, "制品上架任务子不存在");

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainBaseVO.java

@ -144,4 +144,10 @@ public class ProductputawayJobMainBaseVO {
@Schema(description = "允许修改箱码") @Schema(description = "允许修改箱码")
private String allowModifyPackingNumber; private String allowModifyPackingNumber;
@Schema(description = "入库库存状态范围")
private String inInventoryStatuses;
@Schema(description = "出库库存状态范围")
private String outInventoryStatuses;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainPageReqVO.java

@ -133,4 +133,10 @@ public class ProductputawayJobMainPageReqVO extends PageParam {
@Schema(description = "允许修改箱码") @Schema(description = "允许修改箱码")
private String allowModifyPackingNumber; private String allowModifyPackingNumber;
@Schema(description = "入库库存状态范围")
private String inInventoryStatuses;
@Schema(description = "出库库存状态范围")
private String outInventoryStatuses;
} }

149
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/ProductputawayRequestMainController.java

@ -9,9 +9,13 @@ 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.issueRequest.vo.IssueRequestMainExcelVO;
import com.win.module.wms.controller.productputawayRequest.vo.*; import com.win.module.wms.controller.productputawayRequest.vo.*;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
@ -102,23 +106,6 @@ public class ProductputawayRequestMainController {
return success(ProductputawayRequestMainConvert.INSTANCE.convertPage(pageResult)); return success(ProductputawayRequestMainConvert.INSTANCE.convertPage(pageResult));
} }
@GetMapping("/export-excel")
@Operation(summary = "导出制品上架申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductputawayRequestMainExcel(@Valid ProductputawayRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductputawayRequestMainDO> list = productputawayRequestMainService.getProductputawayRequestMainList(exportReqVO);
// 导出 Excel
List<ProductputawayRequestMainExcelVO> datas = ProductputawayRequestMainConvert.INSTANCE.convertList02(list);
for (ProductputawayRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "制品上架申请主.xls", "数据", ProductputawayRequestMainExcelVO.class, datas);
}
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得制品上架申请主分页") @Operation(summary = "高级搜索获得制品上架申请主分页")
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:query')") @PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:query')")
@ -137,18 +124,75 @@ public class ProductputawayRequestMainController {
@Operation(summary = "获得导入制品上架申请信息模板") @Operation(summary = "获得导入制品上架申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException { public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo // 手动创建导出 demo
List<ProductputawayImportVO> list = Arrays.asList( List<ProductputawayRequestImportVO> list = new ArrayList<>();
// ProductputawayImportExcelVO.builder().code("code").name("name").build()
);
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(3, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, uom); mapDropDown.put(6, uom);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(7, inventoryStatus);
// 输出 // 输出
ExcelUtils.write(response, "制品上架申请信息导入模板.xls", "制品上架申请信息列表", ProductputawayImportVO.class, list,mapDropDown); ExcelUtils.write(response, "检验发料申请导入模板.xlsx", "发料申请信息列表", ProductputawayRequestImportVO.class, list, mapDropDown);
}
private List<ProductputawayRequestMainExcelVO> getExcelVo(List<ProductputawayRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] locationTypes = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(3, locationTypes);
mapDropDown.put(4, locationTypes);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(18, trueFalse);
mapDropDown.put(19, trueFalse);
mapDropDown.put(20, trueFalse);
mapDropDown.put(21, trueFalse);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(25, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(35, uom);
List<ProductputawayRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(ProductputawayRequestMainDO mainDO : list) {
List<ProductputawayRequestDetailDO> subList = productputawayRequestDetailService.selectList(mainDO.getId());
for(ProductputawayRequestDetailDO detailDO : subList) {
ProductputawayRequestMainExcelVO vo = ProductputawayRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/export-excel")
@Operation(summary = "导出制品上架申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductputawayRequestMainExcel(@Valid ProductputawayRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductputawayRequestMainDO> list = productputawayRequestMainService.getProductputawayRequestMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductputawayRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
resultList.forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段
item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
ExcelUtils.write(response, "制品上架申请.xls", "制品上架申请", ProductputawayRequestMainExcelVO.class, resultList);
} }
@GetMapping("/export-excel-senior")
@Operation(summary = "导出发料申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductputawayRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ProductputawayRequestMainDO> list = productputawayRequestMainService.getProductputawayRequestMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductputawayRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
resultList.forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段
item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
ExcelUtils.write(response, "制品上架申请.xlsx", "制品上架申请", ProductputawayRequestMainExcelVO.class, resultList, mapDropDown);
}
@PostMapping("/import") @PostMapping("/import")
@ -189,8 +233,61 @@ public class ProductputawayRequestMainController {
ProductputawayRequestDetailExportReqVO reqVO = new ProductputawayRequestDetailExportReqVO(); ProductputawayRequestDetailExportReqVO reqVO = new ProductputawayRequestDetailExportReqVO();
reqVO.setMasterId(result.getId()); reqVO.setMasterId(result.getId());
List<ProductputawayRequestDetailDO> list = productputawayRequestDetailService.getProductputawayRequestDetailList(reqVO); List<ProductputawayRequestDetailDO> list = productputawayRequestDetailService.getProductputawayRequestDetailList(reqVO);
List<ProductputawayRequestDetailExcelVO> vos = ProductputawayRequestDetailConvert.INSTANCE.convertList02(list); result.setSubList(list);
result.setSubList(vos);
return success(result); return success(result);
} }
@PutMapping("/close")
@Operation(summary = "关闭")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:close')")
public CommonResult<Boolean> closeProductputawayRequestMain(@RequestParam("id") Long id) {
Integer count = productputawayRequestMainService.closeProductputawayRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:reAdd')")
public CommonResult<Boolean> reAddProductputawayRequestMain(@RequestParam("id") Long id) {
Integer count = productputawayRequestMainService.reAddProductputawayRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交审批")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:submit')")
public CommonResult<Boolean> submitProductputawayRequestMain(@RequestParam("id") Long id) {
Integer count = productputawayRequestMainService.submitProductputawayRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "驳回")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:refused')")
public CommonResult<Boolean> refusedProductputawayRequestMain(@RequestParam("id") Long id) {
Integer count = productputawayRequestMainService.refusedProductputawayRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:agree')")
public CommonResult<Boolean> agreeProductputawayRequestMain(@RequestParam("id") Long id) {
Integer count = productputawayRequestMainService.agreeProductputawayRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:handle')")
public CommonResult<Boolean> handleProductputawayRequestMain(@RequestParam("id") Long id) {
Integer count = productputawayRequestMainService.handleProductputawayRequestMain(id);
return success(count > 0);
}
} }

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

@ -37,7 +37,7 @@ public class ProductputawayImportVO {
@ExcelProperty("批次") @ExcelProperty("批次")
private String batch; private String batch;
@ExcelProperty("库存状态") @ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS) @DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus; private String inventoryStatus;
@ -52,7 +52,7 @@ public class ProductputawayImportVO {
@ExcelProperty("数量") @ExcelProperty("数量")
private BigDecimal qty; private BigDecimal qty;
@ExcelProperty("计量单位") @ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM) @DictFormat(DictTypeConstants.UOM)
private String uom; private String uom;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestDetailBaseVO.java

@ -89,4 +89,7 @@ public class ProductputawayRequestDetailBaseVO {
@Schema(description = "到货主代码") @Schema(description = "到货主代码")
private String toOwnerCode; private String toOwnerCode;
@Schema(description = "主表ID")
private String masterId;
} }

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

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

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestImportVO.java

@ -0,0 +1,50 @@
package com.win.module.wms.controller.productputawayRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductputawayRequestImportVO {
@ExcelProperty("截止时间")
private String dueTime;
// 子表数据
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从库位代码")
private String fromLocationCode;
}

77
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainExcelVO.java

@ -1,7 +1,11 @@
package com.win.module.wms.controller.productputawayRequest.vo; package com.win.module.wms.controller.productputawayRequest.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.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -21,9 +25,6 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class ProductputawayRequestMainExcelVO { public class ProductputawayRequestMainExcelVO {
@ExcelProperty("id")
private Long id;
@ExcelProperty("供应商代码") @ExcelProperty("供应商代码")
private String supplierCode; private String supplierCode;
@ -34,11 +35,11 @@ public class ProductputawayRequestMainExcelVO {
private String toWarehouseCode; private String toWarehouseCode;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat(DictTypeConstants.LOCATION_TYPE)
private String fromLocationTypes; private String fromLocationTypes;
@ExcelProperty(value = "到库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "到库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat(DictTypeConstants.LOCATION_TYPE)
private String toLocationTypes; private String toLocationTypes;
@ExcelProperty("从库区代码范围") @ExcelProperty("从库区代码范围")
@ -71,8 +72,7 @@ public class ProductputawayRequestMainExcelVO {
@ExcelProperty("部门") @ExcelProperty("部门")
private String departmentCode; private String departmentCode;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty(value = "状态", converter = RequestStatusConverter.class)
@DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String status; private String status;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ -81,16 +81,71 @@ public class ProductputawayRequestMainExcelVO {
@ExcelProperty("最后更新者用户名") @ExcelProperty("最后更新者用户名")
private String updater; private String updater;
@ExcelProperty("自动提交") @ExcelProperty(value = "自动提交", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoCommit; private String autoCommit;
@ExcelProperty("自动通过") @ExcelProperty(value = "自动通过", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoAgree; private String autoAgree;
@ExcelProperty("自动执行") @ExcelProperty(value = "自动执行", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoExecute; private String autoExecute;
@ExcelProperty("直接生成记录") @ExcelProperty(value = "直接生成记录", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String directCreateRecord; private String directCreateRecord;
// 子表数据
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("订单号")
private String poNumber;
@ExcelProperty("订单行")
private String poLine;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("从货主代码")
private BigDecimal fromOwnerCode;
@ExcelProperty("到货主代码")
private BigDecimal toOwnerCode;
} }

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

@ -11,6 +11,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productreceiptJob.vo.*; import com.win.module.wms.controller.productreceiptJob.vo.*;
import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobDetailConvert; import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobDetailConvert;
import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobMainConvert; import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobMainConvert;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO; import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO; import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobMainDO;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
@ -191,11 +192,13 @@ public class ProductreceiptJobMainController {
if(result==null) { if(result==null) {
return success(result); return success(result);
}; };
ProductreceiptJobDetailExportReqVO rxportReqVO = new ProductreceiptJobDetailExportReqVO(); // ProductreceiptJobDetailExportReqVO rxportReqVO = new ProductreceiptJobDetailExportReqVO();
rxportReqVO.setMasterId(result.getId()); // rxportReqVO.setMasterId(result.getId());
List<ProductreceiptJobDetailDO> productreceiptJobDetailList = productreceiptJobDetailService.getProductreceiptJobDetailList(rxportReqVO); // List<ProductreceiptJobDetailDO> productreceiptJobDetailList = productreceiptJobDetailService.getProductreceiptJobDetailList(rxportReqVO);
List<ProductreceiptJobDetailExcelVO> productreceiptJobDetailExcelVOS = ProductreceiptJobDetailConvert.INSTANCE.convertList02(productreceiptJobDetailList); // List<ProductreceiptJobDetailExcelVO> productreceiptJobDetailExcelVOS = ProductreceiptJobDetailConvert.INSTANCE.convertList02(productreceiptJobDetailList);
result.setSubList(productreceiptJobDetailExcelVOS); // result.setSubList(productreceiptJobDetailExcelVOS);
List<ProductreceiptJobDetailDO> subList = productreceiptJobDetailService.selectList(id);
result.setSubList(subList);
return success(result); return success(result);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java

@ -3,10 +3,13 @@ package com.win.module.wms.convert.issueRequest;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRequest.vo.*; import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.controller.production.vo.ProductionMainExcelVO; import com.win.module.wms.controller.production.vo.ProductionMainExcelVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainExcelVO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import com.win.module.wms.dal.dataobject.production.ProductionDetailDO;
import com.win.module.wms.dal.dataobject.production.ProductionMainDO; import com.win.module.wms.dal.dataobject.production.ProductionMainDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
@ -55,5 +58,4 @@ public interface IssueRequestMainConvert {
@Mapping(source = "detailDO.remark", target = "remarkDetail"), @Mapping(source = "detailDO.remark", target = "remarkDetail"),
}) })
IssueRequestMainExcelVO convert(IssueRequestMainDO mainDO, IssueRequestDetailDO detailDO); IssueRequestMainExcelVO convert(IssueRequestMainDO mainDO, IssueRequestDetailDO detailDO);
} }

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestMainConvert.java

@ -50,6 +50,13 @@ public interface ProductputawayRequestMainConvert {
ProductputawayImportErrorVO convert(ProductputawayRequestMainCreateReqVO mainVo, ProductputawayRequestDetailDO detailDo); ProductputawayImportErrorVO convert(ProductputawayRequestMainCreateReqVO mainVo, ProductputawayRequestDetailDO detailDo);
@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"),
})
ProductputawayRequestMainExcelVO convert(ProductputawayRequestMainDO mainDO, ProductputawayRequestDetailDO detailDO);
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayJob/ProductputawayJobMainDO.java

@ -207,5 +207,13 @@ public class ProductputawayJobMainDO extends BaseDO {
* 允许修改箱码 * 允许修改箱码
*/ */
private String allowModifyPackingNumber; private String allowModifyPackingNumber;
/**
* 入库库存状态范围
*/
private String inInventoryStatuses;
/**
* 出库库存状态范围
*/
private String outInventoryStatuses;
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java

@ -7,8 +7,10 @@ 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.productputawayJob.vo.ProductputawayJobMainExportReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExportReqVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO; import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Collection; import java.util.Collection;
@ -120,4 +122,9 @@ public interface ProductputawayJobMainMapper extends BaseMapperX<ProductputawayJ
} }
default Long selectByRequestNumber(String requestNumber) {
return selectCount(new LambdaQueryWrapperX<ProductputawayJobMainDO>()
.eq(ProductputawayJobMainDO::getRequestNumber, requestNumber)
.ne(ProductputawayJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestDetailMapper.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.productputawayRequest.vo.ProductputawayRequestDetailExportReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailExportReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailPageReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface ProductputawayRequestDetailMapper extends BaseMapperX<Productpu
default PageResult<ProductputawayRequestDetailDO> selectPage(ProductputawayRequestDetailPageReqVO reqVO) { default PageResult<ProductputawayRequestDetailDO> selectPage(ProductputawayRequestDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ProductputawayRequestDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ProductputawayRequestDetailDO>()
.eqIfPresent(ProductputawayRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductputawayRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(ProductputawayRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ProductputawayRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(ProductputawayRequestDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ProductputawayRequestDetailDO::getBatch, reqVO.getBatch()) .eqIfPresent(ProductputawayRequestDetailDO::getBatch, reqVO.getBatch())
@ -53,6 +55,7 @@ public interface ProductputawayRequestDetailMapper extends BaseMapperX<Productpu
default List<ProductputawayRequestDetailDO> selectList(ProductputawayRequestDetailExportReqVO reqVO) { default List<ProductputawayRequestDetailDO> selectList(ProductputawayRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ProductputawayRequestDetailDO>() return selectList(new LambdaQueryWrapperX<ProductputawayRequestDetailDO>()
.eqIfPresent(ProductputawayRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductputawayRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(ProductputawayRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ProductputawayRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(ProductputawayRequestDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ProductputawayRequestDetailDO::getBatch, reqVO.getBatch()) .eqIfPresent(ProductputawayRequestDetailDO::getBatch, reqVO.getBatch())
@ -78,4 +81,8 @@ public interface ProductputawayRequestDetailMapper extends BaseMapperX<Productpu
.orderByDesc(ProductputawayRequestDetailDO::getId)); .orderByDesc(ProductputawayRequestDetailDO::getId));
} }
default List<ProductputawayRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<ProductputawayRequestDetailDO>()
.eq(ProductputawayRequestDetailDO::getMasterId, masterId));
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestMainMapper.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.productputawayRequest.vo.ProductputawayRequestMainExportReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainExportReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainPageReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -81,4 +82,7 @@ public interface ProductputawayRequestMainMapper extends BaseMapperX<Productputa
.orderByDesc(ProductputawayRequestMainDO::getId)); .orderByDesc(ProductputawayRequestMainDO::getId));
} }
default List<ProductputawayRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

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

@ -231,7 +231,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
List<IssueRequestImportErrorVO> errorList = new ArrayList<>(); List<IssueRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
IssueRequestMainDO mainDo = IssueRequestMainConvert.INSTANCE.convert(createReqVO); IssueRequestMainDO mainDo = IssueRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateIssueRequestMainImport(mainDo, businesstypeDO); String messageMain = validateIssueRequestMainImport(mainDo);
List<IssueRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<IssueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<IssueRequestDetailDO> subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); List<IssueRequestDetailDO> subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据 // 是否有错误数据
@ -251,7 +251,6 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
if (flag) { if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number); mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
issueRequestMainMapper.insert(mainDo); issueRequestMainMapper.insert(mainDo);
//增加操作记录 //增加操作记录
trendsApi.createTrends(mainDo.getId(), "issueRequestMain", "导入了发料申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(mainDo.getId(), "issueRequestMain", "导入了发料申请", TrendsTypeEnum.CREATE);
@ -280,14 +279,13 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
* @param mainDo * @param mainDo
* @return * @return
*/ */
private String validateIssueRequestMainImport(IssueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private String validateIssueRequestMainImport(IssueRequestMainDO mainDo) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
try { try {
this.validatorWorkshop(mainDo.getWorkshopCode()); this.validatorWorkshop(mainDo.getWorkshopCode());
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now()); mainDo.setRequestTime(LocalDateTime.now());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest");
if (requestsettingDO == null) { if (requestsettingDO == null) {
@ -297,8 +295,11 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
} }
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest");
if (businesstypeDO == null) { if (businesstypeDO == null) {
message.append("根据单据设置未查找到发料申请的相关业务类型"); message.append("根据单据设置未查找到发料申请的相关业务类型");
} else { } else {
@ -423,13 +424,15 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
private IssueRequestMainDO validateMainMethod(IssueRequestMainBaseVO baseVO){ private IssueRequestMainDO validateMainMethod(IssueRequestMainBaseVO baseVO){
IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(baseVO); IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(baseVO);
this.validatorWorkshop(issueRequestMainDO.getWorkshopCode()); this.validatorWorkshop(issueRequestMainDO.getWorkshopCode());
issueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
issueRequestMainDO.setRequestTime(LocalDateTime.now()); issueRequestMainDO.setRequestTime(LocalDateTime.now());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest");
issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
issueRequestMainDO.setStatus(requestStatusState.getState().getCode());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest");
issueRequestMainDO.setBusinessType(businesstypeDO.getCode()); issueRequestMainDO.setBusinessType(businesstypeDO.getCode());
issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java

@ -316,8 +316,8 @@ public class LocationServiceImpl implements LocationService {
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
String locationCode = jsonObject.getStr("LocationCode"); String locationCode = jsonObject.getStr("LocationCode");
//设置了库位直接返回 //设置了库位直接返回
if (locationCode != null) { if (locationCode != null && !locationCode.isEmpty()) {
return this.selectLocation(String.valueOf(locationCode)); return this.selectLocation(locationCode);
} }
//增加过滤条件 //增加过滤条件
QueryWrapper<LocationDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<LocationDO> queryWrapper = new QueryWrapper<>();

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java

@ -260,7 +260,6 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
if (flag) { if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number); mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now()); mainDo.setRequestTime(LocalDateTime.now());
productionreturnRequestMainMapper.insert(mainDo); productionreturnRequestMainMapper.insert(mainDo);
for (ProductionreturnRequestDetailDO detailDO : subDOList) { for (ProductionreturnRequestDetailDO detailDO : subDOList) {
@ -286,7 +285,9 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_REQUEST.getCode());
mainDo.setNumber(number); mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "审批中")); RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
mainDo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); mainDo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
productionreturnRequestMainMapper.insert(mainDo); productionreturnRequestMainMapper.insert(mainDo);
// 拆解后 子表集合 // 拆解后 子表集合
@ -400,6 +401,9 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
} }
try { try {
ValidationUtils.validate(validator, mainDo); ValidationUtils.validate(validator, mainDo);

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailService.java

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

62
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java

@ -7,17 +7,30 @@ import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequ
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailPageReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailPageReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO; import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
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.IssueRequestDetailDO;
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.productionlineitem.ProductionlineitemDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper; import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
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.PRODUCTPUTAWAY_REQUEST_DETAIL_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_REQUEST_DETAIL_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.QTY_ERRORR;
/** /**
* 制品上架申请子 Service 实现类 * 制品上架申请子 Service 实现类
@ -28,6 +41,14 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_REQUEST
@Validated @Validated
public class ProductputawayRequestDetailServiceImpl implements ProductputawayRequestDetailService { public class ProductputawayRequestDetailServiceImpl implements ProductputawayRequestDetailService {
@Resource
private JobUtils jobUtils;
@Resource
private LocationService locationService;
@Resource
private ItembasicService itembasicService;
@Resource
private ProductputawayRequestMainService productputawayRequestMainService;
@Resource @Resource
private ProductputawayRequestDetailMapper productputawayRequestDetailMapper; private ProductputawayRequestDetailMapper productputawayRequestDetailMapper;
@ -35,6 +56,7 @@ public class ProductputawayRequestDetailServiceImpl implements ProductputawayReq
public Long createProductputawayRequestDetail(ProductputawayRequestDetailCreateReqVO createReqVO) { public Long createProductputawayRequestDetail(ProductputawayRequestDetailCreateReqVO createReqVO) {
// 插入 // 插入
ProductputawayRequestDetailDO productputawayRequestDetail = ProductputawayRequestDetailConvert.INSTANCE.convert(createReqVO); ProductputawayRequestDetailDO productputawayRequestDetail = ProductputawayRequestDetailConvert.INSTANCE.convert(createReqVO);
validatorDetail(productputawayRequestDetail);
productputawayRequestDetailMapper.insert(productputawayRequestDetail); productputawayRequestDetailMapper.insert(productputawayRequestDetail);
// 返回 // 返回
return productputawayRequestDetail.getId(); return productputawayRequestDetail.getId();
@ -46,9 +68,44 @@ public class ProductputawayRequestDetailServiceImpl implements ProductputawayReq
validateProductputawayRequestDetailExists(updateReqVO.getId()); validateProductputawayRequestDetailExists(updateReqVO.getId());
// 更新 // 更新
ProductputawayRequestDetailDO updateObj = ProductputawayRequestDetailConvert.INSTANCE.convert(updateReqVO); ProductputawayRequestDetailDO updateObj = ProductputawayRequestDetailConvert.INSTANCE.convert(updateReqVO);
validatorDetail(updateObj);
productputawayRequestDetailMapper.updateById(updateObj); productputawayRequestDetailMapper.updateById(updateObj);
} }
//子表校验
private ProductputawayRequestDetailDO validatorDetail(ProductputawayRequestDetailDO productputawayRequestDetailDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
// 主表信息
// ProductputawayRequestMainDO productputawayRequestMainDO = productputawayRequestMainService.getProductputawayRequestMain(productputawayRequestDetailDO.getMasterId());
ItembasicDO itembasicDO = itembasicService.selectItembasic(productputawayRequestDetailDO.getItemCode());
productputawayRequestDetailDO.setItemDesc1(itembasicDO.getDesc1());
productputawayRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
productputawayRequestDetailDO.setItemName(itembasicDO.getName());
productputawayRequestDetailDO.setProjectCode(itembasicDO.getProject());
// 校验 库位
locationService.selectLocation(productputawayRequestDetailDO.getFromLocationCode());
// 校验 库位类型是否一致
jobUtils.ifInToLocationType(productputawayRequestDetailDO.getFromLocationCode(),businesstypeDO);
// 物品类型 与 业务设置类型 是否正确
jobUtils.selectItembasicExist(productputawayRequestDetailDO.getItemCode(),businesstypeDO);
String value = productputawayRequestDetailDO.getInventoryStatus();
String[] businessArray = value.split(",");
List<String> business = Arrays.asList(businessArray);
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(productputawayRequestDetailDO.getItemCode(), productputawayRequestDetailDO.getPackingNumber(),
productputawayRequestDetailDO.getBatch(), productputawayRequestDetailDO.getFromLocationCode(), business);
BalanceDO blance1 = balance.get(0);
isqty(productputawayRequestDetailDO.getQty(),blance1.getQty());
return productputawayRequestDetailDO;
}
public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){
return "ture";
} else {
throw exception(QTY_ERRORR,qty2,qty1);
}
}
@Override @Override
public void deleteProductputawayRequestDetail(Long id) { public void deleteProductputawayRequestDetail(Long id) {
// 校验存在 // 校验存在
@ -88,4 +145,9 @@ public class ProductputawayRequestDetailServiceImpl implements ProductputawayReq
return productputawayRequestDetailMapper.selectSenior(conditions); return productputawayRequestDetailMapper.selectSenior(conditions);
} }
@Override
public List<ProductputawayRequestDetailDO> selectList(Long masterId) {
return productputawayRequestDetailMapper.selectList(masterId);
}
} }

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainService.java

@ -97,4 +97,17 @@ public interface ProductputawayRequestMainService {
public List<ProductputawayImportErrorVO> importProductputawayRequestList(List<ProductputawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart); public List<ProductputawayImportErrorVO> importProductputawayRequestList(List<ProductputawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
List<ProductputawayRequestMainDO> getProductputawayRequestMainList(CustomConditions conditions);
Integer closeProductputawayRequestMain(Long id);
Integer reAddProductputawayRequestMain(Long id);
Integer submitProductputawayRequestMain(Long id);
Integer refusedProductputawayRequestMain(Long id);
Integer agreeProductputawayRequestMain(Long id);
Integer handleProductputawayRequestMain(Long id);
} }

328
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java

@ -4,17 +4,22 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException; import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.datapermission.core.util.DataPermissionUtils; import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO;
import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainBaseVO; import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainBaseVO;
import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainCreateReqVO; import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO; import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestMainConvert; import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestMainConvert;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
@ -23,14 +28,25 @@ import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; 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.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO;
import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobDetailMapper;
import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobMainMapper;
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper; import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.expectout.ExpectoutService;
import com.win.module.wms.service.jobsetting.JobsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.util.*; import com.win.module.wms.util.*;
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;
@ -44,6 +60,7 @@ import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayReq
import com.win.module.wms.service.businesstype.*; import com.win.module.wms.service.businesstype.*;
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestMainMapper; import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
@ -59,6 +76,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import com.win.module.wms.service.location.*; import com.win.module.wms.service.location.*;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.*;
import com.win.module.wms.service.recordsetting.*; import com.win.module.wms.service.recordsetting.*;
import com.win.module.wms.service.itembasic.*; import com.win.module.wms.service.itembasic.*;
@ -72,6 +90,20 @@ import com.win.module.wms.service.itembasic.*;
@Validated @Validated
public class ProductputawayRequestMainServiceImpl implements ProductputawayRequestMainService { public class ProductputawayRequestMainServiceImpl implements ProductputawayRequestMainService {
@Resource
private ExpectoutService expectoutService;
@Resource
private ExpectinService expectinService;
@Resource
private ProductputawayJobDetailMapper productputawayJobDetailMapper;
@Resource
private RuleService ruleService;
@Resource
private JobsettingService jobsettingService;
@Resource
private ProductputawayJobMainMapper productputawayJobMainMapper;
@Resource
private AdminUserApi userApi;
@Resource @Resource
private ProductputawayRequestMainMapper productputawayRequestMainMapper; private ProductputawayRequestMainMapper productputawayRequestMainMapper;
@Resource @Resource
@ -102,16 +134,16 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
@Override @Override
public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) { public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); ProductputawayRequestMainDO productputawayRequestMainDO = validatorToCreate(createReqVO);
ProductputawayRequestMainDO productputawayRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) { if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) {
} }
trendsApi.createTrends(requestsettingDO.getId(), "ProductputawayRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(productputawayRequestMainDO.getId(), "ProductputawayRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE);
return productputawayRequestMainDO.getId(); return productputawayRequestMainDO.getId();
} }
private ProductputawayRequestMainDO validatorToCreate( ProductputawayRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { private ProductputawayRequestMainDO validatorToCreate( ProductputawayRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验 //子表校验
@ -136,10 +168,13 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
productputawayRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); productputawayRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
productputawayRequestDetailDO.setItemName(itembasicDO.getName()); productputawayRequestDetailDO.setItemName(itembasicDO.getName());
productputawayRequestDetailDO.setProjectCode(itembasicDO.getProject()); productputawayRequestDetailDO.setProjectCode(itembasicDO.getProject());
// 校验 库位
validatorLocation(productputawayRequestDetailDO.getFromLocationCode()); validatorLocation(productputawayRequestDetailDO.getFromLocationCode());
// 校验 库位类型是否一致
IfInToLocationType(productputawayRequestDetailDO.getFromLocationCode(),businesstypeDO); IfInToLocationType(productputawayRequestDetailDO.getFromLocationCode(),businesstypeDO);
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(productputawayRequestDetailDO.getInventoryStatus()); // 物品类型 与 业务设置类型 是否正确
String value = dictDataRespDTO.getValue(); jobUtils.selectItembasicExist(productputawayRequestDetailDO.getItemCode(),businesstypeDO);
String value = productputawayRequestDetailDO.getInventoryStatus();
String[] businessArray = value.split(","); String[] businessArray = value.split(",");
List<String> business = Arrays.asList(businessArray); List<String> business = Arrays.asList(businessArray);
List<BalanceDO> balance = selectlocationReturnManagement(productputawayRequestDetailDO.getItemCode(), productputawayRequestDetailDO.getPackingNumber(), List<BalanceDO> balance = selectlocationReturnManagement(productputawayRequestDetailDO.getItemCode(), productputawayRequestDetailDO.getPackingNumber(),
@ -150,12 +185,14 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
} }
BalanceDO blance1 = balance.get(0); BalanceDO blance1 = balance.get(0);
isqty(productputawayRequestDetailDO.getQty(),blance1.getQty()); isqty(productputawayRequestDetailDO.getQty(),blance1.getQty());
} }
private ProductputawayRequestMainDO validateMainMethod(ProductputawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ private ProductputawayRequestMainDO validateMainMethod(ProductputawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
ProductputawayRequestMainDO productputawayRequestMainDO = ProductputawayRequestMainConvert.INSTANCE.convert(baseVO); ProductputawayRequestMainDO productputawayRequestMainDO = ProductputawayRequestMainConvert.INSTANCE.convert(baseVO);
productputawayRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
productputawayRequestMainDO.setStatus(requestStatusState.getState().getCode());
productputawayRequestMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
productputawayRequestMainDO.setRequestTime(LocalDateTime.now()); productputawayRequestMainDO.setRequestTime(LocalDateTime.now());
productputawayRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); productputawayRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
productputawayRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); productputawayRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
@ -186,14 +223,14 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验 //子表校验
List<ProductputawayRequestDetailUpdateReqVO> subList = updateReqVO.getSubList(); // List<ProductputawayRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(subList!=null) { // if(subList!=null) {
List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList05(subList); // List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList05(subList);
for (ProductputawayRequestDetailDO productputawayRequestDetailDO : subDOList) { // for (ProductputawayRequestDetailDO productputawayRequestDetailDO : subDOList) {
validateDetailMethod(productputawayRequestDetailDO, businesstypeDO, productputawayRequestMainDO); // validateDetailMethod(productputawayRequestDetailDO, businesstypeDO, productputawayRequestMainDO);
} // }
productputawayRequestDetailMapper.updateBatch(subDOList); // productputawayRequestDetailMapper.updateBatch(subDOList);
} // }
productputawayRequestMainMapper.updateById(productputawayRequestMainDO); productputawayRequestMainMapper.updateById(productputawayRequestMainDO);
return productputawayRequestMainDO; return productputawayRequestMainDO;
} }
@ -207,10 +244,12 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
productputawayRequestMainMapper.deleteById(id); productputawayRequestMainMapper.deleteById(id);
} }
private void validateProductputawayRequestMainExists(Long id) { private ProductputawayRequestMainDO validateProductputawayRequestMainExists(Long id) {
if (productputawayRequestMainMapper.selectById(id) == null) { ProductputawayRequestMainDO productputawayRequestMainDO = productputawayRequestMainMapper.selectById(id);
if ( productputawayRequestMainDO == null) {
throw exception(PRODUCTPUTAWAY_REQUEST_MAIN_NOT_EXISTS); throw exception(PRODUCTPUTAWAY_REQUEST_MAIN_NOT_EXISTS);
} }
return productputawayRequestMainDO;
} }
@Override @Override
@ -243,15 +282,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
return null; return null;
} }
private void validateproductputawayForCreateOrUpdate(Long id,String code,String workshopCode,String productionLineCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
// 校验code唯一
});
}
@VisibleForTesting @VisibleForTesting
private void validateProductputawayExists(Long id) { private void validateProductputawayExists(Long id) {
if (id == null) { if (id == null) {
@ -263,16 +293,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
} }
} }
public String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel();
if(uom2.equals(value)){
return "ture";
}else {
throw exception(UOM_ERRORR,uom2,value);
}
}
public String isqty(BigDecimal qty1, BigDecimal qty2) { public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){ if(qty1.compareTo(qty2) < 0){
return "ture"; return "ture";
@ -283,7 +303,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
private String validateProductputawayRequestMainImport(ProductputawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private String validateProductputawayRequestMainImport(ProductputawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); mainDo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
mainDo.setRequestTime(LocalDateTime.now()); mainDo.setRequestTime(LocalDateTime.now());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest");
if (requestsettingDO == null) { if (requestsettingDO == null) {
@ -293,6 +313,9 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
} }
if (businesstypeDO == null) { if (businesstypeDO == null) {
message.append("根据单据设置未查找到制品上架申请的相关业务类型"); message.append("根据单据设置未查找到制品上架申请的相关业务类型");
@ -322,7 +345,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
} }
List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber, String batch, String fromLocationCode ,List<String> business){ List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber, String batch, String fromLocationCode ,List<String> business){
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber, batch,fromLocationCode, business); List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber, batch,fromLocationCode, business);
return balanceDO; return balanceDO;
} }
@ -335,26 +358,33 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
detailDo.setItemDesc2(item.getDesc2()); detailDo.setItemDesc2(item.getDesc2());
detailDo.setItemName(item.getName()); detailDo.setItemName(item.getName());
detailDo.setProjectCode(item.getProject()); detailDo.setProjectCode(item.getProject());
try{ if (!item.getUom().equals(detailDo.getUom())) {
Isuom(item.getUom(),detailDo.getUom()); message.append("计量单位【").append(detailDo.getUom()).append("】错误,应该是【").append(item.getUom()).append("】").append(",");
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
} }
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
// 物品类型 与 业务设置类型 是否正确
try {
jobUtils.selectItembasicExist(detailDo.getItemCode(),businesstypeDO);
} catch (Exception ex){
message.append(ex.getMessage()).append(",");
}
try{ try{
// 校验 库位
validatorLocation(detailDo.getFromLocationCode()); validatorLocation(detailDo.getFromLocationCode());
detailDo.setInventoryStatus(detailDo.getInventoryStatus());
}catch (Exception ex) { }catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try{ try{
// 校验来源库位
IfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); IfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDo.getInventoryStatus()); String value = detailDo.getInventoryStatus();
String value = dictDataRespDTO.getValue();
String[] businessArray = value.split(","); String[] businessArray = value.split(",");
List<String> business = Arrays.asList(businessArray); List<String> business = Arrays.asList(businessArray);
try { try {
// 校验库存余额
List<BalanceDO> balance = selectlocationReturnManagement(detailDo.getItemCode(), detailDo.getPackingNumber(), List<BalanceDO> balance = selectlocationReturnManagement(detailDo.getItemCode(), detailDo.getPackingNumber(),
detailDo.getBatch(), detailDo.getFromLocationCode(), business); detailDo.getBatch(), detailDo.getFromLocationCode(), business);
try{ try{
@ -406,7 +436,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
if (flag) { if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode());
mainDo.setNumber(number); mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
productputawayRequestMainMapper.insert(mainDo); productputawayRequestMainMapper.insert(mainDo);
for (ProductputawayRequestDetailDO detailDO : subDOList) { for (ProductputawayRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId()); detailDO.setMasterId(mainDo.getId());
@ -418,4 +447,211 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
return errorList; return errorList;
} }
@Override
public List<ProductputawayRequestMainDO> getProductputawayRequestMainList(CustomConditions conditions) {
return productputawayRequestMainMapper.selectSeniorList(conditions);
}
@Override
@Transactional
public Integer closeProductputawayRequestMain(Long id) {
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id);
// 校验存在存在下级单据
Long count = productputawayJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "productputawayRequest", "关闭了制品上架申请", TrendsTypeEnum.UPDATE);
return productputawayRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer reAddProductputawayRequestMain(Long id) {
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id);
// 校验存在存在下级单据
Long count = productputawayJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "productputawayRequest", "打开了制品上架申请", TrendsTypeEnum.UPDATE);
return productputawayRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer submitProductputawayRequestMain(Long id) {
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id);
// 校验存在存在下级单据
Long count = productputawayJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, productputawayRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "productputawayRequest", "提交了制品上架申请", TrendsTypeEnum.UPDATE);
return productputawayRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer refusedProductputawayRequestMain(Long id) {
// 校验存在
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "productputawayRequest", "驳回了制品上架申请", TrendsTypeEnum.UPDATE);
return productputawayRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer agreeProductputawayRequestMain(Long id) {
// 校验存在
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoAgree());
if(!flag) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, productputawayRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "productputawayRequest", "审批通过了制品上架申请", TrendsTypeEnum.UPDATE);
return productputawayRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer handleProductputawayRequestMain(Long id) {
// 校验存在
ProductputawayRequestMainDO mainDO = validateProductputawayRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(PRODUCTPUTAWAY_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
this.generateJob(mainDO, productputawayRequestDetailMapper.selectList(mainDO.getId()));
trendsApi.createTrends(id, "productputawayRequest", "执行了制品上架申请", TrendsTypeEnum.UPDATE);
return productputawayRequestMainMapper.updateById(mainDO);
}
/**
* 创建任务 OR 创建记录
* @param mainDO
* @param detailDOList
*/
private void generateJob(ProductputawayRequestMainDO mainDO, List<ProductputawayRequestDetailDO> detailDOList) {
//跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())) {
// TODO: 发料申请 跳过任务直接生成记录 未做!!
}
// 任务主表信息
ProductputawayJobMainDO productputawayJobMainDO = new ProductputawayJobMainDO();
BeanUtils.copyProperties(mainDO,productputawayJobMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_JOB.getCode());
productputawayJobMainDO.setNumber(number);
productputawayJobMainDO.setRequestNumber(mainDO.getNumber());
productputawayJobMainDO.setCompletetime(LocalDateTime.now());
productputawayJobMainDO.setRequestDueTime(mainDO.getDueTime());
productputawayJobMainDO.setStatus(JobStatusEnum.PENDING.getCode());
productputawayJobMainDO.setId(null);
productputawayJobMainDO.setCreateTime(null);
productputawayJobMainDO.setCreator(null);
productputawayJobMainDO.setUpdateTime(null);
productputawayJobMainDO.setUpdater(null);
// 获取任务单据设置
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("ProductPutawayJob");
productputawayJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete());
productputawayJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation());
productputawayJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty());
productputawayJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty());
productputawayJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty());
productputawayJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus());
productputawayJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning());
productputawayJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete());
productputawayJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber());
productputawayJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach());
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayJob");
productputawayJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());
productputawayJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());
productputawayJobMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
productputawayJobMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
productputawayJobMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
productputawayJobMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
productputawayJobMainDO.setBusinessType(businesstypeDO.getCode());
productputawayJobMainMapper.insert(productputawayJobMainDO);
List<ProductputawayJobDetailDO> productputawayJobDetailDOList = new ArrayList<>();
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
List<ExpectoutCreateReqVO> expectoutCreateReqVOList = new ArrayList<>();
for(ProductputawayRequestDetailDO productputawayRequestDetailDO : detailDOList) {
ProductputawayJobDetailDO productputawayJobDetailDO = new ProductputawayJobDetailDO();
BeanUtils.copyProperties(productputawayRequestDetailDO,productputawayJobDetailDO);
// 获取上架策略 并赋值 to库位
RuleRespVO ruleRespVO = ruleService.grounding(null,null, productputawayJobDetailDO.getItemCode(),null,null,null,null,null,null);
LocationDO locationDO = locationService.inspectLocation(ruleRespVO, productputawayJobDetailDO.getItemCode(), productputawayJobDetailDO.getBatch(), productputawayJobDetailDO.getInventoryStatus());
productputawayJobDetailDO.setToLocationCode(locationDO.getCode());
productputawayJobDetailDO.setNumber(mainDO.getNumber());
productputawayJobDetailDO.setMasterId(mainDO.getId());
productputawayJobDetailDO.setId(null);
productputawayJobDetailDO.setCreateTime(null);
productputawayJobDetailDO.setCreator(null);
productputawayJobDetailDO.setUpdateTime(null);
productputawayJobDetailDO.setUpdater(null);
productputawayJobDetailDOList.add(productputawayJobDetailDO);
//预计入
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
BeanUtils.copyProperties(productputawayJobDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number);
expectinCreateReqVO.setBusinessType(mainDO.getBusinessType());
expectinCreateReqVO.setLocationCode(productputawayJobDetailDO.getToLocationCode());
expectinCreateReqVO.setOwnerCode(productputawayJobDetailDO.getToOwnerCode());
expectinCreateReqVOList.add(expectinCreateReqVO);
//预计出
ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO();
BeanUtils.copyProperties(productputawayJobDetailDO, expectoutCreateReqVO);
expectoutCreateReqVO.setJobNumber(number);
expectoutCreateReqVO.setBusinessType(mainDO.getBusinessType());
expectoutCreateReqVO.setLocationCode(productputawayJobDetailDO.getFromLocationCode());
expectoutCreateReqVO.setOwnerCode(productputawayJobDetailDO.getFromOwnerCode());
expectoutCreateReqVOList.add(expectoutCreateReqVO);
}
productputawayJobDetailMapper.insertBatch(productputawayJobDetailDOList);
//增加预计入
expectinService.createExpectin(expectinCreateReqVOList);
//增加预计出
expectoutService.createExpectout(expectoutCreateReqVOList);
trendsApi.createTrends(mainDO.getId(), "productputawayJob", "制品上架申请生成制品上架任务", TrendsTypeEnum.CREATE);
}
} }

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

@ -213,7 +213,6 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque
private ProductreceiptRequestMainDO validateMainMethod(ProductreceiptRequestMainBaseVO baseVO){ private ProductreceiptRequestMainDO validateMainMethod(ProductreceiptRequestMainBaseVO baseVO){
ProductreceiptRequestMainDO mainDo = ProductreceiptRequestMainConvert.INSTANCE.convert(baseVO); ProductreceiptRequestMainDO mainDo = ProductreceiptRequestMainConvert.INSTANCE.convert(baseVO);
// 赋值 // 赋值
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now()); mainDo.setRequestTime(LocalDateTime.now());
// 校验 车间 // 校验 车间
workshopService.selectWorkshopExist(mainDo.getWorkshopCode()); workshopService.selectWorkshopExist(mainDo.getWorkshopCode());
@ -229,6 +228,9 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
} }
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRequest");
if (businesstypeDO == null) { if (businesstypeDO == null) {
@ -331,7 +333,6 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque
private String validateProductreceiptRequestMainImport(ProductreceiptRequestMainDO mainDo) { private String validateProductreceiptRequestMainImport(ProductreceiptRequestMainDO mainDo) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
// 赋值 // 赋值
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now()); mainDo.setRequestTime(LocalDateTime.now());
// 校验 车间 // 校验 车间
try { try {
@ -359,6 +360,9 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
} }
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRequest");
if (businesstypeDO == null) { if (businesstypeDO == null) {
@ -481,7 +485,6 @@ public class ProductreceiptRequestMainServiceImpl implements ProductreceiptReque
if (flag) { if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number); mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
productreceiptRequestMainMapper.insert(mainDo); productreceiptRequestMainMapper.insert(mainDo);
for (ProductreceiptRequestDetailDO detailDO : subDOList) { for (ProductreceiptRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId()); detailDO.setMasterId(mainDo.getId());

Loading…
Cancel
Save