Browse Source

导入方法修改代码

master
廉洪喜 2 years ago
parent
commit
9ba08ff35b
  1. 18
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/rule/ErrorCodeConstants.java
  2. 11
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/saleprice/ErrorCodeConstants.java
  3. 20
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/shift/ErrorCodeConstants.java
  4. 8
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/stdcostprice/ErrorCodeConstants.java
  5. 8
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/supplier/ErrorCodeConstants.java
  6. 13
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/supplieritem/ErrorCodeConstants.java
  7. 5
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/systemcalendar/ErrorCodeConstants.java
  8. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java
  9. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleImportExcelVo.java
  10. 51
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java
  11. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/vo/SalepriceImportExcelVo.java
  12. 54
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/ShiftController.java
  13. 66
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftImportExcelVo.java
  14. 54
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/StdcostpriceController.java
  15. 58
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/vo/StdcostpriceImportExcelVo.java
  16. 51
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/SupplierController.java
  17. 90
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/vo/SupplierImportExcelVo.java
  18. 51
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java
  19. 87
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/vo/SupplieriteamImportExcelVo.java
  20. 54
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java
  21. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/vo/SystemcalendarImportExcelVo.java
  22. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/rule/RuleConvert.java
  23. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/saleprice/SalepriceConvert.java
  24. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/shift/ShiftConvert.java
  25. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/stdcostprice/StdcostpriceConvert.java
  26. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplier/SupplierConvert.java
  27. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplieritem/SupplieritemConvert.java
  28. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/systemcalendar/SystemcalendarConvert.java
  29. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/rule/RuleMapper.java
  30. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/saleprice/SalepriceMapper.java
  31. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/shift/ShiftMapper.java
  32. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java
  33. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplier/SupplierMapper.java
  34. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplieritem/SupplieritemMapper.java
  35. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/systemcalendar/SystemcalendarMapper.java
  36. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java
  37. 107
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java
  38. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceService.java
  39. 127
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceServiceImpl.java
  40. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/shift/ShiftService.java
  41. 131
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/shift/ShiftServiceImpl.java
  42. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceService.java
  43. 122
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java
  44. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierService.java
  45. 118
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierServiceImpl.java
  46. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java
  47. 115
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java
  48. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarService.java
  49. 99
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java

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

@ -0,0 +1,18 @@
package com.win.module.wms.enums.rule;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode RULE_NOT_EXISTS = new ErrorCode(1_000_045_000, "规则不存在");
ErrorCode RULE_STRATEGYCODE_NOT_EXISTS = new ErrorCode(1_000_045_001, "策略规则不存在");
ErrorCode RULE_PRIORITY_NOT_EXISTS = new ErrorCode(1_000_045_001, "策略规则不存在");
}

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

@ -9,6 +9,15 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
ErrorCode SALEPRICE_NOT_EXISTS = new ErrorCode(1_032_000_000, "销售价格单不存在");
ErrorCode SALEPRICE_NOT_EXISTS = new ErrorCode(1_000_032_000, "销售价格单不存在");
ErrorCode SALEPRICE_ITEMCODE_NOT_EXISTS = new ErrorCode(1_000_032_001, "物料代码不存在");
ErrorCode SALEPRICE_CURRENCY_NOT_EXISTS = new ErrorCode(1_000_032_002, "物料代码不存在");
ErrorCode SALEPRICE_PRICE_NOT_EXISTS = new ErrorCode(1_000_032_003, "价格不存在");
ErrorCode SALEPRICE_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_032_003, "是否可用不存在");
}

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

@ -0,0 +1,20 @@
package com.win.module.wms.enums.shift;
import com.win.framework.common.exception.ErrorCode;
/**
* System 错误码枚举类
*
* system 系统使用 1-002-000-000
*/
public interface ErrorCodeConstants {
ErrorCode SHIFT_NOT_EXISTS = new ErrorCode(1_000_057_000, "班次不存在");
ErrorCode SHIFT_BEGIN_TIME_NOT_EXISTS = new ErrorCode(1_000_057_001, "开始时间不存在");
ErrorCode SHIFT_END_TIME_NOT_EXISTS = new ErrorCode(1_000_057_002, "结束时间不存在");
ErrorCode SHIFT_AVAIABLE_NOT_EXISTS = new ErrorCode(1_000_057_003, "是否可用不存在");
ErrorCode SHIFT_ENDATNEXTDAY_NOT_EXISTS = new ErrorCode(1_000_057_003, "是否跨天不存在");
}

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

@ -11,4 +11,12 @@ public interface ErrorCodeConstants {
ErrorCode STDCOSTPRICE_NOT_EXISTS = new ErrorCode(1_023_000_000, "标准成本价格单不存在");
ErrorCode STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS = new ErrorCode(1_023_000_000, "供应商代码不存在");
ErrorCode STDCOSTPRICE_ITEN_CODE_NOT_EXISTS = new ErrorCode(1_023_000_000, "物料代码不存在");
ErrorCode STDCOSTPRICE_CURRENCY_NOT_EXISTS = new ErrorCode(1_023_000_000, "物料代码不存在");
ErrorCode STDCOSTPRICE_AVAILABLE_NOT_EXISTS = new ErrorCode(1_023_000_000, "物料代码不存在");
}

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

@ -9,6 +9,12 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_025_000_000, "供应商不存在");
ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_000_025_000, "供应商不存在");
ErrorCode SUPPLIER_NOT_EXISTSNO = new ErrorCode(1_000_025_001, "code已存在");
ErrorCode SUPPLIER_MOUBLE_EXISTSNO = new ErrorCode(1_000_025_002, "code已存在");
ErrorCode SUPPLIER_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_026_003, "是否可用不存在");
ErrorCode SUPPLIER_SHORTNAME_NOT_EXISTS = new ErrorCode(1_000_026_003, "简称不存在");
}

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

@ -9,6 +9,17 @@ import com.win.framework.common.exception.ErrorCode;
*/
public interface ErrorCodeConstants {
ErrorCode SUPPLIERITEM_NOT_EXISTS = new ErrorCode(1_026_000_000, "供应商物品不存在");
ErrorCode SUPPLIERITEM_NOT_EXISTS = new ErrorCode(1_000_026_000, "供应商物品不存在");
ErrorCode SUPPLIERITEM_SUPPLIER_CODE_NOT_EXISTS = new ErrorCode(1_000_026_001, "供应商代码不存在");
ErrorCode SUPPLIERITEM_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_026_002, "物料代码不存在");
ErrorCode SUPPLIERITEM_PACK_UNIT_NOT_EXISTS = new ErrorCode(1_000_026_003, "供应商包装单位不存在");
ErrorCode SUPPLIERITEM_PACK_QTY_NOT_EXISTS = new ErrorCode(1_000_026_003, "供应商包装数量不存在");
ErrorCode SUPPLIERITEM_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_026_003, "是否可用不存在");
}

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

