Browse Source

基础功能 部分导入功能及导入模板 功能代码

master
chenfang 2 years ago
parent
commit
1e39b2366f
  1. 13
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 128
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 11
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/customeritem/ErrorCodeConstants.java
  4. 8
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/dock/ErrorCodeConstants.java
  5. 8
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/itempackaging/ErrorCodeConstants.java
  6. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/location/ErrorCodeConstants.java
  7. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/locationgroup/ErrorCodeConstants.java
  8. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/process/ErrorCodeConstants.java
  9. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/productionline/ErrorCodeConstants.java
  10. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/productionlineitem/ErrorCodeConstants.java
  11. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/project/ErrorCodeConstants.java
  12. 14
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/purchaseprice/ErrorCodeConstants.java
  13. 10
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/workstation/ErrorCodeConstants.java
  14. 47
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/CustomeritemController.java
  15. 78
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/vo/CustomeritemImportExcelVO.java
  16. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/DockController.java
  17. 75
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/vo/DockImportExcelVO.java
  18. 77
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/DocumentsettingController.java
  19. 69
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/vo/DocumentsettingImportExcelVO.java
  20. 53
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java
  21. 83
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingImportExcelVO.java
  22. 96
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/JobsettingController.java
  23. 83
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/vo/JobsettingImportExcelVO.java
  24. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/LocationController.java
  25. 89
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/vo/LocationImportExcelVO.java
  26. 41
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/LocationgroupController.java
  27. 52
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/vo/LocationGroupImportExcelVO.java
  28. 80
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/OwnerController.java
  29. 82
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/vo/OwnerImportExcelVO.java
  30. 80
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/ParamsettingController.java
  31. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingImportExcelVO.java
  32. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/ProcessController.java
  33. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessImportExcelVO.java
  34. 44
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/ProductionlineController.java
  35. 60
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineImportExcelVO.java
  36. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/ProductionlineitemController.java
  37. 47
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineItemImportExcelVO.java
  38. 41
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/ProjectController.java
  39. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectImportExcelVO.java
  40. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/PurchasepriceController.java
  41. 52
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/vo/PurchasepriceImportExcelVO.java
  42. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/RecordsettingController.java
  43. 45
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/vo/RecordsettingImportExcelVO.java
  44. 86
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/RequestsettingController.java
  45. 61
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/vo/RequestsettingImportExcelVO.java
  46. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customeritem/CustomeritemConvert.java
  47. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/dock/DockConvert.java
  48. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/documentsetting/DocumentsettingConvert.java
  49. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itempackaging/ItempackagingConvert.java
  50. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/jobsetting/JobsettingConvert.java
  51. 17
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/location/LocationConvert.java
  52. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/owner/OwnerConvert.java
  53. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/paramsetting/ParamsettingConvert.java
  54. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/process/ProcessConvert.java
  55. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionline/ProductionlineConvert.java
  56. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionlineitem/ProductionlineitemConvert.java
  57. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/project/ProjectConvert.java
  58. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseprice/PurchasepriceConvert.java
  59. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/recordsetting/RecordsettingConvert.java
  60. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/requestsetting/RequestsettingConvert.java
  61. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customeritem/CustomeritemMapper.java
  62. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/dock/DockMapper.java
  63. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/documentsetting/DocumentsettingMapper.java
  64. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itempackaging/ItempackagingMapper.java
  65. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/jobsetting/JobsettingMapper.java
  66. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/location/LocationMapper.java
  67. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/locationgroup/LocationgroupMapper.java
  68. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/owner/OwnerMapper.java
  69. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/process/ProcessMapper.java
  70. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionline/ProductionlineMapper.java
  71. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/project/ProjectMapper.java
  72. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseprice/PurchasepriceMapper.java
  73. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/recordsetting/RecordsettingMapper.java
  74. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/requestsetting/RequestsettingMapper.java
  75. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemService.java
  76. 127
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemServiceImpl.java
  77. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockService.java
  78. 130
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockServiceImpl.java
  79. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/documentsetting/DocumentsettingService.java
  80. 178
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/documentsetting/DocumentsettingServiceImpl.java
  81. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java
  82. 124
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java
  83. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingService.java
  84. 200
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingServiceImpl.java
  85. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java
  86. 154
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java
  87. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/locationgroup/LocationgroupService.java
  88. 108
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/locationgroup/LocationgroupServiceImpl.java
  89. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/owner/OwnerService.java
  90. 116
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/owner/OwnerServiceImpl.java
  91. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/paramsetting/ParamsettingService.java
  92. 124
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/paramsetting/ParamsettingServiceImpl.java
  93. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/process/ProcessService.java
  94. 110
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/process/ProcessServiceImpl.java
  95. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java
  96. 108
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java
  97. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java
  98. 99
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java
  99. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/project/ProjectService.java
  100. 98
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/project/ProjectServiceImpl.java

13
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java

@ -55,12 +55,11 @@ public interface DictTypeConstants {
String PROCESS_TYPE = "process_type";//工序类型
String STRATEGY_PARAM_OPEARTOR = "strategy_param_opeartor";//策略参数操作符 NULL >= <= == !=
String DATA_TYPE = "data_type";//策略参数操作符 NULL >= <= == !=
String STRATEGY_TYPE = "strategy_type";//策略参数操作符 NULL >= <= == !=
String DATA_TYPE = "data_type";//数据类型
String STRATEGY_TYPE = "strategy_type";//策略类型
String DOCUMENT_TYPE = "document_type";//单据类型
String OWNER_TYPE = "owner_type";//货主类型
String INTERFACE_TYPE = "interface_type";//接口类型
String REQUEST_MODE = "reqeust_mode";//申请模式
}

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

@ -9,6 +9,62 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
//生产线物料关系ErrorCode
ErrorCode PRODUCTIONLINEITEM_NOT_EXISTS = new ErrorCode(1_000_024_000, "生产线物料关系不存在");
ErrorCode PRODUCTIONLINEITEM_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_024_001, "导入生产线物料关系不能为空");
ErrorCode PRODUCTIONLINEITEM_FGLOCATION_CODE_NOT_EXISTS = new ErrorCode(1_000_024_002, "完工收货库位不存在");
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_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_024_005, "是否可用不存在");
//采购价格单ErrorCode
ErrorCode PURCHASEPRICE_NOT_EXISTS = new ErrorCode(1_000_027_000, "采购价格单不存在");
ErrorCode PURCHASEPRICE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_027_001, "导入采购价格单不能为空");
ErrorCode PURCHASEPRICE_ITEM_CODE_EXISTS = new ErrorCode(1_000_027_002, "物料代码已存在");
ErrorCode PURCHASEPRICE_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_027_003, "物料代码不存在");
ErrorCode PURCHASEPRICE_SUPPLIER_CODE_NOT_EXISTS = new ErrorCode(1_000_027_004, "供应商代码不存在");
ErrorCode PURCHASEPRICE_CURRENCY_NOT_EXISTS = new ErrorCode(1_000_027_005, "货币不存在");
ErrorCode PURCHASEPRICE_PRICE_NOT_EXISTS = new ErrorCode(1_000_027_006, "价格不存在");
ErrorCode PURCHASEPRICE_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_027_007, "是否可用不存在");
//项目ErrorCode
ErrorCode PROJECT_NOT_EXISTS = new ErrorCode(1_000_031_000, "项目不存在");
ErrorCode PROJECT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_031_001, "导入项目不能为空");
ErrorCode PROJECT_CODE_EXISTS = new ErrorCode(1_000_031_002, "code已存在");
ErrorCode PROJECT_CODE_NOT_EXISTS = new ErrorCode(1_000_031_003, "code不存在");
ErrorCode PROJECT_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_031_004, "是否可用不存在");
//库位组ErrorCode
ErrorCode LOCATIONGROUP_NOT_EXISTS = new ErrorCode(1_000_036_000, "库位组不存在");
ErrorCode LOCATIONGROUP_CODE_EXISTS = new ErrorCode(1_000_036_001, "code已存在");
ErrorCode LOCATIONGROUP_CODE_NOT_EXISTS = new ErrorCode(1_000_036_002, "code不存在");
ErrorCode LOCATIONGROUP_WARE_HOUSE_CODE_NOT_EXISTS = new ErrorCode(1_000_036_003, "仓库代码不存在");
ErrorCode LOCATIONGROUP_AREA_CODE_NOT_EXISTS = new ErrorCode(1_000_036_004, "区域代码不存在");
ErrorCode LOCATIONGROUP_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_036_005, "是否可用不存在");
//库位ErrorCode
ErrorCode LOCATION_NOT_EXISTS = new ErrorCode(1_000_037_000, "库位不存在");
ErrorCode LOCATION_CODE_EXISTS = new ErrorCode(1_000_037_001, "code已存在");
ErrorCode LOCATION_CODE_NOT_EXISTS = new ErrorCode(1_000_037_002, "code不存在");
ErrorCode LOCATION_WARE_HOUSE_CODE_NOT_EXISTS = new ErrorCode(1_000_037_003, "仓库代码不存在");
ErrorCode LOCATION_AREA_CODE_NOT_EXISTS = new ErrorCode(1_000_037_004, "区域代码不存在");
ErrorCode LOCATION_ERP_LOCATION_CODE_NOT_EXISTS = new ErrorCode(1_000_037_005, "库位组不存在");
ErrorCode LOCATION_LOCATION_GROUP_CODE_NOT_EXISTS = new ErrorCode(1_000_037_006, "ERP库位代码不存在");
ErrorCode LOCATION_TYPE_NOT_EXISTS = new ErrorCode(1_000_037_007, "库位类型不存在");
ErrorCode LOCATION_PICK_PRIORITY_NOT_EXISTS = new ErrorCode(1_000_037_008, "拣料优先级不存在");
ErrorCode LOCATION_USER_GROUP_CODE_NOT_EXISTS = new ErrorCode(1_000_037_009, "用户组代码不存在");
ErrorCode LOCATION_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_037_010, "是否可用不存在");
//生产线ErrorCode
ErrorCode PRODUCTIONLINE_NOT_EXISTS = new ErrorCode(1_000_039_000, "生产线不存在");
ErrorCode PRODUCTIONLINE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_039_001, "导入生产线数据不能为空");
ErrorCode PRODUCTIONLINE_CODE_EXISTS = new ErrorCode(1_000_039_002, "code已存在");
ErrorCode PRODUCTIONLINE_CODE_NOT_EXISTS = new ErrorCode(1_000_039_003, "code不存在");
ErrorCode PRODUCTIONLINE_WORKSHOP_CODE_NOT_EXISTS = new ErrorCode(1_000_039_004, "车间代码不存在");
ErrorCode PRODUCTIONLINE_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_039_005, "是否可用不存在");
//工序ErrorCode
ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_000_041_000, "工序不存在");
ErrorCode PROCESS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_041_001, "导入工序数据不能为空");
ErrorCode PROCESS_CODE_EXISTS = new ErrorCode(1_000_041_002, "code已存在");
ErrorCode PROCESS_CODE_NOT_EXISTS = new ErrorCode(1_000_041_003, "code不存在");
ErrorCode PROCESS_WORKSHOP_CODE_NOT_EXISTS = new ErrorCode(1_000_041_004, "车间代码不存在");
ErrorCode PROCESS_PRODUCTION_LINE_CODE_NOT_EXISTS = new ErrorCode(1_000_041_005, "生产线代码不存在");
ErrorCode PROCESS_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_041_006, "是否可用不存在");
ErrorCode RULE_NOT_EXISTS = new ErrorCode(1_045_000_000, "规则不存在");
//条件ErrorCode
ErrorCode CONDITION_NOT_EXISTS = new ErrorCode(1_046_000_000, "条件不存在");
@ -33,19 +89,69 @@ public interface ErrorCodeConstants {
ErrorCode CONFIGURATIONSETTING_VALUE_SCOPE_NOT_EXISTS = new ErrorCode(1_048_000_006, "值范围不存在");
//参数设置ErrorCode
ErrorCode PARAMSETTING_NOT_EXISTS = new ErrorCode(1_048_000_000, "参数设置不存在");
ErrorCode PARAMSETTING_NOT_EXISTS = new ErrorCode(1_000_048_000, "参数设置不存在");
ErrorCode PARAMSETTING_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_048_001, "导入参数设置不能为空!");
ErrorCode PARAMSETTING_STRATEGY_TYPE_NOT_EXISTS = new ErrorCode(1_000_048_002, "策略代码不存在");
ErrorCode PARAMSETTING_PARAM_CODE_NOT_EXISTS = new ErrorCode(1_000_048_003, "参数代码不存在");
ErrorCode PARAMSETTING_USABLE_OPEARTORS_NOT_EXISTS = new ErrorCode(1_000_048_004, "可用操作符不存在");
ErrorCode PARAMSETTING_IS_REQUIRED_NOT_EXISTS = new ErrorCode(1_000_048_005, "必填不存在");
ErrorCode PARAMSETTING_DATA_TYPE_NOT_EXISTS = new ErrorCode(1_000_048_006, "数据类型不存在");
ErrorCode PARAMSETTING_VALUE_SCOPE_NOT_EXISTS = new ErrorCode(1_000_048_007, "值范围不存在");
// 事务类型ErrorCode
ErrorCode TRANSACTIONTYPE_NOT_EXISTS = new ErrorCode(1_049_000_000, "事务类型不存在");
ErrorCode DOCUMENTSETTING_NOT_EXISTS = new ErrorCode(1_051_000_000, "单据设置不存在");
ErrorCode REQUESTSETTING_NOT_EXISTS = new ErrorCode(1_052_000_000, "申请设置不存在");
ErrorCode JOBSETTING_NOT_EXISTS = new ErrorCode(1_053_000_000, "任务设置不存在");
// 单据设置ErrorCode
ErrorCode DOCUMENTSETTING_NOT_EXISTS = new ErrorCode(1_000_051_000, "单据设置不存在");
ErrorCode DOCUMENTSETTING_CODE_EXISTS = new ErrorCode(1_000_051_000, "code已存在");
ErrorCode DOCUMENTSETTING_CODE_NOT_EXISTS = new ErrorCode(1_000_051_000, "code不存在");
ErrorCode DOCUMENTSETTING_NAME_NOT_EXISTS = new ErrorCode(1_000_051_001, "名称不存在");
ErrorCode DOCUMENTSETTING_DESCRIPTION_NOT_EXISTS = new ErrorCode(1_000_051_002, "描述不存在");
ErrorCode DOCUMENTSETTING_TYPE_NOT_EXISTS = new ErrorCode(1_000_051_003, "单据类型不存在");
ErrorCode DOCUMENTSETTING_BUSINESS_TYPE_NOT_EXISTS = new ErrorCode(1_000_051_004, "业务类型不存在");
ErrorCode DOCUMENTSETTING_NUMBER_PREFIX_NOT_EXISTS = new ErrorCode(1_000_051_005, "号码前缀不存在");
ErrorCode DOCUMENTSETTING_DATE_FORMAT_NOT_EXISTS = new ErrorCode(1_000_051_006, "号码时间格式不存在");
ErrorCode DOCUMENTSETTING_SERIAL_LENGTH_NOT_EXISTS = new ErrorCode(1_000_051_007, "号码流水长度不存在");
ErrorCode DOCUMENTSETTING_RESET_PERIOD_NOT_EXISTS = new ErrorCode(1_000_051_008, "流水充值周期不存在");
ErrorCode DOCUMENTSETTING_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_051_009, "是否可用不存在");
//申请设置ErrorCode
ErrorCode REQUESTSETTING_NOT_EXISTS = new ErrorCode(1_000_052_000, "申请设置不存在");
ErrorCode REQUESTSETTING_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_052_001, "导入申请设置不存在");
ErrorCode REQUESTSETTING_CODE_EXISTS = new ErrorCode(1_000_052_002, "code已存在");
ErrorCode REQUESTSETTING_CODE_NOT_EXISTS = new ErrorCode(1_000_052_003, "code不存在");
ErrorCode REQUESTSETTING_REQUEST_MODE_NOT_EXISTS = new ErrorCode(1_000_052_004, "申请模式不存在");
ErrorCode REQUESTSETTING_AUTO_COMMIT_NOT_EXISTS = new ErrorCode(1_000_052_005, "自动提交不存在");
ErrorCode REQUESTSETTING_AUTO_AGREE_NOT_EXISTS = new ErrorCode(1_000_052_006, "自动通过不存在");
ErrorCode REQUESTSETTING_AUTO_EXECUTE_NOT_EXISTS = new ErrorCode(1_000_052_007, "自动执行不存在");
ErrorCode REQUESTSETTING_DIRECT_CREATE_DECORD_NOT_EXISTS = new ErrorCode(1_000_052_008, "跳过任务直接生成记录不存在");
ErrorCode REQUESTSETTING_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_052_009, "是否可用不存在");
//任务设置ErrorCode
ErrorCode JOBSETTING_NOT_EXISTS = new ErrorCode(1_000_053_000, "任务设置不存在");
ErrorCode JOBSETTING_CODE_NOT_EXISTS = new ErrorCode(1_000_053_000, "code不存在");
ErrorCode JOBSETTING_CODE_EXISTS = new ErrorCode(1_000_053_000, "code已存在");
ErrorCode JOBSETTING_AUTOCOMPLETE_NOT_EXISTS = new ErrorCode(1_000_053_000, "自动完成不存在");
ErrorCode JOBSETTING_VALIDMINUTES_NOT_EXISTS = new ErrorCode(1_000_053_000, "有效分钟不存在");
ErrorCode JOBSETTING_ALLOW_MODIFY_LACATION_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许修改库位不存在");
ErrorCode JOBSETTING_ALLOW_MODIFY_QTY_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许修改数量不存在");
ErrorCode JOBSETTING_ALLOW_BIGGER_QTY_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许大于推荐数量不存在");
ErrorCode JOBSETTING_ALLOW_SMALL_QTY_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许小于推荐数量不存在");
ErrorCode JOBSETTING_ALLOW_MODIFY_INVENTORY_STATUS_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许修改库存状态不存在");
ErrorCode JOBSETTING_ALLOW_CONTINUOUS_SCANNING_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许连续扫描不存在");
ErrorCode JOBSETTING_ALLOW_PARTIAL_COMPLETE_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许部分完成不存在");
ErrorCode JOBSETTING_ALLOW_MODIFY_BACH_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许修改批次不存在");
ErrorCode JOBSETTING_ALLOW_MODIFY_PACKING_NUMBER_NOT_EXISTS = new ErrorCode(1_000_053_000, "允许修改包装号不存在");
ErrorCode JOBSETTING_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_053_000, "是否可用不存在");
//记录设置ErrorCode
ErrorCode RECORDSETTING_NOT_EXISTS = new ErrorCode(1_054_000_000, "记录设置不存在");
ErrorCode OWNER_NOT_EXISTS = new ErrorCode(1_055_000_000, "货主不存在");
ErrorCode RECORDSETTING_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_054_000_001, "导入记录设置不能为空");
ErrorCode RECORDSETTING_CODE_EXISTS = new ErrorCode(1_054_000_002, "code已存在");
ErrorCode RECORDSETTING_CODE_NOT_EXISTS = new ErrorCode(1_054_000_003, "code不存在");
ErrorCode RECORDSETTING_INTERFACE_TYPE_NOT_EXISTS = new ErrorCode(1_054_000_004, "接口类型不存在");
ErrorCode RECORDSETTING_AVAILABLE_NOT_EXISTS = new ErrorCode(1_054_000_005, "是否可用不存在");
//货主ErrorCode
ErrorCode OWNER_NOT_EXISTS = new ErrorCode(1_000_055_000, "货主不存在");
ErrorCode OWNER_CODE_EXISTS = new ErrorCode(1_000_055_001, "code已存在");
ErrorCode OWNER_CODE_NOT_EXISTS = new ErrorCode(1_000_055_002, "code不存在");
ErrorCode OWNER_SHORTNAME_NOT_EXISTS = new ErrorCode(1_000_055_003, "简称不存在");
ErrorCode OWNER_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_055_004, "是否可用不存在");
ErrorCode SHIFT_NOT_EXISTS = new ErrorCode(1_057_000_000, "班次不存在");

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

