Browse Source

客户发货申请

master
廉洪喜 2 years ago
parent
commit
387ddd8d11
  1. 3
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/CustomersettleRequestMainController.java
  3. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestImportErrorVO.java
  4. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainBaseVO.java
  5. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainCreateReqVO.java
  6. 39
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainImportVO.java
  7. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportVO.java
  8. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/DeliverRequestMainController.java
  9. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportErrorVO.java
  10. 55
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestImportVO.java
  11. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainBaseVO.java
  12. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainCreateReqVO.java
  13. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/ProductputawayRequestMainController.java
  14. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java
  15. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestDetailConvert.java
  16. 27
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestDetailConvert.java
  17. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestMainMapper.java
  18. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java
  19. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainService.java
  20. 153
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java
  21. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainService.java
  22. 185
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java
  23. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java

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

@ -658,6 +658,7 @@ public interface ErrorCodeConstants {
ErrorCode DELIVER_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_118_001, "发货计划子不存在");
//发货申请ErrorCode
ErrorCode DELIVER_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请主不存在");
ErrorCode DELIVER_REQUEST_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请不存在");
ErrorCode DELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_119_001, "发货申请子不存在");
//发货任务ErrorCode
ErrorCode DELIVER_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_120_000, "发货任务主不存在");
@ -687,6 +688,8 @@ public interface ErrorCodeConstants {
//客户结算申请ErrorCode
ErrorCode CUSTOMERSETTLE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_127_000, "客户结算申请主不存在");
ErrorCode CUSTOMERSETTLE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_127_001, "客户结算申请子不存在");
ErrorCode CUSTOMERSETTLE_REQUEST_NOT_EXISTS = new ErrorCode(1_000_127_001, "客户结算申请不存在");
//客户结算记录ErrorCode
ErrorCode CUSTOMERSETTLE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_128_000, "客户结算记录主不存在");
ErrorCode CUSTOMERSETTLE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_128_001, "客户结算记录子不存在");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -146,7 +146,7 @@ public class ProductputawayRequestMainController {
@PostMapping("/import")
@Operation(summary = "导入采购索赔基本信息")
@Operation(summary = "导入制品上架申请基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@ -164,7 +164,7 @@ public class ProductputawayRequestMainController {
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
String url = ExcelUtils.writeLocalFile("制品上架申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);

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

@ -152,15 +152,11 @@ public class ProductscrapRequestMainController {
@GetMapping("/get-import-template")
@Operation(summary = "获得导入制品报废申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<ProductscrapRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
// mapDropDown.put(16, purchaseReturnReason);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
// mapDropDown.put(25, uom);
// 输出
ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ProductscrapRequestMainImportVO.class, list, mapDropDown);
ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ProductscrapRequestMainImportVO.class, list);
}
@PostMapping("/import")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -10,27 +10,13 @@ import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestImportErrorVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO;
import com.win.module.wms.controller.issueRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.issueRequest.IssueRequestDetailMapper;

Loading…
Cancel
Save