@ -11,4 +11,9 @@ public interface ErrorCodeConstants {
ErrorCode SYSTEMCALENDAR_NOT_EXISTS = new ErrorCode(1_042_000_000, "系统日历不存在");
ErrorCode SYSTEMCALENDAR_MOUBLE_EXISTS = new ErrorCode(1_000_058_001, "code已存在");
ErrorCode SYSTEMCALENDAR_MOUBLE_EXISTSNO = new ErrorCode(1_049_000_002, "code已存在");
ErrorCode SYSTEMCALENDAR_AVAIABLE_NOT_EXISTS = new ErrorCode(1_040_000_000, "是否可用不存在");
}

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java

@ -1,6 +1,10 @@
package com.win.module.wms.controller.rule;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.controller.rule.vo.RuleImportExcelVo;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -11,6 +15,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.io.IOException;
@ -27,6 +33,7 @@ import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.convert.rule.RuleConvert;
import com.win.module.wms.service.rule.RuleService;
import org.springframework.web.multipart.MultipartFile;
@Tag(name = "管理后台 - 规则")
@RestController
@ -99,4 +106,47 @@ public class RuleController {
ExcelUtils.write(response, "规则.xls", "数据", RuleExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入规则信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<RuleImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
// 输出
ExcelUtils.write(response, "规则导入模板.xls", "规则列表", RuleImportExcelVo.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:rule:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<RuleImportExcelVo> list = ExcelUtils.read(file, RuleImportExcelVo.class);
List<RuleImportExcelVo> errorList = ruleService.importRuleList(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);
}
return success(returnMap);
}
}

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleImportExcelVo.java

@ -0,0 +1,50 @@
package com.win.module.wms.controller.rule.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class RuleImportExcelVo {
@ExcelProperty("策略代码")
private String strategyCode;
@ExcelProperty("优先级")
private Integer priority;
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty("条件")
private String condition;
@ExcelProperty("配置")
private String configuration;
}

51
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.saleprice;
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.saleprice.vo.*;
import com.win.module.wms.controller.saleprice.vo.SalepriceImportExcelVo;
import com.win.module.wms.convert.saleprice.SalepriceConvert;
import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.saleprice.SalepriceService;
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,46 @@ public class SalepriceController {
List<SalepriceExcelVO> datas = SalepriceConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "销售价格单.xls", "数据", SalepriceExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导销售价格单信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<SalepriceImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
// 输出
ExcelUtils.write(response, "销售价格单导入模板.xls", "销售价格单列表", SalepriceImportExcelVo.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:saleprice:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<SalepriceImportExcelVo> list = ExcelUtils.read(file, SalepriceImportExcelVo.class);
List<SalepriceImportExcelVo> errorList = salepriceService.importSalepriceList(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);
}
return success(returnMap);
}
}

57
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/vo/SalepriceImportExcelVo.java

@ -0,0 +1,57 @@
package com.win.module.wms.controller.saleprice.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class SalepriceImportExcelVo {
@ExcelProperty("客户代码")
private String customercode;
@ExcelProperty("物料代码")
private String itemcode;
@ExcelProperty(value = "货币", converter = DictConvert.class)
@DictFormat(DictTypeConstants.CURRENCY)
private String currency;
@ExcelProperty("价格")
private BigDecimal price;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

54
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/ShiftController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.shift;
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.shift.vo.*;
import com.win.module.wms.controller.shift.vo.ShiftImportExcelVo;
import com.win.module.wms.convert.shift.ShiftConvert;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.shift.ShiftService;
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,49 @@ public class ShiftController {
List<ShiftExcelVO> datas = ShiftConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "班次.xls", "数据", ShiftExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入班次信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ShiftImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
// 输出
ExcelUtils.write(response, "班次导入模板.xls", "班次列表", ShiftImportExcelVo.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:shift:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ShiftImportExcelVo> list = ExcelUtils.read(file, ShiftImportExcelVo.class);
List<ShiftImportExcelVo> errorList = shiftService.importShiftList(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);
}
return success(returnMap);
}
}

66
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftImportExcelVo.java

@ -0,0 +1,66 @@
package com.win.module.wms.controller.shift.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ShiftImportExcelVo {
@ExcelProperty("代码")
private String code;
@ExcelProperty("名称")
private String name;
@ExcelProperty("描述")
private String description;
@ExcelProperty(value = "开始时间")
@ColumnWidth(value = 16)
private LocalDateTime beginTime;
@ExcelProperty(value = "结束时间")
@ColumnWidth(value = 16)
private LocalDateTime entTime;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
@ExcelProperty(value = "是否跨天", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String endAtNextDay;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
}

54
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/StdcostpriceController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.stdcostprice;
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.stdcostprice.vo.*;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceImportExcelVo;
import com.win.module.wms.convert.stdcostprice.StdcostpriceConvert;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.stdcostprice.StdcostpriceService;
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,49 @@ public class StdcostpriceController {
List<StdcostpriceExcelVO> datas = StdcostpriceConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "标准成本价格单.xls", "数据", StdcostpriceExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入标准成本价格单信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<StdcostpriceImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
// 输出
ExcelUtils.write(response, "标准成本价格单导入模板.xls", "标准成本价格单列表", StdcostpriceImportExcelVo.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:stdcostprice:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<StdcostpriceImportExcelVo> list = ExcelUtils.read(file, StdcostpriceImportExcelVo.class);
List<StdcostpriceImportExcelVo> errorList = stdcostpriceService.importStdcostpriceList(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);
}
return success(returnMap);
}
}

58
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/vo/StdcostpriceImportExcelVo.java

@ -0,0 +1,58 @@
package com.win.module.wms.controller.stdcostprice.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class StdcostpriceImportExcelVo {
@ExcelProperty("供应商代码")
private String supplierCode;
@ExcelProperty("物料代码")
private String itemCode;
@ExcelProperty(value = "币种", converter = DictConvert.class)
@DictFormat(DictTypeConstants.CURRENCY)
private String currency;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "价格不能为空")
private BigDecimal price;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

51
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/SupplierController.java