@ -9,6 +9,15 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
ErrorCode CUSTOMERITEM_NOT_EXISTS = new ErrorCode(1_030_000_000, "客户物品不存在");
ErrorCode CUSTOMERITEM_NOT_EXISTS = new ErrorCode(1_000_030_000, "客户物品不存在");
ErrorCode CUSTOMERITEM_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_030_001, "是否可用不存在");
ErrorCode CUSTOMERITEM_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_030_002, "物料代码不存在");
ErrorCode CUSTOMERITEM_ITEM_CODE_EXISTS = new ErrorCode(1_000_030_003, "物料代码已存在");
ErrorCode CUSTOMERITEM_CUSTOMER_CODE_NOT_EXISTS = new ErrorCode(1_000_030_004, "客户代码不存在");
ErrorCode CUSTOMERITEM_PACKUNIT_NOT_EXISTS = new ErrorCode(1_000_030_005, "客户包装单位不存在");
ErrorCode CUSTOMERITEM_PACKQTY_NOT_EXISTS = new ErrorCode(1_000_030_006, "客户包装量不存在");
ErrorCode CUSTOMERITEM_PACKQTY_OF_CONTAINER_NOT_EXISTS = new ErrorCode(1_000_030_007, "每器具包装数不存在");
}

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

@ -9,6 +9,12 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
ErrorCode DOCK_NOT_EXISTS = new ErrorCode(1_034_000_000, "月台不存在");
ErrorCode DOCK_NOT_EXISTS = new ErrorCode(1_000_034_000, "月台不存在");
ErrorCode DOCK_CODE_NOT_EXISTS = new ErrorCode(1_000_034_001, "code不存在");
ErrorCode DOCK_CODE_EXISTS = new ErrorCode(1_000_034_002, "code已存在");
ErrorCode DOCK_TYPE_NOT_EXISTS = new ErrorCode(1_000_034_003, "类型不存在");
ErrorCode DOCK_WARE_HOUSE_CODE_NOT_EXISTS = new ErrorCode(1_000_034_004, "仓库代码不存在");
ErrorCode DOCK_DEFAULT_LOCATION_CODE_NOT_EXISTS = new ErrorCode(1_000_034_005, "默认库位代码不存在");
ErrorCode DOCK_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_034_006, "是否可用不存在");
}

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

@ -9,6 +9,12 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
ErrorCode ITEMPACKAGING_NOT_EXISTS = new ErrorCode(1_021_000_000, "物品包装信息 不存在");
ErrorCode ITEMPACKAGING_NOT_EXISTS = new ErrorCode(1_000_021_000, "物品包装信息 不存在");
ErrorCode ITEMPACKAGING_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_021_000, "code不存在");
ErrorCode ITEMPACKAGING_ITEM_CODE_EXISTS = new ErrorCode(1_000_021_000, "code已存在");
ErrorCode ITEMPACKAGING_UOM_NOT_EXISTS = new ErrorCode(1_000_021_000, "物品包装信息不存在");
ErrorCode ITEMPACKAGING_STD_PACK_UNIT_NOT_EXISTS = new ErrorCode(1_000_021_000, "包装单位不存在");
ErrorCode ITEMPACKAGING_STD_PACK_QTY_NOT_EXISTS = new ErrorCode(1_000_021_000, "包装数量不存在");
ErrorCode ITEMPACKAGING_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_021_000, "是否可用不存在");
}

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

@ -1,14 +0,0 @@
package com.win.module.wms.enums.location;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode LOCATION_NOT_EXISTS = new ErrorCode(1_037_000_000, "库位不存在");
}

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

@ -1,14 +0,0 @@
package com.win.module.wms.enums.locationgroup;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode LOCATIONGROUP_NOT_EXISTS = new ErrorCode(1_036_000_000, "库位组不存在");
}

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

@ -1,14 +0,0 @@
package com.win.module.wms.enums.process;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_041_000_000, "工序不存在");
}

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

@ -1,14 +0,0 @@
package com.win.module.wms.enums.productionline;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode PRODUCTIONLINE_NOT_EXISTS = new ErrorCode(1_039_000_000, "生产线不存在");
}

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

@ -1,14 +0,0 @@
package com.win.module.wms.enums.productionlineitem;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode PRODUCTIONLINEITEM_NOT_EXISTS = new ErrorCode(1_024_000_000, "生产线物料关系不存在");
}

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

@ -1,14 +0,0 @@
package com.win.module.wms.enums.project;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode PROJECT_NOT_EXISTS = new ErrorCode(1_031_000_000, "项目不存在");
}

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

@ -1,14 +0,0 @@
package com.win.module.wms.enums.purchaseprice;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode PURCHASEPRICE_NOT_EXISTS = new ErrorCode(1_027_000_000, "采购价格单不存在");
}

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

@ -9,13 +9,15 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
ErrorCode WORKSTATION_NOT_EXISTS = new ErrorCode(1_040_000_000, "工位不存在");
ErrorCode WORKSTATION_NOT_EXISTS = new ErrorCode(1_000_040_000, "工位不存在");
ErrorCode WORKSTATION_CODE_NOT_EXISTS = new ErrorCode(1_040_000_001, "code不存在");
ErrorCode WORKSTATION_CODE_NOT_EXISTS = new ErrorCode(1_000_040_001, "code不存在");
ErrorCode WORKSTATION_CODE_EXISTS = new ErrorCode(1_040_000_002, "code已存在");
ErrorCode WORKSTATION_CODE_EXISTS = new ErrorCode(1_000_040_002, "code已存在");
ErrorCode WORKSTATION_AVAIABLE_NOT_EXISTS = new ErrorCode(1_040_000_003, "是否可用不存在");
ErrorCode WORKSTATION_AVAIABLE_NOT_EXISTS = new ErrorCode(1_000_040_003, "是否可用不存在");
ErrorCode WORKSTATION_WORKSHOP_CODE_NOT_EXISTS = new ErrorCode(1_000_040_004, "车间代码不存在");
ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_NOT_EXISTS = new ErrorCode(1_000_040_005, "生产线代码不存在");
}

