Browse Source

Merge remote-tracking branch 'origin/master'

master
陈薪名 2 years ago
parent
commit
adc8c34035
  1. 5
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExcelVO.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExportReqVO.java
  4. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationsettingExcelVO.java
  5. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java
  6. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java
  7. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java
  8. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java
  9. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingExcelVO.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExcelVO.java
  11. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExportReqVO.java
  12. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExcelVO.java
  13. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExportReqVO.java
  14. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java
  15. 58
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java
  16. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportErrorVO.java
  17. 45
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportVO.java
  18. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java
  19. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java
  20. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExportReqVO.java
  21. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java
  22. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java
  23. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java
  24. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailBaseVO.java
  25. 22
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExcelVO.java
  26. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExportReqVO.java
  27. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailPageReqVO.java
  28. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java
  29. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java
  30. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java
  31. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportErrorVO.java
  32. 81
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java
  33. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java
  34. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java
  35. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java
  36. 53
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java
  37. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java
  38. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportErrorVO.java
  39. 63
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportVO.java
  40. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java
  41. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java
  42. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java
  43. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExcelVO.java
  44. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExportReqVO.java
  45. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java
  46. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java
  47. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java
  48. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java
  49. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java
  50. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java
  51. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java
  52. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java
  53. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java
  54. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java
  55. 29
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java
  56. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java
  57. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java
  58. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java
  59. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java
  60. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchasereceiptRecordDetailDO.java
  61. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java
  62. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/areabasic/AreabasicMapper.java
  63. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/process/ProcessMapper.java
  64. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionline/ProductionlineMapper.java
  65. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java
  66. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java
  67. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestDetailMapper.java
  68. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/project/ProjectMapper.java
  69. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java
  70. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java
  71. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRecord/PurchasereceiptRecordDetailMapper.java
  72. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java
  73. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java
  74. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/shift/ShiftMapper.java
  75. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java
  76. 31
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java
  77. 29
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java
  78. 308
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java
  79. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java
  80. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java
  81. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java
  82. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java
  83. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java
  84. 88
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java
  85. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java
  86. 314
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java
  87. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java
  88. 49
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java
  89. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java
  90. 40
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java
  91. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java
  92. 363
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java
  93. 98
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java
  94. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java
  95. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java
  96. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java
  97. 345
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java
  98. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java
  99. 301
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java
  100. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java

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

@ -62,6 +62,7 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCTIONLINEITEM_PRODUCT_LINE_COED_NOT_EXISTS = new ErrorCode(1_000_024_003, "产线代码不存在"); ErrorCode PRODUCTIONLINEITEM_PRODUCT_LINE_COED_NOT_EXISTS = new ErrorCode(1_000_024_003, "产线代码不存在");
ErrorCode PRODUCTIONLINEITEM_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_024_004, "物品代码不存在"); ErrorCode PRODUCTIONLINEITEM_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_024_004, "物品代码不存在");
ErrorCode PRODUCTIONLINEITEM_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_024_005, "是否可用不存在"); ErrorCode PRODUCTIONLINEITEM_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_024_005, "是否可用不存在");
ErrorCode PRODUCTIONLINEITEM_NOT_EXIST = new ErrorCode(1_000_024_006, "生产线物料关系不存在【{}】");
//采购价格单ErrorCode //采购价格单ErrorCode
ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_000_025_000, "供应商不存在"); ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_000_025_000, "供应商不存在");
ErrorCode SUPPLIER_NOT_EXISTSNO = new ErrorCode(1_000_025_001, "代码已存在"); ErrorCode SUPPLIER_NOT_EXISTSNO = new ErrorCode(1_000_025_001, "代码已存在");
@ -200,6 +201,7 @@ public interface ErrorCodeConstants {
ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_NOT_EXISTS = new ErrorCode(1_000_040_005, "生产线代码不存在"); ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_NOT_EXISTS = new ErrorCode(1_000_040_005, "生产线代码不存在");
ErrorCode WORKSTATION_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_040_006, "导入工序不能为空"); ErrorCode WORKSTATION_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_040_006, "导入工序不能为空");
ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_AND_WORKSTATION_RELATION_ERROR = new ErrorCode(1_000_040_007, "生产线代码与工位不匹配"); ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_AND_WORKSTATION_RELATION_ERROR = new ErrorCode(1_000_040_007, "生产线代码与工位不匹配");
ErrorCode WORKSTATION_RELATION_ERROR = new ErrorCode(1_000_040_008, "车间,生产线代码与工位不匹配【{}】");
//工序ErrorCode //工序ErrorCode
ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_000_041_000, "工序不存在"); ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_000_041_000, "工序不存在");
ErrorCode PROCESS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_041_001, "导入工序数据不能为空"); ErrorCode PROCESS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_041_001, "导入工序数据不能为空");
@ -373,6 +375,8 @@ public interface ErrorCodeConstants {
//采购订单主ErrorCode //采购订单主ErrorCode
ErrorCode PURCHASE_MAIN_NOT_EXISTS = new ErrorCode(1_000_063_000, "采购订单主不存在"); ErrorCode PURCHASE_MAIN_NOT_EXISTS = new ErrorCode(1_000_063_000, "采购订单主不存在");
ErrorCode PURCHASE_CLOSED_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单已关闭"); ErrorCode PURCHASE_CLOSED_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单已关闭");
ErrorCode PURCHASE_MAIN_CANNOT_CLOSE = new ErrorCode(1_000_073_004, "采购订单状态不支持关闭");
ErrorCode PURCHASE_MAIN_EXISTS = new ErrorCode(1_000_073_004, "采购订单存在要货计划任务单");
//采购订单子ErrorCode //采购订单子ErrorCode
ErrorCode PURCHASE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单子不存在"); ErrorCode PURCHASE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单子不存在");
ErrorCode PURCHASE_DETAIL_ARGUMENT_NOT_EXISTS = new ErrorCode(1_000_063_002, "采购订单明细:订单号ppo_number、订单行pline_number、零件号pitem_code无效"); ErrorCode PURCHASE_DETAIL_ARGUMENT_NOT_EXISTS = new ErrorCode(1_000_063_002, "采购订单明细:订单号ppo_number、订单行pline_number、零件号pitem_code无效");
@ -552,6 +556,7 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_097_000, "生产退料申请主不存在"); ErrorCode PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_097_000, "生产退料申请主不存在");
//生产退料申请子ErrorCode //生产退料申请子ErrorCode
ErrorCode PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_097_001, "生产退料申请子不存在"); ErrorCode PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_097_001, "生产退料申请子不存在");
ErrorCode PRODUCTIONRETURN_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_097_002, "导入生产退料申请不能为空");
//生产退料申请主ErrorCode //生产退料申请主ErrorCode
ErrorCode PRODUCTIONRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_098_000, "生产退料任务主不存在"); ErrorCode PRODUCTIONRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_098_000, "生产退料任务主不存在");
//生产退料任务子ErrorCode //生产退料任务子ErrorCode

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExcelVO.java