@ -2,25 +2,30 @@ package com.win.module.wms.controller.supplier;
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.supplier.vo.*;
import com.win.module.wms.convert.supplier.SupplierConvert;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.supplier.SupplierService;
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,47 @@ public class SupplierController {
List<SupplierExcelVO> datas = SupplierConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "供应商.xls", "数据", SupplierExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入供应商模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<SupplierImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
// 输出
ExcelUtils.write(response, "班组供应商模板.xls", "供应商列表", SupplierImportExcelVo.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:supper:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<SupplierImportExcelVo> list = ExcelUtils.read(file, SupplierImportExcelVo.class);
List<SupplierImportExcelVo> errorList = supplierService.importSupplierList(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);
}
return success(returnMap);
}
}

90
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/vo/SupplierImportExcelVo.java

@ -0,0 +1,90 @@
package com.win.module.wms.controller.supplier.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class SupplierImportExcelVo {
@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.SUPPLIER_TYPE)
private String type;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty(value = "备注")
private String remark;
}

51
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.supplieritem;
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.supplieritem.vo.*;
import com.win.module.wms.convert.supplieritem.SupplieritemConvert;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -96,4 +102,45 @@ public class SupplieritemController {
ExcelUtils.write(response, "供应商物品.xls", "数据", SupplieritemExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入供应商物品信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<SupplieriteamImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
// 输出
ExcelUtils.write(response, "供应商物品导入模板.xls", "供应商物品列表", SupplieriteamImportExcelVo.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:supplieriteam:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<SupplieriteamImportExcelVo> list = ExcelUtils.read(file, SupplieriteamImportExcelVo.class);
List<SupplieriteamImportExcelVo> errorList = supplieritemService.importSupplieriteamList(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);
}
return success(returnMap);
}
}

87
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/vo/SupplieriteamImportExcelVo.java

