Browse Source

Merge remote-tracking branch 'origin/master'

master
songguoqiang 2 years ago
parent
commit
75c888cc8c
  1. 2
      win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/util/ExcelUtils.java
  2. 2
      win-module-system/win-module-system-api/src/main/java/com/win/module/system/api/dict/DictDataApi.java
  3. 6
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/api/dict/DictDataApiImpl.java
  4. 2
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataService.java
  5. 11
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataServiceImpl.java
  6. 10
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java
  8. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java
  10. 76
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java
  11. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestDetailBaseVO.java
  12. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportErrorVO.java
  13. 73
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java
  14. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java
  15. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainCreateReqVO.java
  16. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/CustomersettleRequestMainController.java
  17. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestImportErrorVO.java
  18. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainBaseVO.java
  19. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainCreateReqVO.java
  20. 39
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainImportVO.java
  21. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportVO.java
  22. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/DeliverRequestMainController.java
  23. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportErrorVO.java
  24. 55
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportVO.java
  25. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainBaseVO.java
  26. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainCreateReqVO.java
  27. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java
  28. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java
  29. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExportReqVO.java
  30. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java
  31. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainPageReqVO.java
  32. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/vo/IssueRequestMainUpdateReqVO.java
  33. 36
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java
  34. 79
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/ProductputawayRequestMainController.java
  35. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayImportErrorVO.java
  36. 54
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayImportExcelVO.java
  37. 59
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayImportVO.java
  38. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainBaseVO.java
  39. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainCreateReqVO.java
  40. 48
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java
  41. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportErrorVO.java
  42. 65
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java
  43. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java
  44. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestDetailBaseVO.java
  45. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/WorkstationController.java
  46. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestDetailConvert.java
  47. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestDetailConvert.java
  48. 27
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestDetailConvert.java
  49. 29
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestDetailConvert.java
  50. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java
  51. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java
  52. 27
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestDetailConvert.java
  53. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestMainConvert.java
  54. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java
  55. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java
  56. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java
  57. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventoryinitRequest/InventoryinitRequestMainDO.java
  58. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRequest/IssueRequestDetailDO.java
  59. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRequest/IssueRequestMainDO.java
  60. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java
  61. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java
  62. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestMainMapper.java
  63. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java
  64. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java
  65. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestMainMapper.java
  66. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestMainMapper.java
  67. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java
  68. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java
  69. 251
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java
  70. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainService.java
  71. 153
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java
  72. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java
  73. 29
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java
  74. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainService.java
  75. 185
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java
  76. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/enterprise/EnterpriseServiceImpl.java
  77. 172
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java
  78. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java
  79. 168
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java
  80. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java
  81. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java
  82. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainService.java
  83. 252
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java
  84. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java
  85. 210
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java
  86. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java
  87. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRecord/SupplierdeliverRecordMainService.java
  88. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRecord/SupplierdeliverRecordMainServiceImpl.java
  89. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/warehouse/WarehouseServiceImpl.java
  90. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

2
win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/util/ExcelUtils.java

@ -83,7 +83,7 @@ public class ExcelUtils {
public static <T> List<T> read(MultipartFile file, Class<T> head) throws IOException {
return EasyExcel.read(file.getInputStream(), head, null)
.autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理
.doReadAllSync();
. doReadAllSync();
}
public static <T> List<T> read(MultipartFile file, Class<T> head, AnalysisEventListener<T> listener) throws IOException {

2
win-module-system/win-module-system-api/src/main/java/com/win/module/system/api/dict/DictDataApi.java

@ -65,4 +65,6 @@ public interface DictDataApi {
* @return
*/
DictDataRespDTO selectDictLabel( String plabel);
DictDataRespDTO selectDictValue( String value);
}

6
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/api/dict/DictDataApiImpl.java

@ -60,4 +60,10 @@ public class DictDataApiImpl implements DictDataApi {
DictDataDO dictDataDO = dictDataService.selectDictLabel(plabel);
return DictDataConvert.INSTANCE.convert02(dictDataDO);
}
@Override
public DictDataRespDTO selectDictValue( String value){
DictDataDO dictDataDO = dictDataService.selectDictValue(value);
return DictDataConvert.INSTANCE.convert02(dictDataDO);
}
}

2
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataService.java

@ -109,4 +109,6 @@ public interface DictDataService {
DictDataDO selectDictTypeAndLabel(String ptype, String plabel);
DictDataDO selectDictLabel(String plabel);
DictDataDO selectDictValue(String value);
}

11
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataServiceImpl.java

@ -218,4 +218,15 @@ public class DictDataServiceImpl implements DictDataService {
throw new UtilException( "未查到字典相关标签");
}
}
@Override
public DictDataDO selectDictValue(String value){
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("value",value);
DictDataDO dictDataDO = dictDataMapper.selectOne(queryWrapper1);
if(dictDataDO != null && 0 == dictDataDO.getStatus()){
return dictDataDO;
}else {
throw new UtilException( "未查到字典相关标签");
}
}
}

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

@ -621,6 +621,9 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_110_000, "制品报废申请主不存在");
//制品报废申请子ErrorCode
ErrorCode PRODUCTSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_001_110_001, "制品报废申请子不存在");
//制品报废申请子ErrorCode
ErrorCode PRODUCTSCRAP_REQUEST_NOT_EXISTS = new ErrorCode(1_001_110_002, "制品报废申请不存在");
//制品报废任务主ErrorCode
ErrorCode PRODUCTSCRAP_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_111_000, "制品报废任务主不存在");
//制品报废任务子ErrorCode
@ -632,6 +635,8 @@ public interface ErrorCodeConstants {
//制品上架申请ErrorCode
ErrorCode PRODUCTPUTAWAY_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_112_000, "制品上架申请主不存在");
ErrorCode PRODUCTPUTAWAY_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_112_001, "制品上架申请子不存在");
//制品上架申请ErrorCode
ErrorCode PRODUCTPUTAWAY_REQUEST_NOT_EXISTS = new ErrorCode(1_000_112_002, "制品上架申请不存在");
//制品上架任务ErrorCode
ErrorCode PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_113_000, "制品上架任务主不存在");
ErrorCode PRODUCTPUTAWAY_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_113_001, "制品上架任务子不存在");
@ -653,6 +658,7 @@ public interface ErrorCodeConstants {
ErrorCode DELIVER_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_118_001, "发货计划子不存在");
//发货申请ErrorCode
ErrorCode DELIVER_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请主不存在");
ErrorCode DELIVER_REQUEST_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请不存在");
ErrorCode DELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_119_001, "发货申请子不存在");
//发货任务ErrorCode
ErrorCode DELIVER_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_120_000, "发货任务主不存在");
@ -670,6 +676,8 @@ public interface ErrorCodeConstants {
//客户退货申请ErrorCode
ErrorCode CUSTOMERRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_124_000, "客户退货申请主不存在");
ErrorCode CUSTOMERRETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_124_001, "客户退货申请子不存在");
ErrorCode CUSTOMERRETURN_REQUEST_NOT_EXISTS = new ErrorCode(1_000_124_000, "客户退货申请不存在");
//客户退货任务ErrorCode
ErrorCode CUSTOMERRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_125_000, "客户退货任务主不存在");
ErrorCode CUSTOMERRETURN_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_125_001, "客户退货任务子不存在");
@ -680,6 +688,8 @@ public interface ErrorCodeConstants {
//客户结算申请ErrorCode
ErrorCode CUSTOMERSETTLE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_127_000, "客户结算申请主不存在");
ErrorCode CUSTOMERSETTLE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_127_001, "客户结算申请子不存在");
ErrorCode CUSTOMERSETTLE_REQUEST_NOT_EXISTS = new ErrorCode(1_000_127_001, "客户结算申请不存在");
//客户结算记录ErrorCode
ErrorCode CUSTOMERSETTLE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_128_000, "客户结算记录主不存在");
ErrorCode CUSTOMERSETTLE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_128_001, "客户结算记录子不存在");

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java