@ -23,9 +23,6 @@ public class AreabasicExcelVO {
@ExcelProperty("名称") @ExcelProperty("名称")
private String name; private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty("仓库代码") @ExcelProperty("仓库代码")
private String warehouseCode; private String warehouseCode;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExportReqVO.java

@ -18,9 +18,6 @@ public class AreabasicExportReqVO {
@Schema(description = "名称") @Schema(description = "名称")
private String name; private String name;
@Schema(description = "描述")
private String description;
@Schema(description = "仓库代码") @Schema(description = "仓库代码")
private String warehouseCode; private String warehouseCode;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationsettingExcelVO.java

@ -43,7 +43,8 @@ public class ConfigurationsettingExcelVO {
@ExcelProperty("描述") @ExcelProperty("描述")
private String description; private String description;
@ExcelProperty("必填") @ExcelProperty(value = "必填", converter = DictConvert.class)
@DictFormat("true_false")
private String isRequired; private String isRequired;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java

@ -2,15 +2,13 @@ package com.win.module.wms.controller.inspectRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne; import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/** /**
@ -115,11 +113,11 @@ public class InspectRequestMainBaseVO {
@Schema(description = "收货数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "收货数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "收货数量不能为空") @NotNull(message = "收货数量不能为空")
private Integer receiveQty; private BigDecimal receiveQty;
@Schema(description = "样品数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "样品数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "样品数量不能为空") @NotNull(message = "样品数量不能为空")
private Integer sampleQty; private BigDecimal sampleQty;
@Schema(description = "货主代码") @Schema(description = "货主代码")
private String ownerCode; private String ownerCode;

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java

@ -1,16 +1,12 @@
package com.win.module.wms.controller.inspectRequest.vo; package com.win.module.wms.controller.inspectRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
@ -100,10 +96,10 @@ public class InspectRequestMainExcelVO {
private String uom; private String uom;
@ExcelProperty("收货数量") @ExcelProperty("收货数量")
private Integer receiveQty; private BigDecimal receiveQty;
@ExcelProperty("样品数量") @ExcelProperty("样品数量")
private Integer sampleQty; private BigDecimal sampleQty;
@ExcelProperty("货主代码") @ExcelProperty("货主代码")
private String ownerCode; private String ownerCode;

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java

@ -1,12 +1,12 @@
package com.win.module.wms.controller.inspectRequest.vo; package com.win.module.wms.controller.inspectRequest.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam; import lombok.Data;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 检验申请主 Excel 导出 Request VO,参数和 InspectRequestMainPageReqVO 是一致的") @Schema(description = "管理后台 - 检验申请主 Excel 导出 Request VO,参数和 InspectRequestMainPageReqVO 是一致的")
@ -90,10 +90,10 @@ public class InspectRequestMainExportReqVO {
private String uom; private String uom;
@Schema(description = "收货数量") @Schema(description = "收货数量")
private Integer receiveQty; private BigDecimal receiveQty;
@Schema(description = "样品数量") @Schema(description = "样品数量")
private Integer sampleQty; private BigDecimal sampleQty;
@Schema(description = "货主代码") @Schema(description = "货主代码")
private String ownerCode; private String ownerCode;

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java

@ -1,10 +1,13 @@
package com.win.module.wms.controller.inspectRequest.vo; package com.win.module.wms.controller.inspectRequest.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam; import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -92,10 +95,10 @@ public class InspectRequestMainPageReqVO extends PageParam {
private String uom; private String uom;
@Schema(description = "收货数量") @Schema(description = "收货数量")
private Integer receiveQty; private BigDecimal receiveQty;
@Schema(description = "样品数量") @Schema(description = "样品数量")
private Integer sampleQty; private BigDecimal sampleQty;
@Schema(description = "货主代码") @Schema(description = "货主代码")
private String ownerCode; private String ownerCode;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingExcelVO.java

@ -47,7 +47,8 @@ public class ParamsettingExcelVO {
@ExcelProperty("描述") @ExcelProperty("描述")
private String description; private String description;
@ExcelProperty("必填") @ExcelProperty(value = "必填", converter = DictConvert.class)
@DictFormat("true_false")
private String isRequired; private String isRequired;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExcelVO.java

@ -23,9 +23,6 @@ public class ProcessExcelVO {
@ExcelProperty("名称") @ExcelProperty("名称")
private String name; private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "类型", converter = DictConvert.class) @ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat("process_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("process_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type; private String type;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExportReqVO.java

@ -18,9 +18,6 @@ public class ProcessExportReqVO {
@Schema(description = "名称") @Schema(description = "名称")
private String name; private String name;
@Schema(description = "描述")
private String description;
@Schema(description = "类型") @Schema(description = "类型")
private String type; private String type;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExcelVO.java

@ -23,9 +23,6 @@ public class ProductionlineExcelVO {
@ExcelProperty("名称") @ExcelProperty("名称")
private String name; private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "类型", converter = DictConvert.class) @ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat("production_line_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat("production_line_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String type; private String type;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExportReqVO.java

@ -18,9 +18,6 @@ public class ProductionlineExportReqVO {
@Schema(description = "名称") @Schema(description = "名称")
private String name; private String name;
@Schema(description = "描述")
private String description;
@Schema(description = "类型") @Schema(description = "类型")
private String type; private String type;

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java

@ -10,6 +10,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productionreturnRequest.vo.*; import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService; import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@ -43,15 +44,15 @@ public class ProductionreturnRequestDetailController {
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建生产退料申请子") @Operation(summary = "创建生产退料申请子")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:create')") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:create')")
public CommonResult<Long> createProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailCreateReqVO createReqVO) { public CommonResult<Long> createProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailCreateReqVO createReqVO, @RequestBody RequestsettingDO requestsettingDO) {
return success(productionreturnRequestDetailService.createProductionreturnRequestDetail(createReqVO)); return success(productionreturnRequestDetailService.createProductionreturnRequestDetail(createReqVO,requestsettingDO));
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新生产退料申请子") @Operation(summary = "更新生产退料申请子")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:update')") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:update')")
public CommonResult<Boolean> updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO) { public CommonResult<Boolean> updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO, @RequestBody RequestsettingDO requestsettingDO) {
productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO); productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO,requestsettingDO);
return success(true); return success(true);
} }

58
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java

@ -3,6 +3,8 @@ package com.win.module.wms.controller.productionreturnRequest;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
@ -10,21 +12,28 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productionreturnRequest.vo.*; import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService; import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestMainService; import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
@ -38,7 +47,6 @@ public class ProductionreturnRequestMainController {
@Resource @Resource
private ProductionreturnRequestMainService productionreturnRequestMainService; private ProductionreturnRequestMainService productionreturnRequestMainService;
@Resource @Resource
private ProductionreturnRequestDetailService productionreturnRequestDetailService; private ProductionreturnRequestDetailService productionreturnRequestDetailService;
@ -48,15 +56,15 @@ public class ProductionreturnRequestMainController {
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建生产退料申请主") @Operation(summary = "创建生产退料申请主")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:create')") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:create')")
public CommonResult<Long> createProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainCreateReqVO createReqVO) { public CommonResult<Long> createProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainCreateReqVO createReqVO,@RequestBody BusinesstypeDO businesstypeDO,@RequestBody RequestsettingDO requestsettingDO) {
return success(productionreturnRequestMainService.createProductionreturnRequestMain(createReqVO)); return success(productionreturnRequestMainService.createProductionreturnRequestMain(createReqVO,businesstypeDO,requestsettingDO));
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新生产退料申请主") @Operation(summary = "更新生产退料申请主")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:update')") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:update')")
public CommonResult<Boolean> updateProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainUpdateReqVO updateReqVO) { public CommonResult<Boolean> updateProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainUpdateReqVO updateReqVO,@RequestBody BusinesstypeDO businesstypeDO,@RequestBody RequestsettingDO requestsettingDO) {
productionreturnRequestMainService.updateProductionreturnRequestMain(updateReqVO); productionreturnRequestMainService.updateProductionreturnRequestMain(updateReqVO,businesstypeDO,requestsettingDO);
return success(true); return success(true);
} }
@ -144,4 +152,44 @@ public class ProductionreturnRequestMainController {
return success(result); return success(result);
} }
@GetMapping("/get-import-template")
@Operation(summary = "获得导入生产退料申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProductionreturnRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(8, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
// 输出
ExcelUtils.write(response, "生产退料信息导入模板.xlsx", "生产退料申请信息列表", ProductionreturnRequestImportVO.class, list, mapDropDown);
}
@PostMapping("/import")
@Operation(summary = "导入生产退料基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart,
@RequestParam(value = "businesstypeDO")BusinesstypeDO businesstypeDO,
@RequestParam(value = "requestsettingDO")RequestsettingDO requestsettingDO) throws Exception {
List<ProductionreturnRequestImportVO> list = ExcelUtils.read(file, ProductionreturnRequestImportVO.class);
ConvertUtil<ProductionreturnRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(ProductionreturnRequestMainCreateReqVO.class);
List<ProductionreturnRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<ProductionreturnRequestImportErrorVO> errorList = productionreturnRequestMainService.importProductionreturnRequestList(createReqVOList, mode, updatePart,businesstypeDO,requestsettingDO);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("生产退料基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
} }

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportErrorVO.java

@ -0,0 +1,25 @@
package com.win.module.wms.controller.productionreturnRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 生产退料申请 Excel VO
*
* @author 超级管理员
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProductionreturnRequestImportErrorVO extends ProductionreturnRequestImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

45
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportVO.java

@ -0,0 +1,45 @@
package com.win.module.wms.controller.productionreturnRequest.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;
/**
* 生产退料申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductionreturnRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("车间代码")
private String workshopCode;
@ExcelProperty("生产线代码")
private String productionLineCode;
@ExcelProperty("工位代码")
private String workStationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productionreturnRequest.vo; package com.win.module.wms.controller.productionreturnRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -34,6 +35,7 @@ public class ProductionreturnRequestMainBaseVO {
@Schema(description = "从库区代码范围") @Schema(description = "从库区代码范围")
private String fromAreaCodes; private String fromAreaCodes;
@OnlyOne
@Schema(description = "单据号") @Schema(description = "单据号")
private String number; private String number;

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java

@ -1,12 +1,21 @@
package com.win.module.wms.controller.productionreturnRequest.vo; package com.win.module.wms.controller.productionreturnRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 生产退料申请主创建 Request VO") @Schema(description = "管理后台 - 生产退料申请主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class ProductionreturnRequestMainCreateReqVO extends ProductionreturnRequestMainBaseVO { public class ProductionreturnRequestMainCreateReqVO extends ProductionreturnRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ProductionreturnRequestDetailCreateReqVO> subList;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExportReqVO.java

@ -18,9 +18,6 @@ public class ProjectExportReqVO {
@Schema(description = "名称") @Schema(description = "名称")
private String name; private String name;
@Schema(description = "描述")
private String description;
@Schema(description = "客户代码") @Schema(description = "客户代码")
private String customerCode; private String customerCode;

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java

@ -144,7 +144,7 @@ public class PurchaseMainController {
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
}) })
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:import')") @PreAuthorize("@ss.hasPermission('wms:purchase-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response, public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file, @RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode, @RequestParam(value = "mode") Integer mode,
@ -162,4 +162,13 @@ public class PurchaseMainController {
return success(returnMap); return success(returnMap);
} }
@PutMapping("/close")
@Operation(summary = "关闭采购订单申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:purchase-main:close')")
public CommonResult<Boolean> closePurchaseMain(@RequestParam("id") Long id) {
Integer count = purchaseMainService.closePurchaseMain(id);
return success(count > 0);
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java

@ -66,7 +66,7 @@ public class PurchaseclaimRequestMainController {
@Operation(summary = "更新采购索赔申请主") @Operation(summary = "更新采购索赔申请主")
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')")
public CommonResult<Boolean> updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) { public CommonResult<Boolean> updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
Integer result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO); Long result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO);
return success(result > 0); return success(result > 0);
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java

@ -116,4 +116,10 @@ public class PurchasereceiptJobDetailBaseVO {
@Schema(description = "实际数量") @Schema(description = "实际数量")
private BigDecimal handleQty; private BigDecimal handleQty;
@Schema(description = "到包装号")
private String toPackingNumber;
@Schema(description = "到际批次")
private String toBatch;
} }

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailBaseVO.java

@ -1,20 +1,12 @@
package com.win.module.wms.controller.purchasereceiptRecord.vo; package com.win.module.wms.controller.purchasereceiptRecord.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -80,10 +72,10 @@ public class PurchasereceiptRecordDetailBaseVO {
private String toLocationGroupCode; private String toLocationGroupCode;
@Schema(description = "从库区代码") @Schema(description = "从库区代码")
private String fromAreaCodes; private String fromAreaCode;
@Schema(description = "到库区代码") @Schema(description = "到库区代码")
private String toAreaCodes; private String toAreaCode;
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "订单号不能为空") @NotNull(message = "订单号不能为空")

22
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExcelVO.java

@ -1,22 +1,12 @@
package com.win.module.wms.controller.purchasereceiptRecord.vo; package com.win.module.wms.controller.purchasereceiptRecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
@ -70,10 +60,10 @@ public class PurchasereceiptRecordDetailExcelVO {
private String toLocationGroupCode; private String toLocationGroupCode;
@ExcelProperty("从库区代码") @ExcelProperty("从库区代码")
private String fromAreaCodes; private String fromAreaCode;
@ExcelProperty("到库区代码") @ExcelProperty("到库区代码")
private String toAreaCodes; private String toAreaCode;
@ExcelProperty("订单号") @ExcelProperty("订单号")
private String poNumber; private String poNumber;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExportReqVO.java

@ -62,10 +62,10 @@ public class PurchasereceiptRecordDetailExportReqVO {
private String toLocationGroupCode; private String toLocationGroupCode;
@Schema(description = "从库区代码") @Schema(description = "从库区代码")
private String fromAreaCodes; private String fromAreaCode;
@Schema(description = "到库区代码") @Schema(description = "到库区代码")
private String toAreaCodes; private String toAreaCode;
@Schema(description = "订单号") @Schema(description = "订单号")
private String poNumber; private String poNumber;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailPageReqVO.java

@ -67,10 +67,10 @@ public class PurchasereceiptRecordDetailPageReqVO extends PageParam {
private String toLocationGroupCode; private String toLocationGroupCode;
@Schema(description = "从库区代码") @Schema(description = "从库区代码")
private String fromAreaCodes; private String fromAreaCode;
@Schema(description = "到库区代码") @Schema(description = "到库区代码")
private String toAreaCodes; private String toAreaCode;
@Schema(description = "订单号") @Schema(description = "订单号")
private String poNumber; private String poNumber;

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java

@ -58,6 +58,7 @@ public class PurchasereceiptRequestMainBaseVO {
@Schema(description = "到月台代码") @Schema(description = "到月台代码")
private String toDockCode; private String toDockCode;
@OnlyOne
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
private String number; private String number;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java

@ -23,6 +23,8 @@ import java.time.LocalDateTime;
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 @Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PurchasereceiptRequestMainImportVO { public class PurchasereceiptRequestMainImportVO {
@ExcelProperty("单据号")
private String number;
//主表数据 //主表数据
@ExcelProperty("供应商代码") @ExcelProperty("供应商代码")
private String supplierCode; private String supplierCode;

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java

@ -1,9 +1,13 @@
package com.win.module.wms.controller.purchasereturnRequest; package com.win.module.wms.controller.purchasereturnRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
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.purchasereturnRequest.vo.*; import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestDetailConvert; import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestDetailService; import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestDetailService;
@ -17,6 +21,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*; import javax.validation.*;
import javax.servlet.http.*; import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import java.io.IOException; import java.io.IOException;
@ -32,6 +38,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestMainConvert; import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestMainConvert;
import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestMainService; import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 采购退货申请主") @Tag(name = "管理后台 - 采购退货申请主")
@RestController @RestController
@ -128,6 +135,49 @@ public class PurchasereturnRequestMainController {
ExcelUtils.write(response, "采购退货申请主.xls", "数据", PurchasereturnRequestMainExcelVO.class, datas); ExcelUtils.write(response, "采购退货申请主.xls", "数据", PurchasereturnRequestMainExcelVO.class, datas);
} }
@GetMapping("/get-import-template")
@Operation(summary = "获得导入采购退货信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<PurchasereturnRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(11, inventoryStatus);
String[] reason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
mapDropDown.put(13, reason);
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
mapDropDown.put(15, transferMode);
// 输出
ExcelUtils.write(response, "采购退货信息导入模板.xlsx", "采购退货信息列表", PurchasereturnRequestImportVO.class, list, mapDropDown);
}
@PostMapping("/import")
@Operation(summary = "导入采购退货基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:purchasereturn-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<PurchasereturnRequestImportVO> list = ExcelUtils.read(file, PurchasereturnRequestImportVO.class);
ConvertUtil<PurchasereturnRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(PurchasereturnRequestMainCreateReqVO.class);
List<PurchasereturnRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<PurchasereturnRequestImportErrorVO> errorList = purchasereturnRequestMainService.importPurchasereturnRequestList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("采购退货基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
@GetMapping("/getPurchasereturnRequestById") @GetMapping("/getPurchasereturnRequestById")
@Operation(summary = "APP获得采购退货申请主子表明细列表") @Operation(summary = "APP获得采购退货申请主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportErrorVO.java

@ -0,0 +1,25 @@
package com.win.module.wms.controller.purchasereturnRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 供应商发票申请 Excel VO
*
* @author 超级管理员
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PurchasereturnRequestImportErrorVO extends PurchasereturnRequestImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

81
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java

@ -0,0 +1,81 @@
package com.win.module.wms.controller.purchasereturnRequest.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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 供应商发票申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PurchasereturnRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("采购收货记录单号")
private String purchaseReceiptRecordNumber;
@ExcelProperty("供应商代码")
private String supplierCode;
@ExcelProperty("订单号")
private String poNumber;
@ExcelProperty("订单行")
private String poLine;
@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;
@ExcelProperty(value = "原因", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PURCHASE_RETURN_REASON)
private String reason;
@ExcelProperty("承运商")
private String carrierCode;
@ExcelProperty(value = "运输方式", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRANSFER_MODE)
private String transferMode;
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java

@ -1,11 +1,8 @@
package com.win.module.wms.controller.purchasereturnRequest.vo; package com.win.module.wms.controller.purchasereturnRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -44,12 +41,12 @@ public class PurchasereturnRequestMainBaseVO {
private String vehiclePlateNumber; private String vehiclePlateNumber;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseCode; private String fromWarehouseCode;
@Schema(description = "到仓库代码") @Schema(description = "到仓库代码")
private String toWarehouseCode; private String toWarehouseCode;
@OnlyOne
@Schema(description = "单据号") @Schema(description = "单据号")
private String number; private String number;

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java

@ -1,12 +1,19 @@
package com.win.module.wms.controller.purchasereturnRequest.vo; package com.win.module.wms.controller.purchasereturnRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 采购退货申请主创建 Request VO") @Schema(description = "管理后台 - 采购退货申请主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class PurchasereturnRequestMainCreateReqVO extends PurchasereturnRequestMainBaseVO { public class PurchasereturnRequestMainCreateReqVO extends PurchasereturnRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PurchasereturnRequestDetailCreateReqVO> subList;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.purchasereturnRequest.vo; package com.win.module.wms.controller.purchasereturnRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 采购退货申请主更新 Request VO") @Schema(description = "管理后台 - 采购退货申请主更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class PurchasereturnRequestMainUpdateReqVO extends PurchasereturnRequestMainBaseVO { public class PurchasereturnRequestMainUpdateReqVO extends PurchasereturnRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PurchasereturnRequestDetailUpdateReqVO> subList;
} }

53
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java

@ -1,9 +1,13 @@
package com.win.module.wms.controller.putawayRequest; package com.win.module.wms.controller.putawayRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
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.putawayRequest.vo.*; import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert; import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
import com.win.module.wms.service.putawayRequest.PutawayRequestDetailService; import com.win.module.wms.service.putawayRequest.PutawayRequestDetailService;
@ -16,6 +20,8 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*; import javax.validation.*;
import javax.servlet.http.*; import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import java.io.IOException; import java.io.IOException;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
@ -27,6 +33,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
import com.win.module.wms.convert.putawayRequest.PutawayRequestMainConvert; import com.win.module.wms.convert.putawayRequest.PutawayRequestMainConvert;
import com.win.module.wms.service.putawayRequest.PutawayRequestMainService; import com.win.module.wms.service.putawayRequest.PutawayRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 上架申请主") @Tag(name = "管理后台 - 上架申请主")
@RestController @RestController
@ -118,7 +125,26 @@ public class PutawayRequestMainController {
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
} }
ExcelUtils.write(response, "上架申请主.xls", "数据", PutawayRequestMainExcelVO.class, datas); Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(8, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
ExcelUtils.write(response, "上架申请主.xls", "数据", PutawayRequestMainExcelVO.class, datas,mapDropDown);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入上架申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<PutawayRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(8, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(10, uom);
// 输出
ExcelUtils.write(response, "上架申请信息导入模板.xlsx", "上架申请信息列表", PutawayRequestImportVO.class, list, mapDropDown);
} }
@GetMapping("/getPutawayRequestById") @GetMapping("/getPutawayRequestById")
@ -139,4 +165,29 @@ public class PutawayRequestMainController {
return success(result); return success(result);
} }
@PostMapping("/import")
@Operation(summary = "导入上架申请基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:putaway-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<PutawayRequestImportVO> list = ExcelUtils.read(file, PutawayRequestImportVO.class);
ConvertUtil<PutawayRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(PutawayRequestMainCreateReqVO.class);
List<PutawayRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<PutawayRequestImportErrorVO> errorList = putawayRequestMainService.importPutawayRequestList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("上架申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java

@ -92,4 +92,6 @@ public class PutawayRequestDetailBaseVO {
@Schema(description = "到货主代码") @Schema(description = "到货主代码")
private String toOwnerCode; private String toOwnerCode;
@Schema(description = "主表id")
private Long masterId;
} }

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportErrorVO.java

@ -0,0 +1,25 @@
package com.win.module.wms.controller.putawayRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 供应商发票申请 Excel VO
*
* @author 超级管理员
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PutawayRequestImportErrorVO extends PutawayRequestImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

63
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportVO.java

@ -0,0 +1,63 @@
package com.win.module.wms.controller.putawayRequest.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;
/**
* 上架申请 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PutawayRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("供应商代码")
private String supplierCode;
@ExcelProperty("订单号")
private String poNumber;
@ExcelProperty("订单行")
private String poLine;
@ExcelProperty("物品代码")
private String itemCode;
@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 BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("来源库位")
private String fromLocationCode;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.putawayRequest.vo; package com.win.module.wms.controller.putawayRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -37,6 +38,7 @@ public class PutawayRequestMainBaseVO {
@Schema(description = "从库区代码范围") @Schema(description = "从库区代码范围")
private String fromAreaCodes; private String fromAreaCodes;
@OnlyOne
@Schema(description = "单据号") @Schema(description = "单据号")
private String number; private String number;
@ -101,8 +103,4 @@ public class PutawayRequestMainBaseVO {
@NotNull(message = "直接生成记录不能为空") @NotNull(message = "直接生成记录不能为空")
private String directCreateRecord; private String directCreateRecord;
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java

@ -1,12 +1,19 @@
package com.win.module.wms.controller.putawayRequest.vo; package com.win.module.wms.controller.putawayRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 上架申请主创建 Request VO") @Schema(description = "管理后台 - 上架申请主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class PutawayRequestMainCreateReqVO extends PutawayRequestMainBaseVO { public class PutawayRequestMainCreateReqVO extends PutawayRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PutawayRequestDetailCreateReqVO> subList;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.putawayRequest.vo; package com.win.module.wms.controller.putawayRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 上架申请主更新 Request VO") @Schema(description = "管理后台 - 上架申请主更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class PutawayRequestMainUpdateReqVO extends PutawayRequestMainBaseVO { public class PutawayRequestMainUpdateReqVO extends PutawayRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PutawayRequestDetailUpdateReqVO> subList;
} }

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExcelVO.java

@ -1,5 +1,7 @@
package com.win.module.wms.controller.shift.vo; package com.win.module.wms.controller.shift.vo;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -27,9 +29,6 @@ public class ShiftExcelVO {
@ExcelProperty("名称") @ExcelProperty("名称")
private String name; private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty("开始时间") @ExcelProperty("开始时间")
private LocalDateTime beginTime; private LocalDateTime beginTime;
@ -51,10 +50,12 @@ public class ShiftExcelVO {
@ExcelProperty("创建者ID") @ExcelProperty("创建者ID")
private String creator; private String creator;
@ExcelProperty("是否跨天") @ExcelProperty(value = "是否跨天", converter = DictConvert.class)
@DictFormat("true_false")
private String endAtNextDay; private String endAtNextDay;
@ExcelProperty("是否可用") @ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false")
private String available; private String available;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExportReqVO.java

@ -19,9 +19,6 @@ public class ShiftExportReqVO {
@Schema(description = "名称") @Schema(description = "名称")
private String name; private String name;
@Schema(description = "描述")
private String description;
@Schema(description = "开始时间") @Schema(description = "开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] beginTime; private LocalDateTime[] beginTime;

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java

@ -32,9 +32,11 @@ public interface IssueRequestDetailConvert {
PageResult<IssueRequestDetailRespVO> convertPage(PageResult<IssueRequestDetailDO> page); PageResult<IssueRequestDetailRespVO> convertPage(PageResult<IssueRequestDetailDO> page);
List<IssueRequestDetailExcelVO> convertList02(List<IssueRequestDetailDO> list); IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO);
List<IssueRequestDetailExcelVO> convertList02(List<IssueRequestDetailDO> list);
List<IssueRequestDetailDO> convertList03(List<IssueRequestDetailCreateReqVO> list); List<IssueRequestDetailDO> convertList03(List<IssueRequestDetailCreateReqVO> list);
List<IssueRequestDetailDO> convertList04(List<IssueRequestDetailUpdateReqVO> list); List<IssueRequestDetailDO> convertList04(List<IssueRequestDetailUpdateReqVO> list);
List<IssueRequestDetailDO> convertList05(List<IssueRequestDetailUpdateReqVO> list); List<IssueRequestDetailDO> convertList05(List<IssueRequestDetailUpdateReqVO> list);
@ -53,6 +55,4 @@ public interface IssueRequestDetailConvert {
@Mapping(source = "mainVo.number", target = "number"), @Mapping(source = "mainVo.number", target = "number"),
}) })
IssueRequestImportErrorVO convert(IssueRequestMainCreateReqVO mainVo, IssueRequestDetailCreateReqVO detailVo); IssueRequestImportErrorVO convert(IssueRequestMainCreateReqVO mainVo, IssueRequestDetailCreateReqVO detailVo);
IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO);
} }

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

@ -1,19 +1,15 @@
package com.win.module.wms.convert.issueRequest; package com.win.module.wms.convert.issueRequest;
import java.util.*;
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.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
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.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import java.util.List;
/** /**
* 发料申请主 Convert * 发料申请主 Convert

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java

@ -34,4 +34,5 @@ public interface ProductionreturnRequestDetailConvert {
List<ProductionreturnRequestDetailExcelVO> convertList02(List<ProductionreturnRequestDetailDO> list); List<ProductionreturnRequestDetailExcelVO> convertList02(List<ProductionreturnRequestDetailDO> list);
List<ProductionreturnRequestDetailDO> convertList03(List<ProductionreturnRequestDetailCreateReqVO> subList);
} }

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExcelVO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainRespVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
@ -22,9 +22,7 @@ public interface ProductionreturnRequestMainConvert {
ProductionreturnRequestMainConvert INSTANCE = Mappers.getMapper(ProductionreturnRequestMainConvert.class); ProductionreturnRequestMainConvert INSTANCE = Mappers.getMapper(ProductionreturnRequestMainConvert.class);
ProductionreturnRequestMainDO convert(ProductionreturnRequestMainCreateReqVO bean); ProductionreturnRequestMainDO convert(ProductionreturnRequestMainBaseVO baseVO);
ProductionreturnRequestMainDO convert(ProductionreturnRequestMainUpdateReqVO bean);
ProductionreturnRequestMainRespVO convert(ProductionreturnRequestMainDO bean); ProductionreturnRequestMainRespVO convert(ProductionreturnRequestMainDO bean);
@ -33,5 +31,8 @@ public interface ProductionreturnRequestMainConvert {
PageResult<ProductionreturnRequestMainRespVO> convertPage(PageResult<ProductionreturnRequestMainDO> page); PageResult<ProductionreturnRequestMainRespVO> convertPage(PageResult<ProductionreturnRequestMainDO> page);
List<ProductionreturnRequestMainExcelVO> convertList02(List<ProductionreturnRequestMainDO> list); List<ProductionreturnRequestMainExcelVO> convertList02(List<ProductionreturnRequestMainDO> list);
@Mappings({
@Mapping(source = "createReqVO.number", target = "number"),
})
ProductionreturnRequestImportErrorVO convert(ProductionreturnRequestMainCreateReqVO createReqVO, ProductionreturnRequestDetailDO detailDO);
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java

@ -2,8 +2,11 @@ package com.win.module.wms.convert.purchaseclaimRequest;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*; import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
@ -39,6 +42,8 @@ public interface PurchaseclaimRequestDetailConvert {
List<PurchaseclaimRequestDetailDO> convertList04(List<PurchaseclaimRequestDetailUpdateReqVO> list); List<PurchaseclaimRequestDetailDO> convertList04(List<PurchaseclaimRequestDetailUpdateReqVO> list);
List<PurchaseclaimRequestDetailDO> convertList05(List<PurchaseclaimRequestDetailUpdateReqVO> list);
@Mappings({ @Mappings({
@Mapping(source = "mainDO.number", target = "number"), @Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"), @Mapping(source = "mainDO.remark", target = "remark"),
@ -52,5 +57,5 @@ public interface PurchaseclaimRequestDetailConvert {
@Mappings({ @Mappings({
@Mapping(source = "mainVo.number", target = "number"), @Mapping(source = "mainVo.number", target = "number"),
}) })
PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailCreateReqVO detailVo); PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailDO detailDo);
} }

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java

@ -1,10 +1,12 @@
package com.win.module.wms.convert.purchaseclaimRequest; package com.win.module.wms.convert.purchaseclaimRequest;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*; import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import java.util.List; import java.util.List;
@ -31,4 +33,20 @@ public interface PurchaseclaimRequestMainConvert {
List<PurchaseclaimRequestMainExcelVO> convertList02(List<PurchaseclaimRequestMainDO> list); List<PurchaseclaimRequestMainExcelVO> convertList02(List<PurchaseclaimRequestMainDO> list);
PurchaseclaimRequestMainDO convert(PurchaseclaimRequestMainBaseVO baseVO);
@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"),
})
PurchaseclaimRequestMainExcelVO convert(PurchaseclaimRequestMainDO mainDO, PurchaseclaimRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailDO detailDo);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java

@ -46,7 +46,9 @@ public interface PurchasereceiptRequestDetailConvert {
@Mapping(source = "mainDO.updater", target = "updater"), @Mapping(source = "mainDO.updater", target = "updater"),
}) })
PurchasereceiptRequestDetailExcelVO convert(PurchasereceiptRequestMainDO mainDO, PurchasereceiptRequestDetailDO detailDO); PurchasereceiptRequestDetailExcelVO convert(PurchasereceiptRequestMainDO mainDO, PurchasereceiptRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailCreateReqVO detailVo); PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailCreateReqVO detailVo);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java

@ -32,7 +32,9 @@ public interface PurchasereceiptRequestMainConvert {
PageResult<PurchasereceiptRequestMainRespVO> convertPage(PageResult<PurchasereceiptRequestMainDO> page); PageResult<PurchasereceiptRequestMainRespVO> convertPage(PageResult<PurchasereceiptRequestMainDO> page);
List<PurchasereceiptRequestMainExcelVO> convertList02(List<PurchasereceiptRequestMainDO> list); List<PurchasereceiptRequestMainExcelVO> convertList02(List<PurchasereceiptRequestMainDO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailDO detailDo); PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailDO detailDo);
@Mappings({ @Mappings({

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java

@ -4,11 +4,13 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailCreateReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailExcelVO; import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailRespVO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailUpdateReqVO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
@ -28,10 +30,32 @@ public interface PurchasereturnRequestDetailConvert {
PurchasereturnRequestDetailRespVO convert(PurchasereturnRequestDetailDO bean); PurchasereturnRequestDetailRespVO convert(PurchasereturnRequestDetailDO bean);
PurchasereturnRequestDetailCreateReqVO convert1(PurchasereturnRequestDetailDO bean);
List<PurchasereturnRequestDetailRespVO> convertList(List<PurchasereturnRequestDetailDO> list); List<PurchasereturnRequestDetailRespVO> convertList(List<PurchasereturnRequestDetailDO> list);
PageResult<PurchasereturnRequestDetailRespVO> convertPage(PageResult<PurchasereturnRequestDetailDO> page); PageResult<PurchasereturnRequestDetailRespVO> convertPage(PageResult<PurchasereturnRequestDetailDO> page);
List<PurchasereturnRequestDetailExcelVO> convertList02(List<PurchasereturnRequestDetailDO> list); List<PurchasereturnRequestDetailExcelVO> convertList02(List<PurchasereturnRequestDetailDO> list);
List<PurchasereturnRequestDetailDO> convertList03(List<PurchasereturnRequestDetailCreateReqVO> list);
List<PurchasereturnRequestDetailDO> convertList04(List<PurchasereturnRequestDetailUpdateReqVO> list);
List<PurchasereturnRequestDetailDO> convertList05(List<PurchasereturnRequestDetailUpdateReqVO> subList);
@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"),
})
PurchasereturnRequestDetailExcelVO convert(PurchasereturnRequestMainDO mainDO, PurchasereturnRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailCreateReqVO detailVo);
} }

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java

@ -4,11 +4,14 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExcelVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainRespVO; import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
@ -33,5 +36,10 @@ public interface PurchasereturnRequestMainConvert {
PageResult<PurchasereturnRequestMainRespVO> convertPage(PageResult<PurchasereturnRequestMainDO> page); PageResult<PurchasereturnRequestMainRespVO> convertPage(PageResult<PurchasereturnRequestMainDO> page);
List<PurchasereturnRequestMainExcelVO> convertList02(List<PurchasereturnRequestMainDO> list); List<PurchasereturnRequestMainExcelVO> convertList02(List<PurchasereturnRequestMainDO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailDO detailDo);
PurchasereturnRequestMainDO convert(PurchasereturnRequestMainBaseVO baseVO);
} }

29
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO; import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailExcelVO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailRespVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailUpdateReqVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
@ -28,10 +28,31 @@ public interface PutawayRequestDetailConvert {
PutawayRequestDetailRespVO convert(PutawayRequestDetailDO bean); PutawayRequestDetailRespVO convert(PutawayRequestDetailDO bean);
PutawayRequestDetailCreateReqVO convert1(PutawayRequestDetailDO detailDO);
List<PutawayRequestDetailRespVO> convertList(List<PutawayRequestDetailDO> list); List<PutawayRequestDetailRespVO> convertList(List<PutawayRequestDetailDO> list);
PageResult<PutawayRequestDetailRespVO> convertPage(PageResult<PutawayRequestDetailDO> page); PageResult<PutawayRequestDetailRespVO> convertPage(PageResult<PutawayRequestDetailDO> page);
List<PutawayRequestDetailExcelVO> convertList02(List<PutawayRequestDetailDO> list); List<PutawayRequestDetailExcelVO> convertList02(List<PutawayRequestDetailDO> list);
List<PutawayRequestDetailDO> convertList03(List<PutawayRequestDetailCreateReqVO> list);
List<PutawayRequestDetailDO> convertList04(List<PutawayRequestDetailUpdateReqVO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
PutawayRequestDetailExcelVO convert(PutawayRequestMainDO mainDO, PutawayRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
PutawayRequestImportErrorVO convert(PutawayRequestMainCreateReqVO mainVo, PutawayRequestDetailCreateReqVO detailVo);
List<PutawayRequestDetailDO> convertList05(List<PutawayRequestDetailUpdateReqVO> subList);
} }

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO; import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExcelVO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainRespVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
@ -34,4 +34,9 @@ public interface PutawayRequestMainConvert {
List<PutawayRequestMainExcelVO> convertList02(List<PutawayRequestMainDO> list); List<PutawayRequestMainExcelVO> convertList02(List<PutawayRequestMainDO> list);
PutawayRequestMainDO convert(PutawayRequestMainBaseVO baseVO);
@Mappings({
@Mapping(source = "createReqVO.number", target = "number"),
})
PutawayRequestImportErrorVO convert(PutawayRequestMainCreateReqVO createReqVO, PutawayRequestDetailDO detailDO);
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java

@ -42,7 +42,7 @@ public class DeliverRequestDetailDO extends BaseDO {
/** /**
* 包装号 * 包装号
*/ */
@NotBlank
private String packingNumber; private String packingNumber;
/** /**
* 器具号 * 器具号
@ -51,14 +51,14 @@ public class DeliverRequestDetailDO extends BaseDO {
/** /**
* 批次 * 批次
*/ */
@NotBlank
private String batch; private String batch;
/** /**
* 库存状态 * 库存状态
* *
* 枚举 {@link TODO inventory_status 对应的类} * 枚举 {@link TODO inventory_status 对应的类}
*/ */
@NotBlank
private String inventoryStatus; private String inventoryStatus;
/** /**
* 到货主代码 * 到货主代码
@ -67,7 +67,6 @@ public class DeliverRequestDetailDO extends BaseDO {
/** /**
* 到库位代码 * 到库位代码
*/ */
@NotBlank
private String toLocationCode; private String toLocationCode;
/** /**
* 主表ID * 主表ID

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java

@ -42,7 +42,6 @@ public class DeliverRequestMainDO extends BaseDO {
/** /**
* 客户月台代码 * 客户月台代码
*/ */
@NotBlank
private String customerDockCode; private String customerDockCode;
/** /**
* 承运商 * 承运商
@ -63,12 +62,11 @@ public class DeliverRequestMainDO extends BaseDO {
/** /**
* 从仓库代码 * 从仓库代码
*/ */
@NotBlank
private String fromWarehouseCode; private String fromWarehouseCode;
/** /**
* 到仓库代码 * 到仓库代码
*/ */
@NotBlank
private String toWarehouseCode; private String toWarehouseCode;
/** /**
* 从库位类型范围 * 从库位类型范围
@ -117,7 +115,7 @@ public class DeliverRequestMainDO extends BaseDO {
/** /**
* 部门 * 部门
*/ */
@NotBlank
private String departmentCode; private String departmentCode;
/** /**
* 状态 * 状态

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java

@ -1,13 +1,13 @@
package com.win.module.wms.dal.dataobject.inspectRequest; package com.win.module.wms.dal.dataobject.inspectRequest;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.xml.bind.v2.TODO;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
/** /**
* 检验申请主 DO * 检验申请主 DO
@ -143,11 +143,11 @@ public class InspectRequestMainDO extends BaseDO {
/** /**
* 收货数量 * 收货数量
*/ */
private Integer receiveQty; private BigDecimal receiveQty;
/** /**
* 样品数量 * 样品数量
*/ */
private Integer sampleQty; private BigDecimal sampleQty;
/** /**
* 货主代码 * 货主代码
*/ */

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchasereceiptRecordDetailDO.java

@ -1,19 +1,13 @@
package com.win.module.wms.dal.dataobject.purchasereceiptRecord; package com.win.module.wms.dal.dataobject.purchasereceiptRecord;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.xml.bind.v2.TODO;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
/** /**
* 采购收货记录子 DO * 采购收货记录子 DO
@ -93,11 +87,11 @@ public class PurchasereceiptRecordDetailDO extends BaseDO {
/** /**
* 从库区代码 * 从库区代码
*/ */
private String fromAreaCodes; private String fromAreaCode;
/** /**
* 到库区代码 * 到库区代码
*/ */
private String toAreaCodes; private String toAreaCode;
/** /**
* 订单号 * 订单号
*/ */

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java

@ -1,10 +1,7 @@
package com.win.module.wms.dal.dataobject.purchasereturnRequest; package com.win.module.wms.dal.dataobject.purchasereturnRequest;
import com.sun.xml.bind.v2.TODO;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/areabasic/AreabasicMapper.java

@ -47,7 +47,6 @@ public interface AreabasicMapper extends BaseMapperX<AreabasicDO> {
return selectList(new LambdaQueryWrapperX<AreabasicDO>() return selectList(new LambdaQueryWrapperX<AreabasicDO>()
.eqIfPresent(AreabasicDO::getCode, reqVO.getCode()) .eqIfPresent(AreabasicDO::getCode, reqVO.getCode())
.likeIfPresent(AreabasicDO::getName, reqVO.getName()) .likeIfPresent(AreabasicDO::getName, reqVO.getName())
.eqIfPresent(AreabasicDO::getDescription, reqVO.getDescription())
.eqIfPresent(AreabasicDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(AreabasicDO::getWarehouseCode, reqVO.getWarehouseCode())
.eqIfPresent(AreabasicDO::getType, reqVO.getType()) .eqIfPresent(AreabasicDO::getType, reqVO.getType())
.eqIfPresent(AreabasicDO::getIsFunctional, reqVO.getIsFunctional()) .eqIfPresent(AreabasicDO::getIsFunctional, reqVO.getIsFunctional())

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/process/ProcessMapper.java

@ -46,7 +46,6 @@ public interface ProcessMapper extends BaseMapperX<ProcessDO> {
return selectList(new LambdaQueryWrapperX<ProcessDO>() return selectList(new LambdaQueryWrapperX<ProcessDO>()
.eqIfPresent(ProcessDO::getCode, reqVO.getCode()) .eqIfPresent(ProcessDO::getCode, reqVO.getCode())
.likeIfPresent(ProcessDO::getName, reqVO.getName()) .likeIfPresent(ProcessDO::getName, reqVO.getName())
.eqIfPresent(ProcessDO::getDescription, reqVO.getDescription())
.eqIfPresent(ProcessDO::getType, reqVO.getType()) .eqIfPresent(ProcessDO::getType, reqVO.getType())
.eqIfPresent(ProcessDO::getWorkshopCode, reqVO.getWorkshopCode()) .eqIfPresent(ProcessDO::getWorkshopCode, reqVO.getWorkshopCode())
.eqIfPresent(ProcessDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProcessDO::getProductionLineCode, reqVO.getProductionLineCode())

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionline/ProductionlineMapper.java

@ -46,7 +46,6 @@ public interface ProductionlineMapper extends BaseMapperX<ProductionlineDO> {
return selectList(new LambdaQueryWrapperX<ProductionlineDO>() return selectList(new LambdaQueryWrapperX<ProductionlineDO>()
.eqIfPresent(ProductionlineDO::getCode, reqVO.getCode()) .eqIfPresent(ProductionlineDO::getCode, reqVO.getCode())
.likeIfPresent(ProductionlineDO::getName, reqVO.getName()) .likeIfPresent(ProductionlineDO::getName, reqVO.getName())
.eqIfPresent(ProductionlineDO::getDescription, reqVO.getDescription())
.eqIfPresent(ProductionlineDO::getType, reqVO.getType()) .eqIfPresent(ProductionlineDO::getType, reqVO.getType())
.eqIfPresent(ProductionlineDO::getWorkshopCode, reqVO.getWorkshopCode()) .eqIfPresent(ProductionlineDO::getWorkshopCode, reqVO.getWorkshopCode())
.eqIfPresent(ProductionlineDO::getRawLocationCode, reqVO.getRawLocationCode()) .eqIfPresent(ProductionlineDO::getRawLocationCode, reqVO.getRawLocationCode())

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java

@ -53,7 +53,6 @@ public interface ProductionreturnRequestDetailMapper extends BaseMapperX<Product
default List<ProductionreturnRequestDetailDO> selectList(ProductionreturnRequestDetailExportReqVO reqVO) { default List<ProductionreturnRequestDetailDO> selectList(ProductionreturnRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ProductionreturnRequestDetailDO>() return selectList(new LambdaQueryWrapperX<ProductionreturnRequestDetailDO>()
.eqIfPresent(ProductionreturnRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductionreturnRequestDetailDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProductionreturnRequestDetailDO::getProductionLineCode, reqVO.getProductionLineCode())
.eqIfPresent(ProductionreturnRequestDetailDO::getWorkStationCode, reqVO.getWorkStationCode()) .eqIfPresent(ProductionreturnRequestDetailDO::getWorkStationCode, reqVO.getWorkStationCode())
.eqIfPresent(ProductionreturnRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) .eqIfPresent(ProductionreturnRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus())

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java

@ -76,4 +76,7 @@ public interface ProductionreturnRequestMainMapper extends BaseMapperX<Productio
.orderByDesc(ProductionreturnRequestMainDO::getId)); .orderByDesc(ProductionreturnRequestMainDO::getId));
} }
default ProductionreturnRequestMainDO selectByNumber(String number){
return selectOne(ProductionreturnRequestMainDO::getNumber,number);
}
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestDetailMapper.java

@ -53,7 +53,6 @@ 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())

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/project/ProjectMapper.java

@ -41,7 +41,6 @@ public interface ProjectMapper extends BaseMapperX<ProjectDO> {
return selectList(new LambdaQueryWrapperX<ProjectDO>() return selectList(new LambdaQueryWrapperX<ProjectDO>()
.eqIfPresent(ProjectDO::getCode, reqVO.getCode()) .eqIfPresent(ProjectDO::getCode, reqVO.getCode())
.likeIfPresent(ProjectDO::getName, reqVO.getName()) .likeIfPresent(ProjectDO::getName, reqVO.getName())
.eqIfPresent(ProjectDO::getDescription, reqVO.getDescription())
.eqIfPresent(ProjectDO::getCustomerCode, reqVO.getCustomerCode()) .eqIfPresent(ProjectDO::getCustomerCode, reqVO.getCustomerCode())
.eqIfPresent(ProjectDO::getAvailable, reqVO.getAvailable()) .eqIfPresent(ProjectDO::getAvailable, reqVO.getAvailable())
.betweenIfPresent(ProjectDO::getActiveTime, reqVO.getActiveTime()) .betweenIfPresent(ProjectDO::getActiveTime, reqVO.getActiveTime())

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainExportReqVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainExportReqVO;
import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainPageReqVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@ -47,6 +48,13 @@ public interface PurchasePlanMainMapper extends BaseMapperX<PurchasePlanMainDO>
default PageResult<PurchasePlanMainDO> selectSenior(CustomConditions conditions) { default PageResult<PurchasePlanMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
default Long selectBySonNumber(String number) {
return selectCount(new LambdaQueryWrapperX<PurchasePlanMainDO>()
.eq(PurchasePlanMainDO::getNumber, number)
.ne(PurchasePlanMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
default List<PurchasePlanMainDO> selectList(PurchasePlanMainExportReqVO reqVO) { default List<PurchasePlanMainDO> selectList(PurchasePlanMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<PurchasePlanMainDO>() return selectList(new LambdaQueryWrapperX<PurchasePlanMainDO>()
.eqIfPresent(PurchasePlanMainDO::getSupplierCode, reqVO.getSupplierCode()) .eqIfPresent(PurchasePlanMainDO::getSupplierCode, reqVO.getSupplierCode())

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java

@ -74,10 +74,10 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX<Purchasereceip
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
default Long selectByRequestNumber(String requestNumbere) { default Long selectByRequestNumber(String requestNumber) {
return selectCount(new LambdaQueryWrapperX<PurchasereceiptJobMainDO>() return selectCount(new LambdaQueryWrapperX<PurchasereceiptJobMainDO>()
.eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumbere) .eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumber)
.eq(PurchasereceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); .ne(PurchasereceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
} }
default List<PurchasereceiptJobMainDO> selectList(PurchasereceiptJobMainExportReqVO reqVO) { default List<PurchasereceiptJobMainDO> selectList(PurchasereceiptJobMainExportReqVO reqVO) {

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRecord/PurchasereceiptRecordDetailMapper.java

@ -36,8 +36,8 @@ public interface PurchasereceiptRecordDetailMapper extends BaseMapperX<Purchaser
.eqIfPresent(PurchasereceiptRecordDetailDO::getToLocationCode, reqVO.getToLocationCode()) .eqIfPresent(PurchasereceiptRecordDetailDO::getToLocationCode, reqVO.getToLocationCode())
.eqIfPresent(PurchasereceiptRecordDetailDO::getFromLocationGroupCode, reqVO.getFromLocationGroupCode()) .eqIfPresent(PurchasereceiptRecordDetailDO::getFromLocationGroupCode, reqVO.getFromLocationGroupCode())
.eqIfPresent(PurchasereceiptRecordDetailDO::getToLocationGroupCode, reqVO.getToLocationGroupCode()) .eqIfPresent(PurchasereceiptRecordDetailDO::getToLocationGroupCode, reqVO.getToLocationGroupCode())
.eqIfPresent(PurchasereceiptRecordDetailDO::getFromAreaCodes, reqVO.getFromAreaCodes()) .eqIfPresent(PurchasereceiptRecordDetailDO::getFromAreaCode, reqVO.getFromAreaCode())
.eqIfPresent(PurchasereceiptRecordDetailDO::getToAreaCodes, reqVO.getToAreaCodes()) .eqIfPresent(PurchasereceiptRecordDetailDO::getToAreaCode, reqVO.getToAreaCode())
.eqIfPresent(PurchasereceiptRecordDetailDO::getPoNumber, reqVO.getPoNumber()) .eqIfPresent(PurchasereceiptRecordDetailDO::getPoNumber, reqVO.getPoNumber())
.eqIfPresent(PurchasereceiptRecordDetailDO::getPoLine, reqVO.getPoLine()) .eqIfPresent(PurchasereceiptRecordDetailDO::getPoLine, reqVO.getPoLine())
.eqIfPresent(PurchasereceiptRecordDetailDO::getStdPackQty, reqVO.getStdPackQty()) .eqIfPresent(PurchasereceiptRecordDetailDO::getStdPackQty, reqVO.getStdPackQty())

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO; import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO; import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -57,6 +58,11 @@ public interface PurchasereturnRequestMainMapper extends BaseMapperX<Purchaseret
default PageResult<PurchasereturnRequestMainDO> selectSenior(CustomConditions conditions) { default PageResult<PurchasereturnRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
default PurchasereturnRequestMainDO selectRecordNumberAndSupplierCode(String purchaseReceiptRecordNumber, String supplierCode) {
return selectOne(PurchasereturnRequestMainDO::getPurchaseReceiptRecordNumber, purchaseReceiptRecordNumber,PurchasereturnRequestMainDO::getSupplierCode,supplierCode);
}
default List<PurchasereturnRequestMainDO> selectList(PurchasereturnRequestMainExportReqVO reqVO) { default List<PurchasereturnRequestMainDO> selectList(PurchasereturnRequestMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<PurchasereturnRequestMainDO>() return selectList(new LambdaQueryWrapperX<PurchasereturnRequestMainDO>()
.eqIfPresent(PurchasereturnRequestMainDO::getPurchaseReceiptRecordNumber, reqVO.getPurchaseReceiptRecordNumber()) .eqIfPresent(PurchasereturnRequestMainDO::getPurchaseReceiptRecordNumber, reqVO.getPurchaseReceiptRecordNumber())

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java

@ -92,4 +92,7 @@ public interface PutawayRequestMainMapper extends BaseMapperX<PutawayRequestMain
.orderByDesc(PutawayRequestMainDO::getId)); .orderByDesc(PutawayRequestMainDO::getId));
} }
default PutawayRequestMainDO selectSupplierCode(String supplierCode){
return selectOne(PutawayRequestMainDO::getSupplierCode,supplierCode);
};
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/shift/ShiftMapper.java

@ -46,7 +46,6 @@ public interface ShiftMapper extends BaseMapperX<ShiftDO> {
return selectList(new LambdaQueryWrapperX<ShiftDO>() return selectList(new LambdaQueryWrapperX<ShiftDO>()
.eqIfPresent(ShiftDO::getCode, reqVO.getCode()) .eqIfPresent(ShiftDO::getCode, reqVO.getCode())
.likeIfPresent(ShiftDO::getName, reqVO.getName()) .likeIfPresent(ShiftDO::getName, reqVO.getName())
.eqIfPresent(ShiftDO::getDescription, reqVO.getDescription())
.betweenIfPresent(ShiftDO::getBeginTime, reqVO.getBeginTime()) .betweenIfPresent(ShiftDO::getBeginTime, reqVO.getBeginTime())
.betweenIfPresent(ShiftDO::getEntTime, reqVO.getEntTime()) .betweenIfPresent(ShiftDO::getEntTime, reqVO.getEntTime())
.betweenIfPresent(ShiftDO::getActiveTime, reqVO.getActiveTime()) .betweenIfPresent(ShiftDO::getActiveTime, reqVO.getActiveTime())

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java

@ -93,7 +93,7 @@ public class RequestStatusState {
} }
/** /**
* 审批 * 处理
* @return * @return
*/ */
public boolean handle() { public boolean handle() {

31
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java

@ -90,15 +90,14 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
@Override @Override
public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) { public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) {
// 插入 // 插入
RequestsettingDO requestsettingDO = new RequestsettingDO(); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest");
DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,requestsettingDO); DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMain.getStatus())) { if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMain.getStatus())) {
} }
trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE);
return deliverRequestMain.getId(); return deliverRequestMain.getId();
} }
private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
@ -136,7 +135,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
return deliverRequestMainDO; return deliverRequestMainDO;
} }
private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) { private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) {
@ -151,29 +149,32 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode()); Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode());
} }
return deliverRequestDetailDO; return deliverRequestDetailDO;
} }
@Override @Override
public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) { public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = new RequestsettingDO(); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest");
// 校验存在 // 校验存在
validateDeliverRequestMainExists(updateReqVO.getId()); validateDeliverRequestMainExists(updateReqVO.getId());
// 更新 // 更新
DeliverRequestMainDO deliverRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); DeliverRequestMainDO deliverRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
DeliverRequestMainDO updateObj = DeliverRequestMainConvert.INSTANCE.convert(updateReqVO); if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMainDO.getStatus())) {
deliverRequestMainMapper.updateById(updateObj);
}
trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE);
} }
private DeliverRequestMainDO validatorToUpdate(DeliverRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { private DeliverRequestMainDO validatorToUpdate(DeliverRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO(); BusinesstypeDO businesstypeDO = new BusinesstypeDO();
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验 //子表校验
List<DeliverRequestDetailCreateReqVO> subList = updateReqVO.getSubList(); List<DeliverRequestDetailCreateReqVO> subList = updateReqVO.getSubList();
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); if(subList!=null){
for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) { List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList);
validateDetailMethod(issueRequestDetailDO); for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) {
validateDetailMethod(issueRequestDetailDO);
deliverRequestDetailMapper.updateBatch(subDOList);
}
} }
deliverRequestMainMapper.updateById(deliverRequestMainDO); deliverRequestMainMapper.updateById(deliverRequestMainDO);
deliverRequestDetailMapper.updateBatch(subDOList);
return deliverRequestMainDO; return deliverRequestMainDO;
} }
@ -298,7 +299,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
try{ try{
Isuom(itembasicDO.getUom(),detailDo.getUom()); Isuom(itembasicDO.getUom(),detailDo.getUom());
}catch (Exception ex) { }catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
}catch (Exception ex) { }catch (Exception ex) {
@ -306,12 +306,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
} }
try{ try{
SaleDetailDO saleDetailDO =validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode()); SaleDetailDO saleDetailDO =validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode());
if(saleDetailDO!=null) { if(saleDetailDO!=null) {
try { try {
Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode()); Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode());
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
} }
@ -337,7 +335,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
} }
List<DeliverRequestImportErrorVO> errorList = new ArrayList<>(); List<DeliverRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = new BusinesstypeDO(); BusinesstypeDO businesstypeDO = new BusinesstypeDO();
DeliverRequestMainDO mainDo = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); DeliverRequestMainDO mainDo = DeliverRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateDeliverRequestMainImport(mainDo, businesstypeDO); String messageMain = validateDeliverRequestMainImport(mainDo, businesstypeDO);
@ -347,7 +344,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
boolean flag = true; boolean flag = true;
for (DeliverRequestDetailDO detailDO : subDOList) { for (DeliverRequestDetailDO detailDO : subDOList) {
String messageDetail = validateIssueRequestDetailImport(detailDO, mainDo, businesstypeDO); String messageDetail = validateIssueRequestDetailImport(detailDO, mainDo, businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) { if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
DeliverRequestImportErrorVO importErrorVO = DeliverRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); DeliverRequestImportErrorVO importErrorVO = DeliverRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败"); importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail; messageMain = messageMain + messageDetail;

29
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java

@ -1,12 +1,15 @@
package com.win.module.wms.service.inspectRequest; package com.win.module.wms.service.inspectRequest;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inspectRequest.vo.*; import com.win.module.wms.controller.inspectRequest.vo.*;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
/** /**
* 检验申请主 Service 接口 * 检验申请主 Service 接口
@ -84,5 +87,21 @@ public interface InspectRequestMainService {
* @param updatePart 是否支持更新 * @param updatePart 是否支持更新
* @return * @return
*/ */
public List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart); List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
/**
* 获取规则
* @param supplierCode
* @param itemCode
* @return
*/
HashMap<String, String> selectRule(String supplierCode, String itemCode);
/**
* 查询检验物品数量
* @param sampleQty
* @param ruleAll
* @return
*/
BigDecimal selectInspectType(BigDecimal sampleQty, HashMap<String, String> ruleAll);
} }