@ -0,0 +1,87 @@
package com.win.module.wms.controller.supplieritem.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class SupplieriteamImportExcelVo {
@ExcelProperty("供应商代码")
private String supplierCode;
@ExcelProperty("物料代码")
private String itemCode;
@ExcelProperty("供应商物料代码")
private String supplierItemCode;
@ExcelProperty(value = "是否为空", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String supplierUom;
@ExcelProperty("转换率")
private BigDecimal convertRate;
@ExcelProperty(value = "供应商包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PACK_UNIT)
private String packUnit;
@ExcelProperty("供应商包装数量")
private BigDecimal packQty;
@ExcelProperty(value = "供应商代替包装单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PACK_UNIT)
private String altPackUnit;
@ExcelProperty("供应商代替包装数量")
private BigDecimal altPackQty;
@ExcelProperty("每器具包装数")
private Integer packQtyOfContainer;
@ExcelProperty("默认收货仓库")
private String defaultWarehouseCode;
@ExcelProperty("默认收货库位")
private String defaultLocationCode;
@ExcelProperty(value = "包装结算方式", converter = DictConvert.class)
@DictFormat(DictTypeConstants.SETTLEMENT_TYPE)
private String settlementType;
@ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

54
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java

@ -2,25 +2,31 @@ package com.win.module.wms.controller.systemcalendar;
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.systemcalendar.vo.*;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarImportExcelVo;
import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.systemcalendar.SystemcalendarService;
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,49 @@ public class SystemcalendarController {
List<SystemcalendarExcelVO> datas = SystemcalendarConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "系统日历.xls", "数据", SystemcalendarExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入班组信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<SystemcalendarImportExcelVo> list = Arrays.asList(
);
// 手动创建导出 demo
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(4, available);
// 输出
// 输出
ExcelUtils.write(response, "班组导入模板.xls", "班组列表", SystemcalendarImportExcelVo.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:systemcalendar:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<SystemcalendarImportExcelVo> list = ExcelUtils.read(file, SystemcalendarImportExcelVo.class);
List<SystemcalendarImportExcelVo> errorList = systemcalendarService.importSystemcalendarList(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);
}
return success(returnMap);
}
}

57
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/vo/SystemcalendarImportExcelVo.java

@ -0,0 +1,57 @@
package com.win.module.wms.controller.systemcalendar.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class SystemcalendarImportExcelVo {
@ExcelProperty("模块")
private String module;
@ExcelProperty(value = "开始时间")
@ColumnWidth(value = 16)
private LocalDateTime startTime;
@ExcelProperty(value = "结束时间")
@ColumnWidth(value = 16)
private LocalDateTime stopTime;
@ExcelProperty(value = "是否为空", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String available;
@ExcelProperty(value = "生效时间")
@ColumnWidth(value = 16)
private LocalDateTime activeTime;
@ExcelProperty(value = "失效时间")
@ColumnWidth(value = 16)
private LocalDateTime expireTime;
@ExcelProperty("备注")
private String remark;
}

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/rule/RuleConvert.java

@ -4,13 +4,12 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.rule.vo.RuleCreateReqVO;
import com.win.module.wms.controller.rule.vo.RuleExcelVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.rule.vo.RuleUpdateReqVO;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.controller.saleprice.vo.SalepriceImportExcelVo;
import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.dal.dataobject.rule.*;
/**
* 规则 Convert
@ -34,4 +33,6 @@ public interface RuleConvert {
List<RuleExcelVO> convertList02(List<RuleDO> list);
RuleDO convert(RuleImportExcelVo bean);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/saleprice/SalepriceConvert.java

@ -7,7 +7,7 @@ import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.saleprice.vo.SalepriceCreateReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceExcelVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceRespVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceUpdateReqVO;
import com.win.module.wms.controller.saleprice.vo.*;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO;
@ -34,4 +34,6 @@ public interface SalepriceConvert {
List<SalepriceExcelVO> convertList02(List<SalepriceDO> list);
SalepriceDO convert(SalepriceImportExcelVo bean);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/shift/ShiftConvert.java

@ -7,7 +7,7 @@ import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.shift.vo.ShiftCreateReqVO;
import com.win.module.wms.controller.shift.vo.ShiftExcelVO;
import com.win.module.wms.controller.shift.vo.ShiftRespVO;
import com.win.module.wms.controller.shift.vo.ShiftUpdateReqVO;
import com.win.module.wms.controller.shift.vo.*;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
@ -34,4 +34,6 @@ public interface ShiftConvert {
List<ShiftExcelVO> convertList02(List<ShiftDO> list);
ShiftDO convert(ShiftImportExcelVo bean);
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/stdcostprice/StdcostpriceConvert.java

@ -4,10 +4,9 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceCreateReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceExcelVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceRespVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceUpdateReqVO;
import com.win.module.wms.controller.stdcostprice.vo.*;
import com.win.module.wms.controller.supplier.vo.SupplierImportExcelVo;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
@ -34,4 +33,6 @@ public interface StdcostpriceConvert {
List<StdcostpriceExcelVO> convertList02(List<StdcostpriceDO> list);
StdcostpriceDO convert(StdcostpriceImportExcelVo bean);
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplier/SupplierConvert.java

@ -4,10 +4,7 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.supplier.vo.SupplierCreateReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierExcelVO;
import com.win.module.wms.controller.supplier.vo.SupplierRespVO;
import com.win.module.wms.controller.supplier.vo.SupplierUpdateReqVO;
import com.win.module.wms.controller.supplier.vo.*;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
@ -34,4 +31,6 @@ public interface SupplierConvert {
List<SupplierExcelVO> convertList02(List<SupplierDO> list);
SupplierDO convert(SupplierImportExcelVo bean);
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplieritem/SupplieritemConvert.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.supplieritem.vo.SupplieritemCreateReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemExcelVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemRespVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemUpdateReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieriteamImportExcelVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
@ -34,4 +35,6 @@ public interface SupplieritemConvert {
List<SupplieritemExcelVO> convertList02(List<SupplieritemDO> list);
SupplieritemDO convert(SupplieriteamImportExcelVo bean);
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/systemcalendar/SystemcalendarConvert.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarCreateReqVO
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarExcelVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarRespVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarUpdateReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarImportExcelVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
@ -34,4 +35,6 @@ public interface SystemcalendarConvert {
List<SystemcalendarExcelVO> convertList02(List<SystemcalendarDO> list);
SystemcalendarDO convert(SystemcalendarImportExcelVo bean);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/rule/RuleMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.controller.rule.vo.RuleExportReqVO;
import com.win.module.wms.controller.rule.vo.RulePageReqVO;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,6 +19,10 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface RuleMapper extends BaseMapperX<RuleDO> {
default RuleDO selectByCode(String code) {
return selectOne(RuleDO::getCode, code);
}
default PageResult<RuleDO> selectPage(RulePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<RuleDO>()
.eqIfPresent(RuleDO::getStrategyCode, reqVO.getStrategyCode())

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/saleprice/SalepriceMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.controller.saleprice.vo.SalepriceExportReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepricePageReqVO;
import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,6 +19,10 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SalepriceMapper extends BaseMapperX<SalepriceDO> {
default SalepriceDO selectByCustomercodeCode(String customercode) {
return selectOne(SalepriceDO::getCustomercode, customercode);
}
default PageResult<SalepriceDO> selectPage(SalepricePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SalepriceDO>()
.eqIfPresent(SalepriceDO::getCustomercode, reqVO.getCustomercode())

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

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.controller.shift.vo.ShiftExportReqVO;
import com.win.module.wms.controller.shift.vo.ShiftPageReqVO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,6 +19,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ShiftMapper extends BaseMapperX<ShiftDO> {
default ShiftDO selectByCode(String code) {
return selectOne(ShiftDO::getCode, code);
}
default PageResult<ShiftDO> selectPage(ShiftPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ShiftDO>()
.eqIfPresent(ShiftDO::getCode, reqVO.getCode())

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceExportReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpricePageReqVO;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,6 +19,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StdcostpriceMapper extends BaseMapperX<StdcostpriceDO> {
default StdcostpriceDO selectByStdcostpriceCode(String suppliercode) {
return selectOne( StdcostpriceDO::getSupplierCode,suppliercode);
}
default PageResult<StdcostpriceDO> selectPage(StdcostpricePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<StdcostpriceDO>()
.eqIfPresent(StdcostpriceDO::getSupplierCode, reqVO.getSupplierCode())

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplier/SupplierMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.controller.supplier.vo.SupplierExportReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierPageReqVO;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import com.win.module.wms.dal.dataobject.team.TeamDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,6 +19,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SupplierMapper extends BaseMapperX<SupplierDO> {
default SupplierDO selectByCode(String code) {
return selectOne(SupplierDO::getCode, code);
}
default PageResult<SupplierDO> selectPage(SupplierPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SupplierDO>()
.eqIfPresent(SupplierDO::getCode, reqVO.getCode())

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplieritem/SupplieritemMapper.java

@ -8,6 +8,8 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemExportReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemPageReqVO;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.module.wms.dal.dataobject.team.TeamDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,6 +20,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SupplieritemMapper extends BaseMapperX<SupplieritemDO> {
default SupplieritemDO selectBySuppercode(String suppercode) {return selectOne(SupplieritemDO::getSupplierCode, suppercode);
}
default PageResult<SupplieritemDO> selectPage(SupplieritemPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SupplieritemDO>()
.eqIfPresent(SupplieritemDO::getSupplierCode, reqVO.getSupplierCode())

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/systemcalendar/SystemcalendarMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarExportReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarPageReqVO;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.module.wms.dal.dataobject.team.TeamDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -18,6 +19,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SystemcalendarMapper extends BaseMapperX<SystemcalendarDO> {
default SystemcalendarDO selectByMoudule(String mouble) {
return selectOne(SystemcalendarDO::getModule, mouble);
}
default PageResult<SystemcalendarDO> selectPage(SystemcalendarPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SystemcalendarDO>()
.eqIfPresent(SystemcalendarDO::getModule, reqVO.getModule())

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java

@ -6,7 +6,8 @@ import javax.validation.*;
import com.win.module.wms.controller.rule.vo.RuleCreateReqVO;
import com.win.module.wms.controller.rule.vo.RuleExportReqVO;
import com.win.module.wms.controller.rule.vo.RulePageReqVO;
import com.win.module.wms.controller.rule.vo.RuleUpdateReqVO;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.controller.saleprice.vo.SalepriceImportExcelVo;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.framework.common.pojo.PageResult;
@ -71,4 +72,7 @@ public interface RuleService {
*/
List<RuleDO> getRuleList(RuleExportReqVO exportReqVO);
List<RuleImportExcelVo> importRuleList(List<RuleImportExcelVo> importTeam, Integer mode, boolean updatePart);
}

107
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java

@ -1,23 +1,34 @@
package com.win.module.wms.service.rule;
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.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.rule.vo.RuleCreateReqVO;
import com.win.module.wms.controller.rule.vo.RuleExportReqVO;
import com.win.module.wms.controller.rule.vo.RulePageReqVO;
import com.win.module.wms.controller.rule.vo.RuleUpdateReqVO;
import com.win.module.wms.controller.rule.vo.RuleImportExcelVo;
import com.win.module.wms.convert.rule.RuleConvert;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.rule.RuleConvert;
import com.win.module.wms.dal.mysql.rule.RuleMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.rule.ErrorCodeConstants.*;
/**
* 规则 Service 实现类
@ -83,4 +94,96 @@ public class RuleServiceImpl implements RuleService {
return ruleMapper.selectList(exportReqVO);
}
public List<RuleImportExcelVo> importRuleList(List<RuleImportExcelVo> rules, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(rules)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<RuleImportExcelVo> errorList = new ArrayList<>();
rules.forEach(rule -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateRuleForCreateOrUpdate(null,rule.getCode(),rule.getStrategyCode(),rule.getPriority());
}
} catch (ServiceException ex) {
errorList.add(rule);
return;
}
// 判断如果不存在,在进行插入
RuleDO existRule = ruleMapper.selectByCode(rule.getCode());
if (existRule == null&& mode != 3) {
ruleMapper.insert(RuleConvert.INSTANCE.convert(rule));
}
else if (existRule != null && mode != 2) {// 如果存在,判断是否允许更新
RuleDO ruleDO = RuleConvert.INSTANCE.convert(rule);
ruleDO.setId(existRule.getId());
ruleMapper.updateById(ruleDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateRuleForCreateOrUpdate(Long id, String code, String strategycode,Integer priority) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateRulepExists(id);
// 校验code唯一
validateCodeExists(id,code);
validateStrategycode(strategycode);
validatePriority(priority);
});
}
@VisibleForTesting
private void validateRulepExists(Long id) {
if (id == null) {
return;
}
RuleDO rule = ruleMapper.selectById(id);
if (rule == null) {
throw exception(RULE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(RULE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
RuleDO rule = ruleMapper.selectByCode(code);
if (rule == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(RULE_NOT_EXISTS);
}
if (!rule.getId().equals(id)) {
throw exception(RULE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateStrategycode(String strategycode) {
if (strategycode.isEmpty()) {
throw exception(RULE_STRATEGYCODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePriority(Integer priority) {
if (priority == null) {
throw exception(RULE_PRIORITY_NOT_EXISTS);
}
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceService.java

@ -6,7 +6,8 @@ import javax.validation.*;
import com.win.module.wms.controller.saleprice.vo.SalepriceCreateReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceExportReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepricePageReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceUpdateReqVO;
import com.win.module.wms.controller.saleprice.vo.*;
import com.win.module.wms.controller.shift.vo.ShiftImportExcelVo;
import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO;
import com.win.framework.common.pojo.PageResult;
@ -71,4 +72,6 @@ public interface SalepriceService {
*/
List<SalepriceDO> getSalepriceList(SalepriceExportReqVO exportReqVO);
List<SalepriceImportExcelVo> importSalepriceList(List<SalepriceImportExcelVo> importTeam, Integer mode, boolean updatePart);
}

127
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceServiceImpl.java

@ -1,22 +1,35 @@
package com.win.module.wms.service.saleprice;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.saleprice.vo.SalepriceCreateReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceExportReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepricePageReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceUpdateReqVO;
import com.win.module.wms.controller.saleprice.vo.SalepriceImportExcelVo;
import com.win.module.wms.convert.saleprice.SalepriceConvert;
import com.win.module.wms.convert.saleprice.SalepriceConvert;
import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO;
import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO;
import com.win.module.wms.dal.mysql.saleprice.SalepriceMapper;
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.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.saleprice.ErrorCodeConstants.SALEPRICE_NOT_EXISTS;
import static com.win.module.wms.enums.saleprice.ErrorCodeConstants.*;
/**
* 销售价格单 Service 实现类
@ -82,4 +95,118 @@ public class SalepriceServiceImpl implements SalepriceService {
return salepriceMapper.selectList(exportReqVO);
}
public List<SalepriceImportExcelVo> importSalepriceList(List<SalepriceImportExcelVo> saleprices, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(saleprices)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<SalepriceImportExcelVo> errorList = new ArrayList<>();
saleprices.forEach(saleprice -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateSalepriceForCreateOrUpdate(null,saleprice.getCustomercode(),saleprice.getItemcode(),saleprice.getCurrency()
,saleprice.getPrice(),saleprice.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(saleprice);
return;
}
// 判断如果不存在,在进行插入
SalepriceDO existSaleprice = salepriceMapper.selectByCustomercodeCode(saleprice.getCustomercode());
if (existSaleprice == null&& mode != 3) {
salepriceMapper.insert(SalepriceConvert.INSTANCE.convert(saleprice));
}
else if (existSaleprice != null && mode != 2) {// 如果存在,判断是否允许更新
SalepriceDO salepriceDO = SalepriceConvert.INSTANCE.convert(saleprice);
salepriceDO.setId(existSaleprice.getId());
salepriceMapper.updateById(salepriceDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateSalepriceForCreateOrUpdate(Long id, String customercode, String itemcode, String currency,
BigDecimal price, String available ) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateSalepricepExists(id);
// 校验code唯一
validateCodeExists(id,customercode);
validateItemCodeExists(itemcode);
validateCurrencyExists(currency);
validatePriceExists(price);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateSalepricepExists(Long id) {
if (id == null) {
return;
}
SalepriceDO saleprice = salepriceMapper.selectById(id);
if (saleprice == null) {
throw exception(SALEPRICE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(SALEPRICE_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
SalepriceDO saleprice = salepriceMapper.selectByCustomercodeCode(code);
if (saleprice == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(SALEPRICE_NOT_EXISTS);
}
if (!saleprice.getId().equals(id)) {
throw exception(SALEPRICE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePriceExists(BigDecimal price) {
if (price ==null) {
throw exception(SALEPRICE_PRICE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCurrencyExists(String currency) {
if (currency.isEmpty()) {
throw exception(SALEPRICE_CURRENCY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateItemCodeExists(String itemcode) {
if (itemcode.isEmpty()) {
throw exception(SALEPRICE_ITEMCODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available == null) {
throw exception(SALEPRICE_AVAILABLE_NOT_EXISTS);
}
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/shift/ShiftService.java

@ -3,10 +3,8 @@ package com.win.module.wms.service.shift;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.shift.vo.ShiftCreateReqVO;
import com.win.module.wms.controller.shift.vo.ShiftExportReqVO;
import com.win.module.wms.controller.shift.vo.ShiftPageReqVO;
import com.win.module.wms.controller.shift.vo.ShiftUpdateReqVO;
import com.win.module.wms.controller.shift.vo.*;
import com.win.module.wms.controller.supplier.vo.SupplierImportExcelVo;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.framework.common.pojo.PageResult;
@ -71,4 +69,6 @@ public interface ShiftService {
*/
List<ShiftDO> getShiftList(ShiftExportReqVO exportReqVO);
List<ShiftImportExcelVo> importShiftList(List<ShiftImportExcelVo> importTeam, Integer mode, boolean updatePart);
}

131
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/shift/ShiftServiceImpl.java

@ -1,13 +1,26 @@
package com.win.module.wms.service.shift;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.shift.vo.ShiftCreateReqVO;
import com.win.module.wms.controller.shift.vo.ShiftExportReqVO;
import com.win.module.wms.controller.shift.vo.ShiftPageReqVO;
import com.win.module.wms.controller.shift.vo.ShiftUpdateReqVO;
import com.win.module.wms.controller.shift.vo.ShiftImportExcelVo;
import com.win.module.wms.convert.shift.ShiftConvert;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
@ -17,7 +30,9 @@ import com.win.module.wms.convert.shift.ShiftConvert;
import com.win.module.wms.dal.mysql.shift.ShiftMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.shift.ErrorCodeConstants.*;
/**
* 班次 Service 实现类
@ -83,4 +98,118 @@ public class ShiftServiceImpl implements ShiftService {
return shiftMapper.selectList(exportReqVO);
}
public List<ShiftImportExcelVo> importShiftList(List<ShiftImportExcelVo> shifts, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(shifts)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<ShiftImportExcelVo> errorList = new ArrayList<>();
shifts.forEach(shift -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateShiftForCreateOrUpdate(null,shift.getCode(),shift.getBeginTime(),shift.getEntTime(),shift.getEndAtNextDay(),
shift.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(shift);
return;
}
// 判断如果不存在,在进行插入
ShiftDO existShift = shiftMapper.selectByCode(shift.getCode());
if (existShift == null&& mode != 3) {
shiftMapper.insert(ShiftConvert.INSTANCE.convert(shift));
}
else if (existShift != null && mode != 2) {// 如果存在,判断是否允许更新
ShiftDO shiftDO = ShiftConvert.INSTANCE.convert(shift);
shiftDO.setId(existShift.getId());
shiftMapper.updateById(shiftDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateShiftForCreateOrUpdate(Long id, String code, LocalDateTime begintime, LocalDateTime endtime, String endatnextday,
String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateShiftpExists(id);
// 校验code唯一
validateCodeExists(id,code);
validateBeginTimeExists(begintime);
validateEndTimeExists(endtime);
validateEndatnextDayExists(endatnextday);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateShiftpExists(Long id) {
if (id == null) {
return;
}
ShiftDO shift = shiftMapper.selectById(id);
if (shift == null) {
throw exception(SHIFT_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(SHIFT_NOT_EXISTS);
}
if (StrUtil.isBlank(code)) {
return;
}
ShiftDO shift = shiftMapper.selectByCode(code);
if (shift == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(SHIFT_NOT_EXISTS);
}
if (!shift.getId().equals(id)) {
throw exception(SHIFT_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateEndatnextDayExists(String endatnextday) {
if (endatnextday.isEmpty()) {
throw exception(SHIFT_ENDATNEXTDAY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateEndTimeExists(LocalDateTime endtime) {
if (endtime == null) {
throw exception(SHIFT_END_TIME_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateBeginTimeExists(LocalDateTime begintime) {
if (begintime == null) {
throw exception(SHIFT_BEGIN_TIME_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available == null) {
throw exception(SHIFT_AVAIABLE_NOT_EXISTS);
}
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceService.java

@ -1,10 +1,11 @@
package com.win.module.wms.service.stdcostprice;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceCreateReqVO;
import com.win.module.wms.controller.stdcostprice.vo.*;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceExportReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpricePageReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceUpdateReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierImportExcelVo;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import javax.validation.Valid;
@ -72,4 +73,6 @@ public interface StdcostpriceService {
*/
List<StdcostpriceDO> getStdcostpriceList(StdcostpriceExportReqVO exportReqVO);
List<StdcostpriceImportExcelVo> importStdcostpriceList(List<StdcostpriceImportExcelVo> importTeam, Integer mode, boolean updatePart);
}