@ -22,8 +22,6 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data
public class CustomerreturnRecordMainExcelVO {
@ExcelProperty("申请单号")
private String requestNumber;
@ExcelProperty("任务单号")
private String jobNumber;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java

@ -13,8 +13,6 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@Data
public class CustomerreturnRecordMainExportReqVO {
@Schema(description = "申请单号")
private String requestNumber;
@Schema(description = "任务单号")
private String jobNumber;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java

@ -15,8 +15,6 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@ToString(callSuper = true)
public class CustomerreturnRecordMainPageReqVO extends PageParam {
@Schema(description = "申请单号")
private String requestNumber;
@Schema(description = "任务单号")
private String jobNumber;

76
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java

@ -1,11 +1,16 @@
package com.win.module.wms.controller.customerreturnRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
import com.win.module.wms.service.customerreturnRequest.CustomerreturnRequestDetailService;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -16,6 +21,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.io.IOException;
@ -32,6 +39,7 @@ import com.win.module.wms.controller.customerreturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestMainConvert;
import com.win.module.wms.service.customerreturnRequest.CustomerreturnRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 客户退货申请主")
@RestController
@ -42,9 +50,6 @@ public class CustomerreturnRequestMainController {
@Resource
private CustomerreturnRequestMainService customerreturnRequestMainService;
@Resource
private CustomerreturnRequestDetailService customerreturnRequestDetailService;
@Resource
private AdminUserApi userApi;
@ -127,22 +132,49 @@ public class CustomerreturnRequestMainController {
ExcelUtils.write(response, "客户退货申请主.xls", "数据", CustomerreturnRequestMainExcelVO.class, datas);
}
@GetMapping("/getCustomerreturnRequestById")
@Operation(summary = "APP获得客户退货申请主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:customerreturn-request-main:query')")
public CommonResult<CustomerreturnRequestMainRespVO> getCustomerreturnRequestById(@RequestParam("id") Long id) {
CustomerreturnRequestMainDO customerreturnRequestMain = customerreturnRequestMainService.getCustomerreturnRequestMain(id);
CustomerreturnRequestMainRespVO result = CustomerreturnRequestMainConvert.INSTANCE.convert(customerreturnRequestMain);
if(result==null) {
return success(result);
};
CustomerreturnRequestDetailExportReqVO reqVO = new CustomerreturnRequestDetailExportReqVO();
reqVO.setMasterId(result.getId());
List<CustomerreturnRequestDetailDO> list = customerreturnRequestDetailService.getCustomerreturnRequestDetailList(reqVO);
List<CustomerreturnRequestDetailExcelVO> vos = CustomerreturnRequestDetailConvert.INSTANCE.convertList02(list);
result.setSubList(vos);
return success(result);
@GetMapping("/get-import-template")
@Operation(summary = "获得导入制客户退货信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<CustomerreturnRequestImportVO> list = Arrays.asList(
);
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
mapDropDown.put(3, transferMode);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(13, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(12, uom);
// 输出
ExcelUtils.write(response, "客户退货申请信息导入模板.xls", "客户退货申请信息列表", CustomerreturnRequestImportVO.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:customerreturn-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<CustomerreturnRequestImportVO> list = ExcelUtils.read(file, CustomerreturnRequestImportVO.class);
ConvertUtil<CustomerreturnRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(CustomerreturnRequestMainCreateReqVO.class);
List<CustomerreturnRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<CustomerreturnRequestImportErrorVO> errorList = customerreturnRequestMainService.importCustomerreturnMainList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestDetailBaseVO.java

@ -50,6 +50,10 @@ public class CustomerreturnRequestDetailBaseVO {
@NotNull(message = "从库位代码不能为空")
private String fromLocationCode;
@Schema(description = "到库位代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库位代码不能为空")
private String toLocationCode;
@Schema(description = "单据号")
private String number;

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportErrorVO.java

@ -0,0 +1,24 @@
package com.win.module.wms.controller.customerreturnRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CustomerreturnRequestImportErrorVO extends CustomerreturnRequestImportVO{
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

73
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java

@ -0,0 +1,73 @@
package com.win.module.wms.controller.customerreturnRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class CustomerreturnRequestImportVO {
//主表字段
@ExcelProperty("发货记录单号")
private String deliverRecordNumber;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("承运商")
private String carrierCode;
@ExcelProperty(value = "运输方式", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRANSFER_MODE)
private String transferMode;
@ExcelProperty("车牌号")
private String vehiclePlateNumber;
//子表字段
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private String soLine;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
}

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java

@ -1,11 +1,8 @@
package com.win.module.wms.controller.customerreturnRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
@ -22,10 +19,6 @@ public class CustomerreturnRequestMainBaseVO {
@Schema(description = "id", example = "id")
private Long id;
@Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "申请单号不能为空")
private String requestNumber;
@Schema(description = "发货记录单号")
private String deliverRecordNumber;
@ -33,11 +26,11 @@ public class CustomerreturnRequestMainBaseVO {
private String deliverPlanNumber;
@Schema(description = "客户代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "客户代码不能为空")
@NotBlank(message = "客户代码不能为空")
private String customerCode;
@Schema(description = "客户月台代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "客户月台代码不能为空")
@NotBlank(message = "客户月台代码不能为空")
private String customerDockCode;
@Schema(description = "承运商")
@ -50,11 +43,12 @@ public class CustomerreturnRequestMainBaseVO {
private String vehiclePlateNumber;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
@OnlyOne
@NotBlank(message = "单据号不能为空")
private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务类型不能为空")
@NotBlank(message = "业务类型不能为空")
private String businessType;
@Schema(description = "备注")
@ -76,8 +70,7 @@ public class CustomerreturnRequestMainBaseVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime dueTime;
@Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "部门不能为空")
@Schema(description = "部门")
private String departmentCode;
@Schema(description = "状态")
@ -90,47 +83,45 @@ public class CustomerreturnRequestMainBaseVO {
@Schema(description = "最后更新者用户名")
private String updater;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
@Schema(description = "从仓库代码")
private String fromWarehouseCode;
@Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位类型范围不能为空")
@NotBlank(message = "从库位类型范围不能为空")
private String fromLocationTypes;
@Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库区代码范围不能为空")
@NotBlank(message = "从库区代码范围不能为空")
private String fromAreaCodes;
@Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到仓库代码不能为空")
@Schema(description = "到仓库代码")
private String toWarehouseCode;
@Schema(description = "到库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库位类型范围不能为空")
@NotBlank(message = "到库位类型范围不能为空")
private String toLocationTypes;
@Schema(description = "到库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库区代码范围不能为空")
@NotBlank(message = "到库区代码范围不能为空")
private String toAreaCodes;
@Schema(description = "到月台代码")
private String toDockCode;
@Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动提交不能为空")
@NotBlank(message = "自动提交不能为空")
private String autoCommit;
@Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动通过不能为空")
@NotBlank(message = "自动通过不能为空")
private String autoAgree;
@Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动执行不能为空")
@NotBlank(message = "自动执行不能为空")
private String autoExecute;
@Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "直接生成记录不能为空")
@NotBlank(message = "直接生成记录不能为空")
private String directCreateRecord;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainCreateReqVO.java

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

42
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/CustomersettleRequestMainController.java

@ -1,8 +1,11 @@
package com.win.module.wms.controller.customersettleRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainCreateReqVO;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -13,6 +16,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.io.IOException;
@ -29,6 +34,7 @@ import com.win.module.wms.controller.customersettleRequest.vo.*;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO;
import com.win.module.wms.convert.customersettleRequest.CustomersettleRequestMainConvert;
import com.win.module.wms.service.customersettleRequest.CustomersettleRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 客户结算申请主")
@RestController
@ -120,4 +126,40 @@ public class CustomersettleRequestMainController {
ExcelUtils.write(response, "客户结算申请主.xls", "数据", CustomersettleRequestMainExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入制客户结算申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<CustomersettleRequestMainImportVO> list = Arrays.asList(
);
// 输出
ExcelUtils.write(response, "客户退货申请信息导入模板.xls", "客户退货申请信息列表", CustomersettleRequestMainImportVO.class, list);
}
@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:inspect-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<CustomersettleRequestMainImportVO> list = ExcelUtils.read(file, CustomersettleRequestMainImportVO.class);
ConvertUtil<CustomersettleRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(CustomersettleRequestMainCreateReqVO.class);
List<CustomersettleRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<CustomersettleRequestImportErrorVO> errorList = customersettleRequestMainService.customersettleRequestMainService(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("发料申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestImportErrorVO.java

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

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.customersettleRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -41,6 +42,7 @@ public class CustomersettleRequestMainBaseVO {
private String fromAreaCodes;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.customersettleRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailCreateReqVO;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 客户结算申请主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CustomersettleRequestMainCreateReqVO extends CustomersettleRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<CustomersettleRequestDetailCreateReqVO> subList;
}

39
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainImportVO.java

@ -0,0 +1,39 @@
package com.win.module.wms.controller.customersettleRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class CustomersettleRequestMainImportVO {
//主表字段
@ExcelProperty("发货记录单号")
private String deliverRecordNumber;
//子表字段
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private String soLine;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("批次")
private String batch;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportVO.java

@ -1,6 +1,9 @@
package com.win.module.wms.controller.deliverPlan.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -40,6 +43,8 @@ public class DeliverPlanMainImportVO {
private String itemCode;
@ExcelProperty("计划数量")
private BigDecimal qty;
@ExcelProperty("计量单位")
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

42
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/DeliverRequestMainController.java

@ -1,11 +1,15 @@
package com.win.module.wms.controller.deliverRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.deliverRequest.DeliverRequestDetailService;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -16,6 +20,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.io.IOException;
@ -32,6 +38,7 @@ import com.win.module.wms.controller.deliverRequest.vo.*;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.module.wms.convert.deliverRequest.DeliverRequestMainConvert;
import com.win.module.wms.service.deliverRequest.DeliverRequestMainService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 发货申请主")
@RestController
@ -146,4 +153,39 @@ public class DeliverRequestMainController {
return success(result);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入发货申请主信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<DeliverRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, uom);
// 输出
ExcelUtils.write(response, "发货申请导入模板.xlsx", "发料申请信息列表", DeliverRequestImportVO.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:inspect-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<DeliverRequestImportVO> list = ExcelUtils.read(file, DeliverRequestImportVO.class);
ConvertUtil<DeliverRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(DeliverRequestMainCreateReqVO.class);
List<DeliverRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<DeliverRequestImportErrorVO> errorList = deliverRequestMainService.importDeliverRequestList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("发货申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportErrorVO.java

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

55
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportVO.java

@ -0,0 +1,55 @@
package com.win.module.wms.controller.deliverRequest.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 java.math.BigDecimal;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class DeliverRequestImportVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("客户")
private String customerCode;
@ExcelProperty("计划日期")
private String planDate;
//子表数据
@ExcelProperty("销售订单号")
private String soNumber;
@ExcelProperty("销售订单行")
private BigDecimal soLine;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("计划数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.deliverRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -56,6 +57,7 @@ public class DeliverRequestMainBaseVO {
private String fromAreaCodes;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainCreateReqVO.java

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

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.inventoryinitRequest;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
@ -11,6 +12,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -129,16 +131,16 @@ public class InventoryinitRequestMainController {
// 手动创建导出 demo
List<InventoryinitRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
// mapDropDown.put(16, purchaseReturnReason);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
// mapDropDown.put(25, uom);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(10, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(13, uom);
// 输出
ExcelUtils.write(response, "库存初始化申请信息导入模板.xlsx", "库存初始化申请信息列表", InventoryinitRequestMainImportVO.class, list, mapDropDown);
}
@PostMapping("/import")
@Operation(summary = "导入要货计划")
@Operation(summary = "导入库存初始化申请")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@ -156,10 +158,11 @@ public class InventoryinitRequestMainController {
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("生产订单基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
String url = ExcelUtils.writeLocalFile("库存初始化基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.inventoryinitRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -25,6 +26,7 @@ public class InventoryinitRequestMainBaseVO {
@Schema(description = "仓库代码")
private String warehouseCode;
@OnlyOne
@Schema(description = "单据号")
private String number;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExportReqVO.java

@ -27,7 +27,7 @@ public class InventoryinitRequestMainExportReqVO {
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] creationTime;
private LocalDateTime[] createTime;
@Schema(description = "创建者用户名")
private String creator;

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java

@ -2,6 +2,9 @@ package com.win.module.wms.controller.inventoryinitRequest.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.annotations.OnlyOne;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -22,13 +25,21 @@ import java.time.LocalDateTime;
public class InventoryinitRequestMainImportVO{
//主表数据
@OnlyOne
@ExcelProperty("仓库代码")
private String warehouseCode;
@ExcelProperty("单据号")
private String number;
//子表数据
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("器具号")
private String containerNumber;
@ -47,10 +58,12 @@ public class InventoryinitRequestMainImportVO{
private String produceDate;
@ExcelProperty("过期日期")
@ColumnWidth(value = 16)
private String expireDate;
@ExcelProperty("库存状态")
private LocalDateTime inventoryStatus;
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("库位代码")
private String locationCode;
@ -59,5 +72,6 @@ public class InventoryinitRequestMainImportVO{
private String qty;
@ExcelProperty("计量单位")
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainPageReqVO.java

@ -29,7 +29,7 @@ public class InventoryinitRequestMainPageReqVO extends PageParam {
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] creationTime;
private LocalDateTime[] createTime;
@Schema(description = "创建者用户名")
private String creator;

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

@ -14,6 +14,6 @@ public class IssueRequestMainUpdateReqVO extends IssueRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<IssueRequestDetailCreateReqVO> subList;
private List<IssueRequestDetailUpdateReqVO> subList;
}

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

@ -3,30 +3,36 @@ package com.win.module.wms.controller.productionreturnRequest;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productionreturnRequest.vo.*;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestMainService;
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;
@ -40,9 +46,6 @@ public class ProductionreturnRequestMainController {
@Resource
private ProductionreturnRequestMainService productionreturnRequestMainService;
@Resource
private ProductionreturnRequestDetailService productionreturnRequestDetailService;
@Resource
private AdminUserApi userApi;
@ -127,22 +130,5 @@ public class ProductionreturnRequestMainController {
return success(result);
}
@GetMapping("/getProductionreturnRequestById")
@Operation(summary = "APP获得生产退料申请主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:query')")
public CommonResult<ProductionreturnRequestMainRespVO> getProductionreturnRequestById(@RequestParam("id") Long id) {
ProductionreturnRequestMainDO productionreturnRequestMain = productionreturnRequestMainService.getProductionreturnRequestMain(id);
ProductionreturnRequestMainRespVO result = ProductionreturnRequestMainConvert.INSTANCE.convert(productionreturnRequestMain);
if(result==null) {
return success(result);
};
ProductionreturnRequestDetailExportReqVO reqVO = new ProductionreturnRequestDetailExportReqVO();
reqVO.setMasterId(result.getId());
List<ProductionreturnRequestDetailDO> list = productionreturnRequestDetailService.getProductionreturnRequestDetailList(reqVO);
List<ProductionreturnRequestDetailExcelVO> vos = ProductionreturnRequestDetailConvert.INSTANCE.convertList02(list);
result.setSubList(vos);
return success(result);
}
}

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

@ -3,30 +3,33 @@ package com.win.module.wms.controller.productputawayRequest;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productputawayRequest.vo.*;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.service.productputawayRequest.ProductputawayRequestDetailService;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productputawayRequest.ProductputawayRequestMainService;
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;
@ -40,9 +43,6 @@ public class ProductputawayRequestMainController {
@Resource
private ProductputawayRequestMainService productputawayRequestMainService;
@Resource
private ProductputawayRequestDetailService productputawayRequestDetailService;
@Resource
private AdminUserApi userApi;
@ -101,25 +101,25 @@ public class ProductputawayRequestMainController {
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductputawayRequestMainExcel(@Valid ProductputawayRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
HttpServletResponse response) throws IOException {
List<ProductputawayRequestMainDO> list = productputawayRequestMainService.getProductputawayRequestMainList(exportReqVO);
// 导出 Excel
List<ProductputawayRequestMainExcelVO> datas = ProductputawayRequestMainConvert.INSTANCE.convertList02(list);
for(ProductputawayRequestMainExcelVO vo : datas) {
for (ProductputawayRequestMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "制品上架申请主.xls", "数据", ProductputawayRequestMainExcelVO.class, datas);
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得制品上架申请主分页")
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:query')")
public CommonResult<PageResult<ProductputawayRequestMainRespVO>> getProductputawayRequestMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ProductputawayRequestMainDO> pageResult = productputawayRequestMainService.getProductputawayRequestMainSenior(conditions);
PageResult<ProductputawayRequestMainRespVO> result = ProductputawayRequestMainConvert.INSTANCE.convertPage(pageResult);
for(ProductputawayRequestMainRespVO vo : result.getList()) {
for (ProductputawayRequestMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
@ -127,23 +127,46 @@ public class ProductputawayRequestMainController {
return success(result);
}
@GetMapping("/getProductputawayRequestById")
@Operation(summary = "APP获得制品上架申请主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:query')")
public CommonResult<ProductputawayRequestMainRespVO> getProductputawayRequestById(@RequestParam("id") Long id) {
ProductputawayRequestMainDO productputawayRequestMain = productputawayRequestMainService.getProductputawayRequestMain(id);
ProductputawayRequestMainRespVO result = ProductputawayRequestMainConvert.INSTANCE.convert(productputawayRequestMain);
if(result==null) {
return success(result);
};
ProductputawayRequestDetailExportReqVO reqVO = new ProductputawayRequestDetailExportReqVO();
reqVO.setMasterId(result.getId());
List<ProductputawayRequestDetailDO> list = productputawayRequestDetailService.getProductputawayRequestDetailList(reqVO);
List<ProductputawayRequestDetailExcelVO> vos = ProductputawayRequestDetailConvert.INSTANCE.convertList02(list);
result.setSubList(vos);
return success(result);
@GetMapping("/get-import-template")
@Operation(summary = "获得导入制品上架申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProductputawayImportVO> list = Arrays.asList(
// ProductputawayImportExcelVO.builder().code("code").name("name").build()
);
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(3, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, uom);
// 输出
ExcelUtils.write(response, "制品上架申请信息导入模板.xls", "制品上架申请信息列表", ProductputawayImportVO.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:productputaway-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ProductputawayImportVO> list = ExcelUtils.read(file, ProductputawayImportVO.class);
ConvertUtil<ProductputawayRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(ProductputawayRequestMainCreateReqVO.class);
List<ProductputawayRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<ProductputawayImportErrorVO> errorList = productputawayRequestMainService.importProductputawayRequestList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("制品上架申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayImportErrorVO.java

@ -0,0 +1,23 @@
package com.win.module.wms.controller.productputawayRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@ToString(callSuper = true)
public class ProductputawayImportErrorVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

54
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayImportExcelVO.java

@ -0,0 +1,54 @@
package com.win.module.wms.controller.productputawayRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductputawayImportExcelVO {
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("库存状态")
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("计量单位")
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

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

@ -0,0 +1,59 @@
package com.win.module.wms.controller.productputawayRequest.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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductputawayImportVO {
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty("库存状态")
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("计量单位")
@DictFormat(DictTypeConstants.UOM)
private String uom;
}

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

@ -1,5 +1,6 @@
package com.win.module.wms.controller.productputawayRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -44,6 +45,7 @@ public class ProductputawayRequestMainBaseVO {
private String toAreaCodes;
@Schema(description = "单据号")
@OnlyOne
private String number;
@Schema(description = "业务类型")

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainCreateReqVO.java

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

48
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java

@ -2,6 +2,7 @@ package com.win.module.wms.controller.productscrapRequest;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils;
@ -9,6 +10,10 @@ import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import io.swagger.v3.oas.annotations.Parameters;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.service.productscrapRequest.ProductscrapRequestMainService;
@ -22,6 +27,16 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
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.time.LocalDateTime;
import java.time.ZoneOffset;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
@ -30,6 +45,17 @@ import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
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.productscrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.service.productscrapRequest.ProductscrapRequestMainService;
import org.springframework.web.multipart.MultipartFile;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 制品报废申请主")
@ -126,19 +152,15 @@ public class ProductscrapRequestMainController {
@GetMapping("/get-import-template")
@Operation(summary = "获得导入制品报废申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProductscrapRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
// mapDropDown.put(16, purchaseReturnReason);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
// mapDropDown.put(25, uom);
// 输出
ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ProductscrapRequestMainImportVO.class, list, mapDropDown);
ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ProductscrapRequestMainImportVO.class, list);
}
@PostMapping("/import")
@Operation(summary = "导入要货计划")
@Operation(summary = "导入采购索赔基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@ -149,19 +171,17 @@ public class ProductscrapRequestMainController {
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ProductscrapRequestMainImportVO> list = ExcelUtils.read(file, ProductscrapRequestMainImportVO.class);
List<ProductscrapRequestImportVO> list = ExcelUtils.read(file, ProductscrapRequestImportVO.class);
ConvertUtil<ProductscrapRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(ProductscrapRequestMainCreateReqVO.class);
List<ProductscrapRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<ProductscrapRequestMainImportErrorVO> errorList = productscrapRequestMainService.importProductscrapRequestMainList(createReqVOList, mode, updatePart);
List<ProductscrapRequestImportErrorVO> errorList = productscrapRequestMainService.importProductscrapRequestList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("生产订单基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportErrorVO.java

@ -0,0 +1,26 @@
package com.win.module.wms.controller.productscrapRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProductscrapRequestImportErrorVO extends ProductscrapRequestImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;
@ExcelProperty(value = "导入说明", index = 1)
private String importRemark;
}

65
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestImportVO.java

@ -0,0 +1,65 @@
package com.win.module.wms.controller.productscrapRequest.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 groovyjarjarantlr4.v4.runtime.misc.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 采购索赔申请子 Excel VO
*
* @author 超级管理员
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ProductscrapRequestImportVO {
@ExcelProperty("包装号")
@NotBlank(message = "包装号不能为空")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
@NotBlank(message = "批次不能为空")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@NotBlank(message = "库存状态不能为空")
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty("物品代码")
@NotBlank(message = "物品代码不能为空")
private String itemCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("来源库位代码")
@NotBlank(message = "来源库位代码不能为空")
private String fromlocationcode;
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java

@ -1,10 +1,9 @@
package com.win.module.wms.controller.productscrapRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailCreateReqVO;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.List;

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

@ -99,7 +99,7 @@ public class PurchasereceiptRequestDetailBaseVO {
private String projectCode;
@Schema(description = "数量")
@NotBlank(message = "数量不能为空")
@NotNull(message = "数量不能为空")
private BigDecimal qty;
@Schema(description = "计量单位")

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/WorkstationController.java

@ -10,9 +10,7 @@ import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.workstation.vo.WorkstationRespVO;
import com.win.module.wms.controller.workstation.vo.*;
import com.win.module.wms.convert.workstation.WorkstationConvert;
import com.win.module.wms.convert.workstation.WorkstationConvert;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.convert.workstation.WorkstationConvert;;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.workstation.WorkstationService;
@ -24,7 +22,6 @@ 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;
@ -32,7 +29,6 @@ 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;

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestDetailConvert.java

@ -4,11 +4,17 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailCreateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailExcelVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailRespVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailUpdateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailExcelVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
@ -33,5 +39,21 @@ public interface CustomerreturnRequestDetailConvert {
PageResult<CustomerreturnRequestDetailRespVO> convertPage(PageResult<CustomerreturnRequestDetailDO> page);
List<CustomerreturnRequestDetailExcelVO> convertList02(List<CustomerreturnRequestDetailDO> list);
CustomerreturnRequestDetailCreateReqVO convert1(CustomerreturnRequestDetailDO bean);
List<CustomerreturnRequestDetailDO> convertList03(List<CustomerreturnRequestDetailCreateReqVO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
CustomerreturnRequestDetailExcelVO convert(CustomerreturnRequestMainDO mainDO, CustomerreturnRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
CustomerreturnRequestImportErrorVO convert(CustomerreturnRequestMainCreateReqVO mainVo, CustomerreturnRequestDetailCreateReqVO detailVo);
}

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestDetailConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailCreateReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailExcelVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailRespVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailUpdateReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.*;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO;
@ -33,5 +33,20 @@ public interface CustomersettleRequestDetailConvert {
PageResult<CustomersettleRequestDetailRespVO> convertPage(PageResult<CustomersettleRequestDetailDO> page);
List<CustomersettleRequestDetailExcelVO> convertList02(List<CustomersettleRequestDetailDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
CustomersettleRequestDetailExcelVO convert(CustomersettleRequestMainDO mainDO, CustomersettleRequestDetailDO detailDO);
CustomersettleRequestImportErrorVO convert(CustomersettleRequestMainCreateReqVO mainVo, CustomersettleRequestDetailCreateReqVO detailVo);
CustomersettleRequestDetailCreateReqVO convert1(CustomersettleRequestDetailDO detailDO);
List<CustomersettleRequestDetailDO> convertList03(List<CustomersettleRequestDetailCreateReqVO> list);
}

27
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestDetailConvert.java

@ -4,11 +4,11 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailCreateReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailExcelVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailRespVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailUpdateReqVO;
import com.win.module.wms.controller.deliverRequest.vo.*;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO;
@ -34,4 +34,23 @@ public interface DeliverRequestDetailConvert {
List<DeliverRequestDetailExcelVO> convertList02(List<DeliverRequestDetailDO> list);
List<DeliverRequestDetailDO> convertList03(List<DeliverRequestDetailCreateReqVO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
DeliverRequestDetailExcelVO convert(DeliverRequestMainDO mainDO, DeliverRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
DeliverRequestImportErrorVO convert(DeliverRequestMainCreateReqVO mainVo, DeliverRequestDetailCreateReqVO detailVo);
DeliverRequestDetailCreateReqVO convert1(DeliverRequestDetailDO detailDO);
}

29
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestDetailConvert.java

@ -1,12 +1,18 @@
package com.win.module.wms.convert.inventoryinitRequest;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailCreateReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailExcelVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailRespVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailUpdateReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailExcelVO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import java.util.List;
@ -18,6 +24,21 @@ import java.util.List;
*/
@Mapper
public interface InventoryinitRequestDetailConvert {
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
InventoryinitRequestMainImportErrorVO convert(InventoryinitRequestMainCreateReqVO mainVo, InventoryinitRequestDetailDO detailVo);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
InventoryinitRequestDetailExcelVO convert(InventoryinitRequestMainDO mainDO, InventoryinitRequestDetailDO detailDO);
InventoryinitRequestDetailConvert INSTANCE = Mappers.getMapper(InventoryinitRequestDetailConvert.class);

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

@ -35,9 +35,10 @@ public interface IssueRequestDetailConvert {
List<IssueRequestDetailExcelVO> convertList02(List<IssueRequestDetailDO> list);
List<IssueRequestDetailDO> convertList03(List<IssueRequestDetailCreateReqVO> list);
List<IssueRequestDetailDO> convertList04(List<IssueRequestDetailUpdateReqVO> list);
List<IssueRequestDetailDO> convertList05(List<IssueRequestDetailUpdateReqVO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),

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

@ -26,6 +26,7 @@ public interface IssueRequestMainConvert {
IssueRequestMainConvert INSTANCE = Mappers.getMapper(IssueRequestMainConvert.class);
IssueRequestMainDO convert(IssueRequestMainCreateReqVO bean);
IssueRequestMainDO convert(IssueRequestMainBaseVO bean);
IssueRequestMainDO convert(IssueRequestMainUpdateReqVO bean);

27
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestDetailConvert.java

@ -4,11 +4,17 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailExcelVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailRespVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailExcelVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
@ -33,5 +39,18 @@ public interface ProductputawayRequestDetailConvert {
PageResult<ProductputawayRequestDetailRespVO> convertPage(PageResult<ProductputawayRequestDetailDO> page);
List<ProductputawayRequestDetailExcelVO> convertList02(List<ProductputawayRequestDetailDO> list);
List<ProductputawayRequestDetailDO> convertList03(List<ProductputawayRequestDetailCreateReqVO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
ProductputawayRequestDetailExcelVO convert(ProductputawayRequestMainDO mainDO, ProductputawayRequestDetailDO detailDO);
ProductputawayImportErrorVO convert(ProductputawayRequestMainCreateReqVO mainVo, ProductputawayRequestDetailDO detailVo);
}

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

@ -4,11 +4,15 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainExcelVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainRespVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.controller.workstation.vo.WorkstationImportExcelVo;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
@ -34,4 +38,8 @@ public interface ProductputawayRequestMainConvert {
List<ProductputawayRequestMainExcelVO> convertList02(List<ProductputawayRequestMainDO> list);
ProductputawayRequestMainDO convert(ProductputawayImportExcelVO bean);
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java

@ -1,10 +1,11 @@
package com.win.module.wms.convert.productscrapRequest;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailExcelVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailRespVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@ -35,4 +36,6 @@ public interface ProductscrapRequestDetailConvert {
List<ProductscrapRequestDetailDO> convertList03(List<ProductscrapRequestDetailCreateReqVO> list);
ProductscrapRequestImportErrorVO convert(ProductscrapRequestMainCreateReqVO mainVo, ProductscrapRequestDetailDO detailVo);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java

@ -61,6 +61,10 @@ public class CustomerreturnRequestDetailDO extends BaseDO {
* 从库位代码
*/
private String fromLocationCode;
/**
* 到库位代码
*/
private String toLocationCode;
/**
* 主表ID
*/

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java

@ -28,10 +28,7 @@ public class CustomerreturnRequestMainDO extends BaseDO {
*/
@TableId
private Long id;
/**
* 申请单号
*/
private String requestNumber;
/**
* 发货记录单号
*/

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventoryinitRequest/InventoryinitRequestMainDO.java

@ -51,7 +51,7 @@ public class InventoryinitRequestMainDO extends BaseDO {
/**
* 创建时间
*/
private LocalDateTime creationTime;
private LocalDateTime createTime;
/**
* 扩展属性
*/

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRequest/IssueRequestDetailDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.issueRequest;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@ -8,6 +9,8 @@ import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/**
* 发料申请子 DO
*
@ -40,10 +43,12 @@ public class IssueRequestDetailDO extends BaseDO {
*
* 枚举 {@link TODO inventory_status 对应的类}
*/
@NotBlank
private String inventoryStatus;
/**
* 包装号
*/
@NotBlank
private String packingNumber;
/**
* 器具号
@ -52,10 +57,12 @@ public class IssueRequestDetailDO extends BaseDO {
/**
* 批次
*/
@NotBlank
private String batch;
/**
* 到库位代码
*/
@NotBlank
private String toLocationCode;
/**
* 主表ID

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/issueRequest/IssueRequestMainDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.issueRequest;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@ -9,6 +10,8 @@ import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/**
* 发料申请主 DO
*
@ -35,22 +38,26 @@ public class IssueRequestMainDO extends BaseDO {
/**
* 从仓库代码
*/
@NotBlank
private String fromWarehouseCode;
/**
* 到仓库代码
*/
@NotBlank
private String toWarehouseCode;
/**
* 从库位类型范围
*
* 枚举 {@link TODO location_type 对应的类}
*/
@NotBlank
private String fromLocationTypes;
/**
* 到库位类型范围
*
* 枚举 {@link TODO location_type 对应的类}
*/
@NotBlank
private String toLocationTypes;
/**
* 从库区代码范围

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java

@ -22,7 +22,6 @@ public interface CustomerreturnRecordMainMapper extends BaseMapperX<Customerretu
default PageResult<CustomerreturnRecordMainDO> selectPage(CustomerreturnRecordMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CustomerreturnRecordMainDO>()
.eqIfPresent(CustomerreturnRecordMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(CustomerreturnRecordMainDO::getJobNumber, reqVO.getJobNumber())
.eqIfPresent(CustomerreturnRecordMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber())
.eqIfPresent(CustomerreturnRecordMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber())
@ -60,7 +59,6 @@ public interface CustomerreturnRecordMainMapper extends BaseMapperX<Customerretu
}
default List<CustomerreturnRecordMainDO> selectList(CustomerreturnRecordMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<CustomerreturnRecordMainDO>()
.eqIfPresent(CustomerreturnRecordMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(CustomerreturnRecordMainDO::getJobNumber, reqVO.getJobNumber())
.eqIfPresent(CustomerreturnRecordMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber())
.eqIfPresent(CustomerreturnRecordMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber())

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExportReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -22,7 +23,6 @@ public interface CustomerreturnRequestMainMapper extends BaseMapperX<Customerret
default PageResult<CustomerreturnRequestMainDO> selectPage(CustomerreturnRequestMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CustomerreturnRequestMainDO>()
.eqIfPresent(CustomerreturnRequestMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(CustomerreturnRequestMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber())
.eqIfPresent(CustomerreturnRequestMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber())
.eqIfPresent(CustomerreturnRequestMainDO::getCustomerCode, reqVO.getCustomerCode())
@ -57,9 +57,12 @@ public interface CustomerreturnRequestMainMapper extends BaseMapperX<Customerret
default PageResult<CustomerreturnRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}
default CustomerreturnRequestMainDO selectByDeliverrecordnumberAndSupplierCode(String deliverrecordnumber) {
return selectOne(CustomerreturnRequestMainDO::getDeliverRecordNumber,deliverrecordnumber);
}
default List<CustomerreturnRequestMainDO> selectList(CustomerreturnRequestMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<CustomerreturnRequestMainDO>()
.eqIfPresent(CustomerreturnRequestMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(CustomerreturnRequestMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber())
.eqIfPresent(CustomerreturnRequestMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber())
.eqIfPresent(CustomerreturnRequestMainDO::getCustomerCode, reqVO.getCustomerCode())

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestMainMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainExportReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
@ -48,6 +49,10 @@ public interface CustomersettleRequestMainMapper extends BaseMapperX<Customerset
default PageResult<CustomersettleRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}
default CustomersettleRequestMainDO selectByDeliverrecordnumberAndSupplierCode(String deliverrecordnumber) {
return selectOne(CustomersettleRequestMainDO::getDeliverRecordNumber,deliverrecordnumber);
}
default List<CustomersettleRequestMainDO> selectList(CustomersettleRequestMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<CustomersettleRequestMainDO>()
.eqIfPresent(CustomersettleRequestMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber())

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExportReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -90,4 +91,8 @@ public interface DeliverRequestMainMapper extends BaseMapperX<DeliverRequestMain
.orderByDesc(DeliverRequestMainDO::getId));
}
default DeliverRequestMainDO selectWorkShopCodeAndUseOnTheWayLocation(String customer) {
return selectOne(DeliverRequestMainDO::getCustomerCode, customer);
}
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java

@ -26,7 +26,7 @@ public interface InventoryinitRequestMainMapper extends BaseMapperX<Inventoryini
.eqIfPresent(InventoryinitRequestMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(InventoryinitRequestMainDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(InventoryinitRequestMainDO::getRemark, reqVO.getRemark())
.betweenIfPresent(InventoryinitRequestMainDO::getCreationTime, reqVO.getCreationTime())
.betweenIfPresent(InventoryinitRequestMainDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(InventoryinitRequestMainDO::getCreator, reqVO.getCreator())
.betweenIfPresent(InventoryinitRequestMainDO::getRequestTime, reqVO.getRequestTime())
.betweenIfPresent(InventoryinitRequestMainDO::getDueTime, reqVO.getDueTime())
@ -49,7 +49,7 @@ public interface InventoryinitRequestMainMapper extends BaseMapperX<Inventoryini
.eqIfPresent(InventoryinitRequestMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(InventoryinitRequestMainDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(InventoryinitRequestMainDO::getRemark, reqVO.getRemark())
.betweenIfPresent(InventoryinitRequestMainDO::getCreationTime, reqVO.getCreationTime())
.betweenIfPresent(InventoryinitRequestMainDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(InventoryinitRequestMainDO::getCreator, reqVO.getCreator())
.betweenIfPresent(InventoryinitRequestMainDO::getRequestTime, reqVO.getRequestTime())
.betweenIfPresent(InventoryinitRequestMainDO::getDueTime, reqVO.getDueTime())

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayRequest/ProductputawayRequestMainMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainExportReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -19,7 +20,9 @@ import java.util.List;
*/
@Mapper
public interface ProductputawayRequestMainMapper extends BaseMapperX<ProductputawayRequestMainDO> {
default ProductputawayRequestMainDO selectByNumber(String number) {
return selectOne(ProductputawayRequestMainDO::getNumber, number);
}
default PageResult<ProductputawayRequestMainDO> selectPage(ProductputawayRequestMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ProductputawayRequestMainDO>()
.eqIfPresent(ProductputawayRequestMainDO::getSupplierCode, reqVO.getSupplierCode())

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainExportReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
/**

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

@ -103,7 +103,8 @@ public class BalanceServiceImpl implements BalanceService {
*/
@Override
public List<BalanceDO> selectPackaging(String itemCode, String packingNumber, String batch, List<String> inventoryStatus, String locationCode) {
QueryWrapper<BalanceDO> queryWrapper = new QueryWrapper<>();
QueryWrapper<BalanceDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("item_code", itemCode);
queryWrapper.eq("packing_number", packingNumber);
queryWrapper.eq("batch", batch);

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java

@ -4,10 +4,10 @@ import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainCreateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExportReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainPageReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainUpdateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.*;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainCreateReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.framework.common.pojo.PageResult;
@ -79,4 +79,6 @@ public interface CustomerreturnRequestMainService {
*/
List<CustomerreturnRequestMainDO> getCustomerreturnRequestMainList(CustomerreturnRequestMainExportReqVO exportReqVO);
public List<CustomerreturnRequestImportErrorVO> importCustomerreturnMainList(List<CustomerreturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

251
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java

@ -1,25 +1,50 @@
package com.win.module.wms.service.customerreturnRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainCreateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExportReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainPageReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainUpdateReqVO;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.customerreturnRequest.vo.*;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO;
import com.win.module.wms.service.deliverRecord.*;
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestDetailMapper;
import com.win.module.wms.service.requestsetting.*;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.util.*;
import com.win.module.wms.service.location.*;
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestDetailConvert;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
import com.win.module.wms.service.purchasereceiptRecord.*;
import com.win.module.wms.service.itembasic.*;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.time.LocalDateTime;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.util.*;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestMainConvert;
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 客户退货申请主 Service 实现类
*
@ -32,6 +57,32 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
@Resource
private CustomerreturnRequestMainMapper customerreturnRequestMainMapper;
@Resource
private CustomerreturnRequestDetailMapper customerreturnRequestDetailMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private DeliverRecordMainService deliverRecordMainService;
@Resource
private ItembasicService itembasicService;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private DictDataApi dictDataApi;
@Resource
private LocationService locationService;
@Resource
private Validator validator;
@Override
public Long createCustomerreturnRequestMain(CustomerreturnRequestMainCreateReqVO createReqVO) {
// 插入
@ -87,4 +138,190 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
return customerreturnRequestMainMapper.selectList(exportReqVO);
}
private void validatePurchaseclaimRequestMainExists(Long id) {
CustomerreturnRequestMainDO customerRequestMainDO = customerreturnRequestMainMapper.selectById(id);
if (customerRequestMainDO == null) {
return;
}else {
throw exception(CUSTOMERRETURN_REQUEST_NOT_EXISTS);
}
}
public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){
return "ture";
} else {
throw new UtilException("上架数量"+qty2+ "不能大于库存数量"+ qty1);
}
}
@Override
@Transactional
public List<CustomerreturnRequestImportErrorVO> importCustomerreturnMainList(List<CustomerreturnRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(CUSTOMERRETURN_REQUEST_NOT_EXISTS);
}
List< CustomerreturnRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
BusinesstypeDO businesstypeDO = null;
//主表校验方法
try {
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(createReqVO.getDeliverRecordNumber());
createReqVO.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber());
createReqVO.setCustomerCode(deliverRecordMainDO.getCustomerCode());
createReqVO.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode());
createReqVO.setCreateTime(LocalDateTime.now());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
try {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
}catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try{
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes());
createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes());
}catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, createReqVO);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode());
createReqVO.setNumber(number);
List<CustomerreturnRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<CustomerreturnRequestDetailDO> subDOList = CustomerreturnRequestDetailConvert.INSTANCE.convertList03(subList);
for(CustomerreturnRequestDetailDO detailDO : subDOList ){
String messageDetail = "";
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
//子表校验方法
try {
List <DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(createReqVO.getDeliverRecordNumber());
try{
for( DeliverRecordDetailDO deliver : deliverRecordDetailDO){
if(deliver.getSoNumber().equals(detailDO.getSoNumber())&&
deliver.getSoLine().equals(detailDO.getSoLine())
&&deliver.getItemCode().equals(detailDO.getItemCode())&&
deliver.getBatch().equals(detailDO.getBatch())&&
deliver.getPackingNumber().equals(detailDO.getPackingNumber())){
detailDO.setQty(deliver.getQty());
detailDO.setUom(deliver.getUom());
}
else{
throw new UtilException("销售订单号"+detailDO.getSoNumber()+"销售订单行"+detailDO.getSoLine()
+"物料代码"+detailDO.getItemCode()+"批次"+detailDO.getBatch()+"箱码"+detailDO.getPackingNumber()+"不在发货记录单"
+createReqVO.getDeliverRecordNumber()+"中");
}
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setItemName(itembasicDO.getName());
detailDO.setProjectCode(itembasicDO.getProject());
detailDO.setUom(itembasicDO.getUom());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
locationService.selectLocation(detailDO.getFromLocationCode());
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
if(!detailDO.getFromLocationCode().isEmpty()){
jobUtils.ifInToLocationType(detailDO.getFromLocationCode(),businesstypeDO);
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
jobUtils.ifInFromLocationType(detailDO.getToLocationCode(),businesstypeDO);
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
jobUtils.ifInInventoryStatuses(detailDO.getInventoryStatus(),businesstypeDO);
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
if("客户寄售库".equals(detailDO.getFromLocationCode())){
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDO.getInventoryStatus());
String value = dictDataRespDTO.getValue();
String[] businessArray = value.split(",");
List<String> business = Arrays.asList(businessArray);
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(),detailDO.getPackingNumber(),detailDO.getBatch(),
detailDO.getFromLocationCode(),business);
try{
BalanceDO blance1 = balance.get(0);
isqty(detailDO.getQty(),blance1.getQty());
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
CustomerreturnRequestDetailCreateReqVO customerreturnRequestDetailCreateReqVO = CustomerreturnRequestDetailConvert.INSTANCE.convert1(detailDO);
CustomerreturnRequestImportErrorVO importVO = CustomerreturnRequestDetailConvert.INSTANCE.convert(createReqVO, customerreturnRequestDetailCreateReqVO);
if(!messageMain.equals("") || !messageDetail.equals("")){
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1));
errorList.add(importVO);
}else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
}
}
CustomerreturnRequestMainDO createObj = CustomerreturnRequestMainConvert.INSTANCE.convert(createReqVO);
if (errorList.isEmpty()) {
CustomerreturnRequestMainDO existCustomerreturnRequestMainDO = customerreturnRequestMainMapper.selectByDeliverrecordnumberAndSupplierCode(createReqVO.getDeliverRecordNumber());
if (existCustomerreturnRequestMainDO == null && mode != 3) {
customerreturnRequestMainMapper.insert(createObj);
customerreturnRequestDetailMapper.insertBatch(subDOList);
}
else if (existCustomerreturnRequestMainDO == null && mode != 2) {
customerreturnRequestMainMapper.updateById(createObj);
customerreturnRequestDetailMapper.updateBatch(subDOList);
}
}
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainService.java

@ -4,10 +4,9 @@ import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainCreateReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainExportReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainPageReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainUpdateReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.*;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO;
import com.win.framework.common.pojo.PageResult;
@ -79,4 +78,7 @@ public interface CustomersettleRequestMainService {
*/
List<CustomersettleRequestMainDO> getCustomersettleRequestMainList(CustomersettleRequestMainExportReqVO exportReqVO);
public List<CustomersettleRequestImportErrorVO> customersettleRequestMainService(List<CustomersettleRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

153
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java

@ -1,14 +1,33 @@
package com.win.module.wms.service.customersettleRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainCreateReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainExportReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainPageReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainUpdateReqVO;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.customersettleRequest.vo.*;
import com.win.module.wms.convert.customersettleRequest.CustomersettleRequestDetailConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.customersettleRequest.CustomersettleRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.deliverRecord.DeliverRecordMainService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.Validator;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO;
@ -32,6 +51,22 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque
@Resource
private CustomersettleRequestMainMapper customersettleRequestMainMapper;
@Resource
private CustomersettleRequestDetailMapper customersettleRequestDetailMapper;
@Resource
private DeliverRecordMainService deliverRecordMainService;
@Resource
private RequestsettingService requestsettingService;
@Resource
private JobUtils jobUtils;
@Resource
private Validator validator;
@Resource
private SerialNumberApi serialNumberApi;
@Override
public Long createCustomersettleRequestMain(CustomersettleRequestMainCreateReqVO createReqVO) {
// 插入
@ -87,4 +122,114 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque
return customersettleRequestMainMapper.selectList(exportReqVO);
}
@Override
@Transactional
public List<CustomersettleRequestImportErrorVO> customersettleRequestMainService(List<CustomersettleRequestMainCreateReqVO> datas, Integer mode, boolean updatePart){
if (CollUtil.isEmpty(datas)) {
throw exception(CUSTOMERSETTLE_REQUEST_NOT_EXISTS);
}
List<CustomersettleRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String messageMain = "";
BusinesstypeDO businesstypeDO = null;
//主表校验方法
try {
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(createReqVO.getDeliverRecordNumber());
createReqVO.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber());
createReqVO.setCustomerCode(deliverRecordMainDO.getCustomerCode());
createReqVO.setFromWarehouseCode(deliverRecordMainDO.getFromWarehouseCode());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
createReqVO.setCreateTime(LocalDateTime.now());
try {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, createReqVO);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_SETTLE_RECORD.getCode());
createReqVO.setNumber(number);
List<CustomersettleRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<CustomersettleRequestDetailDO> subDOList = CustomersettleRequestDetailConvert.INSTANCE.convertList03(subList);
for(CustomersettleRequestDetailDO detailDO : subDOList){
String messageDetail = "";
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
//子表校验方法
try {
List <DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(createReqVO.getDeliverRecordNumber());
try{
for( DeliverRecordDetailDO deliver : deliverRecordDetailDO){
if(deliver.getSoNumber().equals(detailDO.getSoNumber())&&
deliver.getSoLine().equals(detailDO.getSoLine())
&&deliver.getItemCode().equals(detailDO.getItemCode())&&
deliver.getBatch().equals(detailDO.getBatch())&&
deliver.getPackingNumber().equals(detailDO.getPackingNumber())){
detailDO.setQty(deliver.getQty());
detailDO.setUom(deliver.getUom());
}
else{
throw new UtilException("销售订单号"+detailDO.getSoNumber()+"销售订单行"+detailDO.getSoLine()
+"物料代码"+detailDO.getItemCode()+"批次"+detailDO.getBatch()+"箱码"+detailDO.getPackingNumber()+"不在发货记录单"
+createReqVO.getDeliverRecordNumber()+"中");
}
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
CustomersettleRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = CustomersettleRequestDetailConvert.INSTANCE.convert1(detailDO);
CustomersettleRequestImportErrorVO importVO = CustomersettleRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO);
if (!messageMain.equals("") || !messageDetail.equals("")) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
} else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
}
}
CustomersettleRequestMainDO createobj = CustomersettleRequestMainConvert.INSTANCE.convert(createReqVO);
if (errorList.isEmpty()) {
CustomersettleRequestMainDO existCustomersettleRequestMainDO = customersettleRequestMainMapper.selectByDeliverrecordnumberAndSupplierCode(createReqVO.getDeliverRecordNumber());
if (existCustomersettleRequestMainDO == null && mode != 3) {
customersettleRequestMainMapper.insert(createobj);
customersettleRequestDetailMapper.insertBatch(subDOList);
} else if (existCustomersettleRequestMainDO != null && mode != 2) {
customersettleRequestMainMapper.updateById(createobj);
customersettleRequestDetailMapper.updateBatch(subDOList);
}
}
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
}

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java

@ -2,7 +2,6 @@ package com.win.module.wms.service.deliverRecord;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainCreateReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExportReqVO;
@ -93,4 +92,23 @@ public interface DeliverRecordMainService {
*/
List<DeliverRecordMainDO> getDeliverRecordMainList(DeliverRecordMainExportReqVO exportReqVO);
/**
* Record-----QProdD_Main
* 校验成品发货记录
* author lianhongxi
* @param pnumber 单据号
* @return
*/
DeliverRecordMainDO selectsMainRecordExist(String pnumber);
/**
* Record-----QProdD_Detail
* 查询成品发货记录子表
* author lianhongxi
* @param pnumber 单据号
* @return
*/
List <DeliverRecordDetailDO> selectsDeliverRecordExist(String pnumber);
}

29
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExportReq
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainPageReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.dal.mysql.deliverRecord.DeliverRecordDetailMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -98,6 +99,34 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService {
}
}
@Override
public DeliverRecordMainDO selectsMainRecordExist(String pnumber){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("number",pnumber);
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainMapper.selectOne(queryWrapper);
if(deliverRecordMainDO != null && "TRUE".equals(deliverRecordMainDO.getAvailable())){
return deliverRecordMainDO;
}
else{
throw new UtilException( "发货记录无效"+pnumber+"无效");
}
}
@Override
public List <DeliverRecordDetailDO> selectsDeliverRecordExist(String pnumber) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.in("number",pnumber);
List <DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordDetailMapper.selectList(queryWrapper);
if(!deliverRecordDetailDO.isEmpty()) {
for (DeliverRecordDetailDO detail : deliverRecordDetailDO) {
if (detail != null && "TRUE".equals(detail.getAvailable())) {
return deliverRecordDetailDO;
} else {
throw new UtilException("发货记录明细:单据号" + pnumber + "无效");
}
}
}
return null;
}
@Override
public List<DeliverRecordMainDO> getDeliverRecordMainList(Collection<Long> ids) {
return deliverRecordMainMapper.selectBatchIds(ids);
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainService.java

@ -4,10 +4,9 @@ import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainCreateReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExportReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainPageReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainUpdateReqVO;
import com.win.module.wms.controller.deliverRequest.vo.*;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.framework.common.pojo.PageResult;
@ -81,4 +80,7 @@ public interface DeliverRequestMainService {
*/
List<DeliverRequestMainDO> getDeliverRequestMainList(DeliverRequestMainExportReqVO exportReqVO);
public List<DeliverRequestImportErrorVO> importDeliverRequestList(List<DeliverRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

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

@ -1,24 +1,48 @@
package com.win.module.wms.service.deliverRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainCreateReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExportReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainPageReqVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainUpdateReqVO;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.deliverRequest.vo.*;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO;
import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.customer.*;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.Validator;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.deliverRequest.DeliverRequestMainConvert;
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import com.win.module.wms.service.deliverJob.*;
/**
* 发货申请主 Service 实现类
@ -32,6 +56,29 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
@Resource
private DeliverRequestMainMapper deliverRequestMainMapper;
@Resource
private DeliverRequestDetailMapper deliverRequestDetailMapper;
@Resource
private JobUtils jobUtils;
@Resource
private ItembasicService itembasicService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private Validator validator;
@Resource
private DictDataApi dictDataApi;
@Resource
private CustomerService customerService;
@Resource
private RequestsettingService requestsettingService;
@Resource
private DeliverJobMainService deliverJobMainService;
@Override
public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) {
// 插入
@ -88,5 +135,127 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
public List<DeliverRequestMainDO> getDeliverRequestMainList(DeliverRequestMainExportReqVO exportReqVO) {
return deliverRequestMainMapper.selectList(exportReqVO);
}
public String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel();
if(uom2.equals(value)){
return "ture";
}else {
throw new UtilException("计量单位"+uom2+"错误,应该是"+value);
}
}
public String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty,String sonumber,String soline,String itemcode) {
BigDecimal resultqty = orderqty.subtract(shippedqty);
if( resultqty.compareTo(detailqty)>0 )
return "TURE";
else{
throw new UtilException("发货数量"+detailqty+"大于订单号"+sonumber+"、订单行"+soline+"、物品代码"+itemcode+"的未发货数量"+ resultqty );
}
}
@Override
@Transactional
public List<DeliverRequestImportErrorVO> importDeliverRequestList(List<DeliverRequestMainCreateReqVO> datas, Integer mode, boolean updatePart){
if (CollUtil.isEmpty(datas)) {
throw exception(DELIVER_REQUEST_NOT_EXISTS);
}
List<DeliverRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String messageMain = "";
BusinesstypeDO businesstypeDO = null;
try{
customerService.selectCustomerExist(createReqVO.getCustomerCode());
}catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
createReqVO.setRequestTime(LocalDateTime.now());
try {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest");
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes());
createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes());
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, createReqVO);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode());
createReqVO.setNumber(number);
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList);
for (DeliverRequestDetailDO detailDO : subDOList) {
String messageDetail = "";
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setItemName(itembasicDO.getName());
detailDO.setProjectCode(itembasicDO.getProject());
try{
Isuom(itembasicDO.getUom(),detailDO.getUom());
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(detailDO.getSoNumber(),detailDO.getSoLine(),detailDO.getItemCode());
try{
if(saleDetailDO!=null){
Isqty(saleDetailDO.getShippedQty(),detailDO.getQty(),saleDetailDO.getOrderQty(),detailDO.getSoNumber(),detailDO.getSoLine(),detailDO.getItemCode());
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
DeliverRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = DeliverRequestDetailConvert.INSTANCE.convert1(detailDO);
DeliverRequestImportErrorVO importVO = DeliverRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO);
if (!messageMain.equals("") || !messageDetail.equals("")) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
} else {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
}
}
DeliverRequestMainDO createobj = DeliverRequestMainConvert.INSTANCE.convert(createReqVO);
if (errorList.isEmpty()) {
DeliverRequestMainDO existDeliverRequestMainDO = deliverRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getCustomerCode());
if (existDeliverRequestMainDO == null && mode != 3) {
deliverRequestMainMapper.insert(createobj);
deliverRequestDetailMapper.insertBatch(subDOList);
} else if (existDeliverRequestMainDO != null && mode != 2) {
deliverRequestMainMapper.updateById(createobj);
deliverRequestDetailMapper.updateBatch(subDOList);
}
}
});
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/enterprise/EnterpriseServiceImpl.java

@ -17,7 +17,7 @@ import com.win.module.wms.convert.enterprise.EnterpriseConvert;
import com.win.module.wms.dal.mysql.enterprise.EnterpriseMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.ENTERPRISE_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 企业 Service 实现类

172
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java

@ -1,26 +1,45 @@
package com.win.module.wms.service.inventoryinitRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.util.*;
import com.win.module.wms.service.requestsetting.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestDetailConvert;
import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestDetailMapper;
import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestMainMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
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 java.util.*;
import com.win.module.wms.service.itembasic.*;
import com.win.module.wms.service.location.*;
import com.win.module.wms.service.itempackaging.*;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import com.win.module.wms.service.recordsetting.*;
/**
* 库存初始化申请主 Service 实现类
@ -33,8 +52,30 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
@Resource
private InventoryinitRequestMainMapper inventoryinitRequestMainMapper;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
@Resource
private JobUtils jobUtils;
@Resource
private RecordsettingService recordsettingService;
@Resource
private InventoryinitRequestDetailMapper inventoryinitRequestDetailMapper;
@Resource
private ItempackagingService itempackagingService;
@Resource
private LocationService locationService;
@Resource
private ItembasicService itembasicService;
@Override
public Long createInventoryinitRequestMain(InventoryinitRequestMainCreateReqVO createReqVO) {
@ -67,7 +108,16 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
throw exception(INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS);
}
}
private void validatesInventoryinitRequestMainExists(Long id) {
if (id == null) {
return;
}
InventoryinitRequestMainDO inventoryinitRequestMainDO = inventoryinitRequestMainMapper.selectById(id);
if (inventoryinitRequestMainDO == null) {
throw exception(INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS);
}
}
@Override
public InventoryinitRequestMainDO getInventoryinitRequestMain(Long id) {
return inventoryinitRequestMainMapper.selectById(id);
@ -91,35 +141,119 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
return inventoryinitRequestMainMapper.selectList(exportReqVO);
}
@Override
@Transactional
public List<InventoryinitRequestMainImportErrorVO> importInventoryinitRequestMainList(List<InventoryinitRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<InventoryinitRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String message = "";
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
boolean isError = false;
// try {
// if(mode != null){
// validatePurchaseclaimRequestMainExists(null);
// }
// } catch (ServiceException ex) {
// isError = true;
// importRemark += ex.getMessage() + ",";
// }
InventoryinitRequestMainDO createObj = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
inventoryinitRequestMainMapper.insert(createObj);
if(mode != null) {
try {
validatesInventoryinitRequestMainExists(null);
} catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
}
try {
RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
createReqVO.setAutoAgree(requestsetting.getAutoAgree());
createReqVO.setAutoCommit(requestsetting.getAutoCommit());
createReqVO.setAutoExecute(requestsetting.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsetting.getDirectCreateRecord());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
try {
BusinesstypeDO businesstype = jobUtils.selectDocumentSettingFromBusinessType("InventoryInitialRequest");
createReqVO.setBusinessType(businesstype.getCode());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
List<InventoryinitRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InventoryinitRequestDetailDO> subDOList = InventoryinitRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据
for (InventoryinitRequestDetailDO detailDO : subDOList) {
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
detailDO.setNumber(createReqVO.getNumber());
try{
LocationDO location = locationService.selectLocation(detailDO.getLocationCode());
detailDO.setAreaCode(location.getAreaCode());
detailDO.setLocationCode(location.getCode());
detailDO.setLocationGroupCode(location.getLocationGroupCode());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
try{
//TODO 传入的实体里没有itemcode detailDO.getItemCode()
ItembasicDO itembasic = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasic.getDesc1());
detailDO.setItemDesc2(itembasic.getDesc2());
detailDO.setItemName(itembasic.getName());
detailDO.setUom(itembasic.getUom());
detailDO.setProjectCode(itembasic.getProject());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
try{
//TODO 传入的实体里没有itemcode detailDO.getItemCode()
ItempackagingDO itempackaging = itempackagingService.selectItemPackagingExist(detailDO.getItemCode());
detailDO.setStdPackUnit(itempackaging.getStdPackUnit());
detailDO.setStdPackQty(itempackaging.getStdPackQty());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
if(isError){
InventoryinitRequestMainImportErrorVO importVO = InventoryinitRequestDetailConvert.INSTANCE.convert(createReqVO,detailDO);
importVO.setImportStatus("失败");
importVO.setImportRemark(message.substring(0, message.length() - 1));
errorList.add(importVO);
}else{
if(mode != 3) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
InventoryinitRequestMainDO createObj = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
inventoryinitRequestMainMapper.insert(createObj);
inventoryinitRequestDetailMapper.insertBatch(subDOList);
}
else if( mode != 2){
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
InventoryinitRequestMainDO createObj = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
inventoryinitRequestMainMapper.updateById(createObj);
inventoryinitRequestDetailMapper.updateBatch(subDOList);
}
}
}
inventoryinitRequestDetailMapper.insertBatch(subDOList);
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java

@ -1,13 +1,12 @@
package com.win.module.wms.service.issueRequest;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
import com.win.framework.common.pojo.PageResult;
/**
* 发料申请主 Service 接口

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

@ -2,39 +2,27 @@ package com.win.module.wms.service.issueRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestImportErrorVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO;
import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.issueRequest.IssueRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.productionlineitem.ProductionlineitemService;
@ -96,23 +84,31 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
private RuleService ruleService;
@Resource
private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Override
public Long createIssueRequestMain(IssueRequestMainCreateReqVO createReqVO) {
// 插入
IssueRequestMainDO issueRequestMain = IssueRequestMainConvert.INSTANCE.convert(createReqVO);
issueRequestMainMapper.insert(issueRequestMain);
// 返回
return issueRequestMain.getId();
RequestsettingDO requestsettingDO = new RequestsettingDO();
IssueRequestMainDO issueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(issueRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE);
return issueRequestMainDO.getId();
}
@Override
public void updateIssueRequestMain(IssueRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = new RequestsettingDO();
// 校验存在
validateIssueRequestMainExists(updateReqVO.getId());
// 更新
IssueRequestMainDO updateObj = IssueRequestMainConvert.INSTANCE.convert(updateReqVO);
issueRequestMainMapper.updateById(updateObj);
IssueRequestMainDO issueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(issueRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE);
}
@Override
@ -247,101 +243,79 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
}
//新增校验
private void validatorToCreate(IssueRequestMainCreateReqVO createReqVO) {
IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(createReqVO);
//主表校验
this.validatorWorkshop(issueRequestMainDO.getWorkshopCode());
issueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
issueRequestMainDO.setRequestTime(LocalDateTime.now());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest");
issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest");
issueRequestMainDO.setBusinessType(businesstypeDO.getCode());
issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
issueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
issueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
issueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
issueRequestMainDO.setNumber(number);
issueRequestMainMapper.insert(issueRequestMainDO);
private IssueRequestMainDO validatorToCreate(IssueRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
IssueRequestMainDO issueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<IssueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<IssueRequestDetailDO> subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList);
for (IssueRequestDetailDO issueRequestDetailDO : subDOList) {
ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode());
this.validatorIfInType(itembasicDO.getType(), businesstypeDO);
this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom());
ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode());
issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode());
WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode());
issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode());
this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode());
RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null);
if (grounding == null) {
throw exception(555, "未查找到该条上架策略");
} else {
JSONObject json = JSONUtil.parseObj(grounding);
String locationCode = json.get("LocationCode").toString();
this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode);
}
validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
issueRequestMainDO.setNumber(number);
issueRequestMainMapper.insert(issueRequestMainDO);
for (IssueRequestDetailDO issueRequestDetailDO : subDOList) {
issueRequestDetailDO.setMasterId(issueRequestMainDO.getId());
issueRequestDetailDO.setNumber(number);
issueRequestDetailMapper.insertBatch(subDOList);
issueRequestDetailDO.setNumber(issueRequestMainDO.getNumber());
}
issueRequestDetailMapper.insertBatch(subDOList);
return issueRequestMainDO;
}
//修改校验
private void validatorToUpdate(IssueRequestMainUpdateReqVO updateReqVO) {
IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(updateReqVO);
//主表校验
validateIssueRequestMainExists(updateReqVO.getId());
private IssueRequestMainDO validatorToUpdate(IssueRequestMainUpdateReqVO updateReqVO,RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
IssueRequestMainDO issueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<IssueRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<IssueRequestDetailDO> subDOList = IssueRequestDetailConvert.INSTANCE.convertList05(subList);
for (IssueRequestDetailDO issueRequestDetailDO : subDOList) {
validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO);
}
issueRequestMainMapper.updateById(issueRequestMainDO);
issueRequestDetailMapper.updateBatch(subDOList);
return issueRequestMainDO;
}
//校验主表公共方法(适用于新增/修改)
private IssueRequestMainDO validateMainMethod(IssueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){
IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(baseVO);
validateIssueRequestMainExists(baseVO.getId());
this.validatorWorkshop(issueRequestMainDO.getWorkshopCode());
issueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
issueRequestMainDO.setRequestTime(LocalDateTime.now());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest");
requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest");
issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest");
issueRequestMainDO.setBusinessType(businesstypeDO.getCode());
issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
issueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
issueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
issueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
issueRequestMainDO.setNumber(number);
issueRequestMainMapper.insert(issueRequestMainDO);
//子表校验
List<IssueRequestDetailCreateReqVO> subList = updateReqVO.getSubList();
List<IssueRequestDetailDO> subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList);
for (IssueRequestDetailDO issueRequestDetailDO : subDOList) {
validateIssueRequestDetailExists(issueRequestDetailDO.getId());
ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode());
this.validatorIfInType(itembasicDO.getType(), businesstypeDO);
this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom());
ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode());
issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode());
WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode());
issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode());
this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode());
RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null);
if (grounding == null) {
throw exception(555, "未查找到该条上架策略");
} else {
JSONObject json = JSONUtil.parseObj(grounding);
String locationCode = json.get("LocationCode").toString();
this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode);
}
issueRequestDetailDO.setMasterId(issueRequestMainDO.getId());
issueRequestDetailDO.setNumber(number);
issueRequestDetailMapper.insertBatch(subDOList);
return issueRequestMainDO;
}
//校验子表公共方法(适用于新增/修改)
private void validateDetailMethod(IssueRequestDetailDO issueRequestDetailDO,BusinesstypeDO businesstypeDO,IssueRequestMainDO issueRequestMainDO) {
ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode());
this.validatorIfInType(itembasicDO.getType(), businesstypeDO);
this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom());
ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode());
issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode());
WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode());
issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode());
this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode());
RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null);
if (grounding == null) {
throw exception(555, "未查找到该条上架策略");
} else {
JSONObject json = JSONUtil.parseObj(grounding);
String locationCode = json.get("LocationCode").toString();
this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode);
}
}
/**
* 校验导入并赋值一些参数
*
@ -408,13 +382,13 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService {
message.append(ex.getMessage()).append(",");
}
try {
ProductionlineDO productionlineDO = validatorProductionLineCode(detailDo.getProductionLineCode());
ProductionlineDO productionlineDO = this.validatorProductionLineCode(detailDo.getProductionLineCode());
detailDo.setToLocationCode(productionlineDO.getRawLocationCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
WorkstationDO workstationDO = validatorWorkstation(detailDo.getWorkStationCode(), mainDo.getWorkshopCode(), detailDo.getProductionLineCode());
WorkstationDO workstationDO = this.validatorWorkstation(detailDo.getWorkStationCode(), mainDo.getWorkshopCode(), detailDo.getProductionLineCode());
detailDo.setToLocationCode(workstationDO.getRawLocationCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");

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

@ -1,5 +1,4 @@
package com.win.module.wms.service.itembasic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -17,12 +16,10 @@ import com.win.module.wms.dal.mysql.itembasic.ItembasicMapper;
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.*;

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

@ -223,7 +223,7 @@ public class ItempackagingServiceImpl implements ItempackagingService {
@Override
public ItempackagingDO selectItemPackagingExist(String pitemCode){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("itemcode",pitemCode);
queryWrapper.eq("item_code",pitemCode);
ItempackagingDO itempackagingDO = itempackagingMapper.selectOne(queryWrapper);
if(itempackagingDO != null && "TRUE".equals(itempackagingDO.getAvailable())){
return itempackagingDO;

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

@ -2,10 +2,7 @@ package com.win.module.wms.service.productputawayRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainExportReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainPageReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.*;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import javax.validation.Valid;
@ -81,4 +78,23 @@ public interface ProductputawayRequestMainService {
* @return 分页列表
*/
PageResult<ProductputawayRequestMainDO> getProductputawayRequestMainSenior(CustomConditions conditions);
/**
* 批量导入物品基本信息
*
* @param importProductputaways 导入物品基本信息列表
* @param updatePart 是否支持更新
* @return 导入结果
*/
List<ProductputawayImportExcelVO> importProductputawayList(List<ProductputawayImportExcelVO> importProductputaways, Integer mode, boolean updatePart);
/**
* 批量导入采购索赔申请主信息
*
* @param datas 导入采购索赔申请主信息列表
* @param mode 导入模式1更新2追加3覆盖
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<ProductputawayImportErrorVO> importProductputawayRequestList(List<ProductputawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

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

@ -1,24 +1,47 @@
package com.win.module.wms.service.productputawayRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainExportReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainPageReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productputawayRequest.vo.*;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.service.businesstype.*;
import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import com.win.module.wms.convert.productputawayRequest.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import com.win.module.wms.service.location.*;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import com.win.module.wms.service.recordsetting.*;
import com.win.module.wms.service.itembasic.*;
/**
* 制品上架申请主 Service 实现类
@ -31,7 +54,31 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
@Resource
private ProductputawayRequestMainMapper productputawayRequestMainMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private ProductputawayRequestDetailMapper productputawayRequestDetailMapper;
@Resource
private ItembasicService itembasicService;
@Resource
private JobUtils jobUtils;
@Resource
private BusinesstypeService businesstypeService;
@Resource
private LocationService locationService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private DictDataApi dictDataApi;
@Override
public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) {
// 插入
@ -88,4 +135,193 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
public PageResult<ProductputawayRequestMainDO> getProductputawayRequestMainSenior(CustomConditions conditions) {
return productputawayRequestMainMapper.selectSenior(conditions);
}
@Override
@Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入
public List<ProductputawayImportExcelVO> importProductputawayList(List<ProductputawayImportExcelVO> importProductputaways, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(importProductputaways)) {
throw exception(WORKSTATION_IMPORT_LIST_IS_EMPTY);
}
List<ProductputawayImportExcelVO> errorList = new ArrayList<>();
importProductputaways.forEach(productputaway -> {
String massage = "";
// 校验,判断是否有不符合的原因
if(mode != null){
try{
validateProductputawayExists(null);
} catch(Exception ex){
massage += ex.getMessage() + ",";
}
if(StrUtil.isNotEmpty(massage)){
massage.substring(0,massage.length()-1);
errorList.add(productputaway);
}
// 判断如果不存在,在进行插入
if(errorList == null){
ProductputawayRequestMainDO existAccountcalendar = productputawayRequestMainMapper.selectByNumber(productputaway.getPackingNumber());
if (existAccountcalendar == null&& mode != 3) {
productputawayRequestMainMapper.insert(ProductputawayRequestMainConvert.INSTANCE.convert(productputaway));
}
else if (existAccountcalendar != null && mode != 2) {// 如果存在,判断是否允许更新
ProductputawayRequestMainDO productputawayDo = ProductputawayRequestMainConvert.INSTANCE.convert(productputaway);
productputawayDo.setId(existAccountcalendar.getId());
productputawayRequestMainMapper.updateById(productputawayDo);
}
}
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateproductputawayForCreateOrUpdate(Long id,String code,String workshopCode,String productionLineCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
// 校验code唯一
});
}
@VisibleForTesting
private void validateProductputawayExists(Long id) {
if (id == null) {
return;
}
ProductputawayRequestMainDO productputaway = productputawayRequestMainMapper.selectById(id);
if (productputaway == null) {
throw exception(PRODUCTPUTAWAY_REQUEST_NOT_EXISTS);
}
}
public String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel();
if(uom2.equals(value)){
return "ture";
}else {
throw new UtilException("计量单位"+uom2+"错误,应该是"+value);
}
}
public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){
return "ture";
} else {
throw new UtilException("上架数量"+qty2+ "不能大于库存数量"+ qty1);
}
}
public List<ProductputawayImportErrorVO> importProductputawayRequestList(List<ProductputawayRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PRODUCTPUTAWAY_REQUEST_NOT_EXISTS);
}
List<ProductputawayImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String massage = "";
boolean isError = false;
RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest");
createReqVO.setAutoCommit(requestsetting.getAutoCommit());
createReqVO.setAutoAgree(requestsetting.getAutoAgree());
createReqVO.setAutoExecute(requestsetting.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsetting.getDirectCreateRecord());
List<ProductputawayRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductputawayRequestDetailDO> subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据
for (ProductputawayRequestDetailDO detailDO : subDOList) {
if (mode != null) {
try {
validateProductputawayExists(null);
} catch (Exception ex) {
massage += ex.getMessage() + ",";
}
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
try {
ItembasicDO item = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(item.getDesc1());
detailDO.setItemDesc2(item.getDesc2());
detailDO.setItemName(item.getName());
detailDO.setProjectCode(item.getProject());
try{
Isuom(item.getUom(),detailDO.getUom());
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
} catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
try{
locationService.selectLocation(detailDO.getFromLocationCode());
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
try{
BusinesstypeDO bus = businesstypeService.selectBusinesstypeExist("ProductPutawayRequest");
createReqVO.setBusinessType(bus.getCode());
createReqVO.setFromLocationTypes(bus.getOutLocationTypes());
createReqVO.setToLocationTypes(bus.getInLocationTypes());
createReqVO.setFromAreaCodes(bus.getOutAreaCodes());
createReqVO.setToAreaCodes(bus.getInAreaCodes());
//TODO TB ---TB1 效验业务类型相关属性
try{
jobUtils.ifInToLocationType(detailDO.getFromLocationCode(),bus);
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDO.getInventoryStatus());
String value = dictDataRespDTO.getValue();
String[] businessArray = value.split(",");
List<String> business = Arrays.asList(businessArray);
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(), detailDO.getPackingNumber(),
detailDO.getBatch(), detailDO.getFromLocationCode(), business);
try{
BalanceDO blance1 = balance.get(0);
isqty(detailDO.getQty(),blance1.getQty());
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
if(isError) {
ProductputawayImportErrorVO importVO = ProductputawayRequestDetailConvert.INSTANCE.convert(createReqVO,detailDO);
importVO.setImportStatus("失败");
importVO.setImportRemark(massage.substring(0, massage.length() - 1));
errorList.add(importVO);
}
if(!isError) {
if( mode != 3) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
ProductputawayRequestMainDO createObj = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO);
productputawayRequestMainMapper.insert(createObj);
productputawayRequestDetailMapper.insertBatch(subDOList);
}
else if(mode != 2){
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
ProductputawayRequestMainDO createObj = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO);
productputawayRequestMainMapper.updateById(createObj);
productputawayRequestDetailMapper.updateBatch(subDOList);
}
}
}
}
});
return errorList;
}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java

@ -1,6 +1,13 @@
package com.win.module.wms.service.productscrapRequest;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
@ -80,11 +87,12 @@ public interface ProductscrapRequestMainService {
/**
* 批量导入采购索赔申请主信息
*
* @param datas 导入采购索赔申请主信息列表
* @param mode 导入模式1更新2追加3覆盖
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<ProductscrapRequestMainImportErrorVO> importProductscrapRequestMainList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
public List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

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

@ -1,7 +1,43 @@
package com.win.module.wms.service.productscrapRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.dal.mysql.productscrapRequest.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import com.win.module.wms.service.itembasic.ItembasicService.*;
import java.math.BigDecimal;
import java.util.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
@ -19,8 +55,7 @@ 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.PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 制品报废申请主 Service 实现类
@ -37,6 +72,19 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
@Resource
private ProductscrapRequestDetailMapper productscrapRequestDetailMapper;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private DictDataApi dictDataApi;
@Resource
private JobUtils jobUtils;
@Resource
private ItembasicService itembasicService;
@Resource
private RequestsettingService requestsettingService;
@Override
public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) {
// 插入
@ -46,6 +94,18 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
return productscrapRequestMain.getId();
}
@VisibleForTesting
private void validateProductscrapExists(Long id) {
if (id == null) {
return;
}
ProductscrapRequestMainDO productscrap = productscrapRequestMainMapper.selectById(id);
if (productscrap == null) {
throw exception(PRODUCTSCRAP_REQUEST_NOT_EXISTS);
}
}
@Override
public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) {
// 校验存在
@ -91,37 +151,141 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
public List<ProductscrapRequestMainDO> getProductscrapRequestMainList(ProductscrapRequestMainExportReqVO exportReqVO) {
return productscrapRequestMainMapper.selectList(exportReqVO);
}
@Override
public List<ProductscrapRequestMainImportErrorVO> importProductscrapRequestMainList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
public String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel();
if(uom2.equals(value)){
return "ture";
}else {
throw new UtilException("计量单位"+uom2+"错误,应该是"+value);
}
}
public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){
return "ture";
} else {
throw new UtilException("上架数量"+qty2+ "不能大于库存数量"+ qty1);
}
}
public List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
throw exception(PRODUCTSCRAP_REQUEST_NOT_EXISTS);
}
List<ProductscrapRequestMainImportErrorVO> errorList = new ArrayList<>();
List<ProductscrapRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String massage = "";
boolean isError = false;
// try {
// if(mode != null){
// validatePurchaseclaimRequestMainExists(null);
// }
// } catch (ServiceException ex) {
// isError = true;
// importRemark += ex.getMessage() + ",";
// }
ProductscrapRequestMainDO createObj = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO);
productscrapRequestMainMapper.insert(createObj);
List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据
for (ProductscrapRequestDetailDO detailDO : subDOList) {
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
detailDO.setNumber(createReqVO.getNumber());
if (mode != null) {
try{
validateProductscrapExists(null);
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
try{
ItembasicDO itembasic = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasic.getDesc1());
detailDO.setItemDesc2(itembasic.getDesc2());
detailDO.setItemName(itembasic.getName());
detailDO.setProjectCode(itembasic.getProject());
try{
Isuom(detailDO.getUom(),itembasic.getUom());
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
try{
BusinesstypeDO businesstype = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
createReqVO.setBusinessType(businesstype.getCode());
createReqVO.setFromLocationTypes(businesstype.getInLocationTypes());
createReqVO.setFromAreaCodes(businesstype.getInAreaCodes());
try{
jobUtils.selectItembasicExist(itembasic.getType(),businesstype);
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
try{
jobUtils.ifInToLocationType(detailDO.getFromLocationCode(),businesstype);
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
try{
jobUtils.ifOutInventoryStatuses(detailDO.getInventoryStatus(),businesstype);
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
try{
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDO.getInventoryStatus());
String value = dictDataRespDTO.getValue();
String[] businessArray = value.split(",");
List<String> business = Arrays.asList(businessArray);
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(),detailDO.getPackingNumber(),
detailDO.getBatch(),detailDO.getFromLocationCode(),business);
try{
BalanceDO blance1 = balance.get(0);
isqty(detailDO.getQty(),blance1.getQty());
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
}catch (Exception ex) {
isError = true;
massage += ex.getMessage() + ",";
}
if(isError) {
ProductscrapRequestImportErrorVO importVO = ProductscrapRequestDetailConvert.INSTANCE.convert(createReqVO,detailDO);
importVO.setImportStatus("失败");
importVO.setImportRemark(massage.substring(0, massage.length() - 1));
errorList.add(importVO);
}
if(!isError) {
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
}
if(!errorList.isEmpty()){
// 判断如果不存在,在进行插入
RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("ProductPutawayRequest");
if(requestsetting != null) {
createReqVO.setAutoCommit(requestsetting.getAutoCommit());
createReqVO.setAutoAgree(requestsetting.getAutoAgree());
createReqVO.setAutoExecute(requestsetting.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsetting.getDirectCreateRecord());
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
ProductscrapRequestMainDO createObj = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO);
productscrapRequestMainMapper.insert(createObj);
productscrapRequestDetailMapper.insertBatch(subDOList);
}
}
}
productscrapRequestDetailMapper.insertBatch(subDOList);
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
}

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

@ -183,11 +183,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try{
ValidationUtils.validate(validator,createReqVO);
}catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
try {
supplierService.selectSupplier(createReqVO.getSupplierCode());
} catch (Exception ex) {
@ -228,6 +224,11 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try{
ValidationUtils.validate(validator,createReqVO);
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO);
PurchaseclaimRequestImportErrorVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseclaimRequestDetailCreateReqVO);
//进行子表的错误统计
@ -244,6 +245,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_REQUEST.getCode());
createReqVO.setNumber(number);
}
}
if(errorList.isEmpty()){
// 判断如果不存在,在进行插入

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRecord/SupplierdeliverRecordMainService.java

@ -90,5 +90,5 @@ public interface SupplierdeliverRecordMainService {
* @param ppoLine 订单行
* @return 供应商发货记录子
*/
public SupplierdeliverRecordDetailDO selectSupplierdeliverRecordMainDO(String psupplierCode,String pnumber, String pitemCode, String ppoNumber, String ppoLine);
public SupplierdeliverRecordDetailDO selectSupplierdeliverRecordMainDO(String psupplierCode,String pasnNumber, String pitemCode, String ppoNumber, String ppoLine);
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRecord/SupplierdeliverRecordMainServiceImpl.java

@ -93,9 +93,9 @@ public class SupplierdeliverRecordMainServiceImpl implements SupplierdeliverReco
return supplierdeliverRecordMainMapper.selectList(exportReqVO);
}
@Override
public SupplierdeliverRecordDetailDO selectSupplierdeliverRecordMainDO(String psupplierCode,String pnumber, String pitemCode, String ppoNumber, String ppoLine) {
public SupplierdeliverRecordDetailDO selectSupplierdeliverRecordMainDO(String psupplierCode,String pasnNumber, String pitemCode, String ppoNumber, String ppoLine) {
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("number",pnumber);
queryWrapper.eq("asn_number",pasnNumber);
queryWrapper.eq("supplier_code",psupplierCode);
SupplierdeliverRecordMainDO supplierdeliverRecordMainDO = supplierdeliverRecordMainMapper.selectOne(queryWrapper);
if(supplierdeliverRecordMainDO != null && "TRUE".equals(supplierdeliverRecordMainDO.getAvailable())){
@ -104,7 +104,6 @@ public class SupplierdeliverRecordMainServiceImpl implements SupplierdeliverReco
queryWrapper1.eq("item_code",pitemCode);
queryWrapper1.eq("po_number",ppoNumber);
queryWrapper1.eq("po_line",ppoLine);
queryWrapper1.eq("number",pnumber);
SupplierdeliverRecordDetailDO supplierdeliverRecordDetailDO = supplierdeliverRecordDetailMapper.selectOne(queryWrapper1);
if(supplierdeliverRecordDetailDO != null){
return supplierdeliverRecordDetailDO;
@ -113,7 +112,7 @@ public class SupplierdeliverRecordMainServiceImpl implements SupplierdeliverReco
}
}else {
throw new UtilException( "发货订单无效" + pnumber + "无效");
throw new UtilException( "发货订单" + pasnNumber + "无效");
}
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/warehouse/WarehouseServiceImpl.java

@ -108,7 +108,7 @@ public class WarehouseServiceImpl implements WarehouseService {
try {
validateWarehouseExists(null);
} catch (ServiceException ex) {
massage += ex.getMessage() + ",";
massage += ex.getMessage() + ",";
}
try {
validateCodeExists(null,warehouse.getCode());

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

@ -374,7 +374,7 @@ public class JobUtils {
if (ifOutLocationType == true) {
return true;
} else {
throw new UtilException("出库库位" + plocationCode + "的库位类型" + locationDO.getType() + "与业务类型" +
throw new UtilException("出库库位" + plocationCode + "的库位类型" + locationDO.getType() + "与业务类型与业务类型" +
businesstypeDO.getName() + "的出库库位类型" + businesstypeDO.getOutLocationTypes() + "不一致");
}
}

Loading…
Cancel
Save