Browse Source

当前生成代码 导入功能 下载模板 功能代码编写

master
chenfang 2 years ago
parent
commit
b0c2b96ae6
  1. 3
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java
  2. 24
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 4
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/currencyexchange/ErrorCodeConstants.java
  4. 4
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/customer/ErrorCodeConstants.java
  5. 6
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/customerdock/ErrorCodeConstants.java
  6. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java
  7. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/AreabasicController.java
  8. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/bom/BomController.java
  9. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/businesstype/BusinesstypeController.java
  10. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/carrier/CarrierController.java
  11. 40
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/ConditionController.java
  12. 38
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionImportExcelVo.java
  13. 71
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configuration/ConfigurationController.java
  14. 34
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configuration/vo/ConfigurationImportExcelVo.java
  15. 79
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/ConfigurationsettingController.java
  16. 46
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationSettingImportExcelVo.java
  17. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/CurrencyexchangeController.java
  18. 48
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/vo/CurrencyexchangeImportExcelVo.java
  19. 45
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/CustomerController.java
  20. 83
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/vo/CustomerImportExcelVo.java
  21. 41
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/CustomerdockController.java
  22. 67
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/vo/CustomerdockImportExcelVo.java
  23. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java
  24. 36
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/WorkstationController.java
  25. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/vo/WorkstationImportExcelVo.java
  26. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/condition/ConditionConvert.java
  27. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/configuration/ConfigurationConvert.java
  28. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/configurationsetting/ConfigurationsettingConvert.java
  29. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/currencyexchange/CurrencyexchangeConvert.java
  30. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customer/CustomerConvert.java
  31. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerdock/CustomerdockConvert.java
  32. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customer/CustomerMapper.java
  33. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerdock/CustomerdockMapper.java
  34. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarServiceImpl.java
  35. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/areabasic/AreabasicServiceImpl.java
  36. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java
  37. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/businesstype/BusinesstypeServiceImpl.java
  38. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/carrier/CarrierServiceImpl.java
  39. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionService.java
  40. 114
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionServiceImpl.java
  41. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configuration/ConfigurationService.java
  42. 117
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configuration/ConfigurationServiceImpl.java
  43. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configurationsetting/ConfigurationsettingService.java
  44. 126
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configurationsetting/ConfigurationsettingServiceImpl.java
  45. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/currencyexchange/CurrencyexchangeService.java
  46. 99
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/currencyexchange/CurrencyexchangeServiceImpl.java
  47. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customer/CustomerService.java
  48. 113
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customer/CustomerServiceImpl.java
  49. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockService.java
  50. 115
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockServiceImpl.java
  51. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java
  52. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java
  53. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationService.java
  54. 90
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java

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