122
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java

@ -1,23 +1,36 @@
package com.win.module.wms.service.stdcostprice;
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.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceCreateReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceExportReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpricePageReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceUpdateReqVO;
import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceImportExcelVo;
import com.win.module.wms.convert.stdcostprice.StdcostpriceConvert;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.util.*;
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.stdcostprice.StdcostpriceConvert;
import com.win.module.wms.dal.mysql.stdcostprice.StdcostpriceMapper;
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.stdcostprice.ErrorCodeConstants.STDCOSTPRICE_NOT_EXISTS;
import static com.win.module.wms.enums.stdcostprice.ErrorCodeConstants.*;
/**
* 标准成本价格单 Service 实现类
@ -82,5 +95,112 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
public List<StdcostpriceDO> getStdcostpriceList(StdcostpriceExportReqVO exportReqVO) {
return stdcostpriceMapper.selectList(exportReqVO);
}
public List<StdcostpriceImportExcelVo> importStdcostpriceList(List<StdcostpriceImportExcelVo> stdcostprices, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(stdcostprices)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<StdcostpriceImportExcelVo> errorList = new ArrayList<>();
stdcostprices.forEach(stdcostprice -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateStdcostpriceForCreateOrUpdate(null,stdcostprice.getSupplierCode(),stdcostprice.getItemCode(),
stdcostprice.getCurrency(),stdcostprice.getPrice(),stdcostprice.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(stdcostprice);
return;
}
// 判断如果不存在,在进行插入
StdcostpriceDO existStdcostprice = stdcostpriceMapper.selectByStdcostpriceCode(stdcostprice.getSupplierCode());
if (existStdcostprice == null&& mode != 3) {
stdcostpriceMapper.insert(StdcostpriceConvert.INSTANCE.convert(stdcostprice));
}
else if (existStdcostprice != null && mode != 2) {// 如果存在,判断是否允许更新
StdcostpriceDO stdcostpriceDO = StdcostpriceConvert.INSTANCE.convert(stdcostprice);
stdcostpriceDO.setId(existStdcostprice.getId());
stdcostpriceMapper.updateById(stdcostpriceDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateStdcostpriceForCreateOrUpdate(Long id, String suppercode, String itemcode, String currency,
BigDecimal price,String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateStdcostpricepExists(id);
// 校验code唯一
validateCodeExists(id,suppercode);
validateItemCodeExists(itemcode);
validateCurrencyExists(currency);
validatePriceExists(price);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateStdcostpricepExists(Long id) {
if (id == null) {
return;
}
StdcostpriceDO stdcostprice = stdcostpriceMapper.selectById(id);
if (stdcostprice == null) {
throw exception(STDCOSTPRICE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String suppercode) {
if (suppercode.isEmpty()) {
throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
}
if (StrUtil.isBlank(suppercode)) {
return;
}
StdcostpriceDO stdcostprice = stdcostpriceMapper.selectByStdcostpriceCode(suppercode);
if (stdcostprice == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
}
if (!stdcostprice.getId().equals(id)) {
throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateItemCodeExists(String itemcode) {
if (itemcode.isEmpty()) {
throw exception(STDCOSTPRICE_ITEN_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateCurrencyExists(String currency) {
if (currency.isEmpty()) {
throw exception(STDCOSTPRICE_CURRENCY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePriceExists(BigDecimal price) {
if (price == null) {
throw exception(STDCOSTPRICE_CURRENCY_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available == null) {
throw exception(STDCOSTPRICE_AVAILABLE_NOT_EXISTS);
}
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierService.java

@ -3,10 +3,8 @@ package com.win.module.wms.service.supplier;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.supplier.vo.SupplierCreateReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierExportReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierPageReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierUpdateReqVO;
import com.win.module.wms.controller.supplier.vo.*;
import com.win.module.wms.controller.supplier.vo.SupplierImportExcelVo;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import com.win.framework.common.pojo.PageResult;
@ -71,4 +69,6 @@ public interface SupplierService {
*/
List<SupplierDO> getSupplierList(SupplierExportReqVO exportReqVO);
List<SupplierImportExcelVo> importSupplierList(List<SupplierImportExcelVo> importTeam, Integer mode, boolean updatePart);
}