308
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java

@ -39,17 +39,19 @@ import com.win.module.wms.util.JobUtils;
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;
import javax.validation.Validator;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
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.*; import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_MAIN_NOT_EXISTS;
/** /**
* 检验申请主 Service 实现类 * 检验申请主 Service 实现类
@ -84,13 +86,17 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource @Resource
private TrendsApi trendsApi; private TrendsApi trendsApi;
@Override @Override
@Transactional
public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) { public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
InspectRequestMainDO inspectRequestMainDO = validatorToCreate(createReqVO, businesstypeDO); InspectRequestMainDO inspectRequestMainDO = this.validatorCreate(createReqVO, businesstypeDO, requestsettingDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode());
inspectRequestMainDO.setNumber(number);
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) {
} }
trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE);
@ -98,20 +104,22 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} }
@Override @Override
@Transactional
public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) { public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
// 校验存在 // 校验存在
validateInspectRequestMainExists(updateReqVO.getId()); validateInspectRequestMainExists(updateReqVO.getId());
// 更新主表 // 更新主表
InspectRequestMainDO inspectRequestMainDO = validatorToUpdate(updateReqVO, businesstypeDO); InspectRequestMainDO inspectRequestMainDO = validatorUpdate(updateReqVO, businesstypeDO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) {
} }
trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE);
} }
@Override @Override
@Transactional
public void deleteInspectRequestMain(Long id) { public void deleteInspectRequestMain(Long id) {
// 校验存在 // 校验存在
validateInspectRequestMainExists(id); validateInspectRequestMainExists(id);
@ -139,196 +147,200 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
public PageResult<InspectRequestMainDO> getInspectRequestMainPage(InspectRequestMainPageReqVO pageReqVO) { public PageResult<InspectRequestMainDO> getInspectRequestMainPage(InspectRequestMainPageReqVO pageReqVO) {
return inspectRequestMainMapper.selectPage(pageReqVO); return inspectRequestMainMapper.selectPage(pageReqVO);
} }
@Override @Override
public PageResult<InspectRequestMainDO> getInspectRequestMainSenior(CustomConditions conditions) { public PageResult<InspectRequestMainDO> getInspectRequestMainSenior(CustomConditions conditions) {
return inspectRequestMainMapper.selectSenior(conditions); return inspectRequestMainMapper.selectSenior(conditions);
} }
@Override @Override
public List<InspectRequestMainDO> getInspectRequestMainList(InspectRequestMainExportReqVO exportReqVO) { public List<InspectRequestMainDO> getInspectRequestMainList(InspectRequestMainExportReqVO exportReqVO) {
return inspectRequestMainMapper.selectList(exportReqVO); return inspectRequestMainMapper.selectList(exportReqVO);
} }
@Override
@Transactional
public List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<InspectRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
//主表校验方法
InspectRequestMainDO mainDO = InspectRequestMainConvert.INSTANCE.convert(createReqVO);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
String messageMain = this.validatorInspectRequestMainImport(mainDO, businesstypeDO);
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
for (InspectRequestDetailDO detailDO : subDOList) {
String messageDetail = this.validatorInspectRequestDetailImport(detailDO, mainDO, businesstypeDO);
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO);
InspectRequestImportErrorVO importVO = InspectRequestDetailConvert.INSTANCE.convert(createReqVO, inspectRequestDetailCreateReqVO);
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
}
}
mainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
if (errorList.isEmpty()) {
InspectRequestMainDO existInspectRequestMainDO = inspectRequestMainMapper.selectPurchaseReceiptNumber(createReqVO.getPurchaseReceiptRecordNumber());
if (existInspectRequestMainDO == null && mode != 3) {
String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode());
mainDO.setNumber(number);
inspectRequestMainMapper.insert(mainDO);
for(InspectRequestDetailDO inspectRequestDetailDO : subDOList) {
inspectRequestDetailDO.setMasterId(mainDO.getId());
}
inspectRequestDetailMapper.insertBatch(subDOList);
} else if (existInspectRequestMainDO != null && mode != 2) {
inspectRequestMainMapper.updateById(mainDO);
inspectRequestDetailMapper.updateBatch(subDOList);
}
}
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
//判断导入单位是否正确 //判断导入单位是否正确
private void ifUomSuccess(String itemUom,String uom) { private void ifUomSuccess(String itemUom, String uom) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom); DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom);
if(dictDataRespDTO != null){ if (dictDataRespDTO != null) {
if(!itemUom.equals(dictDataRespDTO.getLabel())){ if (!itemUom.equals(dictDataRespDTO.getLabel())) {
throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom); throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom);
} }
} }
} }
//查询检验类型 //查询检验类型
private Integer selectInspectType(Integer sampleQty, HashMap<String, String> ruleAll) { @Override
public BigDecimal selectInspectType(BigDecimal sampleQty, HashMap<String, String> ruleAll) {
String inspectType = ruleAll.get("InspectType"); String inspectType = ruleAll.get("InspectType");
if("EXEMPT".equals(inspectType)){ if ("FULL".equals(inspectType)) {
return 0;
} else if ("FULL".equals(inspectType)) {
return sampleQty; return sampleQty;
}else if("SAMPLING".equals(inspectType)){ } else if ("SAMPLING".equals(inspectType)) {
return selectSampleMethod(ruleAll, sampleQty); return selectSampleMethod(ruleAll, sampleQty);
}else { } else {
return 0; return BigDecimal.ZERO;
} }
} }
//查询抽检方式 计算抽检数量并返回 //查询抽检方式 计算抽检数量并返回
private Integer selectSampleMethod(HashMap<String, String> ruleAll,Integer sampleQty) { private BigDecimal selectSampleMethod(HashMap<String, String> ruleAll, BigDecimal sampleQty) {
String sampleMethod = ruleAll.get("SampleMethod"); String sampleMethod = ruleAll.get("SampleMethod");
JSONArray aplList = JSONUtil.parseArray(ruleAll.get("AplList")); JSONArray aplList = JSONUtil.parseArray(ruleAll.get("AplList"));
//获取最大校验规则范围 //获取最大校验规则范围
Integer maxFloorQty = 0; BigDecimal maxFloorQty = BigDecimal.ZERO;
Integer maxCeilingQty = 0; BigDecimal maxCeilingQty = BigDecimal.ZERO;
Integer maxSampleValue = 0; BigDecimal maxSampleValue = BigDecimal.ZERO;
Integer result = 0; BigDecimal result = BigDecimal.ZERO;
for (Object o : aplList) { for (Object o : aplList) {
JSONObject parse = JSONUtil.parseObj(o); JSONObject parse = JSONUtil.parseObj(o);
Integer floorQty = Integer.valueOf(parse.get("FloorQty").toString()); BigDecimal floorQty = new BigDecimal(String.valueOf(parse.get("FloorQty")));
Integer ceilingQty = Integer.valueOf(parse.get("CeilingQty").toString()); BigDecimal ceilingQty = new BigDecimal(String.valueOf(parse.get("CeilingQty")));
Integer sampleValue = Integer.valueOf(parse.get("SampleValue").toString()); BigDecimal sampleValue = new BigDecimal(String.valueOf(parse.get("SampleValue")));
if (maxFloorQty < floorQty){ if (maxFloorQty.compareTo(floorQty) < 0) {
maxFloorQty = floorQty; maxFloorQty = floorQty;
} }
if (maxCeilingQty < ceilingQty){ if (maxCeilingQty.compareTo(ceilingQty) < 0) {
maxCeilingQty = ceilingQty; maxCeilingQty = ceilingQty;
} }
if (maxSampleValue < sampleValue){ if (maxSampleValue.compareTo(sampleValue) < 0) {
maxSampleValue = sampleValue; maxSampleValue = sampleValue;
} }
//根据校验规则计算出抽样数量 //根据校验规则计算出抽样数量
if(sampleQty != null && sampleQty != 0){ if (sampleQty != null && sampleQty.compareTo(BigDecimal.ZERO) != 0) {
if(floorQty <= sampleQty && sampleQty <= ceilingQty){ if(floorQty.compareTo(sampleQty) <= 0 && sampleQty.compareTo(ceilingQty) <= 0) {
if("QTY".equals(sampleMethod)){ if ("QTY".equals(sampleMethod)) {
result = sampleValue; result = sampleValue;
}else if ("PERCENT".equals(sampleMethod)) { } else if ("PERCENT".equals(sampleMethod)) {
double doubleSampleQty = sampleQty * (sampleValue * 0.01); result = sampleQty.multiply(sampleValue).multiply(new BigDecimal("0.01"));
result = (int) Math.round(doubleSampleQty);
} }
} }
}else { } else {
throw new UtilException("当前到货数量为空,不能进行校验"); throw new UtilException("当前到货数量为空,不能进行校验");
} }
} }
if (maxCeilingQty < sampleQty) { if (maxCeilingQty.compareTo(sampleQty) < 0) {
throw new UtilException("当前到货数量已超出校验规则范围"); throw new UtilException("当前到货数量已超出校验规则范围");
}else { } else {
return result; return result;
} }
} }
//获取策略里的参数进行字段对应 //获取策略里的参数进行字段对应
private HashMap<String, String> selectRule(String supplierCode,String itemCode){ public HashMap<String, String> selectRule(String supplierCode, String itemCode) {
RuleRespVO inspect = ruleService.inspect(supplierCode,itemCode ); RuleRespVO inspect = ruleService.inspect(supplierCode, itemCode);
if(inspect == null){ if (inspect == null) {
throw new UtilException("未找到该策略"); throw new UtilException("未找到该策略");
} }
JSONArray configuration = JSONUtil.parseArray(inspect.getConfiguration()); JSONArray configuration = JSONUtil.parseArray(inspect.getConfiguration());
HashMap<String, String> mapRule = new HashMap<>(); HashMap<String, String> mapRule = new HashMap<>();
for (Object o : configuration) { for (Object o : configuration) {
JSONObject entries = JSONUtil.parseObj(o); JSONObject entries = JSONUtil.parseObj(o);
mapRule.put(entries.get("ParamCode").toString(),entries.get("Value").toString()); mapRule.put(entries.get("ParamCode").toString(), entries.get("Value").toString());
} }
String aqlList = mapRule.get("AqlList"); String aqlList = mapRule.get("AqlList");
if(aqlList !=null){ if (aqlList != null) {
JSONArray objects = JSONUtil.parseArray(aqlList); JSONArray objects = JSONUtil.parseArray(aqlList);
for (int i = 0; i < objects.size(); i++) { for (int i = 0; i < objects.size(); i++) {
JSONObject entries = JSONUtil.parseObj(objects.getObj(i)); JSONObject entries = JSONUtil.parseObj(objects.getObj(i));
mapRule.put("FloorQty" + (i+1),entries.get("FloorQty").toString()); mapRule.put("FloorQty" + (i + 1), entries.get("FloorQty").toString());
mapRule.put("CeilingQty" + (i+1),entries.get("CeilingQty").toString()); mapRule.put("CeilingQty" + (i + 1), entries.get("CeilingQty").toString());
mapRule.put("SampleValue" + (i+1),entries.get("SampleValue").toString()); mapRule.put("SampleValue" + (i + 1), entries.get("SampleValue").toString());
} }
} }
return mapRule; return mapRule;
} }
private PurchasereceiptRecordDetailDO validatorPurchasereceiptExist(String purchaseReceiptRecordNumber, String poNumber, String poLine, String itemCode){
private PurchasereceiptRecordDetailDO validatorPurchasereceiptExist(String purchaseReceiptRecordNumber, String poNumber, String poLine, String itemCode) {
return purchasereceiptRecordMainService.selectPurchasereceiptExist(poNumber, null, purchaseReceiptRecordNumber, poLine, itemCode); return purchasereceiptRecordMainService.selectPurchasereceiptExist(poNumber, null, purchaseReceiptRecordNumber, poLine, itemCode);
} }
private void validatorRule(InspectRequestMainDO mainDO){
private void validatorRule(InspectRequestMainDO mainDO) {
HashMap<String, String> rule = selectRule(null, mainDO.getItemCode()); HashMap<String, String> rule = selectRule(null, mainDO.getItemCode());
selectInspectType(mainDO.getReceiveQty(),rule); mainDO.setSampleQty(selectInspectType(mainDO.getReceiveQty(), rule));
} }
private ItembasicDO validatorItembasic(String itemCode){
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode); return itembasicService.selectItembasic(itemCode);
} }
private void validatorLocation(String fromLocationCode){
private void validatorLocation(String fromLocationCode) {
locationService.selectLocation(fromLocationCode); locationService.selectLocation(fromLocationCode);
} }
private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO){
private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) {
jobUtils.ifInType(itemType, businesstypeDO); jobUtils.ifInType(itemType, businesstypeDO);
} }
private void validatorIfOutInventoryStatuses(String inventoryStatus,BusinesstypeDO businesstypeDO){
private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) {
jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO); jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO);
} }
private void validatorIfInFromLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){
private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO); jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO);
} }
private void validatorLlocationReturnManagementAccuracy(String itemCode,String packingNumber,String batch,String fromLocationCode,String inventoryStatu){
ArrayList inventoryStatus = new ArrayList(); private void validatorLocationReturnManagementAccuracy(String itemCode, String packingNumber, String batch, String fromLocationCode, String inventoryStatu) {
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(inventoryStatu); inventoryStatus.add(inventoryStatu);
jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus); jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus);
} }
@Override
@Transactional
public List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<InspectRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String messageMain = "";
//主表校验方法
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
for (InspectRequestDetailDO detailDO : subDOList) {
String messageDetail = "";
try {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO);
InspectRequestImportErrorVO importVO = InspectRequestDetailConvert.INSTANCE.convert(createReqVO, inspectRequestDetailCreateReqVO);
if(!messageMain.equals("") || !messageDetail.equals("")){
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1));
errorList.add(importVO);
}else {
detailDO.setMasterId(createReqVO.getId());
}
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
InspectRequestMainDO createobj = InspectRequestMainConvert.INSTANCE.convert(createReqVO);
if(errorList.isEmpty()){
InspectRequestMainDO existInspectRequestMainDO = inspectRequestMainMapper.selectPurchaseReceiptNumber(createReqVO.getPurchaseReceiptRecordNumber());
if(existInspectRequestMainDO == null && mode != 3){
inspectRequestMainMapper.insert(createobj);
inspectRequestDetailMapper.insertBatch(subDOList);
}else if(existInspectRequestMainDO != null && mode != 2){
inspectRequestMainMapper.updateById(createobj);
inspectRequestDetailMapper.updateBatch(subDOList);
}
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
// 新增校验 // 新增校验
private InspectRequestMainDO validatorToCreate(InspectRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO) { private InspectRequestMainDO validatorCreate(InspectRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO); InspectRequestMainDO mainDo = validatorMainMethod(createReqVO, businesstypeDO, requestsettingDO);
//子表校验 //子表校验
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
for (InspectRequestDetailDO detailDO : subDOList) { for (InspectRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo,businesstypeDO); validatorDetailMethod(detailDO, mainDo, businesstypeDO);
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
mainDo.setNumber(number); mainDo.setNumber(number);
@ -339,37 +351,37 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} }
//修改校验 //修改校验
private InspectRequestMainDO validatorToUpdate(InspectRequestMainUpdateReqVO updateReqVO, BusinesstypeDO businesstypeDO) { private InspectRequestMainDO validatorUpdate(InspectRequestMainUpdateReqVO updateReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = validatorMainMethod(updateReqVO,businesstypeDO); InspectRequestMainDO mainDo = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO);
//子表校验 //子表校验
List<InspectRequestDetailUpdateReqVO> subList = updateReqVO.getSubList(); List<InspectRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList05(subList); List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList05(subList);
for (InspectRequestDetailDO detailDO : subDOList) { for (InspectRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo,businesstypeDO); validatorDetailMethod(detailDO, mainDo, businesstypeDO);
} }
inspectRequestMainMapper.updateById(mainDo); inspectRequestMainMapper.updateById(mainDo);
inspectRequestDetailMapper.updateBatch(subDOList); inspectRequestDetailMapper.updateBatch(subDOList);
return mainDo; return mainDo;
} }
//校验主表公共方法(适用于新增/修改) //校验主表公共方法(适用于新增/修改)
private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO){ private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO); InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO);
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty().intValue()); mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty());
validatorRule(mainDo); validatorRule(mainDo);
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo; return mainDo;
} }
//校验子表公共方法(适用于新增/修改) //校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(InspectRequestDetailDO detailDo,InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private void validatorDetailMethod(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1()); detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2()); detailDo.setItemDesc2(itembasicDO.getDesc2());
@ -380,7 +392,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
validatorLocation(detailDo.getFromLocationCode()); validatorLocation(detailDo.getFromLocationCode());
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO);
validatorLlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus()); validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus());
} }
/** /**
@ -389,24 +401,22 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
* @param mainDo * @param mainDo
* @return * @return
*/ */
private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
try { try {
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty().intValue()); mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty());
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try { try {
validatorRule(mainDo); validatorRule(mainDo);
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
if (businesstypeDO == null) { if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型"); message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
} } else {
else {
mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
@ -414,8 +424,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
if (requestsettingDO == null) { if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型"); message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
} } else {
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
@ -435,24 +444,25 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
* @param detailDo * @param detailDo
* @return * @return
*/ */
private String validatorInspectRequestDetailImport(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { private String validatorInspectRequestDetailImport(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
ItembasicDO itembasicDO = null;
try { try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1()); detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2()); detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName()); detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject()); detailDo.setProjectCode(itembasicDO.getProject());
try { } catch (Exception ex) {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); message.append(ex.getMessage()).append(",");
} catch (Exception ex) { }
message.append(ex.getMessage()).append(","); try {
} this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
try{ } catch (Exception ex) {
validatorIfInType(itembasicDO.getType(), businesstypeDO); message.append(ex.getMessage()).append(",");
}catch (Exception ex) { }
message.append(ex.getMessage()).append(","); try {
} validatorIfInType(itembasicDO.getType(), businesstypeDO);
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
@ -461,18 +471,18 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try{ try {
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try{ try {
validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO);
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try { try {
validatorLlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus()); validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus());
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }

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

@ -341,16 +341,13 @@ public class ItembasicServiceImpl implements ItembasicService {
public ItembasicDO selectItembasic(String code) { public ItembasicDO selectItembasic(String code) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",code); queryWrapper.eq("code",code);
queryWrapper.eq("available","TRUE");
queryWrapper.eq("status","ENABLE");
ItembasicDO itembasicDO = itembasicMapper.selectOne(queryWrapper); ItembasicDO itembasicDO = itembasicMapper.selectOne(queryWrapper);
if(itembasicDO != null){ if(itembasicDO != null){
if("ENABLE".equals(itembasicDO.getStatus())){ return itembasicDO;
return itembasicDO;
}else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
}else { }else {
throw exception(ITEMBASIC_NOT_EXISTS); throw exception(ITEMBASIC_NOT_EXISTS);
} }
} }
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java

@ -201,8 +201,9 @@ public class ProductionlineServiceImpl implements ProductionlineService {
public ProductionlineDO productionLineCodeExist(String pproductionLineCode){ public ProductionlineDO productionLineCodeExist(String pproductionLineCode){
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",pproductionLineCode); queryWrapper.eq("code",pproductionLineCode);
queryWrapper.eq("available","TRUE");
ProductionlineDO productionlineDO = productionlineMapper.selectOne(queryWrapper); ProductionlineDO productionlineDO = productionlineMapper.selectOne(queryWrapper);
if(productionlineDO != null && "TRUE".equals(productionlineDO.getAvailable())){ if(productionlineDO != null){
return productionlineDO; return productionlineDO;
}else { }else {
throw exception(PRODUCTIONLINE_NOT_EXISTS); throw exception(PRODUCTIONLINE_NOT_EXISTS);

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java

@ -79,7 +79,7 @@ public interface ProductionlineitemService {
* @param pitemCode 物品代码 * @param pitemCode 物品代码
* @return 生产线物料关系 * @return 生产线物料关系
*/ */
public List<ProductionlineitemDO> productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode); public ProductionlineitemDO productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode);
/** /**
* 获得用高级搜索户分页列表 * 获得用高级搜索户分页列表

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java

@ -169,21 +169,17 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService
} }
//零件生产线关系有效 //零件生产线关系有效
@Override @Override
public List<ProductionlineitemDO> productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode) { public ProductionlineitemDO productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("production_line_code",pproductionLineCode); queryWrapper.eq("production_line_code",pproductionLineCode);
queryWrapper.eq("item_code",pitemCode); queryWrapper.eq("item_code",pitemCode);
List<ProductionlineitemDO> productionlineitemDO = productionlineitemMapper.selectList(queryWrapper); queryWrapper.eq("available","TRUE");
ProductionlineitemDO productionlineitemDO = productionlineitemMapper.selectOne(queryWrapper);
if( productionlineitemDO != null){ if( productionlineitemDO != null){
for (ProductionlineitemDO aDo : productionlineitemDO) { return productionlineitemDO;
if("TRUE".equals(aDo.getAvailable())){
return productionlineitemDO;
}
}
}else { }else {
throw new UtilException( "生产线" + pproductionLineCode + "与零件" + pitemCode + "关系无效"); throw exception(PRODUCTIONLINEITEM_NOT_EXIST, "生产线" + pproductionLineCode + "与零件" + pitemCode + "关系无效");
} }
return productionlineitemDO;
} }
@Override @Override

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java

@ -2,11 +2,9 @@ package com.win.module.wms.service.productionreturnRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailCreateReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailExportReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailPageReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Collection; import java.util.Collection;
@ -25,14 +23,14 @@ public interface ProductionreturnRequestDetailService {
* @param createReqVO 创建信息 * @param createReqVO 创建信息
* @return 编号 * @return 编号
*/ */
Long createProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailCreateReqVO createReqVO); Long createProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO);
/** /**
* 更新生产退料申请子 * 更新生产退料申请子
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO); void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO);
/** /**
* 删除生产退料申请子 * 删除生产退料申请子

88
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java

@ -2,22 +2,36 @@ package com.win.module.wms.service.productionreturnRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailCreateReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailCreateReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailExportReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailExportReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailPageReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailPageReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailUpdateReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailUpdateReqVO;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper; import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import com.win.module.wms.service.workstation.WorkstationService;
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.util.ArrayList;
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.ITEMBASIC_CODE_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS;
/** /**
@ -31,22 +45,39 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur
@Resource @Resource
private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper; private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper;
@Resource
private ProductionreturnRequestMainService productionreturnRequestMainService;
@Resource
private ItembasicService itembasicService;
@Resource
private ProductionlineService productionlineService;
@Resource
private ProductionlineitemService productionlineitemService;
@Resource
private WorkstationService workstationService;
@Resource
private JobUtils jobUtils;
@Resource
private TrendsApi trendsApi;
@Override @Override
public Long createProductionreturnRequestDetail(ProductionreturnRequestDetailCreateReqVO createReqVO) { public Long createProductionreturnRequestDetail(ProductionreturnRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
// 插入 // 插入
ProductionreturnRequestDetailDO productionreturnRequestDetail = ProductionreturnRequestDetailConvert.INSTANCE.convert(createReqVO); ProductionreturnRequestDetailDO productionreturnRequestDetail = ProductionreturnRequestDetailConvert.INSTANCE.convert(createReqVO);
productionreturnRequestDetailMapper.insert(productionreturnRequestDetail); productionreturnRequestDetailMapper.insert(productionreturnRequestDetail);
trendsApi.createTrends(productionreturnRequestDetail.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.CREATE);
// 返回 // 返回
return productionreturnRequestDetail.getId(); return productionreturnRequestDetail.getId();
} }
@Override @Override
public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO) { public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
// 校验存在 // 校验存在
validateProductionreturnRequestDetailExists(updateReqVO.getId()); validateProductionreturnRequestDetailExists(updateReqVO.getId());
// 更新 // 更新
ProductionreturnRequestMainDO productionreturnRequestMainToNumber = productionreturnRequestMainService.getProductionreturnRequestMainToNumber(updateReqVO.getNumber());
ProductionreturnRequestDetailDO updateObj = ProductionreturnRequestDetailConvert.INSTANCE.convert(updateReqVO); ProductionreturnRequestDetailDO updateObj = ProductionreturnRequestDetailConvert.INSTANCE.convert(updateReqVO);
validatorDetailMethod(updateObj,productionreturnRequestMainToNumber);
trendsApi.createTrends(updateObj.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.UPDATE);
productionreturnRequestDetailMapper.updateById(updateObj); productionreturnRequestDetailMapper.updateById(updateObj);
} }
@ -88,4 +119,53 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur
public PageResult<ProductionreturnRequestDetailDO> getProductionreturnRequestDetailSenior(CustomConditions conditions) { public PageResult<ProductionreturnRequestDetailDO> getProductionreturnRequestDetailSenior(CustomConditions conditions) {
return productionreturnRequestDetailMapper.selectSenior(conditions); return productionreturnRequestDetailMapper.selectSenior(conditions);
} }
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(ProductionreturnRequestDetailDO detailDo, ProductionreturnRequestMainDO mainDo) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
ProductionlineDO productionlineDO = validatorProductionline(detailDo.getProductionLineCode());
detailDo.setFromLocationCode(productionlineDO.getRawLocationCode());
this.validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode());
WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode());
if(workstationDO != null){
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private ProductionlineDO validatorProductionline(String pproductionLineCode){
return productionlineService.productionLineCodeExist(pproductionLineCode);
}
private void validatorProductionlineitem(String productionLineCode,String itemCode) {
productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode);
}
private WorkstationDO validatorWorkStation(String workshopCode,String productionLineCode,String workStationCode){
if(workStationCode != ""){
return workstationService.selectWorkstationExist(workshopCode, productionLineCode, workStationCode);
}else {
return null;
}
}
private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String locationCode,List<String> inventoryStatus){
jobUtils.selectlocationReturnManagementAccuracy(itemCode,packingNumber,batch,locationCode,inventoryStatus);
}
} }

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java

@ -2,11 +2,10 @@ package com.win.module.wms.service.productionreturnRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExportReqVO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainPageReqVO;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Collection; import java.util.Collection;
@ -25,14 +24,14 @@ public interface ProductionreturnRequestMainService {
* @param createReqVO 创建信息 * @param createReqVO 创建信息
* @return 编号 * @return 编号
*/ */
Long createProductionreturnRequestMain(@Valid ProductionreturnRequestMainCreateReqVO createReqVO); Long createProductionreturnRequestMain(@Valid ProductionreturnRequestMainCreateReqVO createReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO);
/** /**
* 更新生产退料申请主 * 更新生产退料申请主
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updateProductionreturnRequestMain(@Valid ProductionreturnRequestMainUpdateReqVO updateReqVO); void updateProductionreturnRequestMain(@Valid ProductionreturnRequestMainUpdateReqVO updateReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO);
/** /**
* 删除生产退料申请主 * 删除生产退料申请主
@ -48,6 +47,7 @@ public interface ProductionreturnRequestMainService {
* @return 生产退料申请主 * @return 生产退料申请主
*/ */
ProductionreturnRequestMainDO getProductionreturnRequestMain(Long id); ProductionreturnRequestMainDO getProductionreturnRequestMain(Long id);
ProductionreturnRequestMainDO getProductionreturnRequestMainToNumber(String number);
/** /**
* 获得生产退料申请主列表 * 获得生产退料申请主列表
@ -80,4 +80,6 @@ public interface ProductionreturnRequestMainService {
* @return 分页列表 * @return 分页列表
*/ */
PageResult<ProductionreturnRequestMainDO> getProductionreturnRequestMainSenior(CustomConditions conditions); PageResult<ProductionreturnRequestMainDO> getProductionreturnRequestMainSenior(CustomConditions conditions);
List<ProductionreturnRequestImportErrorVO> importProductionreturnRequestList(List<ProductionreturnRequestMainCreateReqVO> createReqVOList, Integer mode, Boolean updatePart, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO);
} }

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

@ -1,24 +1,54 @@
package com.win.module.wms.service.productionreturnRequest; package com.win.module.wms.service.productionreturnRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExportReqVO; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainPageReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.workshop.WorkshopDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper;
import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestMainMapper; import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator;
import java.time.LocalDateTime;
import java.util.ArrayList;
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.PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
* 生产退料申请主 Service 实现类 * 生产退料申请主 Service 实现类
@ -31,26 +61,58 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
@Resource @Resource
private ProductionreturnRequestMainMapper productionreturnRequestMainMapper; private ProductionreturnRequestMainMapper productionreturnRequestMainMapper;
@Resource
private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper;
@Resource
private ItembasicService itembasicService;
@Resource
private WorkshopService workshopService;
@Resource
private ProductionlineService productionlineService;
@Resource
private ProductionlineitemService productionlineitemService;
@Resource
private WorkstationService workstationService;
@Resource
private JobUtils jobUtils;
@Resource
private Validator validator;
@Resource
private RequestsettingService requestsettingService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private TrendsApi trendsApi;
@Override @Override
public Long createProductionreturnRequestMain(ProductionreturnRequestMainCreateReqVO createReqVO) { @Transactional
public Long createProductionreturnRequestMain(ProductionreturnRequestMainCreateReqVO createReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
// 插入 // 插入
ProductionreturnRequestMainDO productionreturnRequestMain = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO); ProductionreturnRequestMainDO productionreturnRequestMainDO = validatorToCreate(createReqVO, businesstypeDO, requestsettingDO);
productionreturnRequestMainMapper.insert(productionreturnRequestMain); if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), requestsettingDO.getCode(), "增加了生产退料申请", TrendsTypeEnum.CREATE);
// 返回 // 返回
return productionreturnRequestMain.getId(); return createReqVO.getId();
} }
@Override @Override
public void updateProductionreturnRequestMain(ProductionreturnRequestMainUpdateReqVO updateReqVO) { @Transactional
public void updateProductionreturnRequestMain(ProductionreturnRequestMainUpdateReqVO updateReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
// 校验存在 // 校验存在
validateProductionreturnRequestMainExists(updateReqVO.getId()); validateProductionreturnRequestMainExists(updateReqVO.getId());
ProductionreturnRequestMainDO productionreturnRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.UPDATE);
// 更新 // 更新
ProductionreturnRequestMainDO updateObj = ProductionreturnRequestMainConvert.INSTANCE.convert(updateReqVO); ProductionreturnRequestMainDO updateObj = ProductionreturnRequestMainConvert.INSTANCE.convert(updateReqVO);
productionreturnRequestMainMapper.updateById(updateObj); productionreturnRequestMainMapper.updateById(updateObj);
} }
@Override @Override
@Transactional
public void deleteProductionreturnRequestMain(Long id) { public void deleteProductionreturnRequestMain(Long id) {
// 校验存在 // 校验存在
validateProductionreturnRequestMainExists(id); validateProductionreturnRequestMainExists(id);
@ -69,6 +131,11 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
return productionreturnRequestMainMapper.selectById(id); return productionreturnRequestMainMapper.selectById(id);
} }
@Override
public ProductionreturnRequestMainDO getProductionreturnRequestMainToNumber(String number) {
return productionreturnRequestMainMapper.selectByNumber(number);
}
@Override @Override
public List<ProductionreturnRequestMainDO> getProductionreturnRequestMainList(Collection<Long> ids) { public List<ProductionreturnRequestMainDO> getProductionreturnRequestMainList(Collection<Long> ids) {
return productionreturnRequestMainMapper.selectBatchIds(ids); return productionreturnRequestMainMapper.selectBatchIds(ids);
@ -88,4 +155,227 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
public PageResult<ProductionreturnRequestMainDO> getProductionreturnRequestMainSenior(CustomConditions conditions) { public PageResult<ProductionreturnRequestMainDO> getProductionreturnRequestMainSenior(CustomConditions conditions) {
return productionreturnRequestMainMapper.selectSenior(conditions); return productionreturnRequestMainMapper.selectSenior(conditions);
} }
@Override
public List<ProductionreturnRequestImportErrorVO> importProductionreturnRequestList(List<ProductionreturnRequestMainCreateReqVO> createReqVOList
, Integer mode, Boolean updatePart,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
if (CollUtil.isEmpty(createReqVOList)) {
throw exception(PRODUCTIONRETURN_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<ProductionreturnRequestImportErrorVO> errorList = new ArrayList<>();
createReqVOList.forEach(createReqVO -> {
ProductionreturnRequestMainDO mainDo = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorProductionreturnRequestMainImport(mainDo,businesstypeDO,requestsettingDO);
List<ProductionreturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductionreturnRequestDetailDO> subDOList = ProductionreturnRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorProductionreturnRequestDetailImport(detailDO, mainDo,businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
ProductionreturnRequestImportErrorVO importErrorVO = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now());
productionreturnRequestMainMapper.insert(mainDo);
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
productionreturnRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
// 新增校验
private ProductionreturnRequestMainDO validatorToCreate(ProductionreturnRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
ProductionreturnRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<ProductionreturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductionreturnRequestDetailDO> subDOList = ProductionreturnRequestDetailConvert.INSTANCE.convertList03(subList);
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
productionreturnRequestMainMapper.insert(mainDo);
for (ProductionreturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(mainDo.getNumber());
}
productionreturnRequestDetailMapper.insertBatch(subDOList);
return mainDo;
}
//校验主表公共方法(适用于新增/修改)
private ProductionreturnRequestMainDO validatorMainMethod(ProductionreturnRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){
ProductionreturnRequestMainDO mainDo = ProductionreturnRequestMainConvert.INSTANCE.convert(baseVO);
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(ProductionreturnRequestDetailDO detailDo,ProductionreturnRequestMainDO mainDo) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
validatorProductionline(detailDo.getProductionLineCode());
ProductionlineitemDO productionlineitemDO = validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode());
detailDo.setFromLocationCode(productionlineitemDO.getRawLocationCode());
WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode());
if(workstationDO != null){
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorProductionreturnRequestMainImport(ProductionreturnRequestMainDO mainDo,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
StringBuilder message = new StringBuilder();
try {
validatorWorkshop(mainDo.getWorkshopCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorProductionreturnRequestDetailImport(ProductionreturnRequestDetailDO detailDo, ProductionreturnRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
try {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
this.validatorProductionline(detailDo.getProductionLineCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
ProductionlineitemDO productionlineitemDO = validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode());
detailDo.setFromLocationCode(productionlineitemDO.getRawLocationCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode());
if(workstationDO != null){
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
}
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), null, null, detailDo.getFromLocationCode(), inventoryStatus);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private WorkshopDO validatorWorkshop(String workshopCode){
return workshopService.selectWorkshopExist(workshopCode);
}
private void validatorProductionline(String pproductionLineCode){
productionlineService.productionLineCodeExist(pproductionLineCode);
}
private ProductionlineitemDO validatorProductionlineitem(String productionLineCode,String itemCode) {
return productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode);
}
private WorkstationDO validatorWorkStation(String workshopCode,String productionLineCode,String workStationCode){
if(workStationCode != ""){
return workstationService.selectWorkstationExist(workshopCode, productionLineCode, workStationCode);
}else {
return null;
}
}
private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String locationCode,List<String> inventoryStatus){
jobUtils.selectlocationReturnManagementAccuracy(itemCode,packingNumber,batch,locationCode,inventoryStatus);
}
} }

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

@ -190,7 +190,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
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) {
@ -327,7 +326,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
} }
List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber, List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber,
String batch , String fromLocationCode , List<String> business){ String batch , String fromLocationCode , List<String> business){
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber, List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber,
batch,fromLocationCode, business); batch,fromLocationCode, business);
return balanceDO; return balanceDO;
@ -391,37 +390,37 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
throw exception(PRODUCTPUTAWAY_REQUEST_NOT_EXISTS); throw exception(PRODUCTPUTAWAY_REQUEST_NOT_EXISTS);
} }
List<ProductputawayImportErrorVO> errorList = new ArrayList<>(); List<ProductputawayImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
ProductputawayRequestMainDO mainDo = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO); ProductputawayRequestMainDO mainDo = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateProductputawayRequestMainImport(mainDo, businesstypeDO); String messageMain = validateProductputawayRequestMainImport(mainDo, businesstypeDO);
List<ProductputawayRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<ProductputawayRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList03(subList); List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList03(subList);
boolean flag = true; boolean flag = true;
for (ProductputawayRequestDetailDO detailDO : subDOList) { for (ProductputawayRequestDetailDO detailDO : subDOList) {
String messageDetail = validateProductputawayRequestDetailImport(detailDO, mainDo, businesstypeDO); String messageDetail = validateProductputawayRequestDetailImport(detailDO, mainDo, businesstypeDO);
if (!"".equals(messageMain) ||!"".equals(messageDetail) ) { if (!"".equals(messageMain) ||!"".equals(messageDetail) ) {
ProductputawayImportErrorVO importErrorVO = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); ProductputawayImportErrorVO importErrorVO = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败"); importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail; messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO); errorList.add(importErrorVO);
flag = false; flag = false;
} }
} }
//写入数据 //写入数据
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, "新增")); 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());
detailDO.setNumber(number); detailDO.setNumber(number);
} }
productputawayRequestDetailMapper.insertBatch(subDOList); productputawayRequestDetailMapper.insertBatch(subDOList);
} }
}); });
return errorList; return errorList;
} }