47
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/CustomeritemController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.customeritem;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.customeritem.vo.*;
import com.win.module.wms.convert.customeritem.CustomeritemConvert;
import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.customeritem.CustomeritemService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -96,4 +101,42 @@ public class CustomeritemController {
ExcelUtils.write(response, "客户物品.xls", "数据", CustomeritemExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入客户物品模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<CustomeritemImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] cusotmerUom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(3, cusotmerUom);
String[] packUnit = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PACK_UNIT);
mapDropDown.put(5, packUnit);
String[] altPackUnit = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PACK_UNIT);
mapDropDown.put(7, altPackUnit);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(10, available);
// 输出
ExcelUtils.write(response, "客户物品导入模板.xls", "客户物品列表", CustomeritemImportExcelVO.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:customeritem:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<CustomeritemImportExcelVO> list = ExcelUtils.read(file, CustomeritemImportExcelVO.class);
List<CustomeritemImportExcelVO> errorList = customeritemService.CustomeritemimportCustomeritemList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

78
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/vo/CustomeritemImportExcelVO.java

@ -0,0 +1,78 @@
package com.win.module.wms.controller.customeritem.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class CustomeritemImportExcelVO {
@ExcelProperty("客户代码")
private String customerCode;
@ExcelProperty("物料代码")
private String itemCode;
@ExcelProperty("客户物料代码")
private String customerItemCode;
@ExcelProperty(value = "客户计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String cusotmerUom;
@ExcelProperty("转换率")
private String convertRate;
@ExcelProperty(value = "客户包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PACK_UNIT)
private String packUnit;
@ExcelProperty("客户包装量")
private BigDecimal packQty;
@ExcelProperty(value = "客户替代包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PACK_UNIT)
private String altPackUnit;
@ExcelProperty("客户替代包装量")
private String altPackQty;
@ExcelProperty("每器具包装数")
private Integer packQtyOfContainer;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/DockController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.dock;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.dock.vo.*;
import com.win.module.wms.convert.dock.DockConvert;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.dock.DockService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -96,4 +101,38 @@ public class DockController {
ExcelUtils.write(response, "月台.xls", "数据", DockExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入月台模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<DockImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.DOCK_TYPE);
mapDropDown.put(5, type);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PACK_UNIT);
mapDropDown.put(10, available);;
// 输出
ExcelUtils.write(response, "月台导入模板.xls", "月台列表", DockImportExcelVO.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:dock:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<DockImportExcelVO> list = ExcelUtils.read(file, DockImportExcelVO.class);
List<DockImportExcelVO> errorList = dockService.dockimportDockList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

75
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/vo/DockImportExcelVO.java

@ -0,0 +1,75 @@
package com.win.module.wms.controller.dock.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class DockImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty("城市")
private String city;
@ExcelProperty("地址")
private String address;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.DOCK_TYPE)
private String type;
@ExcelProperty("仓库代码")
private String warehouseCode;
@ExcelProperty("默认库位代码")
private String defaultLocationCode;
@ExcelProperty("联系人姓名")
private String contactPerson;
@ExcelProperty("联系人电话")
private String contactPhone;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

77
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/DocumentsettingController.java

@ -1,32 +1,34 @@
package com.win.module.wms.controller.documentsetting;
import com.win.module.wms.controller.documentsetting.vo.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.documentsetting.vo.*;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import com.win.module.wms.convert.documentsetting.DocumentsettingConvert;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.documentsetting.DocumentsettingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 单据设置")
@RestController
@ -98,5 +100,38 @@ public class DocumentsettingController {
List<DocumentsettingExcelVO> datas = DocumentsettingConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "单据设置.xls", "数据", DocumentsettingExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入单据设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<DocumentsettingImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.DOCUMENT_TYPE);
mapDropDown.put(3, type);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PACK_UNIT);
mapDropDown.put(10, available);;
// 输出
ExcelUtils.write(response, "单据设置导入模板.xls", "单据设置列表", DocumentsettingImportExcelVO.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:documentsetting:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<DocumentsettingImportExcelVO> list = ExcelUtils.read(file, DocumentsettingImportExcelVO.class);
List<DocumentsettingImportExcelVO> errorList = documentsettingService.documentSettingimportDocumentList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

69
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/vo/DocumentsettingImportExcelVO.java

@ -0,0 +1,69 @@
package com.win.module.wms.controller.documentsetting.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class DocumentsettingImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "单据类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.DOCUMENT_TYPE)
private String type;
@ExcelProperty("业务类型")
// TODO 可能是字典 有带商榷
private String businessType;
@ExcelProperty("号码前缀")
private String numberPrefix;
@ExcelProperty("号码时间格式")
private String dateFormat;
@ExcelProperty("号码流水长度")
private Integer serialLength;
@ExcelProperty("号码分隔符")
private String separatorStr;
@ExcelProperty("流水重置周期")
private String resetPeriod;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

53
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.itempackaging;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.itempackaging.vo.*;
import com.win.module.wms.convert.itempackaging.ItempackagingConvert;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.itempackaging.ItempackagingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -96,4 +101,48 @@ public class ItempackagingController {
ExcelUtils.write(response, "物品包装信息 .xls", "数据", ItempackagingExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入物品包装信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ItempackagingImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(1, uom);
String[] description = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(2, description);;
String[] altPackUnit1 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(5, altPackUnit1);;
String[] altPackUnit2 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, altPackUnit2);;
String[] altPackUnit3 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(9, altPackUnit3);;
String[] altPackUnit4 = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(11, altPackUnit4);;
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(13, available);;
// 输出
ExcelUtils.write(response, "物品包装信息导入模板.xls", "物品包装信息列表", ItempackagingImportExcelVO.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:itempackaging:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ItempackagingImportExcelVO> list = ExcelUtils.read(file, ItempackagingImportExcelVO.class);
List<ItempackagingImportExcelVO> errorList = itempackagingService.itempackagingimportDocumentList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

83
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/vo/ItempackagingImportExcelVO.java

@ -0,0 +1,83 @@
package com.win.module.wms.controller.itempackaging.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ItempackagingImportExcelVO {
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty(value = "包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String description;
@ExcelProperty("包装单位")
private String stdPackUnit;
@ExcelProperty("包装数量")
private BigDecimal stdPackQty;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit1;
@ExcelProperty("替代包装量")
private String altPackQty1;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit2;
@ExcelProperty("替代包装量")
private String altPackQty2;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit3;
@ExcelProperty("替代包装量")
private String altPackQty3;
@ExcelProperty(value = "替代包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String altPackUnit4;
@ExcelProperty("替代包装量")
private String altPackQty4;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

96
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/JobsettingController.java

@ -1,32 +1,34 @@
package com.win.module.wms.controller.jobsetting;
import com.win.module.wms.controller.jobsetting.vo.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.jobsetting.vo.*;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.convert.jobsetting.JobsettingConvert;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.jobsetting.JobsettingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 任务设置")
@RestController
@ -99,4 +101,56 @@ public class JobsettingController {
ExcelUtils.write(response, "任务设置.xls", "数据", JobsettingExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入任务设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<JobsettingImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] autoComplete = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(2, autoComplete);
String[] allowModifyLocation = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(3, allowModifyLocation);
String[] allowModifyQty = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, allowModifyQty);
String[] allowBiggerQty = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(5, allowBiggerQty);
String[] allowSmallerQty = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(6, allowSmallerQty);
String[] allowModifyInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(7, allowModifyInventoryStatus);
String[] allowContinuousScanning = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(8, allowContinuousScanning);
String[] allowPartialComplete = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(9, allowPartialComplete);
String[] allowModifyBach = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(10, allowModifyBach);
String[] allowModifyPackingNumber = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(11, allowModifyPackingNumber);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(12, available);
// 输出
ExcelUtils.write(response, "任务设置导入模板.xls", "任务设置列表", JobsettingImportExcelVO.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:jobsetting:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<JobsettingImportExcelVO> list = ExcelUtils.read(file, JobsettingImportExcelVO.class);
List<JobsettingImportExcelVO> errorList = jobsettingService.importJobsettingList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

83
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/vo/JobsettingImportExcelVO.java

@ -0,0 +1,83 @@
package com.win.module.wms.controller.jobsetting.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class JobsettingImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("有效分钟")
private Integer validMinutes;
@ExcelProperty(value = "自动完成", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoComplete;
@ExcelProperty(value = "允许修改库位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyLocation;
@ExcelProperty(value = "允许修改数量", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyQty;
@ExcelProperty(value = "允许大于推荐数量", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowBiggerQty;
@ExcelProperty(value = "允许小于推荐数量", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowSmallerQty;
@ExcelProperty(value = "允许修改库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyInventoryStatus;
@ExcelProperty(value = "允许连续扫描", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowContinuousScanning;
@ExcelProperty(value = "允许部分完成", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowPartialComplete;
@ExcelProperty(value = "允许修改批次", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyBach;
@ExcelProperty(value = "允许修改包装号", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyPackingNumber;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/LocationController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.location;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.location.vo.*;
import com.win.module.wms.convert.location.LocationConvert;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.location.LocationService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,39 @@ public class LocationController {
List<LocationExcelVO> datas = LocationConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "库位.xls", "数据", LocationExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入库位模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<LocationImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.DOCUMENT_TYPE);
mapDropDown.put(3, type);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PACK_UNIT);
mapDropDown.put(10, available);;
// 输出
ExcelUtils.write(response, "库位导入模板.xls", "库位列表", LocationImportExcelVO.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:location:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<LocationImportExcelVO> list = ExcelUtils.read(file, LocationImportExcelVO.class);
List<LocationImportExcelVO> errorList = locationService.importLocationList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

89
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/vo/LocationImportExcelVO.java

@ -0,0 +1,89 @@
package com.win.module.wms.controller.location.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class LocationImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty("仓库代码")
private String warehouseCode;
@ExcelProperty("区域代码")
private String areaCode;
@ExcelProperty("库位组代码")
private String locationGroupCode;
@ExcelProperty("ERP库位代码")
private String erpLocationCode;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.LOCATION_TYPE)
private String type;
@ExcelProperty("巷道")
private String aisle;
@ExcelProperty("货架")
private String shelf;
@ExcelProperty("行")
private String locationRow;
@ExcelProperty("列")
private String locationColum;
@ExcelProperty("拣料优先级")
private Integer pickPriority;
@ExcelProperty("最大承重")
private String maxWeight;
@ExcelProperty("最大面积")
private String maxArea;
@ExcelProperty("最大体积")
private String maxVolume;
@ExcelProperty("用户组代码")
private String userGroupCode;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.LOCATION_TYPE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

41
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/LocationgroupController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.locationgroup;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.locationgroup.vo.*;
import com.win.module.wms.convert.locationgroup.LocationgroupConvert;
import com.win.module.wms.dal.dataobject.locationgroup.LocationgroupDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.locationgroup.LocationgroupService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,37 @@ public class LocationgroupController {
List<LocationgroupExcelVO> datas = LocationgroupConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "库位组.xls", "数据", LocationgroupExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入库位组模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<LocationGroupImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PACK_UNIT);
mapDropDown.put(5, available);;
// 输出
ExcelUtils.write(response, "库位组导入模板.xls", "库位组列表", LocationGroupImportExcelVO.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:location:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<LocationGroupImportExcelVO> list = ExcelUtils.read(file, LocationGroupImportExcelVO.class);
List<LocationGroupImportExcelVO> errorList = locationgroupService.importLocationGroupList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

52
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/vo/LocationGroupImportExcelVO.java

@ -0,0 +1,52 @@
package com.win.module.wms.controller.locationgroup.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class LocationGroupImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty("仓库代码")
private String warehouseCode;
@ExcelProperty("区域代码")
private String areaCode;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.LOCATION_TYPE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

80
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/OwnerController.java

@ -1,32 +1,34 @@
package com.win.module.wms.controller.owner;
import com.win.module.wms.controller.owner.vo.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.owner.vo.*;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.convert.owner.OwnerConvert;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.owner.OwnerService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 货主")
@RestController
@ -98,5 +100,41 @@ public class OwnerController {
List<OwnerExcelVO> datas = OwnerConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "货主.xls", "数据", OwnerExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入货主模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<OwnerImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY);
mapDropDown.put(11, currency);
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.OWNER_TYPE);
mapDropDown.put(13, type);;
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(14, available);;
// 输出
ExcelUtils.write(response, "货主导入模板.xls", "货主列表", OwnerImportExcelVO.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:owner:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<OwnerImportExcelVO> list = ExcelUtils.read(file, OwnerImportExcelVO.class);
List<OwnerImportExcelVO> errorList = ownerService.importOwnerList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

82
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/vo/OwnerImportExcelVO.java

@ -0,0 +1,82 @@
package com.win.module.wms.controller.owner.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class OwnerImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("简称")
private String shortName;
@ExcelProperty("地址")
private String address;
@ExcelProperty("国家")
private String country;
@ExcelProperty("城市")
private String city;
@ExcelProperty("电话")
private String phone;
@ExcelProperty("传真")
private String fax;
@ExcelProperty("邮编")
private String postId;
@ExcelProperty("联系人")
private String contacts;
@ExcelProperty("银行")
private String bank;
@ExcelProperty(value = "币种", converter = DictConvert.class)
@DictFormat(DictTypeConstants.CURRENCY)
private String currency;
@ExcelProperty("税率")
private BigDecimal taxRate;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.OWNER_TYPE)
private String type;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

80
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/ParamsettingController.java

@ -1,32 +1,34 @@
package com.win.module.wms.controller.paramsetting;
import com.win.module.wms.controller.paramsetting.vo.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.paramsetting.vo.*;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import com.win.module.wms.convert.paramsetting.ParamsettingConvert;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.paramsetting.ParamsettingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 参数设置")
@RestController
@ -98,5 +100,41 @@ public class ParamsettingController {
List<ParamsettingExcelVO> datas = ParamsettingConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "参数设置.xls", "数据", ParamsettingExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入参数设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ParamsettingImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY);
mapDropDown.put(11, currency);
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.OWNER_TYPE);
mapDropDown.put(13, type);;
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(14, available);;
// 输出
ExcelUtils.write(response, "参数设置导入模板.xls", "参数设置列表", ParamsettingImportExcelVO.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:paramsetting:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ParamsettingImportExcelVO> list = ExcelUtils.read(file, ParamsettingImportExcelVO.class);
List<ParamsettingImportExcelVO> errorList = paramsettingService.importParamsettingList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingImportExcelVO.java

@ -0,0 +1,50 @@
package com.win.module.wms.controller.paramsetting.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.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ParamsettingImportExcelVO {
@ExcelProperty("策略代码")
private String strategyType;
@ExcelProperty("参数代码")
private String paramCode;
@ExcelProperty("参数名称")
private String paramName;
@ExcelProperty("可用操作符")
//TODO 可能是字典类但是没查到 需确认
private String usableOpeartors;
@ExcelProperty(value = "数据类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.DATA_TYPE)
private String dataType;
@ExcelProperty("值范围")
private String valueScope;
@ExcelProperty("关联到")
private String relatedTo;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "必填", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String isRequired;
}

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/ProcessController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.process;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.process.vo.*;
import com.win.module.wms.convert.process.ProcessConvert;
import com.win.module.wms.dal.dataobject.process.ProcessDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.process.ProcessService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,39 @@ public class ProcessController {
List<ProcessExcelVO> datas = ProcessConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "工序.xls", "数据", ProcessExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入参数设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProcessImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PROCESS_TYPE);
mapDropDown.put(3, type);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(6, available);;
// 输出
ExcelUtils.write(response, "参数设置导入模板.xls", "参数设置列表", ProcessImportExcelVO.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:process:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ProcessImportExcelVO> list = ExcelUtils.read(file, ProcessImportExcelVO.class);
List<ProcessImportExcelVO> errorList = processService.importProcessList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

57
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessImportExcelVO.java

@ -0,0 +1,57 @@
package com.win.module.wms.controller.process.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProcessImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PROCESS_TYPE)
private String type;
@ExcelProperty("车间代码")
private String workshopCode;
@ExcelProperty("生产线代码")
private String productionLineCode;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

44
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/ProductionlineController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.productionline;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.productionline.vo.ProductionlineImportExcelVO;
import com.win.module.wms.controller.productionline.vo.*;
import com.win.module.wms.convert.productionline.ProductionlineConvert;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productionline.ProductionlineService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +101,39 @@ public class ProductionlineController {
List<ProductionlineExcelVO> datas = ProductionlineConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "生产线.xls", "数据", ProductionlineExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入参数设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProductionlineImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PROCESS_TYPE);
mapDropDown.put(3, type);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(6, available);;
// 输出
ExcelUtils.write(response, "参数设置导入模板.xls", "参数设置列表", ProductionlineImportExcelVO.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:productionline:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ProductionlineImportExcelVO> list = ExcelUtils.read(file, ProductionlineImportExcelVO.class);
List<ProductionlineImportExcelVO> errorList = productionlineService.importProductionlineList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

60
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineImportExcelVO.java

@ -0,0 +1,60 @@
package com.win.module.wms.controller.productionline.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductionlineImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PROCESS_TYPE)
private String type;
@ExcelProperty("车间代码")
private String workshopCode;
@ExcelProperty("原料库位")
private String rawLocationCode;
@ExcelProperty("成品库位")
private String fgLocationCode;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

42
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/ProductionlineitemController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.productionlineitem;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineItemImportExcelVO;
import com.win.module.wms.controller.productionlineitem.vo.*;
import com.win.module.wms.convert.productionlineitem.ProductionlineitemConvert;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +101,37 @@ public class ProductionlineitemController {
List<ProductionlineitemExcelVO> datas = ProductionlineitemConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "生产线物料关系.xls", "数据", ProductionlineitemExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入生产线物料关系模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProductionlineItemImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(3, available);;
// 输出
ExcelUtils.write(response, "生产线物料关系导入模板.xls", "生产线物料关系列表", ProductionlineItemImportExcelVO.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:productionlineitem:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ProductionlineItemImportExcelVO> list = ExcelUtils.read(file, ProductionlineItemImportExcelVO.class);
List<ProductionlineItemImportExcelVO> errorList = productionlineitemService.importProductionlineItemList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

47
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineItemImportExcelVO.java

@ -0,0 +1,47 @@
package com.win.module.wms.controller.productionlineitem.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductionlineItemImportExcelVO {
@ExcelProperty("完工收货库位")
private String fgLocationCode;
@ExcelProperty("产线代码")
private String productionLineCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

41
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/ProjectController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.project;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.project.vo.*;
import com.win.module.wms.convert.project.ProjectConvert;
import com.win.module.wms.dal.dataobject.project.ProjectDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.project.ProjectService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,37 @@ public class ProjectController {
List<ProjectExcelVO> datas = ProjectConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "项目.xls", "数据", ProjectExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入参数设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProjectImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);;
// 输出
ExcelUtils.write(response, "参数设置导入模板.xls", "参数设置列表", ProjectImportExcelVO.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:project:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ProjectImportExcelVO> list = ExcelUtils.read(file, ProjectImportExcelVO.class);
List<ProjectImportExcelVO> errorList = projectService.importProjectList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectImportExcelVO.java

@ -0,0 +1,50 @@
package com.win.module.wms.controller.project.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProjectImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty("客户代码")
private String customerCode;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/PurchasepriceController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.purchaseprice;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.purchaseprice.vo.*;
import com.win.module.wms.convert.purchaseprice.PurchasepriceConvert;
import com.win.module.wms.dal.dataobject.purchaseprice.PurchasepriceDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.purchaseprice.PurchasepriceService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,39 @@ public class PurchasepriceController {
List<PurchasepriceExcelVO> datas = PurchasepriceConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "采购价格单.xls", "数据", PurchasepriceExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入采购价格单模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<PurchasepriceImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY);
mapDropDown.put(2, currency);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
ExcelUtils.write(response, "采购价格单导入模板.xls", "采购价格单列表", PurchasepriceImportExcelVO.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:purchaseprice:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<PurchasepriceImportExcelVO> list = ExcelUtils.read(file, PurchasepriceImportExcelVO.class);
List<PurchasepriceImportExcelVO> errorList = purchasepriceService.importPurchasepriceList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

52
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/vo/PurchasepriceImportExcelVO.java

@ -0,0 +1,52 @@
package com.win.module.wms.controller.purchaseprice.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PurchasepriceImportExcelVO {
@ExcelProperty("供应商代码")
private String supplierCode;
@ExcelProperty("物料代码")
private String itemCode;
@ExcelProperty(value = "货币", converter = DictConvert.class)
@DictFormat(DictTypeConstants.CURRENCY)
private String currency;
@ExcelProperty("价格")
private BigDecimal price;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/RecordsettingController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.recordsetting;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.recordsetting.vo.*;
import com.win.module.wms.convert.recordsetting.RecordsettingConvert;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,39 @@ public class RecordsettingController {
List<RecordsettingExcelVO> datas = RecordsettingConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "记录设置.xls", "数据", RecordsettingExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入记录设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<RecordsettingImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY);
mapDropDown.put(2, currency);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
ExcelUtils.write(response, "记录设置导入模板.xls", "记录设置列表", RecordsettingImportExcelVO.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:recordsetting:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<RecordsettingImportExcelVO> list = ExcelUtils.read(file, RecordsettingImportExcelVO.class);
List<RecordsettingImportExcelVO> errorList = recordsettingService.importRecordsettingList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

45
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/vo/RecordsettingImportExcelVO.java

@ -0,0 +1,45 @@
package com.win.module.wms.controller.recordsetting.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class RecordsettingImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty(value = "接口类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INTERFACE_TYPE)
private String interfaceType;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

86
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/RequestsettingController.java

@ -1,32 +1,34 @@
package com.win.module.wms.controller.requestsetting;
import com.win.module.wms.controller.requestsetting.vo.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.requestsetting.vo.*;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.convert.requestsetting.RequestsettingConvert;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 申请设置")
@RestController
@ -98,5 +100,47 @@ public class RequestsettingController {
List<RequestsettingExcelVO> datas = RequestsettingConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "申请设置.xls", "数据", RequestsettingExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入记录设置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<RequestsettingImportExcelVO> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] requestMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_MODE);
mapDropDown.put(1, requestMode);
String[] autoCommit = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(2, autoCommit);
String[] autoAgree = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(3, autoAgree);
String[] autoExecute = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, autoExecute);
String[] directCreateRecord = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(5, directCreateRecord);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(6, available);
// 输出
ExcelUtils.write(response, "记录设置导入模板.xls", "记录设置列表", RequestsettingImportExcelVO.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:requestsetting:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<RequestsettingImportExcelVO> list = ExcelUtils.read(file, RequestsettingImportExcelVO.class);
List<RequestsettingImportExcelVO> errorList = requestsettingService.importRequestsettingList(list, 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")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

61
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/vo/RequestsettingImportExcelVO.java

@ -0,0 +1,61 @@
package com.win.module.wms.controller.requestsetting.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class RequestsettingImportExcelVO {
@ExcelProperty("代码")
private String code;
@ExcelProperty(value = "申请模式", converter = DictConvert.class)
@DictFormat(DictTypeConstants.REQUEST_MODE)
private String requestMode;
@ExcelProperty(value = "自动提交", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoCommit;
@ExcelProperty(value = "自动通过", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoAgree;
@ExcelProperty(value = "自动执行", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoExecute;
@ExcelProperty(value = "跳过任务直接生成记录", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String directCreateRecord;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customeritem/CustomeritemConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.customeritem;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customeritem.vo.CustomeritemCreateReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemExcelVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemRespVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemUpdateReqVO;
import com.win.module.wms.controller.customeritem.vo.*;
import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO;
import java.util.List;
/**
* 客户物品 Convert
@ -28,6 +24,8 @@ public interface CustomeritemConvert {
CustomeritemRespVO convert(CustomeritemDO bean);
CustomeritemDO convert(CustomeritemImportExcelVO customer);
List<CustomeritemRespVO> convertList(List<CustomeritemDO> list);
PageResult<CustomeritemRespVO> convertPage(PageResult<CustomeritemDO> page);

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/dock/DockConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.dock;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.dock.vo.DockCreateReqVO;
import com.win.module.wms.controller.dock.vo.DockExcelVO;
import com.win.module.wms.controller.dock.vo.DockRespVO;
import com.win.module.wms.controller.dock.vo.DockUpdateReqVO;
import com.win.module.wms.controller.dock.vo.*;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import java.util.List;
/**
* 月台 Convert
@ -25,6 +21,7 @@ public interface DockConvert {
DockDO convert(DockCreateReqVO bean);
DockDO convert(DockUpdateReqVO bean);
DockDO convert(DockImportExcelVO dock);
DockRespVO convert(DockDO bean);

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/documentsetting/DocumentsettingConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.documentsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingCreateReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingExcelVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingRespVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingUpdateReqVO;
import com.win.module.wms.controller.documentsetting.vo.*;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import java.util.List;
/**
* 单据设置 Convert
@ -34,4 +30,5 @@ public interface DocumentsettingConvert {
List<DocumentsettingExcelVO> convertList02(List<DocumentsettingDO> list);
DocumentsettingDO convert(DocumentsettingImportExcelVO documentsetting);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/itempackaging/ItempackagingConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.itempackaging;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingCreateReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingExcelVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingRespVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingUpdateReqVO;
import com.win.module.wms.controller.itempackaging.vo.*;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import java.util.List;
/**
* 物品包装信息 Convert
@ -34,4 +30,5 @@ public interface ItempackagingConvert {
List<ItempackagingExcelVO> convertList02(List<ItempackagingDO> list);
ItempackagingDO convert(ItempackagingImportExcelVO itempackaging);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/jobsetting/JobsettingConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.jobsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.jobsetting.vo.JobsettingCreateReqVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingExcelVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingRespVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingUpdateReqVO;
import com.win.module.wms.controller.jobsetting.vo.*;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import java.util.List;
/**
* 任务设置 Convert
@ -34,4 +30,5 @@ public interface JobsettingConvert {
List<JobsettingExcelVO> convertList02(List<JobsettingDO> list);
JobsettingDO convert(JobsettingImportExcelVO jobsetting);
}

17
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/location/LocationConvert.java

@ -1,16 +1,14 @@
package com.win.module.wms.convert.location;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.location.vo.LocationCreateReqVO;
import com.win.module.wms.controller.location.vo.LocationExcelVO;
import com.win.module.wms.controller.location.vo.LocationRespVO;
import com.win.module.wms.controller.location.vo.LocationUpdateReqVO;
import com.win.module.wms.controller.location.vo.*;
import com.win.module.wms.controller.locationgroup.vo.LocationGroupImportExcelVO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.locationgroup.LocationgroupDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import java.util.List;
/**
* 库位 Convert
@ -34,4 +32,7 @@ public interface LocationConvert {
List<LocationExcelVO> convertList02(List<LocationDO> list);
LocationDO convert(LocationImportExcelVO location);
LocationgroupDO convert(LocationGroupImportExcelVO locationGroup);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/owner/OwnerConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.owner;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.owner.vo.OwnerCreateReqVO;
import com.win.module.wms.controller.owner.vo.OwnerExcelVO;
import com.win.module.wms.controller.owner.vo.OwnerRespVO;
import com.win.module.wms.controller.owner.vo.OwnerUpdateReqVO;
import com.win.module.wms.controller.owner.vo.*;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import java.util.List;
/**
* 货主 Convert
@ -34,4 +30,5 @@ public interface OwnerConvert {
List<OwnerExcelVO> convertList02(List<OwnerDO> list);
OwnerDO convert(OwnerImportExcelVO owner);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/paramsetting/ParamsettingConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.paramsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingCreateReqVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingExcelVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingRespVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingUpdateReqVO;
import com.win.module.wms.controller.paramsetting.vo.*;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import java.util.List;
/**
* 参数设置 Convert
@ -34,4 +30,5 @@ public interface ParamsettingConvert {
List<ParamsettingExcelVO> convertList02(List<ParamsettingDO> list);
ParamsettingDO convert(ParamsettingImportExcelVO paramsetting);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/process/ProcessConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.process;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.process.vo.ProcessCreateReqVO;
import com.win.module.wms.controller.process.vo.ProcessExcelVO;
import com.win.module.wms.controller.process.vo.ProcessRespVO;
import com.win.module.wms.controller.process.vo.ProcessUpdateReqVO;
import com.win.module.wms.controller.process.vo.*;
import com.win.module.wms.dal.dataobject.process.ProcessDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.process.ProcessDO;
import java.util.List;
/**
* 工序 Convert
@ -34,4 +30,5 @@ public interface ProcessConvert {
List<ProcessExcelVO> convertList02(List<ProcessDO> list);
ProcessDO convert(ProcessImportExcelVO process);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionline/ProductionlineConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.productionline;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionline.vo.ProductionlineCreateReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlineExcelVO;
import com.win.module.wms.controller.productionline.vo.ProductionlineRespVO;
import com.win.module.wms.controller.productionline.vo.ProductionlineUpdateReqVO;
import com.win.module.wms.controller.productionline.vo.*;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import java.util.List;
/**
* 生产线 Convert
@ -34,4 +30,5 @@ public interface ProductionlineConvert {
List<ProductionlineExcelVO> convertList02(List<ProductionlineDO> list);
ProductionlineDO convert(ProductionlineImportExcelVO productionline);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionlineitem/ProductionlineitemConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.productionlineitem;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemCreateReqVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemExcelVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemRespVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemUpdateReqVO;
import com.win.module.wms.controller.productionlineitem.vo.*;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import java.util.List;
/**
* 生产线物料关系 Convert
@ -34,4 +30,5 @@ public interface ProductionlineitemConvert {
List<ProductionlineitemExcelVO> convertList02(List<ProductionlineitemDO> list);
ProductionlineitemDO convert(ProductionlineItemImportExcelVO productionlineItem);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/project/ProjectConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.project;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.project.vo.ProjectCreateReqVO;
import com.win.module.wms.controller.project.vo.ProjectExcelVO;
import com.win.module.wms.controller.project.vo.ProjectRespVO;
import com.win.module.wms.controller.project.vo.ProjectUpdateReqVO;
import com.win.module.wms.controller.project.vo.*;
import com.win.module.wms.dal.dataobject.project.ProjectDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.project.ProjectDO;
import java.util.List;
/**
* 项目 Convert
@ -34,4 +30,5 @@ public interface ProjectConvert {
List<ProjectExcelVO> convertList02(List<ProjectDO> list);
ProjectDO convert(ProjectImportExcelVO project);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseprice/PurchasepriceConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.purchaseprice;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchaseprice.vo.PurchasepriceCreateReqVO;
import com.win.module.wms.controller.purchaseprice.vo.PurchasepriceExcelVO;
import com.win.module.wms.controller.purchaseprice.vo.PurchasepriceRespVO;
import com.win.module.wms.controller.purchaseprice.vo.PurchasepriceUpdateReqVO;
import com.win.module.wms.controller.purchaseprice.vo.*;
import com.win.module.wms.dal.dataobject.purchaseprice.PurchasepriceDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchaseprice.PurchasepriceDO;
import java.util.List;
/**
* 采购价格单 Convert
@ -34,4 +30,5 @@ public interface PurchasepriceConvert {
List<PurchasepriceExcelVO> convertList02(List<PurchasepriceDO> list);
PurchasepriceDO convert(PurchasepriceImportExcelVO purchaseprice);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/recordsetting/RecordsettingConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.recordsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.recordsetting.vo.RecordsettingCreateReqVO;
import com.win.module.wms.controller.recordsetting.vo.RecordsettingExcelVO;
import com.win.module.wms.controller.recordsetting.vo.RecordsettingRespVO;
import com.win.module.wms.controller.recordsetting.vo.RecordsettingUpdateReqVO;
import com.win.module.wms.controller.recordsetting.vo.*;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import java.util.List;
/**
* 记录设置 Convert
@ -34,4 +30,5 @@ public interface RecordsettingConvert {
List<RecordsettingExcelVO> convertList02(List<RecordsettingDO> list);
RecordsettingDO convert(RecordsettingImportExcelVO recordsetting);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/requestsetting/RequestsettingConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.requestsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.requestsetting.vo.RequestsettingCreateReqVO;
import com.win.module.wms.controller.requestsetting.vo.RequestsettingExcelVO;
import com.win.module.wms.controller.requestsetting.vo.RequestsettingRespVO;
import com.win.module.wms.controller.requestsetting.vo.RequestsettingUpdateReqVO;
import com.win.module.wms.controller.requestsetting.vo.*;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import java.util.List;
/**
* 申请设置 Convert
@ -34,4 +30,5 @@ public interface RequestsettingConvert {
List<RequestsettingExcelVO> convertList02(List<RequestsettingDO> list);
RequestsettingDO convert(RequestsettingImportExcelVO requestsetting);
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customeritem/CustomeritemMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.customeritem;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.customeritem.vo.CustomeritemExportReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemPageReqVO;
import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 客户物品 Mapper
*
@ -60,4 +60,5 @@ public interface CustomeritemMapper extends BaseMapperX<CustomeritemDO> {
.orderByDesc(CustomeritemDO::getId));
}
default CustomeritemDO selectByItemCode(String itemCode){return selectOne(CustomeritemDO::getItemCode, itemCode);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/dock/DockMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.dock;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.dock.vo.DockExportReqVO;
import com.win.module.wms.controller.dock.vo.DockPageReqVO;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 月台 Mapper
*
@ -60,4 +60,5 @@ public interface DockMapper extends BaseMapperX<DockDO> {
.orderByDesc(DockDO::getId));
}
default DockDO selectByItemCode(String code){return selectOne(DockDO ::getCode,code);};
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/documentsetting/DocumentsettingMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.documentsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingExportReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingPageReqVO;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 单据设置 Mapper
*
@ -61,5 +61,5 @@ public interface DocumentsettingMapper extends BaseMapperX<DocumentsettingDO> {
.eqIfPresent(DocumentsettingDO::getIsSoftDeleted, reqVO.getIsSoftDeleted())
.orderByDesc(DocumentsettingDO::getId));
}
default DocumentsettingDO selectByCode(String code){return selectOne(DocumentsettingDO ::getCode,code);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itempackaging/ItempackagingMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.itempackaging;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingExportReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingPageReqVO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 物品包装信息 Mapper
*
@ -64,4 +64,5 @@ public interface ItempackagingMapper extends BaseMapperX<ItempackagingDO> {
.orderByDesc(ItempackagingDO::getId));
}
default ItempackagingDO selectByItemCode(String itemCode){return selectOne(ItempackagingDO::getItemCode,itemCode);};
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/jobsetting/JobsettingMapper.java

@ -66,4 +66,5 @@ public interface JobsettingMapper extends BaseMapperX<JobsettingDO> {
.orderByDesc(JobsettingDO::getId));
}
default JobsettingDO selectByCode(String code){return selectOne(JobsettingDO :: getCode,code);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/location/LocationMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.location;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.location.vo.LocationExportReqVO;
import com.win.module.wms.controller.location.vo.LocationPageReqVO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 库位 Mapper
*
@ -74,4 +74,5 @@ public interface LocationMapper extends BaseMapperX<LocationDO> {
.orderByDesc(LocationDO::getId));
}
default LocationDO selectByCode(String code){return selectOne(LocationDO::getCode,code);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/locationgroup/LocationgroupMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.locationgroup;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupExportReqVO;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupPageReqVO;
import com.win.module.wms.dal.dataobject.locationgroup.LocationgroupDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 库位组 Mapper
*
@ -50,4 +50,5 @@ public interface LocationgroupMapper extends BaseMapperX<LocationgroupDO> {
.orderByDesc(LocationgroupDO::getId));
}
default LocationgroupDO selectByCode(String code){return selectOne(LocationgroupDO::getCode,code);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/owner/OwnerMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.owner;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.owner.vo.OwnerExportReqVO;
import com.win.module.wms.controller.owner.vo.OwnerPageReqVO;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 货主 Mapper
*
@ -68,4 +68,5 @@ public interface OwnerMapper extends BaseMapperX<OwnerDO> {
.orderByDesc(OwnerDO::getId));
}
default OwnerDO selectByCode(String code){return selectOne(OwnerDO::getCode,code);};
}

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

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.process;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.process.vo.ProcessExportReqVO;
import com.win.module.wms.controller.process.vo.ProcessPageReqVO;
import com.win.module.wms.dal.dataobject.process.ProcessDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 工序 Mapper
*
@ -52,4 +52,5 @@ public interface ProcessMapper extends BaseMapperX<ProcessDO> {
.orderByDesc(ProcessDO::getId));
}
default ProcessDO selectByCode(String code){return selectOne(ProcessDO::getCode,code);};
}

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

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.productionline;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.productionline.vo.ProductionlineExportReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlinePageReqVO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 生产线 Mapper
*
@ -54,4 +54,5 @@ public interface ProductionlineMapper extends BaseMapperX<ProductionlineDO> {
.orderByDesc(ProductionlineDO::getId));
}
default ProductionlineDO selectByCode(String code){return selectOne(ProductionlineDO::getCode,code);};
}

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

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.project;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.project.vo.ProjectExportReqVO;
import com.win.module.wms.controller.project.vo.ProjectPageReqVO;
import com.win.module.wms.dal.dataobject.project.ProjectDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 项目 Mapper
*
@ -48,4 +48,5 @@ public interface ProjectMapper extends BaseMapperX<ProjectDO> {
.orderByDesc(ProjectDO::getId));
}
default ProjectDO selectByCode(String code){return selectOne(ProjectDO::getCode,code);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseprice/PurchasepriceMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.purchaseprice;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.purchaseprice.vo.PurchasepriceExportReqVO;
import com.win.module.wms.controller.purchaseprice.vo.PurchasepricePageReqVO;
import com.win.module.wms.dal.dataobject.purchaseprice.PurchasepriceDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 采购价格单 Mapper
*
@ -48,4 +48,5 @@ public interface PurchasepriceMapper extends BaseMapperX<PurchasepriceDO> {
.orderByDesc(PurchasepriceDO::getId));
}
default PurchasepriceDO selectByItemCode(String itemCode){return selectOne(PurchasepriceDO::getItemCode,itemCode);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/recordsetting/RecordsettingMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.recordsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.recordsetting.vo.RecordsettingExportReqVO;
import com.win.module.wms.controller.recordsetting.vo.RecordsettingPageReqVO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 记录设置 Mapper
*
@ -46,4 +46,5 @@ public interface RecordsettingMapper extends BaseMapperX<RecordsettingDO> {
.orderByDesc(RecordsettingDO::getId));
}
default RecordsettingDO selectByCode(String code){return selectOne(RecordsettingDO::getCode,code);};
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/requestsetting/RequestsettingMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.requestsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.requestsetting.vo.RequestsettingExportReqVO;
import com.win.module.wms.controller.requestsetting.vo.RequestsettingPageReqVO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 申请设置 Mapper
*
@ -54,4 +54,5 @@ public interface RequestsettingMapper extends BaseMapperX<RequestsettingDO> {
.orderByDesc(RequestsettingDO::getId));
}
default RequestsettingDO selectByCode(String code){return selectOne(RequestsettingDO::getCode,code);}
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemService.java

@ -1,10 +1,7 @@
package com.win.module.wms.service.customeritem;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customeritem.vo.CustomeritemCreateReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemExportReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemPageReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemUpdateReqVO;
import com.win.module.wms.controller.customeritem.vo.*;
import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO;
import javax.validation.Valid;
@ -72,4 +69,5 @@ public interface CustomeritemService {
*/
List<CustomeritemDO> getCustomeritemList(CustomeritemExportReqVO exportReqVO);
List<CustomeritemImportExcelVO> CustomeritemimportCustomeritemList(List<CustomeritemImportExcelVO> customeritems, Integer mode, Boolean updatePart);
}

127
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemServiceImpl.java

@ -1,22 +1,28 @@
package com.win.module.wms.service.customeritem;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customeritem.vo.CustomeritemCreateReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemExportReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemPageReqVO;
import com.win.module.wms.controller.customeritem.vo.CustomeritemUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.customeritem.vo.*;
import com.win.module.wms.convert.customeritem.CustomeritemConvert;
import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO;
import com.win.module.wms.dal.mysql.customeritem.CustomeritemMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.customeritem.ErrorCodeConstants.CUSTOMERITEM_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.customeritem.ErrorCodeConstants.*;
/**
* 客户物品 Service 实现类
@ -32,6 +38,8 @@ public class CustomeritemServiceImpl implements CustomeritemService {
@Override
public Long createCustomeritem(CustomeritemCreateReqVO createReqVO) {
validateCustomeritemForCreateOrUpdate(createReqVO.getId(),createReqVO.getCustomerCode(),createReqVO.getItemCode(),createReqVO.getPackUnit(),
createReqVO.getPackQty(),createReqVO.getPackQtyOfContainer(),createReqVO.getAvailable());
// 插入
CustomeritemDO customeritem = CustomeritemConvert.INSTANCE.convert(createReqVO);
customeritemMapper.insert(customeritem);
@ -82,4 +90,113 @@ public class CustomeritemServiceImpl implements CustomeritemService {
return customeritemMapper.selectList(exportReqVO);
}
@Override
public List<CustomeritemImportExcelVO> CustomeritemimportCustomeritemList(List<CustomeritemImportExcelVO> customeritems, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(customeritems)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<CustomeritemImportExcelVO> errorList = new ArrayList<>();
customeritems.forEach(customeritem -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateCustomeritemForCreateOrUpdate(null,customeritem.getCustomerCode(),customeritem.getItemCode(),customeritem.getPackUnit(),
customeritem.getPackQty(),customeritem.getPackQtyOfContainer(),customeritem.getAvailable());}
} catch (ServiceException ex) {
errorList.add(customeritem);
return;
}
// 判断如果不存在,在进行插入
CustomeritemDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
customeritemMapper.insert(CustomeritemConvert.INSTANCE.convert(customeritem));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
CustomeritemDO customeritemDO = CustomeritemConvert.INSTANCE.convert(customeritem);
customeritemDO.setId(existConfigurationSetting.getId());
customeritemMapper.updateById(customeritemDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateCustomeritemForCreateOrUpdate(Long id, String customerCode,String itemCode, String packUnit,BigDecimal packQty,Integer packQtyOfContainer,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateCustomerExists(id);
validateItemCodeExists(id,itemCode);
// 校验code唯一
validateCustomerCodeExists(customerCode);
validatePackUnitExists(itemCode);
validatePackUnitExists(packUnit);
validatePackQtyExists(packQty);
validatePackQtyOfContainerExists(packQtyOfContainer);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateCustomerExists(Long id) {
if (id == null) {
return;
}
CustomeritemDO customeritem = customeritemMapper.selectById(id);
if (customeritem == null) {
throw exception(CUSTOMERITEM_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateItemCodeExists(Long id,String itemCode) {
if (itemCode.isEmpty()) {
throw exception(CUSTOMERITEM_ITEM_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(itemCode)) {
return;
}
CustomeritemDO customeritemDO = customeritemMapper.selectByItemCode(itemCode);
if (customeritemDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(CUSTOMERITEM_ITEM_CODE_EXISTS);
}
if (!customeritemDO.getId().equals(id)) {
throw exception(CUSTOMERITEM_ITEM_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateCustomerCodeExists(String customerCode) {
if (customerCode.isEmpty()) {
throw exception(CUSTOMERITEM_CUSTOMER_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePackUnitExists(String packUnit) {
if (packUnit.isEmpty()) {
throw exception(CUSTOMERITEM_PACKUNIT_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePackQtyExists(BigDecimal packQty) {
if (packQty == null) {
throw exception(CUSTOMERITEM_PACKQTY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePackQtyOfContainerExists(Integer packQtyOfContainer) {
if (packQtyOfContainer == null) {
throw exception(CUSTOMERITEM_PACKQTY_OF_CONTAINER_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(CUSTOMERITEM_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.dock;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.dock.vo.DockCreateReqVO;
import com.win.module.wms.controller.dock.vo.DockExportReqVO;
import com.win.module.wms.controller.dock.vo.DockPageReqVO;
import com.win.module.wms.controller.dock.vo.DockUpdateReqVO;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.dock.vo.*;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 月台 Service 接口
@ -71,4 +69,5 @@ public interface DockService {
*/
List<DockDO> getDockList(DockExportReqVO exportReqVO);
List<DockImportExcelVO> dockimportDockList(List<DockImportExcelVO> docks, Integer mode, Boolean updatePart);
}

130
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/dock/DockServiceImpl.java

@ -1,22 +1,28 @@
package com.win.module.wms.service.dock;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.dock.vo.DockCreateReqVO;
import com.win.module.wms.controller.dock.vo.DockExportReqVO;
import com.win.module.wms.controller.dock.vo.DockPageReqVO;
import com.win.module.wms.controller.dock.vo.DockUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.dock.vo.*;
import com.win.module.wms.convert.dock.DockConvert;
import com.win.module.wms.dal.dataobject.dock.DockDO;
import com.win.module.wms.dal.mysql.dock.DockMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.dock.ErrorCodeConstants.DOCK_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.customeritem.ErrorCodeConstants.*;
import static com.win.module.wms.enums.dock.ErrorCodeConstants.*;
/**
* 月台 Service 实现类
@ -32,7 +38,9 @@ public class DockServiceImpl implements DockService {
@Override
public Long createDock(DockCreateReqVO createReqVO) {
// 插入
validateDockForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getType(),createReqVO.getWarehouseCode(),createReqVO.getDefaultLocationCode(),createReqVO.getAvailable());
// 插入
DockDO dock = DockConvert.INSTANCE.convert(createReqVO);
dockMapper.insert(dock);
// 返回
@ -42,8 +50,8 @@ public class DockServiceImpl implements DockService {
@Override
public void updateDock(DockUpdateReqVO updateReqVO) {
// 校验存在
validateDockExists(updateReqVO.getId());
// 更新
validateDockForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getType(),updateReqVO.getWarehouseCode(),updateReqVO.getDefaultLocationCode(),updateReqVO.getAvailable());
// 更新
DockDO updateObj = DockConvert.INSTANCE.convert(updateReqVO);
dockMapper.updateById(updateObj);
}
@ -56,12 +64,6 @@ public class DockServiceImpl implements DockService {
dockMapper.deleteById(id);
}
private void validateDockExists(Long id) {
if (dockMapper.selectById(id) == null) {
throw exception(DOCK_NOT_EXISTS);
}
}
@Override
public DockDO getDock(Long id) {
return dockMapper.selectById(id);
@ -82,4 +84,104 @@ public class DockServiceImpl implements DockService {
return dockMapper.selectList(exportReqVO);
}
@Override
public List<DockImportExcelVO> dockimportDockList(List<DockImportExcelVO> docks, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(docks)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<DockImportExcelVO> errorList = new ArrayList<>();
docks.forEach(dock -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateDockForCreateOrUpdate(null,dock.getCode(),dock.getType(),dock.getWarehouseCode(),dock.getDefaultLocationCode(),dock.getAvailable());}
} catch (ServiceException ex) {
errorList.add(dock);
return;
}
// 判断如果不存在,在进行插入
DockDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
dockMapper.insert(DockConvert.INSTANCE.convert(dock));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
DockDO dockDO = DockConvert.INSTANCE.convert(dock);
dockDO.setId(existConfigurationSetting.getId());
dockMapper.updateById(dockDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateDockForCreateOrUpdate(Long id, String code,String type, String warehouseCode,
String defaultLocationCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateDockExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateTypeExists(type);
validateWareHouseCodeExists(warehouseCode);
validateDefaultLocationCodeExists(defaultLocationCode);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateDockExists(Long id) {
if (id == null) {
return;
}
DockDO dock = dockMapper.selectById(id);
if (dock == null) {
throw exception(CUSTOMERITEM_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(DOCK_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
DockDO dockDO = dockMapper.selectByItemCode(code);
if (dockDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(DOCK_CODE_EXISTS);
}
if (!dockDO.getId().equals(id)) {
throw exception(DOCK_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateTypeExists(String type) {
if (type.isEmpty()) {
throw exception(DOCK_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateWareHouseCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) {
throw exception(DOCK_WARE_HOUSE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateDefaultLocationCodeExists(String defaultLocationCode) {
if (defaultLocationCode.isEmpty()) {
throw exception(DOCK_DEFAULT_LOCATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(DOCK_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/documentsetting/DocumentsettingService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.documentsetting;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingCreateReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingExportReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingPageReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingUpdateReqVO;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.documentsetting.vo.*;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 单据设置 Service 接口
@ -71,4 +69,5 @@ public interface DocumentsettingService {
*/
List<DocumentsettingDO> getDocumentsettingList(DocumentsettingExportReqVO exportReqVO);
List<DocumentsettingImportExcelVO> documentSettingimportDocumentList(List<DocumentsettingImportExcelVO> documentsettings, Integer mode, Boolean updatePart);
}

178
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/documentsetting/DocumentsettingServiceImpl.java

@ -1,22 +1,26 @@
package com.win.module.wms.service.documentsetting;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingCreateReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingExportReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingPageReqVO;
import com.win.module.wms.controller.documentsetting.vo.DocumentsettingUpdateReqVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.documentsetting.vo.*;
import com.win.module.wms.convert.documentsetting.DocumentsettingConvert;
import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO;
import com.win.module.wms.dal.mysql.documentsetting.DocumentsettingMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -33,6 +37,9 @@ public class DocumentsettingServiceImpl implements DocumentsettingService {
@Override
public Long createDocumentsetting(DocumentsettingCreateReqVO createReqVO) {
validateDocumentsettingForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getName(),createReqVO.getDescription(),createReqVO.getType()
,createReqVO.getBusinessType(),createReqVO.getNumberPrefix(),createReqVO.getDateFormat(),createReqVO.getSerialLength(),createReqVO.getResetPeriod()
,createReqVO.getAvailable());
// 插入
DocumentsettingDO documentsetting = DocumentsettingConvert.INSTANCE.convert(createReqVO);
documentsettingMapper.insert(documentsetting);
@ -43,7 +50,9 @@ public class DocumentsettingServiceImpl implements DocumentsettingService {
@Override
public void updateDocumentsetting(DocumentsettingUpdateReqVO updateReqVO) {
// 校验存在
validateDocumentsettingExists(updateReqVO.getId());
validateDocumentsettingForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getName(),updateReqVO.getDescription(),updateReqVO.getType()
,updateReqVO.getBusinessType(),updateReqVO.getNumberPrefix(),updateReqVO.getDateFormat(),updateReqVO.getSerialLength(),updateReqVO.getResetPeriod()
,updateReqVO.getAvailable());
// 更新
DocumentsettingDO updateObj = DocumentsettingConvert.INSTANCE.convert(updateReqVO);
documentsettingMapper.updateById(updateObj);
@ -57,12 +66,6 @@ public class DocumentsettingServiceImpl implements DocumentsettingService {
documentsettingMapper.deleteById(id);
}
private void validateDocumentsettingExists(Long id) {
if (documentsettingMapper.selectById(id) == null) {
throw exception(DOCUMENTSETTING_NOT_EXISTS);
}
}
@Override
public DocumentsettingDO getDocumentsetting(Long id) {
return documentsettingMapper.selectById(id);
@ -83,4 +86,141 @@ public class DocumentsettingServiceImpl implements DocumentsettingService {
return documentsettingMapper.selectList(exportReqVO);
}
@Override
public List<DocumentsettingImportExcelVO> documentSettingimportDocumentList(List<DocumentsettingImportExcelVO> documentsettings, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(documentsettings)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<DocumentsettingImportExcelVO> errorList = new ArrayList<>();
documentsettings.forEach(documentsetting -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateDocumentsettingForCreateOrUpdate(null,documentsetting.getCode(),documentsetting.getName(),documentsetting.getDescription(),documentsetting.getType()
,documentsetting.getBusinessType(),documentsetting.getNumberPrefix(),documentsetting.getDateFormat(),documentsetting.getSerialLength(),documentsetting.getResetPeriod()
,documentsetting.getAvailable());}
} catch (ServiceException ex) {
errorList.add(documentsetting);
return;
}
// 判断如果不存在,在进行插入
DocumentsettingDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
documentsettingMapper.insert(DocumentsettingConvert.INSTANCE.convert(documentsetting));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
DocumentsettingDO documentsettingMapperDO = DocumentsettingConvert.INSTANCE.convert(documentsetting);
documentsettingMapperDO.setId(existConfigurationSetting.getId());
documentsettingMapper.updateById(documentsettingMapperDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateDocumentsettingForCreateOrUpdate(Long id, String code,String name, String description, String type,String businessType,
String numberPrefix,String dateFormat,Integer serialLength,String resetPeriod,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateDocumentsettingExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateNameExists(name);
validateDescriptionExists(description);
validateTypeExists(type);
validateBusinessTypeExists(businessType);
validateNumberPrefixExists(numberPrefix);
validateDateFormatExists(dateFormat);
validateSerialLengthExists(serialLength);
validateResetPeriodExists(resetPeriod);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateDocumentsettingExists(Long id) {
if (id == null) {
return;
}
DocumentsettingDO documentsetting = documentsettingMapper.selectById(id);
if (documentsetting == null) {
throw exception(DOCUMENTSETTING_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(DOCUMENTSETTING_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
DocumentsettingDO documentsetting = documentsettingMapper.selectByCode(code);
if (documentsetting == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(DOCUMENTSETTING_CODE_EXISTS);
}
if (!documentsetting.getId().equals(id)) {
throw exception(DOCUMENTSETTING_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateNameExists(String name) {
if (name.isEmpty()) {
throw exception(DOCUMENTSETTING_NAME_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateDescriptionExists(String description) {
if (description.isEmpty()) {
throw exception(DOCUMENTSETTING_DESCRIPTION_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateTypeExists(String type) {
if (type.isEmpty()) {
throw exception(DOCUMENTSETTING_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateBusinessTypeExists(String businessType) {
if (businessType.isEmpty()) {
throw exception(DOCUMENTSETTING_BUSINESS_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateNumberPrefixExists(String numberPrefix) {
if (numberPrefix.isEmpty()) {
throw exception(DOCUMENTSETTING_NUMBER_PREFIX_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateDateFormatExists(String dateFormat) {
if (dateFormat.isEmpty()) {
throw exception(DOCUMENTSETTING_DATE_FORMAT_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateSerialLengthExists(Integer serialLength) {
if (serialLength == null) {
throw exception(DOCUMENTSETTING_SERIAL_LENGTH_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateResetPeriodExists(String resetPeriod) {
if (resetPeriod.isEmpty()) {
throw exception(DOCUMENTSETTING_RESET_PERIOD_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(DOCUMENTSETTING_AVAILABLE_NOT_EXISTS);
}
}
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java

@ -1,10 +1,7 @@
package com.win.module.wms.service.itempackaging;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingCreateReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingExportReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingPageReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingUpdateReqVO;
import com.win.module.wms.controller.itempackaging.vo.*;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import javax.validation.Valid;
@ -72,4 +69,5 @@ public interface ItempackagingService {
*/
List<ItempackagingDO> getItempackagingList(ItempackagingExportReqVO exportReqVO);
List<ItempackagingImportExcelVO> itempackagingimportDocumentList(List<ItempackagingImportExcelVO> itempackagings, Integer mode, Boolean updatePart);
}

124
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java

@ -1,22 +1,28 @@
package com.win.module.wms.service.itempackaging;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingCreateReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingExportReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingPageReqVO;
import com.win.module.wms.controller.itempackaging.vo.ItempackagingUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.itempackaging.vo.*;
import com.win.module.wms.convert.itempackaging.ItempackagingConvert;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.mysql.itempackaging.ItempackagingMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.itempackaging.ErrorCodeConstants.ITEMPACKAGING_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.itempackaging.ErrorCodeConstants.*;
/**
* 物品包装信息 Service 实现类
@ -32,6 +38,7 @@ public class ItempackagingServiceImpl implements ItempackagingService {
@Override
public Long createItempackaging(ItempackagingCreateReqVO createReqVO) {
validateItempackagingForCreateOrUpdate(createReqVO.getId(),createReqVO.getItemCode(),createReqVO.getUom(),createReqVO.getStdPackUnit(),createReqVO.getStdPackQty(),createReqVO.getAvailable());
// 插入
ItempackagingDO itempackaging = ItempackagingConvert.INSTANCE.convert(createReqVO);
itempackagingMapper.insert(itempackaging);
@ -41,6 +48,7 @@ public class ItempackagingServiceImpl implements ItempackagingService {
@Override
public void updateItempackaging(ItempackagingUpdateReqVO updateReqVO) {
validateItempackagingForCreateOrUpdate(null,updateReqVO.getItemCode(),updateReqVO.getUom(),updateReqVO.getStdPackUnit(),updateReqVO.getStdPackQty(),updateReqVO.getAvailable());
// 校验存在
validateItempackagingExists(updateReqVO.getId());
// 更新
@ -56,12 +64,6 @@ public class ItempackagingServiceImpl implements ItempackagingService {
itempackagingMapper.deleteById(id);
}
private void validateItempackagingExists(Long id) {
if (itempackagingMapper.selectById(id) == null) {
throw exception(ITEMPACKAGING_NOT_EXISTS);
}
}
@Override
public ItempackagingDO getItempackaging(Long id) {
return itempackagingMapper.selectById(id);
@ -82,4 +84,104 @@ public class ItempackagingServiceImpl implements ItempackagingService {
return itempackagingMapper.selectList(exportReqVO);
}
@Override
public List<ItempackagingImportExcelVO> itempackagingimportDocumentList(List<ItempackagingImportExcelVO> itempackagings, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(itempackagings)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<ItempackagingImportExcelVO> errorList = new ArrayList<>();
itempackagings.forEach(itempackaging -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateItempackagingForCreateOrUpdate(null,itempackaging.getItemCode(),itempackaging.getUom(),itempackaging.getStdPackUnit(),itempackaging.getStdPackQty(),itempackaging.getAvailable());}
} catch (ServiceException ex) {
errorList.add(itempackaging);
return;
}
// 判断如果不存在,在进行插入
ItempackagingDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
itempackagingMapper.insert(ItempackagingConvert.INSTANCE.convert(itempackaging));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ItempackagingDO itempackagingMapperDO = ItempackagingConvert.INSTANCE.convert(itempackaging);
itempackagingMapperDO.setId(existConfigurationSetting.getId());
itempackagingMapper.updateById(itempackagingMapperDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateItempackagingForCreateOrUpdate(Long id, String itemCode, String uom, String stdPackUnit, BigDecimal stdPackQty, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateItempackagingExists(id);
validateItemCodeExists(id,itemCode);
// 校验code唯一
validateUomExists(uom);
validateStdPackUnitExists(stdPackUnit);
validateStdPackQtyExists(stdPackQty);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateItempackagingExists(Long id) {
if (id == null) {
return;
}
ItempackagingDO itempackaging = itempackagingMapper.selectById(id);
if (itempackaging == null) {
throw exception(ITEMPACKAGING_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateItemCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(ITEMPACKAGING_ITEM_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
ItempackagingDO itempackaging = itempackagingMapper.selectByItemCode(code);
if (itempackaging == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(ITEMPACKAGING_ITEM_CODE_EXISTS);
}
if (!itempackaging.getId().equals(id)) {
throw exception(ITEMPACKAGING_ITEM_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateUomExists(String uom) {
if (uom.isEmpty()) {
throw exception(ITEMPACKAGING_UOM_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateStdPackUnitExists(String stdPackUnit) {
if (stdPackUnit.isEmpty()) {
throw exception(ITEMPACKAGING_STD_PACK_UNIT_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateStdPackQtyExists(BigDecimal stdPackQty) {
if (stdPackQty == null) {
throw exception(ITEMPACKAGING_STD_PACK_QTY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(ITEMPACKAGING_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.jobsetting;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.jobsetting.vo.JobsettingCreateReqVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingExportReqVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingPageReqVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingUpdateReqVO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.jobsetting.vo.*;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 任务设置 Service 接口
@ -71,4 +69,5 @@ public interface JobsettingService {
*/
List<JobsettingDO> getJobsettingList(JobsettingExportReqVO exportReqVO);
List<JobsettingImportExcelVO> importJobsettingList(List<JobsettingImportExcelVO> jobsettings, Integer mode, Boolean updatePart);
}

200
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/jobsetting/JobsettingServiceImpl.java

@ -1,22 +1,26 @@
package com.win.module.wms.service.jobsetting;
import com.win.module.wms.controller.jobsetting.vo.JobsettingCreateReqVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingExportReqVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingPageReqVO;
import com.win.module.wms.controller.jobsetting.vo.JobsettingUpdateReqVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.jobsetting.vo.*;
import com.win.module.wms.convert.jobsetting.JobsettingConvert;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.mysql.jobsetting.JobsettingMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -33,6 +37,8 @@ public class JobsettingServiceImpl implements JobsettingService {
@Override
public Long createJobsetting(JobsettingCreateReqVO createReqVO) {
validateJobsettingForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getValidMinutes(),createReqVO.getAutoComplete(),createReqVO.getAllowModifyLocation(),createReqVO.getAllowModifyQty(),createReqVO.getAllowBiggerQty(),createReqVO.getAllowSmallerQty(),createReqVO.getAllowModifyInventoryStatus()
,createReqVO.getAllowContinuousScanning(),createReqVO.getAllowPartialComplete(),createReqVO.getAllowModifyBach(),createReqVO.getAllowModifyPackingNumber(),createReqVO.getAvailable());
// 插入
JobsettingDO jobsetting = JobsettingConvert.INSTANCE.convert(createReqVO);
jobsettingMapper.insert(jobsetting);
@ -43,7 +49,8 @@ public class JobsettingServiceImpl implements JobsettingService {
@Override
public void updateJobsetting(JobsettingUpdateReqVO updateReqVO) {
// 校验存在
validateJobsettingExists(updateReqVO.getId());
validateJobsettingForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getValidMinutes(),updateReqVO.getAutoComplete(),updateReqVO.getAllowModifyLocation(),updateReqVO.getAllowModifyQty(),updateReqVO.getAllowBiggerQty(),updateReqVO.getAllowSmallerQty(),updateReqVO.getAllowModifyInventoryStatus()
,updateReqVO.getAllowContinuousScanning(),updateReqVO.getAllowPartialComplete(),updateReqVO.getAllowModifyBach(),updateReqVO.getAllowModifyPackingNumber(),updateReqVO.getAvailable());
// 更新
JobsettingDO updateObj = JobsettingConvert.INSTANCE.convert(updateReqVO);
jobsettingMapper.updateById(updateObj);
@ -57,12 +64,6 @@ public class JobsettingServiceImpl implements JobsettingService {
jobsettingMapper.deleteById(id);
}
private void validateJobsettingExists(Long id) {
if (jobsettingMapper.selectById(id) == null) {
throw exception(JOBSETTING_NOT_EXISTS);
}
}
@Override
public JobsettingDO getJobsetting(Long id) {
return jobsettingMapper.selectById(id);
@ -83,4 +84,165 @@ public class JobsettingServiceImpl implements JobsettingService {
return jobsettingMapper.selectList(exportReqVO);
}
@Override
public List<JobsettingImportExcelVO> importJobsettingList(List<JobsettingImportExcelVO> jobsettings, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(jobsettings)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<JobsettingImportExcelVO> errorList = new ArrayList<>();
jobsettings.forEach(jobsetting -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateJobsettingForCreateOrUpdate(null,jobsetting.getCode(),jobsetting.getValidMinutes(),jobsetting.getAutoComplete(),jobsetting.getAllowModifyLocation(),jobsetting.getAllowModifyQty(),jobsetting.getAllowBiggerQty(),jobsetting.getAllowSmallerQty(),jobsetting.getAllowModifyInventoryStatus()
,jobsetting.getAllowContinuousScanning(),jobsetting.getAllowPartialComplete(),jobsetting.getAllowModifyBach(),jobsetting.getAllowModifyPackingNumber(),jobsetting.getAvailable());}
} catch (ServiceException ex) {
errorList.add(jobsetting);
return;
}
// 判断如果不存在,在进行插入
JobsettingDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
jobsettingMapper.insert(JobsettingConvert.INSTANCE.convert(jobsetting));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
JobsettingDO jobsettingDO = JobsettingConvert.INSTANCE.convert(jobsetting);
jobsettingDO.setId(existConfigurationSetting.getId());
jobsettingMapper.updateById(jobsettingDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateJobsettingForCreateOrUpdate(Long id, String code,Integer validMinutes, String autoComplete, String allowModifyLocation,String allowModifyQty,
String allowBiggerQty,String allowSmallerQty,String allowModifyInventoryStatus,String allowContinuousScanning,String allowPartialComplete,String allowModifyBach,
String allowModifyPackingNumber,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateJobsettingExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateAutoCompleteExists(autoComplete);
validateValidMinutesExists(validMinutes);
validateAllowModifyLocationExists(allowModifyLocation);
validateAllowModifyQtyExists(allowModifyQty);
validateAllowBiggerQtyExists(allowBiggerQty);
validateAllowSmallerQtyExists(allowSmallerQty);
validateAllowModifyInventoryStatusExists(allowModifyInventoryStatus);
validateAllowContinuousScanningExists(allowContinuousScanning);
validateAllowPartialCompleteExists(allowPartialComplete);
validateAllowModifyBachExists(allowModifyBach);
validateAllowModifyPackingNumberExists(allowModifyPackingNumber);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateJobsettingExists(Long id) {
if (id == null) {
return;
}
JobsettingDO jobsetting = jobsettingMapper.selectById(id);
if (jobsetting == null) {
throw exception(JOBSETTING_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(JOBSETTING_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
JobsettingDO jobsetting = jobsettingMapper.selectByCode(code);
if (jobsetting == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(JOBSETTING_CODE_EXISTS);
}
if (!jobsetting.getId().equals(id)) {
throw exception(JOBSETTING_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateAutoCompleteExists(String autoComplete) {
if (autoComplete.isEmpty()) {
throw exception(JOBSETTING_AUTOCOMPLETE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateValidMinutesExists(Integer validMinutes) {
if (validMinutes == null) {
throw exception(JOBSETTING_VALIDMINUTES_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowModifyLocationExists(String allowModifyLocation) {
if (allowModifyLocation.isEmpty()) {
throw exception(JOBSETTING_ALLOW_MODIFY_LACATION_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowModifyQtyExists(String allowModifyQty) {
if (allowModifyQty.isEmpty()) {
throw exception(JOBSETTING_ALLOW_MODIFY_QTY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowBiggerQtyExists(String allowBiggerQty) {
if (allowBiggerQty.isEmpty()) {
throw exception(JOBSETTING_ALLOW_BIGGER_QTY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowSmallerQtyExists(String allowSmallerQty) {
if (allowSmallerQty.isEmpty()) {
throw exception(JOBSETTING_ALLOW_SMALL_QTY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowModifyInventoryStatusExists(String allowModifyInventoryStatus) {
if (allowModifyInventoryStatus.isEmpty()) {
throw exception(JOBSETTING_ALLOW_MODIFY_INVENTORY_STATUS_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowContinuousScanningExists(String allowContinuousScanning) {
if (allowContinuousScanning.isEmpty()) {
throw exception(JOBSETTING_ALLOW_CONTINUOUS_SCANNING_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowPartialCompleteExists(String allowPartialComplete) {
if (allowPartialComplete.isEmpty()) {
throw exception(JOBSETTING_ALLOW_PARTIAL_COMPLETE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowModifyBachExists(String allowModifyBach) {
if (allowModifyBach.isEmpty()) {
throw exception(JOBSETTING_ALLOW_MODIFY_BACH_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAllowModifyPackingNumberExists(String allowModifyPackingNumber) {
if (allowModifyPackingNumber.isEmpty()) {
throw exception(JOBSETTING_ALLOW_MODIFY_PACKING_NUMBER_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(JOBSETTING_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.location;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.location.vo.LocationCreateReqVO;
import com.win.module.wms.controller.location.vo.LocationExportReqVO;
import com.win.module.wms.controller.location.vo.LocationPageReqVO;
import com.win.module.wms.controller.location.vo.LocationUpdateReqVO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.location.vo.*;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 库位 Service 接口
@ -71,4 +69,5 @@ public interface LocationService {
*/
List<LocationDO> getLocationList(LocationExportReqVO exportReqVO);
List<LocationImportExcelVO> importLocationList(List<LocationImportExcelVO> locations, Integer mode, Boolean updatePart);
}

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

@ -1,22 +1,27 @@
package com.win.module.wms.service.location;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.location.vo.LocationCreateReqVO;
import com.win.module.wms.controller.location.vo.LocationExportReqVO;
import com.win.module.wms.controller.location.vo.LocationPageReqVO;
import com.win.module.wms.controller.location.vo.LocationUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.location.vo.*;
import com.win.module.wms.convert.location.LocationConvert;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.mysql.location.LocationMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.location.ErrorCodeConstants.LOCATION_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 库位 Service 实现类
@ -32,6 +37,9 @@ public class LocationServiceImpl implements LocationService {
@Override
public Long createLocation(LocationCreateReqVO createReqVO) {
validateLocationForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getAreaCode(),createReqVO.getWarehouseCode()
,createReqVO.getLocationGroupCode(),createReqVO.getErpLocationCode(),createReqVO.getType(),createReqVO.getPickPriority()
,createReqVO.getUserGroupCode(),createReqVO.getAvailable());
// 插入
LocationDO location = LocationConvert.INSTANCE.convert(createReqVO);
locationMapper.insert(location);
@ -42,7 +50,9 @@ public class LocationServiceImpl implements LocationService {
@Override
public void updateLocation(LocationUpdateReqVO updateReqVO) {
// 校验存在
validateLocationExists(updateReqVO.getId());
validateLocationForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getAreaCode(),updateReqVO.getWarehouseCode()
,updateReqVO.getLocationGroupCode(),updateReqVO.getErpLocationCode(),updateReqVO.getType(),updateReqVO.getPickPriority()
,updateReqVO.getUserGroupCode(),updateReqVO.getAvailable());
// 更新
LocationDO updateObj = LocationConvert.INSTANCE.convert(updateReqVO);
locationMapper.updateById(updateObj);
@ -56,12 +66,6 @@ public class LocationServiceImpl implements LocationService {
locationMapper.deleteById(id);
}
private void validateLocationExists(Long id) {
if (locationMapper.selectById(id) == null) {
throw exception(LOCATION_NOT_EXISTS);
}
}
@Override
public LocationDO getLocation(Long id) {
return locationMapper.selectById(id);
@ -82,4 +86,130 @@ public class LocationServiceImpl implements LocationService {
return locationMapper.selectList(exportReqVO);
}
@Override
public List<LocationImportExcelVO> importLocationList(List<LocationImportExcelVO> locations, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(locations)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<LocationImportExcelVO> errorList = new ArrayList<>();
locations.forEach(location -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateLocationForCreateOrUpdate(null,location.getCode(),location.getAreaCode(),location.getWarehouseCode()
,location.getLocationGroupCode(),location.getErpLocationCode(),location.getType(),location.getPickPriority()
,location.getUserGroupCode(),location.getAvailable());}
} catch (ServiceException ex) {
errorList.add(location);
return;
}
// 判断如果不存在,在进行插入
LocationDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
locationMapper.insert(LocationConvert.INSTANCE.convert(location));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
LocationDO locationDO = LocationConvert.INSTANCE.convert(location);
locationDO.setId(existConfigurationSetting.getId());
locationMapper.updateById(locationDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateLocationForCreateOrUpdate(Long id, String code,String warehouseCode, String areaCode,String erpLocationCode, String locationGroupCode,
String type,Integer pickPriority,String userGroupCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateLocationExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateWarehouseCodeExists(warehouseCode);
validateAreaCodeExists(areaCode);
validateErpLocationCodeExists(erpLocationCode);
validateLocationGroupCodeExists(locationGroupCode);
validateTypeExists(type);
validatePickPriorityExists(pickPriority);
validateUserGroupCodeExists(userGroupCode);
validateAvailableExists(available);
});
}
private void validateLocationExists(Long id) {
if (locationMapper.selectById(id) == null) {
throw exception(LOCATIONGROUP_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(LOCATION_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
LocationDO locationDO = locationMapper.selectByCode(code);
if (locationDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(LOCATION_CODE_EXISTS);
}
if (!locationDO.getId().equals(id)) {
throw exception(LOCATION_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateWarehouseCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) {
throw exception(LOCATION_WARE_HOUSE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAreaCodeExists(String areaCode) {
if (areaCode.isEmpty()) {
throw exception(LOCATION_AREA_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateErpLocationCodeExists(String erpLocationCode) {
if (erpLocationCode.isEmpty()) {
throw exception(LOCATION_ERP_LOCATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateLocationGroupCodeExists(String locationGroupCode) {
if (locationGroupCode.isEmpty()) {
throw exception(LOCATION_LOCATION_GROUP_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateTypeExists(String type) {
if (type.isEmpty()) {
throw exception(LOCATION_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePickPriorityExists(Integer pickPriority) {
if (pickPriority == null) {
throw exception(LOCATION_PICK_PRIORITY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateUserGroupCodeExists(String userGroupCode) {
if (userGroupCode.isEmpty()) {
throw exception(LOCATION_USER_GROUP_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(LOCATION_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/locationgroup/LocationgroupService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.locationgroup;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupCreateReqVO;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupExportReqVO;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupPageReqVO;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupUpdateReqVO;
import com.win.module.wms.dal.dataobject.locationgroup.LocationgroupDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.locationgroup.vo.*;
import com.win.module.wms.dal.dataobject.locationgroup.LocationgroupDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 库位组 Service 接口
@ -71,4 +69,5 @@ public interface LocationgroupService {
*/
List<LocationgroupDO> getLocationgroupList(LocationgroupExportReqVO exportReqVO);
List<LocationGroupImportExcelVO> importLocationGroupList(List<LocationGroupImportExcelVO> locationGroups, Integer mode, Boolean updatePart);
}

108
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/locationgroup/LocationgroupServiceImpl.java

@ -1,22 +1,28 @@
package com.win.module.wms.service.locationgroup;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupCreateReqVO;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupExportReqVO;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupPageReqVO;
import com.win.module.wms.controller.locationgroup.vo.LocationgroupUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.locationgroup.vo.*;
import com.win.module.wms.convert.location.LocationConvert;
import com.win.module.wms.convert.locationgroup.LocationgroupConvert;
import com.win.module.wms.dal.dataobject.locationgroup.LocationgroupDO;
import com.win.module.wms.dal.mysql.locationgroup.LocationgroupMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.locationgroup.ErrorCodeConstants.LOCATIONGROUP_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 库位组 Service 实现类
@ -32,6 +38,8 @@ public class LocationgroupServiceImpl implements LocationgroupService {
@Override
public Long createLocationgroup(LocationgroupCreateReqVO createReqVO) {
validateLocationForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getAreaCode(),
createReqVO.getWarehouseCode(),createReqVO.getAvailable());
// 插入
LocationgroupDO locationgroup = LocationgroupConvert.INSTANCE.convert(createReqVO);
locationgroupMapper.insert(locationgroup);
@ -42,7 +50,8 @@ public class LocationgroupServiceImpl implements LocationgroupService {
@Override
public void updateLocationgroup(LocationgroupUpdateReqVO updateReqVO) {
// 校验存在
validateLocationgroupExists(updateReqVO.getId());
validateLocationForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getAreaCode(),
updateReqVO.getWarehouseCode(),updateReqVO.getAvailable());
// 更新
LocationgroupDO updateObj = LocationgroupConvert.INSTANCE.convert(updateReqVO);
locationgroupMapper.updateById(updateObj);
@ -82,4 +91,91 @@ public class LocationgroupServiceImpl implements LocationgroupService {
return locationgroupMapper.selectList(exportReqVO);
}
@Override
public List<LocationGroupImportExcelVO> importLocationGroupList(List<LocationGroupImportExcelVO> locationGroups, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(locationGroups)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<LocationGroupImportExcelVO> errorList = new ArrayList<>();
locationGroups.forEach(locationGroup -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateLocationForCreateOrUpdate(null,locationGroup.getCode(),locationGroup.getAreaCode(),
locationGroup.getWarehouseCode(),locationGroup.getAvailable());}
} catch (ServiceException ex) {
errorList.add(locationGroup);
return;
}
// 判断如果不存在,在进行插入
LocationgroupDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
locationgroupMapper.insert(LocationConvert.INSTANCE.convert(locationGroup));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
LocationgroupDO locationgroupDO = LocationConvert.INSTANCE.convert(locationGroup);
locationgroupDO.setId(existConfigurationSetting.getId());
locationgroupMapper.updateById(locationgroupDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateLocationForCreateOrUpdate(Long id, String code,String warehouseCode, String areaCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateLocationExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateWarehouseCodeExists(warehouseCode);
validateAreaCodeExists(areaCode);
validateAvailableExists(available);
});
}
private void validateLocationExists(Long id) {
if (locationgroupMapper.selectById(id) == null) {
throw exception(LOCATIONGROUP_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(LOCATIONGROUP_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
LocationgroupDO locationgroupDO = locationgroupMapper.selectByCode(code);
if (locationgroupDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(LOCATIONGROUP_CODE_EXISTS);
}
if (!locationgroupDO.getId().equals(id)) {
throw exception(LOCATIONGROUP_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateWarehouseCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) {
throw exception(LOCATIONGROUP_WARE_HOUSE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAreaCodeExists(String areaCode) {
if (areaCode.isEmpty()) {
throw exception(LOCATIONGROUP_AREA_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(LOCATIONGROUP_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/owner/OwnerService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.owner;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.owner.vo.OwnerCreateReqVO;
import com.win.module.wms.controller.owner.vo.OwnerExportReqVO;
import com.win.module.wms.controller.owner.vo.OwnerPageReqVO;
import com.win.module.wms.controller.owner.vo.OwnerUpdateReqVO;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.owner.vo.*;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 货主 Service 接口
@ -71,4 +69,5 @@ public interface OwnerService {
*/
List<OwnerDO> getOwnerList(OwnerExportReqVO exportReqVO);
List<OwnerImportExcelVO> importOwnerList(List<OwnerImportExcelVO> owners, Integer mode, Boolean updatePart);
}

116
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/owner/OwnerServiceImpl.java

@ -1,22 +1,26 @@
package com.win.module.wms.service.owner;
import com.win.module.wms.controller.owner.vo.OwnerCreateReqVO;
import com.win.module.wms.controller.owner.vo.OwnerExportReqVO;
import com.win.module.wms.controller.owner.vo.OwnerPageReqVO;
import com.win.module.wms.controller.owner.vo.OwnerUpdateReqVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.owner.vo.*;
import com.win.module.wms.convert.owner.OwnerConvert;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.dal.mysql.owner.OwnerMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -33,6 +37,7 @@ public class OwnerServiceImpl implements OwnerService {
@Override
public Long createOwner(OwnerCreateReqVO createReqVO) {
validateLocationForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getShortName(),createReqVO.getAvailable());
// 插入
OwnerDO owner = OwnerConvert.INSTANCE.convert(createReqVO);
ownerMapper.insert(owner);
@ -43,7 +48,7 @@ public class OwnerServiceImpl implements OwnerService {
@Override
public void updateOwner(OwnerUpdateReqVO updateReqVO) {
// 校验存在
validateOwnerExists(updateReqVO.getId());
validateLocationForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getShortName(),updateReqVO.getAvailable());
// 更新
OwnerDO updateObj = OwnerConvert.INSTANCE.convert(updateReqVO);
ownerMapper.updateById(updateObj);
@ -57,12 +62,6 @@ public class OwnerServiceImpl implements OwnerService {
ownerMapper.deleteById(id);
}
private void validateOwnerExists(Long id) {
if (ownerMapper.selectById(id) == null) {
throw exception(OWNER_NOT_EXISTS);
}
}
@Override
public OwnerDO getOwner(Long id) {
return ownerMapper.selectById(id);
@ -83,4 +82,83 @@ public class OwnerServiceImpl implements OwnerService {
return ownerMapper.selectList(exportReqVO);
}
@Override
public List<OwnerImportExcelVO> importOwnerList(List<OwnerImportExcelVO> owners, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(owners)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<OwnerImportExcelVO> errorList = new ArrayList<>();
owners.forEach(owner -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateLocationForCreateOrUpdate(null,owner.getCode(),owner.getShortName(),owner.getAvailable());}
} catch (ServiceException ex) {
errorList.add(owner);
return;
}
// 判断如果不存在,在进行插入
OwnerDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
ownerMapper.insert(OwnerConvert.INSTANCE.convert(owner));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
OwnerDO ownerDO = OwnerConvert.INSTANCE.convert(owner);
ownerDO.setId(existConfigurationSetting.getId());
ownerMapper.updateById(ownerDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateLocationForCreateOrUpdate(Long id, String code,String shortName,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateOwnerExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateShortNameExists(shortName);
validateAvailableExists(available);
});
}
private void validateOwnerExists(Long id) {
if (ownerMapper.selectById(id) == null) {
throw exception(OWNER_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(OWNER_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
OwnerDO ownerDO = ownerMapper.selectByCode(code);
if (ownerDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(OWNER_CODE_EXISTS);
}
if (!ownerDO.getId().equals(id)) {
throw exception(OWNER_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateShortNameExists(String shortName) {
if (shortName.isEmpty()) {
throw exception(OWNER_SHORTNAME_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(OWNER_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/paramsetting/ParamsettingService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.paramsetting;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingCreateReqVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingExportReqVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingPageReqVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingUpdateReqVO;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.paramsetting.vo.*;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 参数设置 Service 接口
@ -71,4 +69,5 @@ public interface ParamsettingService {
*/
List<ParamsettingDO> getParamsettingList(ParamsettingExportReqVO exportReqVO);
List<ParamsettingImportExcelVO> importParamsettingList(List<ParamsettingImportExcelVO> paramsettings, Integer mode, Boolean updatePart);
}

124
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/paramsetting/ParamsettingServiceImpl.java

@ -1,20 +1,23 @@
package com.win.module.wms.service.paramsetting;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingCreateReqVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingExportReqVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingPageReqVO;
import com.win.module.wms.controller.paramsetting.vo.ParamsettingUpdateReqVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import cn.hutool.core.collection.CollUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.paramsetting.vo.*;
import com.win.module.wms.convert.paramsetting.ParamsettingConvert;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.dal.dataobject.paramsetting.ParamsettingDO;
import com.win.module.wms.dal.mysql.paramsetting.ParamsettingMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
@ -33,6 +36,8 @@ public class ParamsettingServiceImpl implements ParamsettingService {
@Override
public Long createParamsetting(ParamsettingCreateReqVO createReqVO) {
validateParamsettingForCreateOrUpdate(createReqVO.getId(),createReqVO.getStrategyType(),createReqVO.getParamCode(),
createReqVO.getUsableOpeartors(),createReqVO.getIsRequired(),createReqVO.getDataType(),createReqVO.getValueScope());
// 插入
ParamsettingDO paramsetting = ParamsettingConvert.INSTANCE.convert(createReqVO);
paramsettingMapper.insert(paramsetting);
@ -43,7 +48,8 @@ public class ParamsettingServiceImpl implements ParamsettingService {
@Override
public void updateParamsetting(ParamsettingUpdateReqVO updateReqVO) {
// 校验存在
validateParamsettingExists(updateReqVO.getId());
validateParamsettingForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getStrategyType(),updateReqVO.getParamCode(),
updateReqVO.getUsableOpeartors(),updateReqVO.getIsRequired(),updateReqVO.getDataType(),updateReqVO.getValueScope());
// 更新
ParamsettingDO updateObj = ParamsettingConvert.INSTANCE.convert(updateReqVO);
paramsettingMapper.updateById(updateObj);
@ -57,12 +63,6 @@ public class ParamsettingServiceImpl implements ParamsettingService {
paramsettingMapper.deleteById(id);
}
private void validateParamsettingExists(Long id) {
if (paramsettingMapper.selectById(id) == null) {
throw exception(PARAMSETTING_NOT_EXISTS);
}
}
@Override
public ParamsettingDO getParamsetting(Long id) {
return paramsettingMapper.selectById(id);
@ -83,4 +83,90 @@ public class ParamsettingServiceImpl implements ParamsettingService {
return paramsettingMapper.selectList(exportReqVO);
}
@Override
public List<ParamsettingImportExcelVO> importParamsettingList(List<ParamsettingImportExcelVO> paramsettings, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(paramsettings)) {
throw exception(PARAMSETTING_IMPORT_LIST_IS_EMPTY);
}
List<ParamsettingImportExcelVO> errorList = new ArrayList<>();
paramsettings.forEach(paramsetting -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateParamsettingForCreateOrUpdate(null,paramsetting.getStrategyType(),paramsetting.getParamCode(),
paramsetting.getUsableOpeartors(),paramsetting.getIsRequired(),paramsetting.getDataType(),paramsetting.getValueScope());}
} catch (ServiceException ex) {
errorList.add(paramsetting);
return;
}
// 判断如果不存在,在进行插入
OwnerDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
paramsettingMapper.insert(ParamsettingConvert.INSTANCE.convert(paramsetting));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ParamsettingDO paramsettingDO = ParamsettingConvert.INSTANCE.convert(paramsetting);
paramsettingDO.setId(existConfigurationSetting.getId());
paramsettingMapper.updateById(paramsettingDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateParamsettingForCreateOrUpdate(Long id, String strategyType,String paramCode,String isRequired,String usableOpeartors,String dataType,String valueScope) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateParamsettingExists(id);
validateStrategyTypeExists(strategyType);
validateParamCodeExists(paramCode);
validateIsRequiredExists(isRequired);
validateUsableOpeartorsExists(dataType);
validateDataTypeExists(isRequired);
validateCalueScopeExists(valueScope);
});
}
private void validateParamsettingExists(Long id) {
if (paramsettingMapper.selectById(id) == null) {
throw exception(PARAMSETTING_NOT_EXISTS);
}
}@VisibleForTesting
private void validateStrategyTypeExists(String strategyType) {
if (strategyType.isEmpty()) {
throw exception(PARAMSETTING_STRATEGY_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateParamCodeExists(String paramCode) {
if (paramCode.isEmpty()) {
throw exception(PARAMSETTING_PARAM_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateIsRequiredExists(String isRequired) {
if (isRequired.isEmpty()) {
throw exception(PARAMSETTING_USABLE_OPEARTORS_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateUsableOpeartorsExists(String dataType) {
if (dataType.isEmpty()) {
throw exception(PARAMSETTING_IS_REQUIRED_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateDataTypeExists(String isRequired) {
if (isRequired.isEmpty()) {
throw exception(PARAMSETTING_DATA_TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCalueScopeExists(String valueScope) {
if (valueScope.isEmpty()) {
throw exception(PARAMSETTING_VALUE_SCOPE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/process/ProcessService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.process;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.process.vo.ProcessCreateReqVO;
import com.win.module.wms.controller.process.vo.ProcessExportReqVO;
import com.win.module.wms.controller.process.vo.ProcessPageReqVO;
import com.win.module.wms.controller.process.vo.ProcessUpdateReqVO;
import com.win.module.wms.dal.dataobject.process.ProcessDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.process.vo.*;
import com.win.module.wms.dal.dataobject.process.ProcessDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 工序 Service 接口
@ -71,4 +69,5 @@ public interface ProcessService {
*/
List<ProcessDO> getProcessList(ProcessExportReqVO exportReqVO);
List<ProcessImportExcelVO> importProcessList(List<ProcessImportExcelVO> processes, Integer mode, Boolean updatePart);
}

110
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/process/ProcessServiceImpl.java

@ -1,22 +1,27 @@
package com.win.module.wms.service.process;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.process.vo.ProcessCreateReqVO;
import com.win.module.wms.controller.process.vo.ProcessExportReqVO;
import com.win.module.wms.controller.process.vo.ProcessPageReqVO;
import com.win.module.wms.controller.process.vo.ProcessUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.process.vo.*;
import com.win.module.wms.convert.process.ProcessConvert;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.dal.dataobject.process.ProcessDO;
import com.win.module.wms.dal.mysql.process.ProcessMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.process.ErrorCodeConstants.PROCESS_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 工序 Service 实现类
@ -32,6 +37,7 @@ public class ProcessServiceImpl implements ProcessService {
@Override
public Long createProcess(ProcessCreateReqVO createReqVO) {
validateProcessForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getWorkshopCode(), createReqVO.getProductionLineCode(),createReqVO.getAvailable());
// 插入
ProcessDO process = ProcessConvert.INSTANCE.convert(createReqVO);
processMapper.insert(process);
@ -42,7 +48,7 @@ public class ProcessServiceImpl implements ProcessService {
@Override
public void updateProcess(ProcessUpdateReqVO updateReqVO) {
// 校验存在
validateProcessExists(updateReqVO.getId());
validateProcessForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getWorkshopCode(), updateReqVO.getProductionLineCode(),updateReqVO.getAvailable());
// 更新
ProcessDO updateObj = ProcessConvert.INSTANCE.convert(updateReqVO);
processMapper.updateById(updateObj);
@ -56,12 +62,6 @@ public class ProcessServiceImpl implements ProcessService {
processMapper.deleteById(id);
}
private void validateProcessExists(Long id) {
if (processMapper.selectById(id) == null) {
throw exception(PROCESS_NOT_EXISTS);
}
}
@Override
public ProcessDO getProcess(Long id) {
return processMapper.selectById(id);
@ -82,4 +82,90 @@ public class ProcessServiceImpl implements ProcessService {
return processMapper.selectList(exportReqVO);
}
@Override
public List<ProcessImportExcelVO> importProcessList(List<ProcessImportExcelVO> processes, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(processes)) {
throw exception(PROCESS_IMPORT_LIST_IS_EMPTY);
}
List<ProcessImportExcelVO> errorList = new ArrayList<>();
processes.forEach(process -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateProcessForCreateOrUpdate(null,process.getCode(),process.getWorkshopCode(), process.getProductionLineCode(),process.getAvailable());}
} catch (ServiceException ex) {
errorList.add(process);
return;
}
// 判断如果不存在,在进行插入
OwnerDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
processMapper.insert(ProcessConvert.INSTANCE.convert(process));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ProcessDO processDo = ProcessConvert.INSTANCE.convert(process);
processDo.setId(existConfigurationSetting.getId());
processMapper.updateById(processDo);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateProcessForCreateOrUpdate(Long id, String code,String workshopCode,String productionLineCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateProcessExists(id);
validateCodeExists(id,code);
validateWorkShopeCodeExists(workshopCode);
validateProductionLineCodeExists(productionLineCode);
validateAvailableExists(available);
});
}
private void validateProcessExists(Long id) {
if (processMapper.selectById(id) == null) {
throw exception(PROCESS_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(PROCESS_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
ProcessDO processDO = processMapper.selectByCode(code);
if (processDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(PROCESS_CODE_EXISTS);
}
if (!processDO.getId().equals(id)) {
throw exception(PROCESS_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateWorkShopeCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) {
throw exception(PROCESS_WORKSHOP_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateProductionLineCodeExists(String productionLineCode) {
if (productionLineCode.isEmpty()) {
throw exception(PROCESS_PRODUCTION_LINE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(PROCESS_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.productionline;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.productionline.vo.ProductionlineCreateReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlineExportReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlinePageReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlineUpdateReqVO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionline.vo.*;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 生产线 Service 接口
@ -71,4 +69,5 @@ public interface ProductionlineService {
*/
List<ProductionlineDO> getProductionlineList(ProductionlineExportReqVO exportReqVO);
List<ProductionlineImportExcelVO> importProductionlineList(List<ProductionlineImportExcelVO> productionlines, Integer mode, Boolean updatePart);
}

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

@ -1,22 +1,27 @@
package com.win.module.wms.service.productionline;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionline.vo.ProductionlineCreateReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlineExportReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlinePageReqVO;
import com.win.module.wms.controller.productionline.vo.ProductionlineUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.productionline.vo.*;
import com.win.module.wms.convert.productionline.ProductionlineConvert;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.mysql.productionline.ProductionlineMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.productionline.ErrorCodeConstants.PRODUCTIONLINE_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 生产线 Service 实现类
@ -32,7 +37,9 @@ public class ProductionlineServiceImpl implements ProductionlineService {
@Override
public Long createProductionline(ProductionlineCreateReqVO createReqVO) {
// 插入
validateProcessForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getWorkshopCode(),createReqVO.getAvailable());
// 插入
ProductionlineDO productionline = ProductionlineConvert.INSTANCE.convert(createReqVO);
productionlineMapper.insert(productionline);
// 返回
@ -42,8 +49,8 @@ public class ProductionlineServiceImpl implements ProductionlineService {
@Override
public void updateProductionline(ProductionlineUpdateReqVO updateReqVO) {
// 校验存在
validateProductionlineExists(updateReqVO.getId());
// 更新
validateProcessForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getWorkshopCode(),updateReqVO.getAvailable());
// 更新
ProductionlineDO updateObj = ProductionlineConvert.INSTANCE.convert(updateReqVO);
productionlineMapper.updateById(updateObj);
}
@ -56,12 +63,6 @@ public class ProductionlineServiceImpl implements ProductionlineService {
productionlineMapper.deleteById(id);
}
private void validateProductionlineExists(Long id) {
if (productionlineMapper.selectById(id) == null) {
throw exception(PRODUCTIONLINE_NOT_EXISTS);
}
}
@Override
public ProductionlineDO getProductionline(Long id) {
return productionlineMapper.selectById(id);
@ -82,4 +83,83 @@ public class ProductionlineServiceImpl implements ProductionlineService {
return productionlineMapper.selectList(exportReqVO);
}
@Override
public List<ProductionlineImportExcelVO> importProductionlineList(List<ProductionlineImportExcelVO> productionlines, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(productionlines)) {
throw exception(PRODUCTIONLINE_IMPORT_LIST_IS_EMPTY);
}
List<ProductionlineImportExcelVO> errorList = new ArrayList<>();
productionlines.forEach(productionline -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateProcessForCreateOrUpdate(null,productionline.getCode(),productionline.getWorkshopCode(),productionline.getAvailable());}
} catch (ServiceException ex) {
errorList.add(productionline);
return;
}
// 判断如果不存在,在进行插入
OwnerDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
productionlineMapper.insert(ProductionlineConvert.INSTANCE.convert(productionline));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ProductionlineDO productionlineDo = ProductionlineConvert.INSTANCE.convert(productionline);
productionlineDo.setId(existConfigurationSetting.getId());
productionlineMapper.updateById(productionlineDo);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateProcessForCreateOrUpdate(Long id, String code,String workshopCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateProductionlineExists(id);
validateCodeExists(id,code);
validateWorkShopeCodeExists(workshopCode);
validateAvailableExists(available);
});
}
private void validateProductionlineExists(Long id) {
if (productionlineMapper.selectById(id) == null) {
throw exception(PRODUCTIONLINE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(PRODUCTIONLINE_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
ProductionlineDO productionlineDO = productionlineMapper.selectByCode(code);
if (productionlineDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(PRODUCTIONLINE_CODE_EXISTS);
}
if (!productionlineDO.getId().equals(id)) {
throw exception(PRODUCTIONLINE_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateWorkShopeCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) {
throw exception(PRODUCTIONLINE_WORKSHOP_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(PRODUCTIONLINE_AVAILABLE_NOT_EXISTS);
}
}
}

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

@ -1,10 +1,7 @@
package com.win.module.wms.service.productionlineitem;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemCreateReqVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemExportReqVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemPageReqVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemUpdateReqVO;
import com.win.module.wms.controller.productionlineitem.vo.*;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import javax.validation.Valid;
@ -72,4 +69,5 @@ public interface ProductionlineitemService {
*/
List<ProductionlineitemDO> getProductionlineitemList(ProductionlineitemExportReqVO exportReqVO);
List<ProductionlineItemImportExcelVO> importProductionlineItemList(List<ProductionlineItemImportExcelVO> productionlineItems, Integer mode, Boolean updatePart);
}

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

@ -1,22 +1,26 @@
package com.win.module.wms.service.productionlineitem;
import cn.hutool.core.collection.CollUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemCreateReqVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemExportReqVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemPageReqVO;
import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.productionlineitem.vo.*;
import com.win.module.wms.convert.productionlineitem.ProductionlineitemConvert;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO;
import com.win.module.wms.dal.mysql.productionlineitem.ProductionlineitemMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.productionlineitem.ErrorCodeConstants.PRODUCTIONLINEITEM_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 生产线物料关系 Service 实现类
@ -32,6 +36,8 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService
@Override
public Long createProductionlineitem(ProductionlineitemCreateReqVO createReqVO) {
validateProcessForCreateOrUpdate(createReqVO.getId(),createReqVO.getFgLocationCode(),createReqVO.getProductionLineCode()
,createReqVO.getItemCode(),createReqVO.getAvailable());
// 插入
ProductionlineitemDO productionlineitem = ProductionlineitemConvert.INSTANCE.convert(createReqVO);
productionlineitemMapper.insert(productionlineitem);
@ -42,7 +48,8 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService
@Override
public void updateProductionlineitem(ProductionlineitemUpdateReqVO updateReqVO) {
// 校验存在
validateProductionlineitemExists(updateReqVO.getId());
validateProcessForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getFgLocationCode(),updateReqVO.getProductionLineCode()
,updateReqVO.getItemCode(),updateReqVO.getAvailable());
// 更新
ProductionlineitemDO updateObj = ProductionlineitemConvert.INSTANCE.convert(updateReqVO);
productionlineitemMapper.updateById(updateObj);
@ -56,12 +63,6 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService
productionlineitemMapper.deleteById(id);
}
private void validateProductionlineitemExists(Long id) {
if (productionlineitemMapper.selectById(id) == null) {
throw exception(PRODUCTIONLINEITEM_NOT_EXISTS);
}
}
@Override
public ProductionlineitemDO getProductionlineitem(Long id) {
return productionlineitemMapper.selectById(id);
@ -82,4 +83,78 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService
return productionlineitemMapper.selectList(exportReqVO);
}
@Override
public List<ProductionlineItemImportExcelVO> importProductionlineItemList(List<ProductionlineItemImportExcelVO> productionlineItems, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(productionlineItems)) {
throw exception(PRODUCTIONLINEITEM_IMPORT_LIST_IS_EMPTY);
}
List<ProductionlineItemImportExcelVO> errorList = new ArrayList<>();
productionlineItems.forEach(productionlineItem -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateProcessForCreateOrUpdate(null,productionlineItem.getFgLocationCode(),productionlineItem.getProductionLineCode()
,productionlineItem.getItemCode(),productionlineItem.getAvailable());}
} catch (ServiceException ex) {
errorList.add(productionlineItem);
return;
}
// 判断如果不存在,在进行插入
OwnerDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
productionlineitemMapper.insert(ProductionlineitemConvert.INSTANCE.convert(productionlineItem));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ProductionlineitemDO productionlineItemDo = ProductionlineitemConvert.INSTANCE.convert(productionlineItem);
productionlineItemDo.setId(existConfigurationSetting.getId());
productionlineitemMapper.updateById(productionlineItemDo);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateProcessForCreateOrUpdate(Long id, String fgLocationCode,String productionLineCode,String itemCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateProductionlineitemExists(id);
validateFgLocationCodeExists(fgLocationCode);
validateProductionLineCodeExists(productionLineCode);
validateItemCodeExists(itemCode);
validateAvailableExists(available);
});
}
private void validateProductionlineitemExists(Long id) {
if (productionlineitemMapper.selectById(id) == null) {
throw exception(PRODUCTIONLINEITEM_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateFgLocationCodeExists(String fgLocationCode) {
if (fgLocationCode.isEmpty()) {
throw exception(PRODUCTIONLINEITEM_FGLOCATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateProductionLineCodeExists(String productionLineCode) {
if (productionLineCode.isEmpty()) {
throw exception(PRODUCTIONLINEITEM_PRODUCT_LINE_COED_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateItemCodeExists(String itemCode) {
if (itemCode.isEmpty()) {
throw exception(PRODUCTIONLINEITEM_ITEM_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(PRODUCTIONLINEITEM_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/project/ProjectService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.project;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.project.vo.ProjectCreateReqVO;
import com.win.module.wms.controller.project.vo.ProjectExportReqVO;
import com.win.module.wms.controller.project.vo.ProjectPageReqVO;
import com.win.module.wms.controller.project.vo.ProjectUpdateReqVO;
import com.win.module.wms.dal.dataobject.project.ProjectDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.project.vo.*;
import com.win.module.wms.dal.dataobject.project.ProjectDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 项目 Service 接口
@ -71,4 +69,5 @@ public interface ProjectService {
*/
List<ProjectDO> getProjectList(ProjectExportReqVO exportReqVO);
List<ProjectImportExcelVO> importProjectList(List<ProjectImportExcelVO> projects, Integer mode, Boolean updatePart);
}

98
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/project/ProjectServiceImpl.java

@ -1,22 +1,27 @@
package com.win.module.wms.service.project;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.project.vo.ProjectCreateReqVO;
import com.win.module.wms.controller.project.vo.ProjectExportReqVO;
import com.win.module.wms.controller.project.vo.ProjectPageReqVO;
import com.win.module.wms.controller.project.vo.ProjectUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.project.vo.*;
import com.win.module.wms.convert.project.ProjectConvert;
import com.win.module.wms.dal.dataobject.owner.OwnerDO;
import com.win.module.wms.dal.dataobject.project.ProjectDO;
import com.win.module.wms.dal.mysql.project.ProjectMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.project.ErrorCodeConstants.PROJECT_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 项目 Service 实现类
@ -32,6 +37,7 @@ public class ProjectServiceImpl implements ProjectService {
@Override
public Long createProject(ProjectCreateReqVO createReqVO) {
validateProjectForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getAvailable());
// 插入
ProjectDO project = ProjectConvert.INSTANCE.convert(createReqVO);
projectMapper.insert(project);
@ -42,7 +48,7 @@ public class ProjectServiceImpl implements ProjectService {
@Override
public void updateProject(ProjectUpdateReqVO updateReqVO) {
// 校验存在
validateProjectExists(updateReqVO.getId());
validateProjectForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getAvailable());
// 更新
ProjectDO updateObj = ProjectConvert.INSTANCE.convert(updateReqVO);
projectMapper.updateById(updateObj);
@ -56,12 +62,6 @@ public class ProjectServiceImpl implements ProjectService {
projectMapper.deleteById(id);
}
private void validateProjectExists(Long id) {
if (projectMapper.selectById(id) == null) {
throw exception(PROJECT_NOT_EXISTS);
}
}
@Override
public ProjectDO getProject(Long id) {
return projectMapper.selectById(id);
@ -82,4 +82,78 @@ public class ProjectServiceImpl implements ProjectService {
return projectMapper.selectList(exportReqVO);
}
@Override
public List<ProjectImportExcelVO> importProjectList(List<ProjectImportExcelVO> projects, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(projects)) {
throw exception(PROJECT_IMPORT_LIST_IS_EMPTY);
}
List<ProjectImportExcelVO> errorList = new ArrayList<>();
projects.forEach(project -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateProjectForCreateOrUpdate(null,project.getCode(),project.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(project);
return;
}
// 判断如果不存在,在进行插入
OwnerDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
projectMapper.insert(ProjectConvert.INSTANCE.convert(project));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ProjectDO projectDo = ProjectConvert.INSTANCE.convert(project);
projectDo.setId(existConfigurationSetting.getId());
projectMapper.updateById(projectDo);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateProjectForCreateOrUpdate(Long id, String code,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateProjectExists(id);
validateCodeExists(id,code);
validateAvailableExists(available);
});
}
private void validateProjectExists(Long id) {
if (projectMapper.selectById(id) == null) {
throw exception(PROJECT_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(PROJECT_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
ProjectDO projectDO = projectMapper.selectByCode(code);
if (projectDO == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(PROJECT_CODE_EXISTS);
}
if (!projectDO.getId().equals(id)) {
throw exception(PROJECT_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(PROJECT_AVAILABLE_NOT_EXISTS);
}
}
}

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

Loading…
Cancel
Save