118
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierServiceImpl.java

@ -1,22 +1,38 @@
package com.win.module.wms.service.supplier;
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.supplier.vo.SupplierCreateReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierExportReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierPageReqVO;
import com.win.module.wms.controller.supplier.vo.SupplierUpdateReqVO;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.supplier.vo.*;
import com.win.module.wms.controller.supplier.vo.SupplierImportExcelVo;
import com.win.module.wms.convert.supplier.SupplierConvert;
import com.win.module.wms.convert.supplier.SupplierConvert;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import com.win.module.wms.dal.mysql.supplier.SupplierMapper;
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.supplier.ErrorCodeConstants.SUPPLIER_NOT_EXISTS;
import static com.win.module.wms.enums.supplier.ErrorCodeConstants.*;
import static com.win.module.wms.enums.supplier.ErrorCodeConstants.*;
import static com.win.module.wms.enums.supplier.ErrorCodeConstants.*;
/**
* 供应商 Service 实现类
@ -81,5 +97,99 @@ public class SupplierServiceImpl implements SupplierService {
public List<SupplierDO> getSupplierList(SupplierExportReqVO exportReqVO) {
return supplierMapper.selectList(exportReqVO);
}
public List<SupplierImportExcelVo> importSupplierList(List<SupplierImportExcelVo> suppliers, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(suppliers)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<SupplierImportExcelVo> errorList = new ArrayList<>();
suppliers.forEach(supplier -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateSupplierForCreateOrUpdate(null,supplier.getCode(),supplier.getShortName(),supplier.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(supplier);
return;
}
// 判断如果不存在,在进行插入
SupplierDO existSupplier = supplierMapper.selectByCode(supplier.getCode());
if (existSupplier == null&& mode != 3) {
supplierMapper.insert(SupplierConvert.INSTANCE.convert(supplier));
}
else if (existSupplier != null && mode != 2) {// 如果存在,判断是否允许更新
SupplierDO supplierDO = SupplierConvert.INSTANCE.convert(supplier);
supplierDO.setId(existSupplier.getId());
supplierMapper.updateById(supplierDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateSupplierForCreateOrUpdate(Long id, String code, String shortname, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateSupplierpExists(id);
// 校验code唯一
validateCodeExists(id,code);
validateShortnameExists(shortname);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateSupplierpExists(Long id) {
if (id == null) {
return;
}
SupplierDO supplier = supplierMapper.selectById(id);
if (supplier == null) {
throw exception(SUPPLIER_NOT_EXISTSNO);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String code) {
if (code.isEmpty()) {
throw exception(SUPPLIER_MOUBLE_EXISTSNO);
}
if (StrUtil.isBlank(code)) {
return;
}
SupplierDO supplier = supplierMapper.selectByCode(code);
if (supplier == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(SUPPLIER_NOT_EXISTSNO);
}
if (!supplier.getId().equals(id)) {
throw exception(SUPPLIER_NOT_EXISTSNO);
}
}
@VisibleForTesting
private void validateShortnameExists(String shortname) {
if (shortname.isEmpty()) {
throw exception(SUPPLIER_SHORTNAME_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available == null) {
throw exception(SUPPLIER_AVAILABLE_NOT_EXISTS);
}
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java

@ -7,6 +7,7 @@ import com.win.module.wms.controller.supplieritem.vo.SupplieritemCreateReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemExportReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemPageReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemUpdateReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieriteamImportExcelVo;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.framework.common.pojo.PageResult;
@ -71,4 +72,6 @@ public interface SupplieritemService {
*/
List<SupplieritemDO> getSupplieritemList(SupplieritemExportReqVO exportReqVO);
List<SupplieriteamImportExcelVo> importSupplieriteamList(List<SupplieriteamImportExcelVo> importTeam, Integer mode, boolean updatePart);
}