49
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java

@ -14,11 +14,16 @@ import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.issueRequest.vo.*; import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*; import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
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.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.mysql.productscrapRequest.*; import com.win.module.wms.dal.mysql.productscrapRequest.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
@ -105,16 +110,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
@Resource @Resource
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource
private ShiftService shiftService;
@Resource
private SupplieritemService supplieritemService;
@Resource
private LocationService locationService;
@Override @Override
public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) { public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest");
@ -167,7 +162,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
productscrapRequestMainDO.setDueTime(balance2.getExpireDate()); productscrapRequestMainDO.setDueTime(balance2.getExpireDate());
} }
isqty(productscrapRequestDetailDO.getQty(), blance1.getQty()); isqty(productscrapRequestDetailDO.getQty(), blance1.getQty());
} }
private ProductscrapRequestMainDO validateMainMethod(ProductscrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { private ProductscrapRequestMainDO validateMainMethod(ProductscrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
@ -197,13 +191,34 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
@Override @Override
public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) { public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest");
// 校验存在 // 校验存在
validateProductscrapRequestMainExists(updateReqVO.getId()); validateProductscrapRequestMainExists(updateReqVO.getId());
// 更新 // 更新
ProductscrapRequestMainDO updateObj = ProductscrapRequestMainConvert.INSTANCE.convert(updateReqVO); ProductscrapRequestMainDO productscrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
productscrapRequestMainMapper.updateById(updateObj); if(RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "ProductPutawayRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE);
}
private ProductscrapRequestMainDO validatorToUpdate(ProductscrapRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
ProductscrapRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<ProductscrapRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(subList!=null) {
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList);
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) {
validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productputawayRequestMainDO);
}
productscrapRequestDetailMapper.updateBatch(subDOList);
}
productscrapRequestMainMapper.updateById(productputawayRequestMainDO);
return productputawayRequestMainDO;
} }
@Override @Override
public void deleteProductscrapRequestMain(Long id) { public void deleteProductscrapRequestMain(Long id) {
// 校验存在 // 校验存在
@ -214,9 +229,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
@Override @Override
public PageResult<ProductscrapRequestMainDO> getProductscrapRequestMainSenior(CustomConditions conditions) { public PageResult<ProductscrapRequestMainDO> getProductscrapRequestMainSenior(CustomConditions conditions) {
return productscrapRequestMainMapper.selectSenior(conditions); return productscrapRequestMainMapper.selectSenior(conditions);
} }
private void validateProductscrapRequestMainExists(Long id) { private void validateProductscrapRequestMainExists(Long id) {
@ -245,7 +258,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
return productscrapRequestMainMapper.selectList(exportReqVO); return productscrapRequestMainMapper.selectList(exportReqVO);
} }
private String validateIssueRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now()); mainDo.setRequestTime(LocalDateTime.now());
@ -258,7 +271,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
if (businesstypeDO == null) { if (businesstypeDO == null) {
message.append("根据单据设置未查找到制品报废申请申请的相关业务类型"); message.append("根据单据设置未查找到制品报废申请申请的相关业务类型");
} else { } else {
@ -266,7 +278,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
mainDo.setFromLocationTypes(businesstypeDO.getInLocationTypes()); mainDo.setFromLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getInAreaCodes()); mainDo.setFromAreaCodes(businesstypeDO.getInAreaCodes());
} }
return message.toString(); return message.toString();
} }
@ -375,7 +386,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); BusinesstypeDO businesstypeDO = businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
ProductscrapRequestMainDO mainDo = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO); ProductscrapRequestMainDO mainDo = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateIssueRequestMainImport(mainDo, businesstypeDO); String messageMain = validateProductscrapRequestMainImport(mainDo, businesstypeDO);
List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList); List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据 // 是否有错误数据

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java