@ -54,6 +54,9 @@ public interface DictTypeConstants {
String WORK_STATION_TYPE = "work_station_type";//工位类型
String PROCESS_TYPE = "process_type";//工序类型
String STRATEGY_PARAM_OPEARTOR = "strategy_param_opeartor";//策略参数操作符 NULL >= <= == !=
String DATA_TYPE = "data_type";//策略参数操作符 NULL >= <= == !=
String STRATEGY_TYPE = "strategy_type";//策略参数操作符 NULL >= <= == !=

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

@ -10,13 +10,29 @@ import com.win.framework.common.exception.ErrorCode;
public interface ErrorCodeConstants {
ErrorCode RULE_NOT_EXISTS = new ErrorCode(1_045_000_000, "规则不存在");
//条件ErrorCode
ErrorCode CONDITION_NOT_EXISTS = new ErrorCode(1_046_000_000, "条件不存在");
ErrorCode CONDITION_STRATEG_CODE_NOT_EXISTS = new ErrorCode(1_046_000_001, "策略代码不存在");
ErrorCode CONDITION_RULE_CODE_NOT_EXISTS = new ErrorCode(1_046_000_002, "规则代码不存在");
ErrorCode CONDITION_PARAM_CODE_NOT_EXISTS = new ErrorCode(1_046_000_003, "参数不存在");
ErrorCode CONDITION_OPERATOR_NOT_EXISTS = new ErrorCode(1_046_000_004, "操作符不存在");
ErrorCode CONDITION_VALUE_NOT_EXISTS = new ErrorCode(1_046_000_005, "值不存在");
//配置ErrorCode
ErrorCode CONFIGURATION_NOT_EXISTS = new ErrorCode(1_047_000_000, "配置不存在");
ErrorCode CONFIGURATION_STRATEG_CODE_NOT_EXISTS = new ErrorCode(1_047_000_001, "策略代码不存在");
ErrorCode CONFIGURATION_RULE_CODE_NOT_EXISTS = new ErrorCode(1_047_000_002, "规则代码不存在");
ErrorCode CONFIGURATION_CONFIGURATION_CODE_NOT_EXISTS = new ErrorCode(1_047_000_002, "规则代码不存在");
ErrorCode CONFIGURATION_CONFIGURATION_VALUE_NOT_EXISTS = new ErrorCode(1_047_000_002, "规则代码不存在");
//配置设置ErrorCode
ErrorCode CONFIGURATIONSETTING_NOT_EXISTS = new ErrorCode(1_048_000_000, "配置设置不存在");
ErrorCode CONFIGURATIONSETTING_STRATEG_CODE_NOT_EXISTS = new ErrorCode(1_048_000_001, "策略代码不存在");
ErrorCode CONFIGURATIONSETTING_CONFIGURATION_CODE_NOT_EXISTS = new ErrorCode(1_048_000_002, "规则代码不存在");
ErrorCode CONFIGURATIONSETTING_CONFIGURATION_NAME_NOT_EXISTS = new ErrorCode(1_048_000_003, "规则名称不存在");
ErrorCode CONFIGURATIONSETTING_IS_REQUIRED_NOT_EXISTS = new ErrorCode(1_048_000_004, "是否必填不存在");
ErrorCode CONFIGURATIONSETTING_DATA_TYPE_NOT_EXISTS = new ErrorCode(1_048_000_005, "数据类型不存在");
ErrorCode CONFIGURATIONSETTING_VALUE_SCOPE_NOT_EXISTS = new ErrorCode(1_048_000_006, "值范围不存在");
//参数设置ErrorCode
ErrorCode PARAMSETTING_NOT_EXISTS = new ErrorCode(1_048_000_000, "参数设置不存在");
ErrorCode TRANSACTIONTYPE_NOT_EXISTS = new ErrorCode(1_049_000_000, "事务类型不存在");

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

@ -10,5 +10,9 @@ import com.win.framework.common.exception.ErrorCode;
public interface ErrorCodeConstants {
ErrorCode CURRENCYEXCHANGE_NOT_EXISTS = new ErrorCode(1_044_000_000, "货币转换不存在");
ErrorCode CURRENCYEXCHANGE_CURRENCY_NOT_EXISTS = new ErrorCode(1_044_000_001, "货币不存在");
ErrorCode CURRENCYEXCHANGE_BASICCURRENCY_NOT_EXISTS = new ErrorCode(1_044_000_002, "基础货币转换不存在");
ErrorCode CURRENCYEXCHANGE_RATE_NOT_EXISTS = new ErrorCode(1_044_000_003, "比率不存在");
ErrorCode CURRENCYEXCHANGE_AVAILABLE_NOT_EXISTS = new ErrorCode(1_044_000_004, "是否可用不存在");
}

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

@ -10,5 +10,9 @@ import com.win.framework.common.exception.ErrorCode;
public interface ErrorCodeConstants {
ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1_028_000_000, "客户不存在");
ErrorCode CUSTOMER_CODE_EXISTS = new ErrorCode(1_028_000_001, "code已存在");
ErrorCode CUSTOMER_CODE_NOT_EXISTS = new ErrorCode(1_028_000_002, "code不存在");
ErrorCode CUSTOMER_SHORTNAME_NOT_EXISTS = new ErrorCode(1_028_000_003, "简称不存在");
ErrorCode CUSTOMER_AVAILABLE_NOT_EXISTS = new ErrorCode(1_028_000_004, "是否可用不存在");
}

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

@ -11,4 +11,10 @@ public interface ErrorCodeConstants {
ErrorCode CUSTOMERDOCK_NOT_EXISTS = new ErrorCode(1_029_000_000, "客户月台不存在");
ErrorCode CUSTOMERDOCK_CODE_EXISTS = new ErrorCode(1_029_000_001, "code已存在");
ErrorCode CUSTOMERDOCK_CODE_NOT_EXISTS = new ErrorCode(1_029_000_002, "code不存在");
ErrorCode CUSTOMERDOCK_CUSTOMER_CODE_NOT_EXISTS = new ErrorCode(1_029_000_003, "客户代码不存在");
ErrorCode CUSTOMERDOCK_DEFAULT_LOCATION_CODE_NOT_EXISTS = new ErrorCode(1_029_000_004, "默认库位不存在");
ErrorCode CUSTOMERDOCK_AVAILABLE_NOT_EXISTS = new ErrorCode(1_029_000_005, "是否可用不存在");
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java

@ -23,6 +23,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
@ -128,6 +130,10 @@ public class AccountcalendarController {
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<AccountcalendarImportExcelVo> list = ExcelUtils.read(file, AccountcalendarImportExcelVo.class);
List<AccountcalendarImportExcelVo> errorList = accountcalendarService.importAccountcalendarList(list, mode, updatePart);
ExcelUtils.write(response, "账期日历导入错误数据.xls", "错误列表", AccountcalendarImportExcelVo.class, errorList);
}
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("账期日历导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/AreabasicController.java

@ -23,6 +23,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
@ -129,6 +131,10 @@ public class AreabasicController {
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<AreabasicImportExcelVo> list = ExcelUtils.read(file, AreabasicImportExcelVo.class);
List<AreabasicImportExcelVo> errorList = areabasicService.importAreabasicList(list, mode, updatePart);
ExcelUtils.write(response, "库区导入错误数据.xls", "错误列表", AreabasicImportExcelVo.class, errorList);
}
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("库区导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/bom/BomController.java

@ -23,6 +23,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
@ -120,13 +122,18 @@ public class BomController {
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:areabasic:import')")
@PreAuthorize("@ss.hasPermission('wms:bom:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<BomImportExcelVo> list = ExcelUtils.read(file, BomImportExcelVo.class);
List<BomImportExcelVo> errorList = bomService.importBomList(list, mode, updatePart);
ExcelUtils.write(response, "物料清单导入错误数据.xls", "错误列表", BomImportExcelVo.class, errorList);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("物料清单导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
}
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/businesstype/BusinesstypeController.java

@ -23,6 +23,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
@ -122,13 +124,17 @@ public class BusinesstypeController {
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:areabasic:import')")
@PreAuthorize("@ss.hasPermission('wms:businesstype:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<BusinesstypeImportExcelVo> list = ExcelUtils.read(file, BusinesstypeImportExcelVo.class);
List<BusinesstypeImportExcelVo> errorList = businesstypeService.importBusinesstypeList(list, mode, updatePart);
ExcelUtils.write(response, "业务类型导入错误数据.xls", "错误列表", BusinesstypeImportExcelVo.class, errorList);
}
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("业务类型导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/carrier/CarrierController.java

@ -23,6 +23,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
@ -125,6 +127,10 @@ public class CarrierController {
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<CarrierImportExcelVo> list = ExcelUtils.read(file, CarrierImportExcelVo.class);
List<CarrierImportExcelVo> errorList = carrierService.importCarrierList(list, mode, updatePart);
ExcelUtils.write(response, "承运商导入错误数据.xls", "错误列表", CarrierImportExcelVo.class, errorList);
}
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("承运商导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

40
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/ConditionController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.condition;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.condition.vo.*;
import com.win.module.wms.convert.condition.ConditionConvert;
import com.win.module.wms.dal.dataobject.condition.ConditionDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.condition.ConditionService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,36 @@ public class ConditionController {
List<ConditionExcelVO> datas = ConditionConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "条件.xls", "数据", ConditionExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入工位模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ConditionImportExcelVo> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] operator = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.STRATEGY_PARAM_OPEARTOR);
mapDropDown.put(3, operator);
// 输出
ExcelUtils.write(response, "工位导入模板.xls", "工位列表", ConditionImportExcelVo.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:condition:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ConditionImportExcelVo> list = ExcelUtils.read(file, ConditionImportExcelVo.class);
List<ConditionImportExcelVo> errorList = conditionService.importConditionList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("工位导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

38
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionImportExcelVo.java

@ -0,0 +1,38 @@
package com.win.module.wms.controller.condition.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ConditionImportExcelVo {
@ExcelProperty("策略代码")
private String strategyCode;
@ExcelProperty("规则代码")
private String ruleCode;
@ExcelProperty("参数")
private String paramCode;
@ExcelProperty(value = "操作符", converter = DictConvert.class)
@DictFormat(DictTypeConstants.STRATEGY_PARAM_OPEARTOR)
private String operator;
@ExcelProperty("值")
private String value;
@ExcelProperty("条件分组")
private String groupCode;
}

71
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configuration/ConfigurationController.java

@ -1,32 +1,32 @@
package com.win.module.wms.controller.configuration;
import com.win.module.wms.controller.configuration.vo.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.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.configuration.vo.*;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import com.win.module.wms.convert.configuration.ConfigurationConvert;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import com.win.module.wms.service.configuration.ConfigurationService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 配置")
@RestController
@ -99,4 +99,33 @@ public class ConfigurationController {
ExcelUtils.write(response, "配置.xls", "数据", ConfigurationExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入配置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ConfigurationImportExcelVo> list = Arrays.asList();
// 输出
ExcelUtils.write(response, "配置导入模板.xls", "配置列表", ConfigurationImportExcelVo.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:configuration:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ConfigurationImportExcelVo> list = ExcelUtils.read(file, ConfigurationImportExcelVo.class);
List<ConfigurationImportExcelVo> errorList = configurationService.importConfigurationList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("工位导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

34
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configuration/vo/ConfigurationImportExcelVo.java

@ -0,0 +1,34 @@
package com.win.module.wms.controller.configuration.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ConfigurationImportExcelVo {
@ExcelProperty("策略代码")
private String strategyCode;
@ExcelProperty("规则代码")
private String ruleCode;
@ExcelProperty("配置名称")
private String configurationCode;
@ExcelProperty("配置值")
private String configurationValue;
@ExcelProperty("描述")
private String value;
@ExcelProperty("配置分组")
private String groupCode;
}

79
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/ConfigurationsettingController.java

@ -1,32 +1,34 @@
package com.win.module.wms.controller.configurationsetting;
import com.win.module.wms.controller.configurationsetting.vo.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.configurationsetting.vo.*;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import com.win.module.wms.convert.configurationsetting.ConfigurationsettingConvert;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.configurationsetting.ConfigurationsettingService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 配置设置")
@RestController
@ -98,5 +100,40 @@ public class ConfigurationsettingController {
List<ConfigurationsettingExcelVO> datas = ConfigurationsettingConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "配置设置.xls", "数据", ConfigurationsettingExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入配置模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ConfigurationSettingImportExcelVo> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] strategyType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.STRATEGY_TYPE);
mapDropDown.put(0, strategyType);
String[] isRequired = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(3, isRequired);
String[] dataType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.DATA_TYPE);
mapDropDown.put(4, dataType);
// 输出
ExcelUtils.write(response, "配置导入模板.xls", "配置列表", ConfigurationSettingImportExcelVo.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:configurationsetting:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ConfigurationSettingImportExcelVo> list = ExcelUtils.read(file, ConfigurationSettingImportExcelVo.class);
List<ConfigurationSettingImportExcelVo> errorList = configurationsettingService.importConfigurationsettingList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("工位导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

46
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationSettingImportExcelVo.java

@ -0,0 +1,46 @@
package com.win.module.wms.controller.configurationsetting.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ConfigurationSettingImportExcelVo {
@ExcelProperty(value = "策略类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.STRATEGY_TYPE)
private String strategyType;
@ExcelProperty("配置代码")
private String configurationCode;
@ExcelProperty("配置名称")
private String configurationName;
@ExcelProperty(value = "必填", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String isRequired;
@ExcelProperty(value = "数据类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.DATA_TYPE)
private String dataType;
@ExcelProperty("值范围")
private String valueScope;
@ExcelProperty("关联到")
private String relatedTo;
@ExcelProperty("描述")
private String description;
}

42
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/CurrencyexchangeController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.currencyexchange;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.currencyexchange.vo.*;
import com.win.module.wms.convert.currencyexchange.CurrencyexchangeConvert;
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.currencyexchange.CurrencyexchangeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +100,38 @@ public class CurrencyexchangeController {
List<CurrencyexchangeExcelVO> datas = CurrencyexchangeConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "货币转换.xls", "数据", CurrencyexchangeExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入货币转换模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<CurrencyexchangeImportExcelVo> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY);
mapDropDown.put(0, currency);
String[] isRequired = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(3, isRequired);
// 输出
ExcelUtils.write(response, "货币转换导入模板.xls", "货币转换列表", CurrencyexchangeImportExcelVo.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:configurationsetting:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<CurrencyexchangeImportExcelVo> list = ExcelUtils.read(file, CurrencyexchangeImportExcelVo.class);
List<CurrencyexchangeImportExcelVo> errorList = currencyexchangeService.importCurrencyexchangeList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("货币转换导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

48
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/vo/CurrencyexchangeImportExcelVo.java

@ -0,0 +1,48 @@
package com.win.module.wms.controller.currencyexchange.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class CurrencyexchangeImportExcelVo {
@ExcelProperty(value = "货币", converter = DictConvert.class)
@DictFormat(DictTypeConstants.CURRENCY)
private String currency;
@ExcelProperty("基础货币")
private String basiccurrency;
@ExcelProperty("比率")
private BigDecimal rate;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty("生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty("失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

45
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/CustomerController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.customer;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.customer.vo.CustomerImportExcelVo;
import com.win.module.wms.controller.customer.vo.*;
import com.win.module.wms.convert.customer.CustomerConvert;
import com.win.module.wms.dal.dataobject.customer.CustomerDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.customer.CustomerService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +101,40 @@ public class CustomerController {
List<CustomerExcelVO> datas = CustomerConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "客户.xls", "数据", CustomerExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入客户模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<CustomerImportExcelVo> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY);
mapDropDown.put(11, currency);
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CUSTOMER_TYPE);
mapDropDown.put(13, type);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(14, available);
// 输出
ExcelUtils.write(response, "客户导入模板.xls", "客户列表", CustomerImportExcelVo.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:customer:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<CustomerImportExcelVo> list = ExcelUtils.read(file, CustomerImportExcelVo.class);
List<CustomerImportExcelVo> errorList = customerService.importCustomerList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("客户导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

83
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/vo/CustomerImportExcelVo.java

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

41
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/CustomerdockController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.customerdock;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.customer.vo.CustomerImportExcelVo;
import com.win.module.wms.controller.customerdock.vo.*;
import com.win.module.wms.convert.customerdock.CustomerdockConvert;
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.customerdock.CustomerdockService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -95,5 +101,36 @@ public class CustomerdockController {
List<CustomerdockExcelVO> datas = CustomerdockConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "客户月台.xls", "数据", CustomerdockExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入客户月台模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<CustomerdockImportExcelVo> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(10, available);
// 输出
ExcelUtils.write(response, "客户月台导入模板.xls", "客户月台列表", CustomerdockImportExcelVo.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:customer:import')")
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<CustomerdockImportExcelVo> list = ExcelUtils.read(file, CustomerdockImportExcelVo.class);
List<CustomerdockImportExcelVo> errorList = customerdockService.importCustomerdockList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("客户月台导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

67
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/vo/CustomerdockImportExcelVo.java

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

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java

@ -139,11 +139,7 @@ public class ItembasicController {
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ItembasicImportExcelVo> list = Arrays.asList(
// ItembasicImportExcelVo.builder().code("code").name("name").desc1("描述1").desc2("描述2").status("ENABLE").uom("EA").altUom("EA")
// .isStdPack("TRUE'").enableBuy("TRUE").enableMake("TRUE").enableOutsourcing("TRUE")
// .isRecycled("TRUE").isPhantom("TRUE").abcClass("A").type("OTS").category("DEFAULT").itemGroup("DEFAULT")
// .color("DEFAULT").configuration("DEFAULT").project("项目").eqLevel("DEFAULT").validityDays(1).available("TRUE")
// .activeTime(LocalDateTime.now()).expireTime(LocalDateTime.now()).remark("备注").build()
// ItembasicImportExcelVo.builder().code("code").name("name").build()
);
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.ITEM_STATUS);
@ -199,11 +195,11 @@ public class ItembasicController {
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ItembasicImportExcelVo> list = ExcelUtils.read(file, ItembasicImportExcelVo.class);
List<ItembasicImportExcelVo> errorList = itembasicService.importUserList(list, mode, updatePart);
List<ItembasicImportExcelVo> errorList = itembasicService.importItembasicList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("用户导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
String url = ExcelUtils.writeLocalFile("物品基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);

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

@ -2,11 +2,13 @@ package com.win.module.wms.controller.workstation;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.workstation.vo.*;
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;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -21,9 +23,9 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Arrays;
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;
@ -103,26 +105,34 @@ public class WorkstationController {
@Operation(summary = "获得导入用户模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<WorkstationImportExcelVo> list = Arrays.asList(
WorkstationImportExcelVo.builder().code("yunai")
.workshopCode("1").productionLineCode("1").available("TRUE").build());
List<WorkstationImportExcelVo> list = Arrays.asList();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.WORK_STATION_TYPE);
mapDropDown.put(3, type);
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(10, available);
// 输出
ExcelUtils.write(response, "用户导入模板.xls", "用户列表", WorkstationImportExcelVo.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"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:workstation:import')")
public CommonResult<WorkstationImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
public void importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<WorkstationImportExcelVo> list = ExcelUtils.read(file, WorkstationImportExcelVo.class);
return success(workstationService.importUserList(list, mode,updatePart));
}
List<WorkstationImportExcelVo> errorList = workstationService.importWorkstationList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("工位导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
returnMap.put("errorFile", url);
}}
}

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/vo/WorkstationImportExcelVo.java

@ -1,6 +1,7 @@
package com.win.module.wms.controller.workstation.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;
@ -10,6 +11,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@ -20,6 +23,12 @@ public class WorkstationImportExcelVo {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "类型", converter = DictConvert.class)
@DictFormat(DictTypeConstants.WORK_STATION_TYPE)
private String type;
@ -30,9 +39,26 @@ public class WorkstationImportExcelVo {
@ExcelProperty(value = "生产线代码")
private String productionLineCode;
@ExcelProperty(value = "原料库位")
private String rawLocationCode;
@ExcelProperty(value = "成品库位")
private String fgLocationCode;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "备注")
private String remark;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/condition/ConditionConvert.java

@ -1,10 +1,7 @@
package com.win.module.wms.convert.condition;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO;
import com.win.module.wms.controller.condition.vo.ConditionExcelVO;
import com.win.module.wms.controller.condition.vo.ConditionRespVO;
import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO;
import com.win.module.wms.controller.condition.vo.*;
import com.win.module.wms.dal.dataobject.condition.ConditionDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@ -24,6 +21,7 @@ public interface ConditionConvert {
ConditionDO convert(ConditionCreateReqVO bean);
ConditionDO convert(ConditionUpdateReqVO bean);
ConditionDO convert(ConditionImportExcelVo bean);
ConditionRespVO convert(ConditionDO bean);

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/configuration/ConfigurationConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.configuration;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.configuration.vo.ConfigurationCreateReqVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationExcelVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationRespVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationUpdateReqVO;
import com.win.module.wms.controller.configuration.vo.*;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import java.util.List;
/**
* 配置 Convert
@ -28,10 +24,11 @@ public interface ConfigurationConvert {
ConfigurationRespVO convert(ConfigurationDO bean);
ConfigurationDO convert(ConfigurationImportExcelVo configuration);
List<ConfigurationRespVO> convertList(List<ConfigurationDO> list);
PageResult<ConfigurationRespVO> convertPage(PageResult<ConfigurationDO> page);
List<ConfigurationExcelVO> convertList02(List<ConfigurationDO> list);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/configurationsetting/ConfigurationsettingConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.configurationsetting;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingCreateReqVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingExcelVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingRespVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingUpdateReqVO;
import com.win.module.wms.controller.configurationsetting.vo.*;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import java.util.List;
/**
* 配置设置 Convert
@ -34,4 +30,5 @@ public interface ConfigurationsettingConvert {
List<ConfigurationsettingExcelVO> convertList02(List<ConfigurationsettingDO> list);
ConfigurationsettingDO convert(ConfigurationSettingImportExcelVo importConfigurationSetting);
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/currencyexchange/CurrencyexchangeConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.currencyexchange;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeCreateReqVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeExcelVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeRespVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeUpdateReqVO;
import com.win.module.wms.controller.currencyexchange.vo.*;
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO;
import java.util.List;
/**
* 货币转换 Convert
@ -34,4 +30,6 @@ public interface CurrencyexchangeConvert {
List<CurrencyexchangeExcelVO> convertList02(List<CurrencyexchangeDO> list);
CurrencyexchangeDO convert(CurrencyexchangeImportExcelVo currencyexchange);
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customer/CustomerConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.customer;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customer.vo.CustomerCreateReqVO;
import com.win.module.wms.controller.customer.vo.CustomerExcelVO;
import com.win.module.wms.controller.customer.vo.CustomerRespVO;
import com.win.module.wms.controller.customer.vo.CustomerUpdateReqVO;
import com.win.module.wms.controller.customer.vo.*;
import com.win.module.wms.dal.dataobject.customer.CustomerDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customer.CustomerDO;
import java.util.List;
/**
* 客户 Convert
@ -34,4 +30,6 @@ public interface CustomerConvert {
List<CustomerExcelVO> convertList02(List<CustomerDO> list);
CustomerDO convert(CustomerImportExcelVo customer);
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerdock/CustomerdockConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.customerdock;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customerdock.vo.CustomerdockCreateReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockExcelVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockRespVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockUpdateReqVO;
import com.win.module.wms.controller.customerdock.vo.*;
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO;
import java.util.List;
/**
* 客户月台 Convert
@ -34,4 +30,5 @@ public interface CustomerdockConvert {
List<CustomerdockExcelVO> convertList02(List<CustomerdockDO> list);
CustomerdockDO convert(CustomerdockImportExcelVo customerdock);
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customer/CustomerMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.customer;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.customer.vo.CustomerExportReqVO;
import com.win.module.wms.controller.customer.vo.CustomerPageReqVO;
import com.win.module.wms.dal.dataobject.customer.CustomerDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 客户 Mapper
*
@ -68,4 +68,6 @@ public interface CustomerMapper extends BaseMapperX<CustomerDO> {
.orderByDesc(CustomerDO::getId));
}
default CustomerDO selectByCode(String code){return selectOne(CustomerDO::getCode, code);
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerdock/CustomerdockMapper.java

@ -1,15 +1,15 @@
package com.win.module.wms.dal.mysql.customerdock;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.customerdock.vo.CustomerdockExportReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockPageReqVO;
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 客户月台 Mapper
*
@ -60,4 +60,6 @@ public interface CustomerdockMapper extends BaseMapperX<CustomerdockDO> {
.orderByDesc(CustomerdockDO::getId));
}
default CustomerdockDO selectByCode(String code){return selectOne(CustomerdockDO::getCode, code);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/accountcalendar/AccountcalendarServiceImpl.java

@ -38,6 +38,7 @@ public class AccountcalendarServiceImpl implements AccountcalendarService {
@Override
public Long createAccountcalendar(AccountcalendarCreateReqVO createReqVO) {
validateAccountcalendarForCreateOrUpdate(createReqVO.getId(),createReqVO.getAvailable());
// 插入
AccountcalendarDO accountcalendar = AccountcalendarConvert.INSTANCE.convert(createReqVO);
validateAccountcalendarForCreateOrUpdate(null,createReqVO.getAvailable());
@ -91,7 +92,7 @@ public class AccountcalendarServiceImpl implements AccountcalendarService {
importAccountcalendars.forEach(importAccountcalendar -> {
// 校验,判断是否有不符合的原因
try {
if(mode == 2){
if(mode != null){
validateAccountcalendarForCreateOrUpdate(null,importAccountcalendar.getAvailable());
}
} catch (ServiceException ex) {

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/areabasic/AreabasicServiceImpl.java

@ -37,7 +37,7 @@ public class AreabasicServiceImpl implements AreabasicService {
@Override
public Long createAreabasic(AreabasicCreateReqVO createReqVO) {
validateAreabasicForCreateOrUpdate(null,createReqVO.getCode(),createReqVO.getWarehouseCode(),createReqVO.getIsFunctional(),createReqVO.getAvailable());
validateAreabasicForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getWarehouseCode(),createReqVO.getIsFunctional(),createReqVO.getAvailable());
// 插入
AreabasicDO areabasic = AreabasicConvert.INSTANCE.convert(createReqVO);
areabasicMapper.insert(areabasic);
@ -48,7 +48,7 @@ public class AreabasicServiceImpl implements AreabasicService {
@Override
public void updateAreabasic(AreabasicUpdateReqVO updateReqVO) {
// 校验存在
validateAreabasicForCreateOrUpdate(null,updateReqVO.getCode(),updateReqVO.getWarehouseCode(),updateReqVO.getIsFunctional(),updateReqVO.getAvailable());
validateAreabasicForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getWarehouseCode(),updateReqVO.getIsFunctional(),updateReqVO.getAvailable());
// 更新
AreabasicDO updateObj = AreabasicConvert.INSTANCE.convert(updateReqVO);
areabasicMapper.updateById(updateObj);

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java

@ -38,9 +38,8 @@ public class BomServiceImpl implements BomService {
@Override
public Long createBom(BomCreateReqVO createReqVO) {
validateBomForCreateOrUpdate(null,createReqVO.getProductItemCode(),createReqVO.getComponentItemCode(),createReqVO.getComponentUom(),createReqVO.getComponentQty(),
validateBomForCreateOrUpdate(createReqVO.getId(),createReqVO.getProductItemCode(),createReqVO.getComponentItemCode(),createReqVO.getComponentUom(),createReqVO.getComponentQty(),
createReqVO.getProcessCode(),createReqVO.getAvailable());
// 插入
BomDO bom = BomConvert.INSTANCE.convert(createReqVO);
bomMapper.insert(bom);

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/businesstype/BusinesstypeServiceImpl.java

@ -37,7 +37,7 @@ public class BusinesstypeServiceImpl implements BusinesstypeService {
@Override
public Long createBusinesstype(BusinesstypeCreateReqVO createReqVO) {
validateBusinesstypeForCreateOrUpdate(null,createReqVO.getCode(),createReqVO.getName()
validateBusinesstypeForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getName()
,createReqVO.getItemTypes(),createReqVO.getItemStatuses(),createReqVO.getOutTransactionType()
,createReqVO.getInTransactionType(),createReqVO.getOnTheWayArea(),createReqVO.getAvailable());
// 插入
@ -49,7 +49,7 @@ public class BusinesstypeServiceImpl implements BusinesstypeService {
@Override
public void updateBusinesstype(BusinesstypeUpdateReqVO updateReqVO) {
validateBusinesstypeForCreateOrUpdate(null,updateReqVO.getCode(),updateReqVO.getName()
validateBusinesstypeForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getName()
,updateReqVO.getItemTypes(),updateReqVO.getItemStatuses(),updateReqVO.getOutTransactionType()
,updateReqVO.getInTransactionType(),updateReqVO.getOnTheWayArea(),updateReqVO.getAvailable());
// 校验存在

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/carrier/CarrierServiceImpl.java

@ -39,7 +39,7 @@ public class CarrierServiceImpl implements CarrierService {
@Override
public Long createCarrier(CarrierCreateReqVO createReqVO) {
validateCarrierForCreateOrUpdate(null,createReqVO.getCode(),createReqVO.getShortName(),createReqVO.getAvailable());
validateCarrierForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getShortName(),createReqVO.getAvailable());
// 插入
CarrierDO carrier = CarrierConvert.INSTANCE.convert(createReqVO);
carrierMapper.insert(carrier);
@ -50,7 +50,7 @@ public class CarrierServiceImpl implements CarrierService {
@Override
public void updateCarrier(CarrierUpdateReqVO updateReqVO) {
// 校验存在
validateCarrierForCreateOrUpdate(null,updateReqVO.getCode(),updateReqVO.getShortName(),updateReqVO.getAvailable());
validateCarrierForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getShortName(),updateReqVO.getAvailable());
// 更新
CarrierDO updateObj = CarrierConvert.INSTANCE.convert(updateReqVO);

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionService.java

@ -1,10 +1,7 @@
package com.win.module.wms.service.condition;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO;
import com.win.module.wms.controller.condition.vo.ConditionExportReqVO;
import com.win.module.wms.controller.condition.vo.ConditionPageReqVO;
import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO;
import com.win.module.wms.controller.condition.vo.*;
import com.win.module.wms.dal.dataobject.condition.ConditionDO;
import javax.validation.Valid;
@ -72,4 +69,6 @@ public interface ConditionService {
*/
List<ConditionDO> getConditionList(ConditionExportReqVO exportReqVO);
List<ConditionImportExcelVo> importConditionList(List<ConditionImportExcelVo> conditions, Integer mode, Boolean updatePart);
}

114
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionServiceImpl.java

@ -1,22 +1,28 @@
package com.win.module.wms.service.condition;
import cn.hutool.core.collection.CollUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO;
import com.win.module.wms.controller.condition.vo.ConditionExportReqVO;
import com.win.module.wms.controller.condition.vo.ConditionPageReqVO;
import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.condition.vo.*;
import com.win.module.wms.convert.condition.ConditionConvert;
import com.win.module.wms.dal.dataobject.condition.ConditionDO;
import com.win.module.wms.dal.mysql.condition.ConditionMapper;
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 static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.CONDITION_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 条件 Service 实现类
@ -32,7 +38,8 @@ public class ConditionServiceImpl implements ConditionService {
@Override
public Long createCondition(ConditionCreateReqVO createReqVO) {
// 插入
validateConditionForCreateOrUpdate(createReqVO.getId(),createReqVO.getStrategyCode(),createReqVO.getRuleCode(),createReqVO.getParamCode(),createReqVO.getOperator(),createReqVO.getValue());
// 插入
ConditionDO condition = ConditionConvert.INSTANCE.convert(createReqVO);
conditionMapper.insert(condition);
// 返回
@ -42,7 +49,7 @@ public class ConditionServiceImpl implements ConditionService {
@Override
public void updateCondition(ConditionUpdateReqVO updateReqVO) {
// 校验存在
validateConditionExists(updateReqVO.getId());
validateConditionForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getStrategyCode(),updateReqVO.getRuleCode(),updateReqVO.getParamCode(),updateReqVO.getOperator(),updateReqVO.getValue());
// 更新
ConditionDO updateObj = ConditionConvert.INSTANCE.convert(updateReqVO);
conditionMapper.updateById(updateObj);
@ -56,12 +63,6 @@ public class ConditionServiceImpl implements ConditionService {
conditionMapper.deleteById(id);
}
private void validateConditionExists(Long id) {
if (conditionMapper.selectById(id) == null) {
throw exception(CONDITION_NOT_EXISTS);
}
}
@Override
public ConditionDO getCondition(Long id) {
return conditionMapper.selectById(id);
@ -82,4 +83,91 @@ public class ConditionServiceImpl implements ConditionService {
return conditionMapper.selectList(exportReqVO);
}
@Override
@Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入
public List<ConditionImportExcelVo> importConditionList(List<ConditionImportExcelVo> conditions, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(conditions)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<ConditionImportExcelVo> errorList = new ArrayList<>();
conditions.forEach(condition -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateConditionForCreateOrUpdate(null,condition.getStrategyCode(),condition.getRuleCode(),condition.getParamCode(),condition.getOperator(),condition.getValue());}
}
catch (ServiceException ex) {
errorList.add(condition);
return;
}
// 判断如果不存在,在进行插入
ConditionDO existAccountcalendar = null;
if (existAccountcalendar == null&& mode != 3) {
conditionMapper.insert(ConditionConvert.INSTANCE.convert(condition));
}
else if (existAccountcalendar != null && mode != 2) {// 如果存在,判断是否允许更新
ConditionDO conditionDo = ConditionConvert.INSTANCE.convert(condition);
conditionDo.setId(existAccountcalendar.getId());
conditionMapper.updateById(conditionDo);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateConditionForCreateOrUpdate(Long id,String strategyCode,String ruleCode,String paramCode,String operator,
String value) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
// 校验code唯一
validateConditionExists(id);
validateStrategyCodeExists(strategyCode);
validateRuleCodeExists(ruleCode);
validateParamCodeExists(paramCode);
validateOperatorExists(operator);
validateValueExists(value);
});
}
@VisibleForTesting
private void validateConditionExists(Long id) {
if (id == null) {
return;
}
ConditionDO condition = conditionMapper.selectById(id);
if (condition == null) {
throw exception(CONDITION_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateStrategyCodeExists(String strategyCode) {
if (strategyCode.isEmpty()) {
throw exception(CONDITION_STRATEG_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateRuleCodeExists(String ruleCode) {
if (ruleCode.isEmpty()) {
throw exception(CONDITION_RULE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateParamCodeExists(String paramCode) {
if (paramCode.isEmpty()) {
throw exception(CONDITION_PARAM_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateOperatorExists(String operator) {
if (operator.isEmpty()) {
throw exception(CONDITION_OPERATOR_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateValueExists(String value) {
if (value.isEmpty()) {
throw exception(CONDITION_VALUE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configuration/ConfigurationService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.configuration;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.configuration.vo.ConfigurationCreateReqVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationExportReqVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationPageReqVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationUpdateReqVO;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.configuration.vo.*;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 配置 Service 接口
@ -71,4 +69,5 @@ public interface ConfigurationService {
*/
List<ConfigurationDO> getConfigurationList(ConfigurationExportReqVO exportReqVO);
List<ConfigurationImportExcelVo> importConfigurationList(List<ConfigurationImportExcelVo> configurations, Integer mode, Boolean updatePart);
}

117
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configuration/ConfigurationServiceImpl.java

@ -1,22 +1,25 @@
package com.win.module.wms.service.configuration;
import com.win.module.wms.controller.configuration.vo.ConfigurationCreateReqVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationExportReqVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationPageReqVO;
import com.win.module.wms.controller.configuration.vo.ConfigurationUpdateReqVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import cn.hutool.core.collection.CollUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.configuration.vo.*;
import com.win.module.wms.convert.configuration.ConfigurationConvert;
import com.win.module.wms.dal.dataobject.configuration.ConfigurationDO;
import com.win.module.wms.dal.mysql.configuration.ConfigurationMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -33,6 +36,8 @@ public class ConfigurationServiceImpl implements ConfigurationService {
@Override
public Long createConfiguration(ConfigurationCreateReqVO createReqVO) {
validateConfigurationForCreateOrUpdate(createReqVO.getId(),createReqVO.getStrategyCode(),createReqVO.
getRuleCode(),createReqVO.getConfigurationCode(),createReqVO.getConfigurationValue());
// 插入
ConfigurationDO configuration = ConfigurationConvert.INSTANCE.convert(createReqVO);
configurationMapper.insert(configuration);
@ -43,7 +48,8 @@ public class ConfigurationServiceImpl implements ConfigurationService {
@Override
public void updateConfiguration(ConfigurationUpdateReqVO updateReqVO) {
// 校验存在
validateConfigurationExists(updateReqVO.getId());
validateConfigurationForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getStrategyCode(),updateReqVO.
getRuleCode(),updateReqVO.getConfigurationCode(),updateReqVO.getConfigurationValue());
// 更新
ConfigurationDO updateObj = ConfigurationConvert.INSTANCE.convert(updateReqVO);
configurationMapper.updateById(updateObj);
@ -57,12 +63,6 @@ public class ConfigurationServiceImpl implements ConfigurationService {
configurationMapper.deleteById(id);
}
private void validateConfigurationExists(Long id) {
if (configurationMapper.selectById(id) == null) {
throw exception(CONFIGURATION_NOT_EXISTS);
}
}
@Override
public ConfigurationDO getConfiguration(Long id) {
return configurationMapper.selectById(id);
@ -83,4 +83,83 @@ public class ConfigurationServiceImpl implements ConfigurationService {
return configurationMapper.selectList(exportReqVO);
}
@Override
public List<ConfigurationImportExcelVo> importConfigurationList(List<ConfigurationImportExcelVo> configurations, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(configurations)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<ConfigurationImportExcelVo> errorList = new ArrayList<>();
configurations.forEach(configuration -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateConfigurationForCreateOrUpdate(null,configuration.getStrategyCode(),configuration.
getRuleCode(),configuration.getConfigurationCode(),configuration.getConfigurationValue());}
}
catch (ServiceException ex) {
errorList.add(configuration);
return;
}
// 判断如果不存在,在进行插入
ConfigurationDO existAccountcalendar = null;
if (existAccountcalendar == null&& mode != 3) {
configurationMapper.insert(ConfigurationConvert.INSTANCE.convert(configuration));
}
else if (existAccountcalendar != null && mode != 2) {// 如果存在,判断是否允许更新
ConfigurationDO configurationDo = ConfigurationConvert.INSTANCE.convert(configuration);
configurationDo.setId(existAccountcalendar.getId());
configurationMapper.updateById(configurationDo);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateConfigurationForCreateOrUpdate(Long id,String strategyCode,String ruleCode,String configurationCode,String configurationValue) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
// 校验code唯一
validateConfigurationExists(id);
validateStrategyCodeExists(strategyCode);
validateRuleCodeExists(ruleCode);
validateConfigurationCodeExists(configurationCode);
validateConfigurationValueExists(configurationValue);
});
}
@VisibleForTesting
private void validateConfigurationExists(Long id) {
if (id == null) {
return;
}
ConfigurationDO configuration = configurationMapper.selectById(id);
if (configuration == null) {
throw exception(CONFIGURATION_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateStrategyCodeExists(String strategyCode) {
if (strategyCode.isEmpty()) {
throw exception(CONFIGURATION_STRATEG_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateRuleCodeExists(String ruleCode) {
if (ruleCode.isEmpty()) {
throw exception(CONFIGURATION_RULE_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateConfigurationCodeExists(String configurationCode) {
if (configurationCode.isEmpty()) {
throw exception(CONFIGURATION_CONFIGURATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateConfigurationValueExists(String configurationValue) {
if (configurationValue.isEmpty()) {
throw exception(CONFIGURATION_CONFIGURATION_VALUE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configurationsetting/ConfigurationsettingService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.configurationsetting;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingCreateReqVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingExportReqVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingPageReqVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingUpdateReqVO;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.configurationsetting.vo.*;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 配置设置 Service 接口
@ -71,4 +69,5 @@ public interface ConfigurationsettingService {
*/
List<ConfigurationsettingDO> getConfigurationsettingList(ConfigurationsettingExportReqVO exportReqVO);
List<ConfigurationSettingImportExcelVo> importConfigurationsettingList(List<ConfigurationSettingImportExcelVo> configurationSettings, Integer mode, Boolean updatePart);
}

126
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/configurationsetting/ConfigurationsettingServiceImpl.java

@ -1,23 +1,27 @@
package com.win.module.wms.service.configurationsetting;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingCreateReqVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingExportReqVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingPageReqVO;
import com.win.module.wms.controller.configurationsetting.vo.ConfigurationsettingUpdateReqVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import cn.hutool.core.collection.CollUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.configurationsetting.vo.*;
import com.win.module.wms.convert.configurationsetting.ConfigurationsettingConvert;
import com.win.module.wms.dal.dataobject.configurationsetting.ConfigurationsettingDO;
import com.win.module.wms.dal.mysql.configurationsetting.ConfigurationsettingMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.wms.enums.itembasic.ErrorCodeConstants.ITEMBASIC_NOT_EXISTS;
/**
* 配置设置 Service 实现类
@ -33,6 +37,9 @@ public class ConfigurationsettingServiceImpl implements ConfigurationsettingServ
@Override
public Long createConfigurationsetting(ConfigurationsettingCreateReqVO createReqVO) {
validateConfigurationSettingForCreateOrUpdate(null,createReqVO.getStrategyType()
,createReqVO.getConfigurationCode(),createReqVO.getConfigurationName(),createReqVO.getIsRequired()
,createReqVO.getDataType(),createReqVO.getValueScope());
// 插入
ConfigurationsettingDO configurationsetting = ConfigurationsettingConvert.INSTANCE.convert(createReqVO);
configurationsettingMapper.insert(configurationsetting);
@ -43,7 +50,8 @@ public class ConfigurationsettingServiceImpl implements ConfigurationsettingServ
@Override
public void updateConfigurationsetting(ConfigurationsettingUpdateReqVO updateReqVO) {
// 校验存在
validateConfigurationsettingExists(updateReqVO.getId());
validateConfigurationSettingForCreateOrUpdate(null,updateReqVO.getStrategyType(),updateReqVO.getConfigurationCode(),updateReqVO.getConfigurationName(),updateReqVO.getIsRequired()
,updateReqVO.getDataType(),updateReqVO.getValueScope());
// 更新
ConfigurationsettingDO updateObj = ConfigurationsettingConvert.INSTANCE.convert(updateReqVO);
configurationsettingMapper.updateById(updateObj);
@ -83,4 +91,96 @@ public class ConfigurationsettingServiceImpl implements ConfigurationsettingServ
return configurationsettingMapper.selectList(exportReqVO);
}
@Override
public List<ConfigurationSettingImportExcelVo> importConfigurationsettingList(List<ConfigurationSettingImportExcelVo> configurationSettings, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(configurationSettings)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<ConfigurationSettingImportExcelVo> errorList = new ArrayList<>();
configurationSettings.forEach(importConfigurationSetting -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateConfigurationSettingForCreateOrUpdate(null,importConfigurationSetting.getStrategyType(),importConfigurationSetting.getConfigurationCode(),
importConfigurationSetting.getConfigurationName(),importConfigurationSetting.getIsRequired(),importConfigurationSetting.getDataType(),importConfigurationSetting.getValueScope());
}
} catch (ServiceException ex) {
errorList.add(importConfigurationSetting);
return;
}
// 判断如果不存在,在进行插入
ConfigurationsettingDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
configurationsettingMapper.insert(ConfigurationsettingConvert.INSTANCE.convert(importConfigurationSetting));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
ConfigurationsettingDO configurationSettingDO = ConfigurationsettingConvert.INSTANCE.convert(importConfigurationSetting);
configurationSettingDO.setId(existConfigurationSetting.getId());
configurationsettingMapper.updateById(configurationSettingDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateConfigurationSettingForCreateOrUpdate(Long id,String strategyType, String configurationCode,
String configurationName,String isRequired,String dataType,String valueScope) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateConfigurationSettingExists(id);
// 校验code唯一
validateStrategyTypeExists(strategyType);
validateConfigurationCodeExists(configurationCode);
validateConfigurationNameExists(configurationName);
validateIsRequiredExists(isRequired);
validateDataTypeExists(dataType);
validateValueScopeExists(valueScope);
});
}
@VisibleForTesting
private void validateConfigurationSettingExists(Long id) {
if (id == null) {
return;
}
ConfigurationsettingDO configurationSetting = configurationsettingMapper.selectById(id);
if (configurationSetting == null) {
throw exception(ITEMBASIC_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateStrategyTypeExists(String strategyType) {
if (strategyType.isEmpty()) {
throw exception(CONFIGURATIONSETTING_STRATEG_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateConfigurationCodeExists(String configurationCode) {
if (configurationCode.isEmpty()) {
throw exception(CONFIGURATIONSETTING_CONFIGURATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateConfigurationNameExists(String configurationName) {
if (configurationName.isEmpty()) {
throw exception(CONFIGURATIONSETTING_CONFIGURATION_NAME_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateIsRequiredExists(String isRequired) {
if (isRequired.isEmpty()) {
throw exception(CONFIGURATIONSETTING_IS_REQUIRED_NOT_EXISTS);
}
}
private void validateDataTypeExists(String dataType) {
if (dataType.isEmpty()) {
throw exception(CONFIGURATIONSETTING_DATA_TYPE_NOT_EXISTS);
}
}
private void validateValueScopeExists(String valueScope) {
if (valueScope.isEmpty()) {
throw exception(CONFIGURATIONSETTING_VALUE_SCOPE_NOT_EXISTS);
}
}
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/currencyexchange/CurrencyexchangeService.java

@ -1,10 +1,7 @@
package com.win.module.wms.service.currencyexchange;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeCreateReqVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeExportReqVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangePageReqVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeUpdateReqVO;
import com.win.module.wms.controller.currencyexchange.vo.*;
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO;
import javax.validation.Valid;
@ -72,4 +69,5 @@ public interface CurrencyexchangeService {
*/
List<CurrencyexchangeDO> getCurrencyexchangeList(CurrencyexchangeExportReqVO exportReqVO);
List<CurrencyexchangeImportExcelVo> importCurrencyexchangeList(List<CurrencyexchangeImportExcelVo> currencyexchanges, Integer mode, Boolean updatePart);
}

99
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/currencyexchange/CurrencyexchangeServiceImpl.java

@ -1,22 +1,27 @@
package com.win.module.wms.service.currencyexchange;
import cn.hutool.core.collection.CollUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeCreateReqVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeExportReqVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangePageReqVO;
import com.win.module.wms.controller.currencyexchange.vo.CurrencyexchangeUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.currencyexchange.vo.*;
import com.win.module.wms.convert.currencyexchange.CurrencyexchangeConvert;
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO;
import com.win.module.wms.dal.mysql.currencyexchange.CurrencyexchangeMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.currencyexchange.ErrorCodeConstants.CURRENCYEXCHANGE_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.currencyexchange.ErrorCodeConstants.*;
/**
* 货币转换 Service 实现类
@ -32,6 +37,8 @@ public class CurrencyexchangeServiceImpl implements CurrencyexchangeService {
@Override
public Long createCurrencyexchange(CurrencyexchangeCreateReqVO createReqVO) {
validateCurrencyexchangeForCreateOrUpdate(createReqVO.getId(),createReqVO.getCurrency(),createReqVO.getBasiccurrency(),createReqVO.getRate(),createReqVO.getAvailable());
// 插入
CurrencyexchangeDO currencyexchange = CurrencyexchangeConvert.INSTANCE.convert(createReqVO);
currencyexchangeMapper.insert(currencyexchange);
@ -41,6 +48,8 @@ public class CurrencyexchangeServiceImpl implements CurrencyexchangeService {
@Override
public void updateCurrencyexchange(CurrencyexchangeUpdateReqVO updateReqVO) {
validateCurrencyexchangeForCreateOrUpdate(null,updateReqVO.getCurrency(),updateReqVO.getBasiccurrency(),updateReqVO.getRate(),updateReqVO.getAvailable());
// 校验存在
validateCurrencyexchangeExists(updateReqVO.getId());
// 更新
@ -82,4 +91,84 @@ public class CurrencyexchangeServiceImpl implements CurrencyexchangeService {
return currencyexchangeMapper.selectList(exportReqVO);
}
@Override
public List<CurrencyexchangeImportExcelVo> importCurrencyexchangeList(List<CurrencyexchangeImportExcelVo> currencyexchanges, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(currencyexchanges)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<CurrencyexchangeImportExcelVo> errorList = new ArrayList<>();
currencyexchanges.forEach(currencyexchange -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateCurrencyexchangeForCreateOrUpdate(null,currencyexchange.getCurrency(),currencyexchange.getBasiccurrency(),currencyexchange.getRate(),currencyexchange.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(currencyexchange);
return;
}
// 判断如果不存在,在进行插入
CurrencyexchangeDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
currencyexchangeMapper.insert(CurrencyexchangeConvert.INSTANCE.convert(currencyexchange));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
CurrencyexchangeDO currencyexchangeDO = CurrencyexchangeConvert.INSTANCE.convert(currencyexchange);
currencyexchangeDO.setId(existConfigurationSetting.getId());
currencyexchangeMapper.updateById(currencyexchangeDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateCurrencyexchangeForCreateOrUpdate(Long id, String currency, String basiccurrency,
BigDecimal rate, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateConfigurationSettingExists(id);
// 校验code唯一
validateCurrencyExists(currency);
validateBasiccurrencyExists(basiccurrency);
validateRateExists(rate);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateConfigurationSettingExists(Long id) {
if (id == null) {
return;
}
CurrencyexchangeDO currencyexchange = currencyexchangeMapper.selectById(id);
if (currencyexchange == null) {
throw exception(CURRENCYEXCHANGE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCurrencyExists(String currency) {
if (currency.isEmpty()) {
throw exception(CURRENCYEXCHANGE_CURRENCY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateBasiccurrencyExists(String basiccurrency) {
if (basiccurrency.isEmpty()) {
throw exception(CURRENCYEXCHANGE_BASICCURRENCY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateRateExists(BigDecimal rate) {
if (rate == null) {
throw exception(CURRENCYEXCHANGE_RATE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(CURRENCYEXCHANGE_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customer/CustomerService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.customer;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.customer.vo.CustomerCreateReqVO;
import com.win.module.wms.controller.customer.vo.CustomerExportReqVO;
import com.win.module.wms.controller.customer.vo.CustomerPageReqVO;
import com.win.module.wms.controller.customer.vo.CustomerUpdateReqVO;
import com.win.module.wms.dal.dataobject.customer.CustomerDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customer.vo.*;
import com.win.module.wms.dal.dataobject.customer.CustomerDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 客户 Service 接口
@ -71,4 +69,5 @@ public interface CustomerService {
*/
List<CustomerDO> getCustomerList(CustomerExportReqVO exportReqVO);
List<CustomerImportExcelVo> importCustomerList(List<CustomerImportExcelVo> customers, Integer mode, Boolean updatePart);
}

113
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customer/CustomerServiceImpl.java

@ -1,22 +1,29 @@
package com.win.module.wms.service.customer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customer.vo.CustomerCreateReqVO;
import com.win.module.wms.controller.customer.vo.CustomerExportReqVO;
import com.win.module.wms.controller.customer.vo.CustomerPageReqVO;
import com.win.module.wms.controller.customer.vo.CustomerUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.customer.vo.*;
import com.win.module.wms.convert.customer.CustomerConvert;
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO;
import com.win.module.wms.dal.dataobject.customer.CustomerDO;
import com.win.module.wms.dal.mysql.customer.CustomerMapper;
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.customer.ErrorCodeConstants.CUSTOMER_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.customer.ErrorCodeConstants.*;
/**
* 客户 Service 实现类
@ -32,6 +39,7 @@ public class CustomerServiceImpl implements CustomerService {
@Override
public Long createCustomer(CustomerCreateReqVO createReqVO) {
validateCurrencyexchangeForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getShortName(),createReqVO.getAvailable());
// 插入
CustomerDO customer = CustomerConvert.INSTANCE.convert(createReqVO);
customerMapper.insert(customer);
@ -42,7 +50,7 @@ public class CustomerServiceImpl implements CustomerService {
@Override
public void updateCustomer(CustomerUpdateReqVO updateReqVO) {
// 校验存在
validateCustomerExists(updateReqVO.getId());
validateCurrencyexchangeForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getShortName(),updateReqVO.getAvailable());
// 更新
CustomerDO updateObj = CustomerConvert.INSTANCE.convert(updateReqVO);
customerMapper.updateById(updateObj);
@ -56,12 +64,6 @@ public class CustomerServiceImpl implements CustomerService {
customerMapper.deleteById(id);
}
private void validateCustomerExists(Long id) {
if (customerMapper.selectById(id) == null) {
throw exception(CUSTOMER_NOT_EXISTS);
}
}
@Override
public CustomerDO getCustomer(Long id) {
return customerMapper.selectById(id);
@ -82,4 +84,91 @@ public class CustomerServiceImpl implements CustomerService {
return customerMapper.selectList(exportReqVO);
}
@Override
public List<CustomerImportExcelVo> importCustomerList(List<CustomerImportExcelVo> customers, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(customers)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<CustomerImportExcelVo> errorList = new ArrayList<>();
customers.forEach(customer -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateCurrencyexchangeForCreateOrUpdate(null,customer.getCode(),customer.getShortName(),customer.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(customer);
return;
}
// 判断如果不存在,在进行插入
CurrencyexchangeDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
customerMapper.insert(CustomerConvert.INSTANCE.convert(customer));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
CustomerDO customerDO = CustomerConvert.INSTANCE.convert(customer);
customerDO.setId(existConfigurationSetting.getId());
customerMapper.updateById(customerDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateCurrencyexchangeForCreateOrUpdate(Long id, String code, String shortName, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateCustomerExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateShortNameExists(shortName);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateCustomerExists(Long id) {
if (id == null) {
return;
}
CustomerDO customer = customerMapper.selectById(id);
if (customer == null) {
throw exception(CUSTOMER_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(CUSTOMER_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
CustomerDO customer = customerMapper.selectByCode(code);
if (customer == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(CUSTOMER_CODE_EXISTS);
}
if (!customer.getId().equals(id)) {
throw exception(CUSTOMER_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateShortNameExists(String shortName) {
if (shortName.isEmpty()) {
throw exception(CUSTOMER_SHORTNAME_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(CUSTOMER_AVAILABLE_NOT_EXISTS);
}
}
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockService.java

@ -1,14 +1,12 @@
package com.win.module.wms.service.customerdock;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.customerdock.vo.CustomerdockCreateReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockExportReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockPageReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockUpdateReqVO;
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customerdock.vo.*;
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 客户月台 Service 接口
@ -71,4 +69,5 @@ public interface CustomerdockService {
*/
List<CustomerdockDO> getCustomerdockList(CustomerdockExportReqVO exportReqVO);
List<CustomerdockImportExcelVo> importCustomerdockList(List<CustomerdockImportExcelVo> customerdocks, Integer mode, Boolean updatePart);
}

115
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerdock/CustomerdockServiceImpl.java

@ -1,22 +1,28 @@
package com.win.module.wms.service.customerdock;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.customerdock.vo.CustomerdockCreateReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockExportReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockPageReqVO;
import com.win.module.wms.controller.customerdock.vo.CustomerdockUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.customerdock.vo.*;
import com.win.module.wms.convert.customerdock.CustomerdockConvert;
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO;
import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO;
import com.win.module.wms.dal.mysql.customerdock.CustomerdockMapper;
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.customerdock.ErrorCodeConstants.CUSTOMERDOCK_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.customerdock.ErrorCodeConstants.*;
/**
* 客户月台 Service 实现类
@ -32,6 +38,8 @@ public class CustomerdockServiceImpl implements CustomerdockService {
@Override
public Long createCustomerdock(CustomerdockCreateReqVO createReqVO) {
validateCurrencyexchangeForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getCustomerCode(),createReqVO.getDefaultLocationCode(),createReqVO.getAvailable());
// 插入
CustomerdockDO customerdock = CustomerdockConvert.INSTANCE.convert(createReqVO);
customerdockMapper.insert(customerdock);
@ -42,7 +50,8 @@ public class CustomerdockServiceImpl implements CustomerdockService {
@Override
public void updateCustomerdock(CustomerdockUpdateReqVO updateReqVO) {
// 校验存在
validateCustomerdockExists(updateReqVO.getId());
validateCurrencyexchangeForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getCustomerCode(),updateReqVO.getDefaultLocationCode(),updateReqVO.getAvailable());
// 更新
CustomerdockDO updateObj = CustomerdockConvert.INSTANCE.convert(updateReqVO);
customerdockMapper.updateById(updateObj);
@ -82,4 +91,98 @@ public class CustomerdockServiceImpl implements CustomerdockService {
return customerdockMapper.selectList(exportReqVO);
}
@Override
public List<CustomerdockImportExcelVo> importCustomerdockList(List<CustomerdockImportExcelVo> customerdocks, Integer mode, Boolean updatePart) {
if (CollUtil.isEmpty(customerdocks)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<CustomerdockImportExcelVo> errorList = new ArrayList<>();
customerdocks.forEach(customerdock -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateCurrencyexchangeForCreateOrUpdate(null,customerdock.getCode(),customerdock.getCustomerCode(),customerdock.getDefaultLocationCode(),customerdock.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(customerdock);
return;
}
// 判断如果不存在,在进行插入
CurrencyexchangeDO existConfigurationSetting = null;
if (existConfigurationSetting == null&& mode != 3) {
customerdockMapper.insert(CustomerdockConvert.INSTANCE.convert(customerdock));
}
else if (existConfigurationSetting != null && mode != 2) {// 如果存在,判断是否允许更新
CustomerdockDO customerdockDO = CustomerdockConvert.INSTANCE.convert(customerdock);
customerdockDO.setId(existConfigurationSetting.getId());
customerdockMapper.updateById(customerdockDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateCurrencyexchangeForCreateOrUpdate(Long id, String code, String customerCode,String defaultLocationCode, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateCustomerExists(id);
validateCodeExists(id,code);
// 校验code唯一
validateCustomerCodeExists(customerCode);
validateDefaultLocationCodeExists(defaultLocationCode);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateCustomerExists(Long id) {
if (id == null) {
return;
}
CustomerdockDO customerdock = customerdockMapper.selectById(id);
if (customerdock == null) {
throw exception(CUSTOMERDOCK_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(CUSTOMERDOCK_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
CustomerdockDO customerdock = customerdockMapper.selectByCode(code);
if (customerdock == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(CUSTOMERDOCK_CODE_EXISTS);
}
if (!customerdock.getId().equals(id)) {
throw exception(CUSTOMERDOCK_CODE_EXISTS);
}
}
@VisibleForTesting
private void validateCustomerCodeExists(String customerCode) {
if (customerCode.isEmpty()) {
throw exception(CUSTOMERDOCK_CUSTOMER_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateDefaultLocationCodeExists(String defaultLocationCode) {
if (defaultLocationCode.isEmpty()) {
throw exception(CUSTOMERDOCK_DEFAULT_LOCATION_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available.isEmpty()) {
throw exception(CUSTOMERDOCK_AVAILABLE_NOT_EXISTS);
}
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java

@ -76,6 +76,6 @@ public interface ItembasicService {
* @param updatePart 是否支持更新
* @return 导入结果
*/
List<ItembasicImportExcelVo> importUserList(List<ItembasicImportExcelVo> importItembasics, Integer mode,boolean updatePart);
List<ItembasicImportExcelVo> importItembasicList(List<ItembasicImportExcelVo> importItembasics, Integer mode,boolean updatePart);
}

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

@ -38,6 +38,9 @@ public class ItembasicServiceImpl implements ItembasicService {
@Override
public Long createItembasic(ItembasicCreateReqVO createReqVO) {
validateItembasicForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getStatus(),createReqVO.getUom(),createReqVO.getIsStdPack(),createReqVO.getEnableBuy()
,createReqVO.getEnableMake(),createReqVO.getEnableOutsourcing(),createReqVO.getIsRecycled(),createReqVO.getIsPhantom(),createReqVO.getAbcClass(),createReqVO.getType()
,createReqVO.getValidityDays(),createReqVO.getAvailable());
// 插入
ItembasicDO itembasic = ItembasicConvert.INSTANCE.convert(createReqVO);
itembasicMapper.insert(itembasic);
@ -86,7 +89,7 @@ public class ItembasicServiceImpl implements ItembasicService {
return itembasicMapper.selectList(exportReqVO);
}
public List<ItembasicImportExcelVo> importUserList(List<ItembasicImportExcelVo> importItembasics, Integer mode, boolean updatePart) {
public List<ItembasicImportExcelVo> importItembasicList(List<ItembasicImportExcelVo> importItembasics, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(importItembasics)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationService.java

@ -69,5 +69,5 @@ public interface WorkstationService {
*/
List<WorkstationDO> getWorkstationList(WorkstationExportReqVO exportReqVO);
WorkstationImportRespVO importUserList(List<WorkstationImportExcelVo> list, Integer mode,Boolean updatePart);
List<WorkstationImportExcelVo> importWorkstationList(List<WorkstationImportExcelVo> workstations, Integer mode,Boolean updatePart);
}

90
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java

@ -2,6 +2,7 @@ package com.win.module.wms.service.workstation;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
@ -17,12 +18,13 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.workstation.ErrorCodeConstants.*;
import static com.win.module.wms.enums.itembasic.ErrorCodeConstants.*;
import static com.win.module.wms.enums.workstation.ErrorCodeConstants.CODE_EXISTS;
import static com.win.module.wms.enums.workstation.ErrorCodeConstants.WORKSTATION_NOT_EXISTS;
/**
* 工位 Service 实现类
@ -38,6 +40,7 @@ public class WorkstationServiceImpl implements WorkstationService {
@Override
public Long createWorkstation(WorkstationCreateReqVO createReqVO) {
validateWorkstationForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getWorkshopCode(),createReqVO.getProductionLineCode(),createReqVO.getAvailable());
// 插入
WorkstationDO workstation = WorkstationConvert.INSTANCE.convert(createReqVO);
workstationMapper.insert(workstation);
@ -47,6 +50,7 @@ public class WorkstationServiceImpl implements WorkstationService {
@Override
public void updateWorkstation(WorkstationUpdateReqVO updateReqVO) {
validateWorkstationForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getWorkshopCode(),updateReqVO.getProductionLineCode(),updateReqVO.getAvailable());
// 校验存在
validateWorkstationExists(updateReqVO.getId());
// 更新
@ -62,12 +66,6 @@ public class WorkstationServiceImpl implements WorkstationService {
workstationMapper.deleteById(id);
}
private void validateWorkstationExists(Long id) {
if (workstationMapper.selectById(id) == null) {
throw exception(WORKSTATION_NOT_EXISTS);
}
}
@Override
public WorkstationDO getWorkstation(Long id) {
return workstationMapper.selectById(id);
@ -91,53 +89,65 @@ public class WorkstationServiceImpl implements WorkstationService {
@Override
@Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入
public WorkstationImportRespVO importUserList(List<WorkstationImportExcelVo> workstations, Integer mode,Boolean updatePart) {
public List<WorkstationImportExcelVo> importWorkstationList(List<WorkstationImportExcelVo> workstations, Integer mode,Boolean updatePart) {
if (CollUtil.isEmpty(workstations)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
WorkstationImportRespVO respVO = WorkstationImportRespVO.builder().createWorkstations(new ArrayList<>())
.updateWorkstations(new ArrayList<>()).failureWorkstations(new LinkedHashMap<>()).build();
List<WorkstationImportExcelVo> errorList = new ArrayList<>();
workstations.forEach(workstation -> {
// 校验,判断是否有不符合的原因
try {
validateUserForCreateOrUpdate(null,workstation.getCode());
} catch (ServiceException ex) {
respVO.getFailureWorkstations().put(workstation.getCode(), ex.getMessage());
if(mode != null){
validateWorkstationForCreateOrUpdate(null,workstation.getCode(),workstation.getWorkshopCode(),workstation.getProductionLineCode(),workstation.getAvailable());
}
}
catch (ServiceException ex) {
errorList.add(workstation);
return;
}
// 判断如果不存在,在进行插入
WorkstationDO existWorkstation = workstationMapper.selectByCode(workstation.getCode());
if (existWorkstation == null&& mode != 3) {
WorkstationDO existAccountcalendar = workstationMapper.selectByCode(workstation.getCode());
if (existAccountcalendar == null&& mode != 3) {
workstationMapper.insert(WorkstationConvert.INSTANCE.convert(workstation));
respVO.getCreateWorkstations().add(workstation.getCode());
}
else if (existWorkstation != null && mode != 2) {// 如果存在,判断是否允许更新
WorkstationDO workstationDO = WorkstationConvert.INSTANCE.convert(workstation);
workstationDO.setId(existWorkstation.getId());
workstationMapper.updateById(workstationDO);
respVO.getUpdateWorkstations().add(workstation.getCode());
else if (existAccountcalendar != null && mode != 2) {// 如果存在,判断是否允许更新
WorkstationDO workstationDo = WorkstationConvert.INSTANCE.convert(workstation);
workstationDo.setId(existAccountcalendar.getId());
workstationMapper.updateById(workstationDo);
}
});
//错误不为空并非部分更新,手工回滚
if(respVO.getUpdateWorkstations().isEmpty() && !updatePart) {
respVO.setUpdateWorkstations(new ArrayList<>());
respVO.setCreateWorkstations(new ArrayList<>());
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return respVO;
return errorList;
}
private void validateUserForCreateOrUpdate(Long id,String code) {
private void validateWorkstationForCreateOrUpdate(Long id,String code,String workshopCode,String productionLineCode,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
// 校验code唯一
codeExists(id,code);
validateWorkstationExists(id);
validateCodeExists(id,code);
validateWorkshopCodeExists(workshopCode);
validateProductionLineCodeExists(productionLineCode);
validateAvailableExists(available);
});
}
private void codeExists(Long id, String code) {
@VisibleForTesting
private void validateWorkstationExists(Long id) {
if (id == null) {
return;
}
WorkstationDO workstation = workstationMapper.selectById(id);
if (workstation == null) {
throw exception(WORKSTATION_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id, String code) {
if (code.isEmpty()) {
throw exception(CODE_EXISTS);
throw exception(CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
@ -154,4 +164,22 @@ public class WorkstationServiceImpl implements WorkstationService {
throw exception(CODE_EXISTS);
}
}
@VisibleForTesting
private void validateWorkshopCodeExists(String workshopCode) {
if (workshopCode.isEmpty()) {
throw exception(TYPE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateProductionLineCodeExists(String productionLineCode) {
if (productionLineCode == null) {
throw exception(VALIDITY_DAYS_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available == null) {
throw exception(AVAIABLE_NOT_EXISTS);
}
}
}

Loading…
Cancel
Save