115
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java

@ -1,22 +1,37 @@
package com.win.module.wms.service.supplieritem;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemCreateReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemExportReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemPageReqVO;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;;
import com.win.module.wms.controller.supplieritem.vo.SupplieritemUpdateReqVO;
import com.win.module.wms.controller.supplieritem.vo.SupplieriteamImportExcelVo;
import com.win.module.wms.convert.supplieritem.SupplieritemConvert;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.module.wms.dal.mysql.supplieritem.SupplieritemMapper;
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.supplieritem.ErrorCodeConstants.SUPPLIERITEM_NOT_EXISTS;
import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.supplieritem.ErrorCodeConstants.*;
/**
* 供应商物品 Service 实现类
@ -82,4 +97,102 @@ public class SupplieritemServiceImpl implements SupplieritemService {
return supplieritemMapper.selectList(exportReqVO);
}
public List<SupplieriteamImportExcelVo> importSupplieriteamList(List<SupplieriteamImportExcelVo> supplieriteams, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(supplieriteams)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<SupplieriteamImportExcelVo> errorList = new ArrayList<>();
supplieriteams.forEach(supplieriteam -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateSupplieriteamForCreateOrUpdate(null,supplieriteam.getSupplierCode(),
supplieriteam.getItemCode(),supplieriteam.getPackUnit(),supplieriteam.getPackQty(),supplieriteam.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(supplieriteam);
return;
}
// 判断如果不存在,在进行插入
SupplieritemDO existSupplieriteam = supplieritemMapper.selectBySuppercode(supplieriteam.getSupplierCode());
if (existSupplieriteam == null&& mode != 3) {
supplieritemMapper.insert(SupplieritemConvert.INSTANCE.convert(supplieriteam));
}
else if (existSupplieriteam != null && mode != 2) {// 如果存在,判断是否允许更新
SupplieritemDO supplieriteamDO = SupplieritemConvert.INSTANCE.convert(supplieriteam);
supplieriteamDO.setId(existSupplieriteam.getId());
supplieritemMapper.updateById(supplieriteamDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateSupplieriteamForCreateOrUpdate(Long id, String suppliercode, String itemcode, String packunit ,BigDecimal packqty,
String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateSupplieriteampExists(id);
// 校验code唯一
validateSupperCodeExists(suppliercode);
validateItemCodeExists(itemcode);
validatePackunitExists(packunit);
validatePackQtyExists(packqty);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateSupplieriteampExists(Long id) {
if (id == null) {
return;
}
SupplieritemDO supplieritem = supplieritemMapper.selectById(id);
if (supplieritem == null) {
throw exception(SUPPLIERITEM_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateSupperCodeExists(String suppliercode) {
if (suppliercode.isEmpty()) {
throw exception(SUPPLIERITEM_SUPPLIER_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validateItemCodeExists(String itemcode) {
if (itemcode.isEmpty()) {
throw exception(SUPPLIERITEM_ITEM_CODE_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePackunitExists(String packunit) {
if (packunit == null) {
throw exception(SUPPLIERITEM_PACK_UNIT_NOT_EXISTS);
}
}
@VisibleForTesting
private void validatePackQtyExists(BigDecimal packqty) {
if (packqty == null) {
throw exception(SUPPLIERITEM_PACK_QTY_NOT_EXISTS );
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available == null) {
throw exception(SUPPLIERITEM_AVAILABLE_NOT_EXISTS);
}
}
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarService.java

@ -3,10 +3,8 @@ package com.win.module.wms.service.systemcalendar;
import java.util.*;
import javax.validation.*;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarCreateReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarExportReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarPageReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarUpdateReqVO;
import com.win.module.wms.controller.systemcalendar.vo.*;
import com.win.module.wms.controller.team.vo.TeamImportExcelVo;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.framework.common.pojo.PageResult;
@ -71,4 +69,8 @@ public interface SystemcalendarService {
*/
List<SystemcalendarDO> getSystemcalendarList(SystemcalendarExportReqVO exportReqVO);
List<SystemcalendarImportExcelVo> importSystemcalendarList(List<SystemcalendarImportExcelVo> importTeam, Integer mode, boolean updatePart);
}