@ -78,17 +78,27 @@ public interface PurchaseMainService {
* @return 采购订单主列表 * @return 采购订单主列表
*/ */
List<PurchaseMainDO> getPurchaseMainList(PurchaseMainExportReqVO exportReqVO); List<PurchaseMainDO> getPurchaseMainList(PurchaseMainExportReqVO exportReqVO);
/** /**
* Order----VPur * Order----VPur
* 校验采购订单明细 * 校验采购订单明细
* @author chenfang *
* @param pnumber 单据号 * @param pnumber 单据号
* @param psupplierCode 供应商代码 * @param psupplierCode 供应商代码
* @param pitemCode 物品代码 * @param pitemCode 物品代码
* @return 采购订单子列表 * @return 采购订单子列表
* @author chenfang
*/ */
public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode,String poLine); public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String poLine);
public List<PurchaseMainImportErrorVO> importPurchaseMaintList(List<PurchaseMainCreateReqVO> datas, Integer mode, boolean updatePart); public List<PurchaseMainImportErrorVO> importPurchaseMaintList(List<PurchaseMainCreateReqVO> datas, Integer mode, boolean updatePart);
/**
* 关闭采购订单申请主
*
* @param id 采采购订单申请主ID
* @return 更新数量
*/
Integer closePurchaseMain(Long id);
} }

40
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java

@ -8,6 +8,8 @@ import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.purchase.vo.*; import com.win.module.wms.controller.purchase.vo.*;
import com.win.module.wms.convert.purchase.PurchaseDetailConvert; import com.win.module.wms.convert.purchase.PurchaseDetailConvert;
import com.win.module.wms.convert.purchase.PurchaseMainConvert; import com.win.module.wms.convert.purchase.PurchaseMainConvert;
@ -22,7 +24,9 @@ import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.module.wms.dal.mysql.purchase.PurchaseDetailMapper; import com.win.module.wms.dal.mysql.purchase.PurchaseDetailMapper;
import com.win.module.wms.dal.mysql.purchase.PurchaseMainMapper; import com.win.module.wms.dal.mysql.purchase.PurchaseMainMapper;
import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.currencyexchange.CurrencyexchangeService; import com.win.module.wms.service.currencyexchange.CurrencyexchangeService;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.itempackaging.ItempackagingService;
@ -34,6 +38,7 @@ import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils; 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.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -45,8 +50,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASE_MAIN_NOT_EXISTS;
/** /**
* 采购订单主 Service 实现类 * 采购订单主 Service 实现类
@ -79,6 +83,11 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
private PurchaseDetailMapper purchaseDetailMapper; private PurchaseDetailMapper purchaseDetailMapper;
@Resource @Resource
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Resource
private PurchasePlanMainMapper purchasePlanMainMapper;
@Override @Override
public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) { public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) {
@ -111,10 +120,12 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
purchaseMainMapper.deleteById(id); purchaseMainMapper.deleteById(id);
} }
private void validatePurchaseMainExists(Long id) { private PurchaseMainDO validatePurchaseMainExists(Long id) {
if (purchaseMainMapper.selectById(id) == null) { PurchaseMainDO purchaseMainDO = purchaseMainMapper.selectById(id);
throw exception(PURCHASE_MAIN_NOT_EXISTS); if (purchaseMainDO == null) {
throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS);
} }
return purchaseMainDO;
} }
@Override @Override
@ -296,4 +307,23 @@ public class PurchaseMainServiceImpl implements PurchaseMainService {
} }
return errorList; return errorList;
} }
@Override
@Transactional
public Integer closePurchaseMain(Long id) {
// 校验存在存在下级单据
PurchaseMainDO mainDO = validatePurchaseMainExists(id);
Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(PURCHASE_MAIN_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "plan_purchase_main", "关闭了采购订单申请", TrendsTypeEnum.UPDATE);
return purchaseMainMapper.updateById(mainDO);
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java

@ -29,7 +29,7 @@ public interface PurchaseclaimRequestMainService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
Integer updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO); Long updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO);
/** /**
* 删除采购索赔申请主 * 删除采购索赔申请主

363
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

@ -1,14 +1,16 @@
package com.win.module.wms.service.purchaseclaimRequest; package com.win.module.wms.service.purchaseclaimRequest;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*; import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
@ -17,9 +19,11 @@ import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO;
import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestDetailMapper; import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestDetailMapper;
import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestMainMapper; import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.purchase.PurchaseMainService; import com.win.module.wms.service.purchase.PurchaseMainService;
import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService;
@ -28,7 +32,6 @@ import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMai
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
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.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -76,42 +79,42 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource @Resource
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Override @Override
@Transactional @Transactional
public Long createPurchaseclaimRequestMain(PurchaseclaimRequestMainCreateReqVO createReqVO) { public Long createPurchaseclaimRequestMain(PurchaseclaimRequestMainCreateReqVO createReqVO) {
// 插入主表 // 插入主表
PurchaseclaimRequestMainDO purchaseclaimRequestMain = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
purchaseclaimRequestMain.setNumber(number); //调用自动执行方法
purchaseclaimRequestMainMapper.insert(purchaseclaimRequestMain); if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
// 插入子表
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(purchaseclaimRequestMain.getId());
detailDO.setNumber(number);
} }
purchaseclaimRequestDetailMapper.insertBatch(subDOList); trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
// 返回 return purchaseclaimRequestMainDO.getId();
return purchaseclaimRequestMain.getId();
} }
@Override @Override
@Transactional @Transactional
public Integer updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) { public Long updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
// 校验存在,如子表需要也再此校验 // 校验存在,如子表需要也再此校验
validatePurchaseclaimRequestMainExists(updateReqVO.getId()); validatorPurchaseclaimRequestMainExists(updateReqVO.getId());
// 更新主表 // 更新主表
PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO); PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
return purchaseclaimRequestMainMapper.updateById(updateObj); if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
return purchaseclaimRequestMainDO.getId();
} }
@Override @Override
@Transactional @Transactional
public Integer deletePurchaseclaimRequestMain(Long id) { public Integer deletePurchaseclaimRequestMain(Long id) {
// 校验存在 // 校验存在
validatePurchaseclaimRequestMainExists(id); validatorPurchaseclaimRequestMainExists(id);
// 删除子表数据 // 删除子表数据
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("master_id", id); map.put("master_id", id);
@ -120,11 +123,9 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
return purchaseclaimRequestMainMapper.deleteById(id); return purchaseclaimRequestMainMapper.deleteById(id);
} }
private void validatePurchaseclaimRequestMainExists(Long id) { private void validatorPurchaseclaimRequestMainExists(Long id) {
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectById(id); PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectById(id);
if (purchaseclaimRequestMainDO == null) { if (purchaseclaimRequestMainDO == null) {
return;
}else {
throw exception(PURCHASECLAIM_REQUEST_MAIN_EXISTS); throw exception(PURCHASECLAIM_REQUEST_MAIN_EXISTS);
} }
} }
@ -154,143 +155,207 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
return purchaseclaimRequestMainMapper.selectList(exportReqVO); return purchaseclaimRequestMainMapper.selectList(exportReqVO);
} }
private void selectUomExist(String itemUom,String uom) {
if(itemUom.equals(uom)){
return;
}else {
throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) {
if(shippedQty.add(qty).compareTo(orderQty) > 0){
throw new UtilException("订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
}
}
@Override @Override
@Transactional
public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { public List<PurchaseclaimRequestImportErrorVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) { if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
} }
List<PurchaseclaimRequestImportErrorVO> errorList = new ArrayList<>(); List<PurchaseclaimRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
String messageMain = ""; BusinesstypeDO businesstypeDO = new BusinesstypeDO();
//主表校验方法 PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
if(mode != null){ String messageMain = validatorPurchaseclaimRequestMainImport(mainDo, businesstypeDO);
try { List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
validatePurchaseclaimRequestMainExists(null); List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
} catch (Exception ex) { // 是否有错误数据
messageMain += ex.getMessage() + ","; boolean flag = true;
} for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorPurchaseclaimRequestDetailImport(detailDO, mainDo);
try { if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
supplierService.selectSupplier(createReqVO.getSupplierCode()); PurchaseclaimRequestImportErrorVO importErrorVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, detailDO);
} catch (Exception ex) { importErrorVO.setImportStatus("失败");
messageMain += ex.getMessage() + ","; messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
} }
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList(); }
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); //写入数据
// 新增子表数据 if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
purchaseclaimRequestMainMapper.insert(mainDo);
for (PurchaseclaimRequestDetailDO detailDO : subDOList) { for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
String messageDetail = ""; detailDO.setMasterId(mainDo.getId());
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList detailDO.setNumber(number);
//子表校验方法 detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP));
try {
supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(createReqVO.getSupplierCode(),
detailDO.getNumber(), detailDO.getItemCode(), detailDO.getPoNumber(), detailDO.getPoLine());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setProjectCode(itembasicDO.getProject());
try {
selectUomExist(itembasicDO.getUom(), detailDO.getUom());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(detailDO.getNumber(), createReqVO.getSupplierCode()
, detailDO.getItemCode(), detailDO.getPoLine());
try {
ifPlanQtyBigThanOrderQty(detailDO.getPoLine(), purchaseDetailDO.getShippedQty(), detailDO.getQty(), purchaseDetailDO.getOrderQty());
}catch (Exception ex){
messageDetail += ex.getMessage() + ",";
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
ValidationUtils.validate(validator,createReqVO);
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO);
PurchaseclaimRequestImportErrorVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseclaimRequestDetailCreateReqVO);
//进行子表的错误统计
//主表没有错误 写入库里
if(!messageMain.equals("") || !messageDetail.equals("")){
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1));
errorList.add(importVO);
}else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_REQUEST.getCode());
createReqVO.setNumber(number);
}
}
if(errorList.isEmpty()){
// 判断如果不存在,在进行插入
PurchaseclaimRequestMainDO existPurchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectByAsnNumberAndSupplierCode(createReqVO.getAsnNumber(), createReqVO.getSupplierCode());
if(existPurchaseclaimRequestMainDO == null && mode != 3){
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest");
if(businesstypeDO != null){
createReqVO.setBusinessType(businesstypeDO.getCode());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.insert(createObj);
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
}
else if(existPurchaseclaimRequestMainDO != null && mode != 2){
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest");
if(businesstypeDO != null){
createReqVO.setBusinessType(businesstypeDO.getCode());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest");
if(requestsettingDO != null){
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.updateById(createObj);
purchaseclaimRequestDetailMapper.updateBatch(subDOList);
}
} }
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
} }
}); });
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList; return errorList;
} }
private void validatorSupplier(String SupplierCode){
supplierService.selectSupplier(SupplierCode);
}
private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode,String poLine){
return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine);
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void selectUomExist(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private SupplierdeliverRecordDetailDO validatorSupplierdeliverRecordMainDO(String psupplierCode, String pasnNumber, String pitemCode, String ppoNumber, String ppoLine){
return supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(psupplierCode,pasnNumber,pitemCode,ppoNumber,ppoLine);
}
private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) {
if(shippedQty.add(qty).compareTo(orderQty) > 0){
throw exception(QTY_EXCEPTION,"订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty);
}
}
//新增校验
private PurchaseclaimRequestMainDO validatorToCreate(PurchaseclaimRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
purchaseclaimRequestMainDO.setNumber(number);
purchaseclaimRequestMainMapper.insert(purchaseclaimRequestMainDO);
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
return purchaseclaimRequestMainDO;
}
//修改校验
private PurchaseclaimRequestMainDO validatorToUpdate(PurchaseclaimRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<PurchaseclaimRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList05(subList);
for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO);
}
purchaseclaimRequestMainMapper.updateById(purchaseclaimRequestMainDO);
purchaseclaimRequestDetailMapper.updateBatch(subDOList);
return purchaseclaimRequestMainDO;
}
//校验主表公共方法(适用于新增/修改)
private PurchaseclaimRequestMainDO validatorMainMethod(PurchaseclaimRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(baseVO);
this.validatorSupplier(mainDo.getSupplierCode());
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseclaimRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PurchaseclaimRequestDetailDO detailDo,PurchaseclaimRequestMainDO mainDo) {
validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), mainDo.getAsnNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine());
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
this.selectUomExist(itembasicDO.getUom(), detailDo.getUom());
PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty());
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPurchaseclaimRequestMainImport(PurchaseclaimRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
this.validatorSupplier(mainDo.getSupplierCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest");
if (requestsettingDO == null) {
message.append("未查找到采购索赔申请的相关申请设置");
} else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseclaimRequest");
if (businesstypeDO == null) {
message.append("根据单据设置未查找到采购索赔申请的相关业务类型");
} else {
mainDo.setBusinessType(businesstypeDO.getCode());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorPurchaseclaimRequestDetailImport(PurchaseclaimRequestDetailDO detailDo, PurchaseclaimRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
if(!"".equals(mainDo.getAsnNumber())){
validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), detailDo.getNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine());
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
try {
this.selectUomExist(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
try {
ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty());
}catch (Exception ex){
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
} }

98
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java

@ -1,5 +1,7 @@
package com.win.module.wms.service.purchasereceiptJob; package com.win.module.wms.service.purchasereceiptJob;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException; import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
@ -10,12 +12,16 @@ import com.win.module.system.api.serialnumber.SerialNumberApi;
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.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.documentSwitch.SwitchDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
@ -32,6 +38,9 @@ import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptReques
import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService; import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService;
import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
@ -81,6 +90,12 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource
private SwitchService switchService;
@Resource
private InspectRequestMainService inspectRequestMainService;
@Resource
private RuleService ruleService;
@Override @Override
public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) { public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) {
@ -216,12 +231,14 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
//库存事务 //库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
List<PurchasereceiptJobDetailUpdateReqVO> purchasereceiptJobDetailUpdateReqVOList = purchasereceiptJobMainUpdateReqVO.getSubList(); List<PurchasereceiptJobDetailUpdateReqVO> purchasereceiptJobDetailUpdateReqVOList = purchasereceiptJobMainUpdateReqVO.getSubList();
List<PurchasereceiptRecordDetailDO> purchasereceiptRecordDetailDOList = new ArrayList<>();
List<PurchaseshortageDetailDO> purchaseshortageDetailDOList = new ArrayList<>();
for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) { for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) {
boolean isExists = false; boolean isExists = false;
PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVOTemp = null;
for(PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVO : purchasereceiptJobDetailUpdateReqVOList) { for(PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVO : purchasereceiptJobDetailUpdateReqVOList) {
if(purchasereceiptJobDetailDO.getId().equals(purchasereceiptJobDetailUpdateReqVO.getId())) { if(purchasereceiptJobDetailDO.getId().equals(purchasereceiptJobDetailUpdateReqVO.getId())) {
//实际收货数量 purchasereceiptJobDetailUpdateReqVOTemp = purchasereceiptJobDetailUpdateReqVO;
purchasereceiptJobDetailUpdateReqVO.setQty(purchasereceiptJobDetailUpdateReqVO.getHandleQty());
isExists = true; isExists = true;
break; break;
} }
@ -232,12 +249,17 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRecordDetailDO.setMasterId(purchasereceiptRecordMainDO.getId()); purchasereceiptRecordDetailDO.setMasterId(purchasereceiptRecordMainDO.getId());
purchasereceiptRecordDetailDO.setNumber(number); purchasereceiptRecordDetailDO.setNumber(number);
purchasereceiptRecordDetailDO.setJobDetailId(String.valueOf(purchasereceiptJobDetailDO.getId())); purchasereceiptRecordDetailDO.setJobDetailId(String.valueOf(purchasereceiptJobDetailDO.getId()));
purchasereceiptRecordDetailDO.setFromBatch(purchasereceiptJobDetailDO.getBatch());
purchasereceiptRecordDetailDO.setToBatch(purchasereceiptJobDetailUpdateReqVOTemp.getToBatch());
purchasereceiptRecordDetailDO.setFromPackingNumber(purchasereceiptJobDetailDO.getPackingNumber());
purchasereceiptRecordDetailDO.setToPackingNumber(purchasereceiptJobDetailUpdateReqVOTemp.getToPackingNumber());
purchasereceiptRecordDetailDO.setQty(purchasereceiptJobDetailUpdateReqVOTemp.getHandleQty());
purchasereceiptRecordDetailDO.setId(null); purchasereceiptRecordDetailDO.setId(null);
purchasereceiptRecordDetailDO.setCreator(null); purchasereceiptRecordDetailDO.setCreator(null);
purchasereceiptRecordDetailDO.setCreateTime(null); purchasereceiptRecordDetailDO.setCreateTime(null);
purchasereceiptRecordDetailDO.setUpdater(null); purchasereceiptRecordDetailDO.setUpdater(null);
purchasereceiptRecordDetailDO.setUpdateTime(null); purchasereceiptRecordDetailDO.setUpdateTime(null);
purchasereceiptRecordDetailMapper.insert(purchasereceiptRecordDetailDO); purchasereceiptRecordDetailDOList.add(purchasereceiptRecordDetailDO);
//添加库存事务list //添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO); BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO);
@ -262,15 +284,22 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchaseshortageDetailDO.setCreateTime(null); purchaseshortageDetailDO.setCreateTime(null);
purchaseshortageDetailDO.setUpdater(null); purchaseshortageDetailDO.setUpdater(null);
purchaseshortageDetailDO.setUpdateTime(null); purchaseshortageDetailDO.setUpdateTime(null);
purchaseshortageDetailMapper.insert(purchaseshortageDetailDO); purchaseshortageDetailDOList.add(purchaseshortageDetailDO);
} }
} }
if(!purchasereceiptRecordDetailDOList.isEmpty()) {
purchasereceiptRecordDetailMapper.insertBatch(purchasereceiptRecordDetailDOList);
}
if(!purchaseshortageDetailDOList.isEmpty()) {
purchaseshortageDetailMapper.insertBatch(purchaseshortageDetailDOList);
}
List<String> typeList = new ArrayList<>(); List<String> typeList = new ArrayList<>();
typeList.add(JobStatusEnum.PENDING.getCode()); typeList.add(JobStatusEnum.PENDING.getCode());
typeList.add(JobStatusEnum.PROCESSING.getCode()); typeList.add(JobStatusEnum.PROCESSING.getCode());
Long count = purchasereceiptJobMainMapper.selectListCount(typeList, purchasereceiptJobMainDO.getRequestNumber()); Long count = purchasereceiptJobMainMapper.selectListCount(typeList, purchasereceiptJobMainDO.getRequestNumber());
PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectByNumber(purchasereceiptJobMainDO.getRequestNumber()); PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectByNumber(purchasereceiptJobMainDO.getRequestNumber());
if(count == 0) {//申请单下所有任务全部完成 //申请单下所有任务全部完成
if(count == 0) {
purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
} else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成 } else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成
@ -278,7 +307,66 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
} }
//创建拣货申请 //创建拣货申请
SwitchDO switchDO = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated");
//需要增加到货检验申请
if(switchDO.getEffectiveSetValue().equals("TRUE")) {
RuleRespVO ruleRespVO = ruleService.inspect(purchasereceiptRecordMainDO.getSupplierCode(), null);
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
//生成到货检验申请
if(!"EXAMPT".equals(String.valueOf(jsonObject.get("InspectType")))) {
//按零件号和批次分组
Map<String, List<PurchasereceiptRecordDetailDO>> listMap = new HashMap<>();
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList) {
String key = purchasereceiptRecordDetailDO.getItemCode() + "_" + purchasereceiptRecordDetailDO.getFromBatch();
List<PurchasereceiptRecordDetailDO> list = listMap.get(key);
if(list == null) {
list = new ArrayList<>();
}
list.add(purchasereceiptRecordDetailDO);
listMap.put(key, list);
}
//组装到货检验数据
for(String mapKey : listMap.keySet()) {
List<PurchasereceiptRecordDetailDO> purchasereceiptRecordDetailDOList1 = listMap.get(mapKey);
//创建主表信息
PurchasereceiptRecordDetailDO recordDetailDO = purchasereceiptRecordDetailDOList1.get(0);
InspectRequestMainCreateReqVO inspectRequestMainCreateReqVO = new InspectRequestMainCreateReqVO();
String inspectRecordNumber = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_RECORD.getCode());
inspectRequestMainCreateReqVO.setNumber(inspectRecordNumber);
inspectRequestMainCreateReqVO.setPurchaseReceiptRecordNumber(number);
inspectRequestMainCreateReqVO.setSupplierCode(purchasereceiptRecordMainDO.getSupplierCode());
inspectRequestMainCreateReqVO.setItemCode(recordDetailDO.getItemCode());
inspectRequestMainCreateReqVO.setBatch(recordDetailDO.getFromBatch());
inspectRequestMainCreateReqVO.setPoNumber(recordDetailDO.getPoNumber());
inspectRequestMainCreateReqVO.setPoLine(recordDetailDO.getPoLine());
inspectRequestMainCreateReqVO.setUom(recordDetailDO.getUom());
inspectRequestMainCreateReqVO.setReceiveQty(recordDetailDO.getQty());
List<InspectRequestDetailCreateReqVO> inspectRequestDetailCreateReqVOList = new ArrayList<>();
//创建子表信息
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList1) {
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = new InspectRequestDetailCreateReqVO();
inspectRequestDetailCreateReqVO.setPackingNumber(purchasereceiptRecordDetailDO.getFromPackingNumber());
inspectRequestDetailCreateReqVO.setContainerNumber(purchasereceiptRecordDetailDO.getFromContainerNumber());
inspectRequestDetailCreateReqVO.setInventoryStatus(purchasereceiptRecordDetailDO.getInventoryStatus());
inspectRequestDetailCreateReqVO.setFromLocationCode(purchasereceiptRecordDetailDO.getFromLocationCode());
inspectRequestDetailCreateReqVO.setItemCode(purchasereceiptRecordDetailDO.getItemCode());
inspectRequestDetailCreateReqVO.setItemName(purchasereceiptRecordDetailDO.getItemName());
inspectRequestDetailCreateReqVO.setItemDesc1(purchasereceiptRecordDetailDO.getItemDesc1());
inspectRequestDetailCreateReqVO.setItemDesc2(purchasereceiptRecordDetailDO.getItemDesc2());
inspectRequestDetailCreateReqVO.setProjectCode(purchasereceiptRecordDetailDO.getProjectCode());
inspectRequestDetailCreateReqVO.setQty(purchasereceiptRecordDetailDO.getQty());
inspectRequestDetailCreateReqVO.setUom(purchasereceiptRecordDetailDO.getUom());
//合计数量
inspectRequestMainCreateReqVO.setReceiveQty(inspectRequestMainCreateReqVO.getReceiveQty().add(inspectRequestDetailCreateReqVO.getQty()));
inspectRequestDetailCreateReqVOList.add(inspectRequestDetailCreateReqVO);
}
inspectRequestMainCreateReqVO.setSubList(inspectRequestDetailCreateReqVOList);
inspectRequestMainService.createInspectRequestMain(inspectRequestMainCreateReqVO);
}
} else {//免检,生成上架申请
}
}
//增加库存事务 //增加库存事务
transactionService.createTransaction(transactionCreateReqVOList); transactionService.createTransaction(transactionCreateReqVOList);
//变更记录 //变更记录

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java

@ -102,8 +102,10 @@ public class PurchasereceiptRecordMainServiceImpl implements PurchasereceiptReco
public PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber,String psupplierCode,String pNumber,String ppoLine,String pitemCode){ public PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber,String psupplierCode,String pNumber,String ppoLine,String pitemCode){
QueryWrapper queryWrapperMain = new QueryWrapper(); QueryWrapper queryWrapperMain = new QueryWrapper();
queryWrapperMain.eq("number",pNumber); queryWrapperMain.eq("number",pNumber);
queryWrapperMain.eq("supplier_code",psupplierCode);
queryWrapperMain.eq("available","TRUE");
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapperMain); PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapperMain);
if(purchasereceiptRecordMainDO != null && "TRUE".equals(purchasereceiptRecordMainDO.getAvailable()) && purchasereceiptRecordMainDO.getSupplierCode().equals(psupplierCode)){ if(purchasereceiptRecordMainDO != null){
QueryWrapper queryWrapperDetail = new QueryWrapper(); QueryWrapper queryWrapperDetail = new QueryWrapper();
queryWrapperDetail.eq("po_number",ppoNumber); queryWrapperDetail.eq("po_number",ppoNumber);
queryWrapperDetail.eq("po_line",ppoLine); queryWrapperDetail.eq("po_line",ppoLine);

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

@ -231,7 +231,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
boolean flag = true; boolean flag = true;
for (PurchasereceiptRequestDetailDO detailDO : subDOList) { for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
String messageDetail = this.validatePurchasereceiptRequestDetailImport(mainDO, detailDO); String messageDetail = this.validatePurchasereceiptRequestDetailImport(mainDO, detailDO);
if(!messageMain.isEmpty() || messageDetail.isEmpty()) { if(!messageMain.isEmpty() || !messageDetail.isEmpty()) {
PurchasereceiptRequestMainImportErrorVO importErrorVO = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); PurchasereceiptRequestMainImportErrorVO importErrorVO = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败"); importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail; messageMain = messageMain + messageDetail;
@ -411,7 +411,6 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
* @param mainDO 采购收货主 * @param mainDO 采购收货主
* @param detailDOList 采购收货子 * @param detailDOList 采购收货子
*/ */
@Transactional
private void generateJob(PurchasereceiptRequestMainDO mainDO, List<PurchasereceiptRequestDetailDO> detailDOList) { private void generateJob(PurchasereceiptRequestMainDO mainDO, List<PurchasereceiptRequestDetailDO> detailDOList) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest");
//跳过任务直接生成记录 //跳过任务直接生成记录
@ -489,14 +488,16 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) { for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) {
//PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息 //PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息
PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO; PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO;
List<PurchasereceiptJobDetailCreateReqVO> subList = null; List<PurchasereceiptJobDetailCreateReqVO> subList = new ArrayList<>();
if(i % count == 0) { if(i % count == 0) {
purchasereceiptJobMainCreateReqVO = PurchasereceiptJobMainConvert.INSTANCE.convert(mainDO); purchasereceiptJobMainCreateReqVO = PurchasereceiptJobMainConvert.INSTANCE.convert(mainDO);
subList = new ArrayList<>(); subList = new ArrayList<>();
purchasereceiptJobMainCreateReqVO.setSubList(subList); purchasereceiptJobMainCreateReqVO.setSubList(subList);
purchasereceiptJobMainCreateReqVOList.add(purchasereceiptJobMainCreateReqVO); purchasereceiptJobMainCreateReqVOList.add(purchasereceiptJobMainCreateReqVO);
} }
PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptRequestDetailDOList.get(i)); PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO = purchasereceiptRequestDetailDOList.get(i);
PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptRequestDetailDO);
purchasereceiptJobDetailCreateReqVO.setToLocationCode(purchasereceiptRequestDetailDO.getDefaultToLocationCode());
subList.add(purchasereceiptJobDetailCreateReqVO); subList.add(purchasereceiptJobDetailCreateReqVO);
} }
} }
@ -510,13 +511,15 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob");
purchasereceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); purchasereceiptJobMainDO.setBusinessType(businesstypeDO.getCode());
purchasereceiptJobMainMapper.insert(purchasereceiptJobMainDO); purchasereceiptJobMainMapper.insert(purchasereceiptJobMainDO);
trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE); List<PurchasereceiptJobDetailDO> purchasereceiptJobDetailDOList = new ArrayList<>();
for(PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO : purchasereceiptJobMainCreateReqVO.getSubList()) { for(PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO : purchasereceiptJobMainCreateReqVO.getSubList()) {
PurchasereceiptJobDetailDO purchasereceiptJobDetailDO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptJobDetailCreateReqVO); PurchasereceiptJobDetailDO purchasereceiptJobDetailDO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptJobDetailCreateReqVO);
purchasereceiptJobDetailDO.setNumber(number); purchasereceiptJobDetailDO.setNumber(number);
purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId()); purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId());
purchasereceiptJobDetailMapper.insert(purchasereceiptJobDetailDO); purchasereceiptJobDetailDOList.add(purchasereceiptJobDetailDO);
} }
purchasereceiptJobDetailMapper.insertBatch(purchasereceiptJobDetailDOList);
trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE);
} }
} }
@ -571,8 +574,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
} catch (Exception e) { } catch (Exception e) {
message.append(e.getMessage()).append(","); message.append(e.getMessage()).append(",");
} }
if(!itembasicDO.getUom().equals(itembasicDO.getUom())) { if(!detailDo.getUom().equals(itembasicDO.getUom())) {
message.append("计量单位【").append(itembasicDO.getUom()).append("】错误,应该是【").append(itembasicDO.getUom()).append("】").append(","); message.append("计量单位【").append(detailDo.getUom()).append("】错误,应该是【").append(itembasicDO.getUom()).append("】").append(",");
} }
try { try {
this.validateItemPacking(detailDo); this.validateItemPacking(detailDo);

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java

@ -4,10 +4,7 @@ import java.util.*;
import javax.validation.*; import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
@ -77,5 +74,14 @@ public interface PurchasereturnRequestMainService {
* @return 采购退货申请主列表 * @return 采购退货申请主列表
*/ */
List<PurchasereturnRequestMainDO> getPurchasereturnRequestMainList(PurchasereturnRequestMainExportReqVO exportReqVO); List<PurchasereturnRequestMainDO> getPurchasereturnRequestMainList(PurchasereturnRequestMainExportReqVO exportReqVO);
/**
* 批量导入采购退货申请主信息
*
* @param datas 导入采购索赔申请主信息列表
* @param mode 导入模式1更新2追加3覆盖
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<PurchasereturnRequestImportErrorVO> importPurchasereturnRequestList(List<PurchasereturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
} }

345
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java

@ -1,14 +1,41 @@
package com.win.module.wms.service.purchasereturnRequest; package com.win.module.wms.service.purchasereturnRequest;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.purchasereturnRequest.vo.*;
import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestDetailConvert;
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.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper;
import com.win.module.wms.dal.mysql.purchasereturnRequest.PurchasereturnRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
@ -32,22 +59,62 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
@Resource @Resource
private PurchasereturnRequestMainMapper purchasereturnRequestMainMapper; private PurchasereturnRequestMainMapper purchasereturnRequestMainMapper;
@Resource
private PurchasereturnRequestDetailMapper purchasereturnRequestDetailMapper;
@Resource
private Validator validator;
@Resource
private ItembasicService itembasicService;
@Resource
private DictDataApi dictDataApi;
@Resource
private JobUtils jobUtils;
@Resource
private PurchasereceiptRecordMainService purchasereceiptRecordMainService;
@Resource
private PurchasereceiptRecordMainMapper purchasereceiptRecordMainMapper;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
@Resource
private LocationService locationService;
@Resource
private TrendsApi trendsApi;
@Override @Override
public Long createPurchasereturnRequestMain(PurchasereturnRequestMainCreateReqVO createReqVO) { public Long createPurchasereturnRequestMain(PurchasereturnRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
// 插入 // 插入
PurchasereturnRequestMainDO purchasereturnRequestMain = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO); PurchasereturnRequestMainDO purchasereturnRequestMain = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO);
purchasereturnRequestMainMapper.insert(purchasereturnRequestMain); PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE);
// 返回 // 返回
return purchasereturnRequestMain.getId(); return purchasereturnRequestMain.getId();
} }
@Override @Override
public void updatePurchasereturnRequestMain(PurchasereturnRequestMainUpdateReqVO updateReqVO) { public void updatePurchasereturnRequestMain(PurchasereturnRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
// 校验存在 // 校验存在
validatePurchasereturnRequestMainExists(updateReqVO.getId()); validatePurchasereturnRequestMainExists(updateReqVO.getId());
// 更新 // 更新主表
PurchasereturnRequestMainDO updateObj = PurchasereturnRequestMainConvert.INSTANCE.convert(updateReqVO); PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
purchasereturnRequestMainMapper.updateById(updateObj); if(RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE);
} }
@Override @Override
public PageResult<PurchasereturnRequestMainDO> getPurchasereturnRequestMainSenior(CustomConditions conditions) { public PageResult<PurchasereturnRequestMainDO> getPurchasereturnRequestMainSenior(CustomConditions conditions) {
@ -87,4 +154,266 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
return purchasereturnRequestMainMapper.selectList(exportReqVO); return purchasereturnRequestMainMapper.selectList(exportReqVO);
} }
@Override
public List<PurchasereturnRequestImportErrorVO> importPurchasereturnRequestList(List<PurchasereturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASERETURN_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<PurchasereturnRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO();
PurchasereturnRequestMainDO mainDo = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorPurchasereturnRequestMainImport(mainDo);
List<PurchasereturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (PurchasereturnRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorPurchasereturnRequestDetailImport(detailDO, mainDo,businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
PurchasereturnRequestImportErrorVO importErrorVO = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setPpNumber(purchasereceiptRecordMainDO.getPpNumber());
mainDo.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber());
mainDo.setRequestTime(LocalDateTime.now());
purchasereturnRequestMainMapper.insert(mainDo);
for (PurchasereturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
detailDO.setToLocationCode("PUR_INTRANSIT");
}
purchasereturnRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private void ifdetailQtyBigThanQty(BigDecimal detailQty, BigDecimal qty) {
if(detailQty.compareTo(qty) > 0){
throw exception(QTY_EXCEPTION,"退货数量"+ qty + "不能大于于收货数量" + detailQty);
}
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private void validatorIfInType(String itemType,BusinesstypeDO businesstypeDO){
jobUtils.ifInType(itemType, businesstypeDO);
}
private void validatorIfInToLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){
jobUtils.ifInToLocationType(fromLocationCode, businesstypeDO);
}
private void validatorLocation(String fromLocationCode){
locationService.selectLocation(fromLocationCode);
}
private void requestsettingAndBusinesstypeSet(PurchasereturnRequestMainDO mainDo) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
private BigDecimal validatorBalance(PurchasereturnRequestDetailDO detailDo,PurchasereturnRequestMainDO mainDO){
ArrayList inventoryStatus = new ArrayList();
inventoryStatus.add(detailDo.getInventoryStatus());
BigDecimal bigDecimal = new BigDecimal(0);
List<BalanceDO> banlance = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
if(banlance != null) {
for (BalanceDO balanceDO : banlance) {
bigDecimal = bigDecimal.add(balanceDO.getQty());
mainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
}
}
return bigDecimal;
}
// 新增校验
private PurchasereturnRequestMainDO validatorToCreate(PurchasereturnRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO();
PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorMainMethod(createReqVO,purchasereceiptRecordMainDO);
//子表校验
List<PurchasereturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(subList);
for (PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : subDOList) {
validatorDetailMethod(purchasereturnRequestDetailDO,purchasereturnRequestMainDO,purchasereceiptRecordMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
purchasereturnRequestMainDO.setNumber(number);
purchasereturnRequestMainDO.setPpNumber(purchasereceiptRecordMainDO.getPpNumber());
purchasereturnRequestMainDO.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber());
purchasereturnRequestMainDO.setRequestTime(LocalDateTime.now());
purchasereturnRequestMainMapper.insert(purchasereturnRequestMainDO);
purchasereturnRequestDetailMapper.insertBatch(subDOList);
return purchasereturnRequestMainDO;
}
//修改校验
private PurchasereturnRequestMainDO validatorToUpdate(PurchasereturnRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO();
PurchasereturnRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,purchasereceiptRecordMainDO);
//子表校验
List<PurchasereturnRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList05(subList);
for (PurchasereturnRequestDetailDO purchaseclaimRequestDetailDO : subDOList) {
validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO,purchasereceiptRecordMainDO);
}
purchasereturnRequestMainMapper.updateById(purchaseclaimRequestMainDO);
purchasereturnRequestDetailMapper.updateBatch(subDOList);
return purchaseclaimRequestMainDO;
}
//校验主表公共方法(适用于新增/修改)
private PurchasereturnRequestMainDO validatorMainMethod(PurchasereturnRequestMainBaseVO baseVO,PurchasereceiptRecordMainDO purchasereceiptRecordMainDO){
PurchasereturnRequestMainDO mainDo = PurchasereturnRequestMainConvert.INSTANCE.convert(baseVO);
requestsettingAndBusinesstypeSet(mainDo);
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PurchasereturnRequestDetailDO detailDo,PurchasereturnRequestMainDO mainDo,PurchasereceiptRecordMainDO purchasereceiptRecordMainDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
validatorLocation(detailDo.getFromLocationCode());
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("id", purchasereceiptRecordDetailDO.getMasterId());
purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapper);
ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty());
BigDecimal bigDecimal = validatorBalance(detailDo,mainDo);
ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal);
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPurchasereturnRequestMainImport(PurchasereturnRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest");
if (requestsettingDO == null) {
message.append("未查找到采购退货申请的相关申请设置");
}
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest");
if (businesstypeDO == null) {
message.append("根据单据设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorPurchasereturnRequestDetailImport(PurchasereturnRequestDetailDO detailDo, PurchasereturnRequestMainDO mainDo,BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
try {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
this.validatorIfInType(itembasicDO.getType(), businesstypeDO);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
validatorLocation(detailDo.getFromLocationCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("id", purchasereceiptRecordDetailDO.getMasterId());
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapper);
try {
ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
BigDecimal bigDecimal = validatorBalance(detailDo,mainDo);
try{
ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java

@ -2,10 +2,7 @@ package com.win.module.wms.service.putawayRequest;
import java.util.*; import java.util.*;
import javax.validation.*; import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO; import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExportReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainPageReqVO;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
@ -78,4 +75,6 @@ public interface PutawayRequestMainService {
*/ */
List<PutawayRequestMainDO> getPutawayRequestMainList(PutawayRequestMainExportReqVO exportReqVO); List<PutawayRequestMainDO> getPutawayRequestMainList(PutawayRequestMainExportReqVO exportReqVO);
public List<PutawayRequestImportErrorVO> importPutawayRequestList(List<PutawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
} }

301
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java

@ -1,14 +1,38 @@
package com.win.module.wms.service.putawayRequest; package com.win.module.wms.service.putawayRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExportReqVO; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainPageReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.putawayRequest.vo.*;
import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.putawayRequest.PutawayRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.customer.CustomerService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.purchase.PurchaseMainService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO;
@ -31,26 +55,60 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService
@Resource @Resource
private PutawayRequestMainMapper putawayRequestMainMapper; private PutawayRequestMainMapper putawayRequestMainMapper;
@Resource
private PutawayRequestDetailMapper putawayRequestDetailMapper;
@Resource
private Validator validator;
@Resource
private ItembasicService itembasicService;
@Resource
private PurchaseMainService purchaseMainService;
@Resource
private LocationService locationService;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
@Resource
private CustomerService customerService;
@Resource
private TrendsApi trendsApi;
//TODO 主表从仓库代码,到仓库代码暂未赋值
@Override @Override
@Transactional
public Long createPutawayRequestMain(PutawayRequestMainCreateReqVO createReqVO) { public Long createPutawayRequestMain(PutawayRequestMainCreateReqVO createReqVO) {
// 插入 RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest");
PutawayRequestMainDO putawayRequestMain = PutawayRequestMainConvert.INSTANCE.convert(createReqVO); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest");
putawayRequestMainMapper.insert(putawayRequestMain); PutawayRequestMainDO putawayRequestMainDO = validatorToCreate(createReqVO, businesstypeDO,requestsettingDO);
// 返回 //调用自动执行方法
return putawayRequestMain.getId(); if(RequestStatusEnum.HANDLING.getCode().equals(putawayRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PutawayRequest", "增加了上架申请", TrendsTypeEnum.CREATE);
return putawayRequestMainDO.getId();
} }
@Override @Override
@Transactional
public void updatePutawayRequestMain(PutawayRequestMainUpdateReqVO updateReqVO) { public void updatePutawayRequestMain(PutawayRequestMainUpdateReqVO updateReqVO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest");
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest");
// 校验存在 // 校验存在
validatePutawayRequestMainExists(updateReqVO.getId()); validatePutawayRequestMainExists(updateReqVO.getId());
// 更新 // 更新
PutawayRequestMainDO updateObj = PutawayRequestMainConvert.INSTANCE.convert(updateReqVO); PutawayRequestMainDO putawayRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO,requestsettingDO);
putawayRequestMainMapper.updateById(updateObj); if(putawayRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode())) {
throw exception(PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW);
}
trendsApi.createTrends(updateReqVO.getId(), "PutawayRequestMain", putawayRequestMainDO.toString(), TrendsTypeEnum.UPDATE);
putawayRequestMainMapper.updateById(putawayRequestMainDO);
} }
@Override @Override
@Transactional
public void deletePutawayRequestMain(Long id) { public void deletePutawayRequestMain(Long id) {
// 校验存在 // 校验存在
validatePutawayRequestMainExists(id); validatePutawayRequestMainExists(id);
@ -88,4 +146,225 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService
return putawayRequestMainMapper.selectList(exportReqVO); return putawayRequestMainMapper.selectList(exportReqVO);
} }
@Override
@Transactional
public List<PutawayRequestImportErrorVO> importPutawayRequestList(List<PutawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PUTAWAY_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<PutawayRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest");
PutawayRequestMainDO mainDo = PutawayRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validatorPutawayRequestMainImport(mainDo,businesstypeDO);
List<PutawayRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PutawayRequestDetailDO> subDOList = PutawayRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (PutawayRequestDetailDO detailDO : subDOList) {
String messageDetail = validatorPutawayRequestDetailImport(detailDO, mainDo,businesstypeDO);
if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
PutawayRequestImportErrorVO importErrorVO = PutawayRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setRequestTime(LocalDateTime.now());
putawayRequestMainMapper.insert(mainDo);
for (PutawayRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
putawayRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
// 新增校验
private PutawayRequestMainDO validatorToCreate(PutawayRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) {
PutawayRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<PutawayRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PutawayRequestDetailDO> subDOList = PutawayRequestDetailConvert.INSTANCE.convertList03(subList);
for (PutawayRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo,businesstypeDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
putawayRequestMainMapper.insert(mainDo);
for (PutawayRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
putawayRequestDetailMapper.insertBatch(subDOList);
return mainDo;
}
//校验主表公共方法(适用于新增/修改)
private PutawayRequestMainDO validatorMainMethod(PutawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){
PutawayRequestMainDO mainDo = PutawayRequestMainConvert.INSTANCE.convert(baseVO);
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PutawayRequestDetailDO detailDo,PutawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
validatorIfInType(itembasicDO.getType(), businesstypeDO);
this.validatorPurchaseDetailDo(detailDo.getPoNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
validatorLocation(detailDo.getFromLocationCode());
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPutawayRequestMainImport(PutawayRequestMainDO mainDo,BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest");
if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
}
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验子表导入并赋值一些参数
*
* @param detailDo
* @return
*/
private String validatorPutawayRequestDetailImport(PutawayRequestDetailDO detailDo, PutawayRequestMainDO mainDo,BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
try {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorIfInType(itembasicDO.getType(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
this.validatorPurchaseDetailDo(detailDo.getPoNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorLocation(detailDo.getFromLocationCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.set(0,detailDo.getInventoryStatus());
validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
private void ifUomSuccess(String itemUom,String uom) {
if(!itemUom.equals(uom)){
throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom);
}
}
private ItembasicDO validatorItembasic(String itemCode){
return itembasicService.selectItembasic(itemCode);
}
private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode, String poLine){
return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine);
}
private LocationDO validatorLocation(String fromLocationCode){
return locationService.selectLocation(fromLocationCode);
}
private void validatorIfInType(String type, BusinesstypeDO businesstypeDO){
jobUtils.ifInType(type, businesstypeDO);
}
private void validatorIfOutInventoryStatuses(String inventoryStatus,BusinesstypeDO businesstypeDO){
jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO);
}
private void validatorIfInToLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){
jobUtils.ifInType(fromLocationCode, businesstypeDO);
}
private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String fromLocationCode,List<String> inventoryStatus){
jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber,batch,fromLocationCode,inventoryStatus);
}
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java

@ -11,8 +11,6 @@ import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.workshop.vo.*; import com.win.module.wms.controller.workshop.vo.*;
import com.win.module.wms.convert.workshop.WorkshopConvert; import com.win.module.wms.convert.workshop.WorkshopConvert;
import com.win.module.wms.dal.dataobject.workshop.WorkshopDO; import com.win.module.wms.dal.dataobject.workshop.WorkshopDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.dataobject.workshop.WorkshopDO;
import com.win.module.wms.dal.mysql.workshop.WorkshopMapper; import com.win.module.wms.dal.mysql.workshop.WorkshopMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
@ -188,8 +186,9 @@ public class WorkshopServiceImpl implements WorkshopService {
public WorkshopDO selectWorkshopExist(String pcode){ public WorkshopDO selectWorkshopExist(String pcode){
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("code",pcode); queryWrapper.eq("code",pcode);
queryWrapper.eq("available","TRUE");
WorkshopDO workshopDO = workshopMapper.selectOne(queryWrapper); WorkshopDO workshopDO = workshopMapper.selectOne(queryWrapper);
if(workshopDO != null && "TRUE".equals(workshopDO.getAvailable())){ if(workshopDO != null){
return workshopDO; return workshopDO;
}else { }else {
throw exception(WORKSHOP_NOT_EXISTS); throw exception(WORKSHOP_NOT_EXISTS);

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save