99
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/systemcalendar/SystemcalendarServiceImpl.java

@ -1,22 +1,34 @@
package com.win.module.wms.service.systemcalendar;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarCreateReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarExportReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarPageReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarUpdateReqVO;
import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarImportExcelVo;
import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert;
import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO;
import com.win.module.wms.dal.mysql.systemcalendar.SystemcalendarMapper;
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.systemcalendar.ErrorCodeConstants.SYSTEMCALENDAR_NOT_EXISTS;
import static com.win.module.wms.enums.systemcalendar.ErrorCodeConstants.*;
/**
* 系统日历 Service 实现类
@ -81,5 +93,92 @@ public class SystemcalendarServiceImpl implements SystemcalendarService {
public List<SystemcalendarDO> getSystemcalendarList(SystemcalendarExportReqVO exportReqVO) {
return systemcalendarMapper.selectList(exportReqVO);
}
public List<SystemcalendarImportExcelVo> importSystemcalendarList(List<SystemcalendarImportExcelVo> systemcalendars, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(systemcalendars)) {
throw exception(USER_IMPORT_LIST_IS_EMPTY);
}
List<SystemcalendarImportExcelVo> errorList = new ArrayList<>();
systemcalendars.forEach(systemcalendar -> {
// 校验,判断是否有不符合的原因
try {
if(mode != null){
validateSystemcalendarForCreateOrUpdate(null,systemcalendar.getModule(),systemcalendar.getAvailable());
}
} catch (ServiceException ex) {
errorList.add(systemcalendar);
return;
}
// 判断如果不存在,在进行插入
SystemcalendarDO existSystemcalendar = systemcalendarMapper.selectByMoudule(systemcalendar.getModule());
if (existSystemcalendar == null&& mode != 3) {
systemcalendarMapper.insert(SystemcalendarConvert.INSTANCE.convert(systemcalendar));
}
else if (existSystemcalendar != null && mode != 2) {// 如果存在,判断是否允许更新
SystemcalendarDO systemcalendarDO = SystemcalendarConvert.INSTANCE.convert(systemcalendar);
systemcalendarDO.setId(existSystemcalendar.getId());
systemcalendarMapper.updateById(systemcalendarDO);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
private void validateSystemcalendarForCreateOrUpdate(Long id, String mouble, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> {
validateSystemcalendarpExists(id);
// 校验code唯一
validateCodeExists(id,mouble);
validateAvailableExists(available);
});
}
@VisibleForTesting
private void validateSystemcalendarpExists(Long id) {
if (id == null) {
return;
}
SystemcalendarDO systemcalendar = systemcalendarMapper.selectById(id);
if (systemcalendar == null) {
throw exception(SYSTEMCALENDAR_MOUBLE_EXISTS);
}
}
@VisibleForTesting
private void validateCodeExists(Long id,String mouble) {
if (mouble.isEmpty()) {
throw exception(SYSTEMCALENDAR_MOUBLE_EXISTS);
}
if (StrUtil.isBlank(mouble)) {
return;
}
SystemcalendarDO systemcalendar = systemcalendarMapper.selectByMoudule(mouble);
if (systemcalendar == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同 id 的用户
if (id == null) {
throw exception(SYSTEMCALENDAR_MOUBLE_EXISTS);
}
if (!systemcalendar.getId().equals(id)) {
throw exception(SYSTEMCALENDAR_MOUBLE_EXISTS);
}
}
@VisibleForTesting
private void validateAvailableExists(String available) {
if (available == null) {
throw exception(SYSTEMCALENDAR_AVAIABLE_NOT_EXISTS);
}
}
}

Loading…
Cancel
Save