Browse Source

调拨出库

master
廉洪喜 2 years ago
parent
commit
e785f00289
  1. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/TransferissueRequestMainController.java
  3. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestDetailBaseVO.java
  4. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestMainBaseVO.java
  5. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestMainImportVO.java
  6. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestMainUpdateReqVO.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java
  8. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java
  9. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java
  10. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java
  11. 92
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestDetailServiceImpl.java
  12. 346
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java

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

@ -880,5 +880,7 @@ public interface ErrorCodeConstants {
ErrorCode QTY_ERROR = new ErrorCode(1_000_301_000, "发货数量【{}】大于订单号【{}】、订单行【{}】、物品代码【{}】的未发货数量【{}】"); ErrorCode QTY_ERROR = new ErrorCode(1_000_301_000, "发货数量【{}】大于订单号【{}】、订单行【{}】、物品代码【{}】的未发货数量【{}】");
ErrorCode QTY_ERRORR = new ErrorCode(1_000_301_001, "上架数量【{}】不能大于库存数量【{}】"); ErrorCode QTY_ERRORR = new ErrorCode(1_000_301_001, "上架数量【{}】不能大于库存数量【{}】");
ErrorCode TIME_AFTER = new ErrorCode(1_000_302_000, "申请时间【{}】小于截止时间【{}】");
} }

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/TransferissueRequestMainController.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.transferissueRequest;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
@ -11,6 +12,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.transferissueRequest.vo.*; import com.win.module.wms.controller.transferissueRequest.vo.*;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert; import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.transferissueRequest.TransferissueRequestMainService; import com.win.module.wms.service.transferissueRequest.TransferissueRequestMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@ -125,10 +127,10 @@ public class TransferissueRequestMainController {
// 手动创建导出 demo // 手动创建导出 demo
List<TransferissueRequestMainImportVO> list = new ArrayList<>(); List<TransferissueRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE);
// mapDropDown.put(16, purchaseReturnReason); mapDropDown.put(2, transferMode);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
// mapDropDown.put(25, uom); mapDropDown.put(10, inventoryStatus);
// 输出 // 输出
ExcelUtils.write(response, "调拨出库申请信息导入模板.xlsx", "调拨出库申请信息列表", TransferissueRequestMainImportVO.class, list, mapDropDown); ExcelUtils.write(response, "调拨出库申请信息导入模板.xlsx", "调拨出库申请信息列表", TransferissueRequestMainImportVO.class, list, mapDropDown);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestDetailBaseVO.java

@ -51,7 +51,6 @@ public class TransferissueRequestDetailBaseVO {
private String remark; private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime; private LocalDateTime createTime;
@ -86,4 +85,7 @@ public class TransferissueRequestDetailBaseVO {
@Schema(description = "从货主代码") @Schema(description = "从货主代码")
private String fromOwnerCode; private String fromOwnerCode;
@Schema(description = "master_id", example = "master_id")
private Long masterId;
} }

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.transferissueRequest.vo; package com.win.module.wms.controller.transferissueRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -32,18 +33,16 @@ public class TransferissueRequestMainBaseVO {
private String vehiclePlateNumber; private String vehiclePlateNumber;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空") @OnlyOne
private String number; private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务类型不能为空")
private String businessType; private String businessType;
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime; private LocalDateTime createTime;
@ -59,7 +58,6 @@ public class TransferissueRequestMainBaseVO {
private LocalDateTime dueTime; private LocalDateTime dueTime;
@Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "部门不能为空")
private String departmentCode; private String departmentCode;
@Schema(description = "状态") @Schema(description = "状态")
@ -73,30 +71,24 @@ public class TransferissueRequestMainBaseVO {
private String updater; private String updater;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseCode; private String fromWarehouseCode;
@Schema(description = "从月台代码") @Schema(description = "从月台代码")
private String fromDockCode; private String fromDockCode;
@Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位类型范围不能为空")
private String fromLocationTypes; private String fromLocationTypes;
@Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库区代码范围不能为空")
private String fromAreaCodes; private String fromAreaCodes;
@Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到仓库代码不能为空")
private String toWarehouseCode; private String toWarehouseCode;
@Schema(description = "到库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "到库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库位类型范围不能为空")
private String toLocationTypes; private String toLocationTypes;
@Schema(description = "到库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "到库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库区代码范围不能为空")
private String toAreaCodes; private String toAreaCodes;
@Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED)

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestMainImportVO.java

@ -1,11 +1,16 @@
package com.win.module.wms.controller.transferissueRequest.vo; package com.win.module.wms.controller.transferissueRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty; 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.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/** /**
* 采购索赔申请子 Excel VO * 采购索赔申请子 Excel VO
@ -21,26 +26,40 @@ public class TransferissueRequestMainImportVO {
//主表数据 //主表数据
@ExcelProperty("承运商") @ExcelProperty("承运商")
private String carrierCode; private String carrierCode;
@ExcelProperty("从月台代码") @ExcelProperty("从月台代码")
private String fromDockCode; private String fromDockCode;
@ExcelProperty("运输方式")
@ExcelProperty(value = "运输方式", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRANSFER_MODE)
private String transferMode; private String transferMode;
@ExcelProperty("车牌号") @ExcelProperty("车牌号")
private String vehiclePlateNumber; private String vehiclePlateNumber;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
//子表数据 //子表数据
@ExcelProperty("来源库位") @ExcelProperty("来源库位")
private String fromLocationCode; private String fromLocationCode;
@ExcelProperty("零件号") @ExcelProperty("零件号")
private String itemCode; private String itemCode;
@ExcelProperty("包装号") @ExcelProperty("包装号")
private String packingNumber; private String packingNumber;
@ExcelProperty("器具号") @ExcelProperty("器具号")
private String containerNumber; private String containerNumber;
@ExcelProperty("批次") @ExcelProperty("批次")
private String batch; private String batch;
@ExcelProperty("库存状态")
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus; private String inventoryStatus;
@ExcelProperty("目标库位") @ExcelProperty("目标库位")
private String toLocationCode; private String toLocationCode;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRequest/vo/TransferissueRequestMainUpdateReqVO.java

@ -1,12 +1,20 @@
package com.win.module.wms.controller.transferissueRequest.vo; package com.win.module.wms.controller.transferissueRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 调拨出库申请主更新 Request VO") @Schema(description = "管理后台 - 调拨出库申请主更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class TransferissueRequestMainUpdateReqVO extends TransferissueRequestMainBaseVO { public class TransferissueRequestMainUpdateReqVO extends TransferissueRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<TransferissueRequestDetailUpdateReqVO> subList;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestDetailConvert.java

@ -37,6 +37,8 @@ public interface TransferissueRequestDetailConvert {
TransferissueRequestDetailCreateReqVO convert1(TransferissueRequestDetailDO bean); TransferissueRequestDetailCreateReqVO convert1(TransferissueRequestDetailDO bean);
List<TransferissueRequestDetailDO> convertList05(List<TransferissueRequestDetailUpdateReqVO> list);
@Mappings({ @Mappings({
@Mapping(source = "mainDO.number", target = "number"), @Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"), @Mapping(source = "mainDO.remark", target = "remark"),

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferissueRequest/TransferissueRequestMainConvert.java

@ -3,11 +3,10 @@ package com.win.module.wms.convert.transferissueRequest;
import java.util.*; import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainCreateReqVO; import com.win.module.wms.controller.transferissueRequest.vo.*;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainExcelVO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainRespVO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainUpdateReqVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
@ -22,6 +21,8 @@ public interface TransferissueRequestMainConvert {
TransferissueRequestMainConvert INSTANCE = Mappers.getMapper(TransferissueRequestMainConvert.class); TransferissueRequestMainConvert INSTANCE = Mappers.getMapper(TransferissueRequestMainConvert.class);
TransferissueRequestMainDO convert(TransferissueRequestMainBaseVO bean);
TransferissueRequestMainDO convert(TransferissueRequestMainCreateReqVO bean); TransferissueRequestMainDO convert(TransferissueRequestMainCreateReqVO bean);
TransferissueRequestMainDO convert(TransferissueRequestMainUpdateReqVO bean); TransferissueRequestMainDO convert(TransferissueRequestMainUpdateReqVO bean);
@ -34,4 +35,6 @@ public interface TransferissueRequestMainConvert {
List<TransferissueRequestMainExcelVO> convertList02(List<TransferissueRequestMainDO> list); List<TransferissueRequestMainExcelVO> convertList02(List<TransferissueRequestMainDO> list);
TransferissueRequestMainImportErrorVO convert(TransferissueRequestMainCreateReqVO mainVo, TransferissueRequestDetailDO detailDo);
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java

@ -216,7 +216,6 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setCreateTime(LocalDateTime.now()); mainDo.setCreateTime(LocalDateTime.now());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest");
if (requestsettingDO == null) { if (requestsettingDO == null) {

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

@ -87,8 +87,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource
private BusinesstypeService businesstypeService;
@Resource @Resource
private Validator validator; private Validator validator;
@ -97,7 +95,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
@Resource @Resource
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private DictDataApi dictDataApi; private DictDataApi dictDataApi;
@Resource @Resource
@ -297,7 +294,6 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
if (businesstypeDO == null) { if (businesstypeDO == null) {
message.append("根据单据设置未查找到制品上架申请的相关业务类型"); message.append("根据单据设置未查找到制品上架申请的相关业务类型");
} else { } else {
@ -325,10 +321,8 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
jobUtils.ifInToLocationType(fromlocationcode,bus); jobUtils.ifInToLocationType(fromlocationcode,bus);
} }
List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber, List<BalanceDO> selectlocationReturnManagement(String ItemCode, String packingNumber, String batch, String fromLocationCode ,List<String> business){
String batch , String fromLocationCode , List<String> business){ List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber, batch,fromLocationCode, business);
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber,
batch,fromLocationCode, business);
return balanceDO; return balanceDO;
} }

92
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestDetailServiceImpl.java

@ -1,14 +1,33 @@
package com.win.module.wms.service.transferissueRequest; package com.win.module.wms.service.transferissueRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO; import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailExportReqVO; import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailExportReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailPageReqVO; import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailPageReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
@ -25,6 +44,7 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
* *
* @author 超级管理员 * @author 超级管理员
*/ */
@Service @Service
@Validated @Validated
public class TransferissueRequestDetailServiceImpl implements TransferissueRequestDetailService { public class TransferissueRequestDetailServiceImpl implements TransferissueRequestDetailService {
@ -32,14 +52,80 @@ public class TransferissueRequestDetailServiceImpl implements TransferissueReque
@Resource @Resource
private TransferissueRequestDetailMapper transferissueRequestDetailMapper; private TransferissueRequestDetailMapper transferissueRequestDetailMapper;
@Resource
private ItembasicService itembasicService;
@Resource
private LocationService locationService;
@Resource
private JobUtils jobUtils;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
@Override @Override
public Long createTransferissueRequestDetail(TransferissueRequestDetailCreateReqVO createReqVO) { public Long createTransferissueRequestDetail(TransferissueRequestDetailCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
// 插入 // 插入
TransferissueRequestDetailDO transferissueRequestDetail = TransferissueRequestDetailConvert.INSTANCE.convert(createReqVO); TransferissueRequestDetailDO transferissueRequestDetail = validatorToCreate(createReqVO,requestsettingDO);
transferissueRequestDetailMapper.insert(transferissueRequestDetail);
// 返回 trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE);
return transferissueRequestDetail.getId(); return transferissueRequestDetail.getId();
} }
private List<BalanceDO> validatebalance(TransferissueRequestDetailDO detailDo){
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(detailDo.getInventoryStatus());
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getToLocationCode(), inventoryStatus);
return balanceDO;
}
private LocationDO validatorLocation(String Location){
return locationService.selectLocation(Location);
}
private TransferissueRequestDetailDO validatorToCreate(TransferissueRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest");
TransferissueRequestDetailDO transferissueRequestDetailDO = TransferissueRequestDetailConvert.INSTANCE.convert(createReqVO);
transferissueRequestDetailDO = validateDetailMethod(transferissueRequestDetailDO,businesstypeDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode());
transferissueRequestDetailDO.setNumber(number);
transferissueRequestDetailDO.setMasterId(createReqVO.getMasterId());
transferissueRequestDetailMapper.insert(transferissueRequestDetailDO);
return transferissueRequestDetailDO;
}
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
private TransferissueRequestDetailDO validateDetailMethod(TransferissueRequestDetailDO transferissueRequestDetailDO, BusinesstypeDO businesstypeDO) {
transferissueRequestDetailDO.setCreateTime(LocalDateTime.now());
ItembasicDO item = validatorItembasic(transferissueRequestDetailDO.getItemCode());
transferissueRequestDetailDO.setItemDesc1(item.getDesc1());
transferissueRequestDetailDO.setItemDesc2(item.getDesc2());
transferissueRequestDetailDO.setItemName(item.getName());
transferissueRequestDetailDO.setUom(item.getUom());
transferissueRequestDetailDO.setProjectCode(item.getProject());
validatorLocation(transferissueRequestDetailDO.getToLocationCode());
jobUtils.ifInToLocationType(transferissueRequestDetailDO.getToLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(transferissueRequestDetailDO.getInventoryStatus(), businesstypeDO);
validatebalance(transferissueRequestDetailDO);
return transferissueRequestDetailDO;
}
@Override @Override
public PageResult<TransferissueRequestDetailDO> getTransferissueRequestDetailSenior(CustomConditions conditions) { public PageResult<TransferissueRequestDetailDO> getTransferissueRequestDetailSenior(CustomConditions conditions) {
return transferissueRequestDetailMapper.selectSenior(conditions); return transferissueRequestDetailMapper.selectSenior(conditions);

346
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java

@ -1,42 +1,48 @@
package com.win.module.wms.service.transferissueRequest; package com.win.module.wms.service.transferissueRequest;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.*; import com.win.module.wms.controller.transferissueRequest.vo.*;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert; import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert; import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestDetailMapper; import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestDetailMapper;
import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestMainMapper; import com.win.module.wms.dal.mysql.transferissueRequest.TransferissueRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; import static com.win.module.wms.enums.ErrorCodeConstants.TIME_AFTER;
import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS;
/** /**
@ -53,39 +59,119 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
@Resource @Resource
private TransferissueRequestDetailMapper transferissueRequestDetailMapper; private TransferissueRequestDetailMapper transferissueRequestDetailMapper;
@Resource @Resource
private ShiftService shiftService; private LocationService locationService;
@Resource @Resource
private ItembasicService itembasicService; private ItembasicService itembasicService;
@Resource @Resource
private SupplieritemService supplieritemService; private Validator validator;
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource @Resource
private LocationService locationService;
@Resource
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource
private BusinesstypeService businesstypeService;
@Resource
private TrendsApi trendsApi;
@Override @Override
public Long createTransferissueRequestMain(TransferissueRequestMainCreateReqVO createReqVO) { public Long createTransferissueRequestMain(TransferissueRequestMainCreateReqVO createReqVO) {
// 插入 RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
TransferissueRequestMainDO transferissueRequestMain = TransferissueRequestMainConvert.INSTANCE.convert(createReqVO); TransferissueRequestMainDO transferissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
transferissueRequestMainMapper.insert(transferissueRequestMain); //调用自动执行方法
// 返回 if(RequestStatusEnum.HANDLING.getCode().equals(transferissueRequestMainDO.getStatus())) {
return transferissueRequestMain.getId();
}
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE);
return transferissueRequestMainDO.getId();
}
private TransferissueRequestMainDO validatorToCreate(TransferissueRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest");
TransferissueRequestMainDO transferissueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<TransferissueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList03(subList);
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){
validateDetailMethod(transferissueRequestDetailDO,businesstypeDO,transferissueRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
transferissueRequestMainDO.setNumber(number);
transferissueRequestMainMapper.insert(transferissueRequestMainDO);
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){
transferissueRequestDetailDO.setMasterId(transferissueRequestMainDO.getId());
transferissueRequestDetailDO.setNumber(transferissueRequestMainDO.getNumber());
}
transferissueRequestDetailMapper.insertBatch(subDOList);
return transferissueRequestMainDO;
}
private void validateDetailMethod(TransferissueRequestDetailDO transferissueRequestDetailDO, BusinesstypeDO businesstypeDO, TransferissueRequestMainDO transferissueRequestMainDO) {
transferissueRequestDetailDO.setCreateTime(LocalDateTime.now());
ItembasicDO item = validatorItembasic(transferissueRequestDetailDO.getItemCode());
transferissueRequestDetailDO.setItemDesc1(item.getDesc1());
transferissueRequestDetailDO.setItemDesc2(item.getDesc2());
transferissueRequestDetailDO.setItemName(item.getName());
transferissueRequestDetailDO.setUom(item.getUom());
transferissueRequestDetailDO.setProjectCode(item.getProject());
validatorLocation(transferissueRequestDetailDO.getToLocationCode());
jobUtils.ifInToLocationType(transferissueRequestDetailDO.getToLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(transferissueRequestDetailDO.getInventoryStatus(), businesstypeDO);
List<BalanceDO> balance = validatebalance(transferissueRequestDetailDO);
for(BalanceDO balancedo: balance ) {
transferissueRequestMainDO.setFromWarehouseCode(balancedo.getWarehouseCode());
}
}
private TransferissueRequestMainDO validateMainMethod(TransferissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
TransferissueRequestMainDO transferissueRequestMainDO = TransferissueRequestMainConvert.INSTANCE.convert(baseVO);
transferissueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "1"));
transferissueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
transferissueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
transferissueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
transferissueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
transferissueRequestMainDO.setBusinessType(businesstypeDO.getCode());
transferissueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
transferissueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
transferissueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
transferissueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
return transferissueRequestMainDO;
} }
@Override @Override
public void updateTransferissueRequestMain(TransferissueRequestMainUpdateReqVO updateReqVO) { public void updateTransferissueRequestMain(TransferissueRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
// 校验存在 // 校验存在
validateTransferissueRequestMainExists(updateReqVO.getId()); validateTransferissueRequestMainExists(updateReqVO.getId());
// 更新 // 更新
TransferissueRequestMainDO updateObj = TransferissueRequestMainConvert.INSTANCE.convert(updateReqVO); TransferissueRequestMainDO transferissueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
transferissueRequestMainMapper.updateById(updateObj); if(RequestStatusEnum.HANDLING.getCode().equals(transferissueRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了调拨出库申请", TrendsTypeEnum.CREATE);
}
private TransferissueRequestMainDO validatorToUpdate(TransferissueRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest");
TransferissueRequestMainDO transferissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<TransferissueRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(!subList.isEmpty()) {
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList05(subList);
for (TransferissueRequestDetailDO transferissueRequestDetailDO : subDOList) {
validateDetailMethod(transferissueRequestDetailDO, businesstypeDO, transferissueRequestMainDO);
}
transferissueRequestDetailMapper.updateBatch(subDOList);
}
transferissueRequestMainMapper.updateById(transferissueRequestMainDO);
return transferissueRequestMainDO;
} }
@Override @Override
@ -127,116 +213,148 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
return transferissueRequestMainMapper.selectList(exportReqVO); return transferissueRequestMainMapper.selectList(exportReqVO);
} }
public List<TransferissueRequestMainImportErrorVO> importTransferissueRequestMainList(List<TransferissueRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { private ItembasicDO validatorItembasic(String itemCode) {
if (CollUtil.isEmpty(datas)) { return itembasicService.selectItembasic(itemCode);
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
} }
List<TransferissueRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { private LocationDO validatorLocation(String Location){
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = ""; return locationService.selectLocation(Location);
//主表的验证 }
//子表的验证
List<TransferissueRequestDetailCreateReqVO> subList = createReqVO.getSubList(); private void validordurtime(LocalDateTime durtime){
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList03(subList); if(!durtime.isAfter(LocalDateTime.now())){
for (TransferissueRequestDetailDO purchasePlanDetailDO : subDOList) { throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
String messageDetail = ""; }
// 校验物品基础信息 }
private String validateTransferissueRequestMainImport(TransferissueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
mainDo.setRequestTime(LocalDateTime.now());
mainDo.setCreateTime(LocalDateTime.now());
try { try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(purchasePlanDetailDO.getItemCode()); validordurtime(mainDo.getDueTime());
if (itembasicDO.getUom() != purchasePlanDetailDO.getUom()) { } catch (Exception ex) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchasePlanDetailDO.getUom() + ","; message.append(ex.getMessage()).append(",");
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
if (requestsettingDO == null) {
message.append("未查找到制品上架申请的相关申请设置");
} else { } else {
purchasePlanDetailDO.setItemDesc1(itembasicDO.getDesc1()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
purchasePlanDetailDO.setItemDesc2(itembasicDO.getDesc2()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
purchasePlanDetailDO.setItemName(itembasicDO.getName()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
purchasePlanDetailDO.setProjectCode(itembasicDO.getProject()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
} catch (ServiceException ex) { if (businesstypeDO == null) {
messageDetail += ex.getMessage() + ","; message.append("根据单据设置未查找到制品上架申请的相关业务类型");
} else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
} }
// 校验业务类型
try { try {
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("UnplannedReceipt"); ValidationUtils.validate(validator, mainDo);
jobUtils.ifInToLocationType(purchasePlanDetailDO.getToLocationCode(), businesstypeDO); } catch (Exception ex) {
// jobUtils.ifInToLocationType(createReqVO.GETf(), businesstypeDO); message.append(ex.getMessage()).append(",");
jobUtils.ifOutInventoryStatuses(purchasePlanDetailDO.getInventoryStatus(), businesstypeDO);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
// 校验库存余额是否存在
try {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(purchasePlanDetailDO.getInventoryStatus());
List<BalanceDO> balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(purchasePlanDetailDO.getItemCode(), purchasePlanDetailDO.getPackingNumber()
, purchasePlanDetailDO.getBatch(), purchasePlanDetailDO.getToLocationCode(), inventoryStatus);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
TransferissueRequestDetailCreateReqVO purchasePlanDetailCreateReqVO = TransferissueRequestDetailConvert.INSTANCE.convert1(purchasePlanDetailDO);
TransferissueRequestMainImportErrorVO importVO = TransferissueRequestDetailConvert.INSTANCE.convert(createReqVO, purchasePlanDetailCreateReqVO);
//进行子表的错误统计
//主表没有错误 写入库里
if (!messageMain.equals("") || !messageDetail.equals("")) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
} else {
purchasePlanDetailDO.setNumber(createReqVO.getNumber());
purchasePlanDetailDO.setMasterId(createReqVO.getId());
} }
return message.toString();
}
private List<BalanceDO> validatebalance(TransferissueRequestDetailDO detailDo){
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(detailDo.getInventoryStatus());
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getToLocationCode(), inventoryStatus);
return balanceDO;
} }
if (errorList.isEmpty()) {
TransferissueRequestMainDO existPurchaseclaimRequestMainDO = transferissueRequestMainMapper.selectByCarrierCode(createReqVO.getCarrierCode()); private String validateTransferissueRequestDetailImport(TransferissueRequestDetailDO detailDo, TransferissueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
// 判断如果不存在,在进行插入 StringBuilder message = new StringBuilder();
if (existPurchaseclaimRequestMainDO == null &&mode != 3) { detailDo.setCreateTime(LocalDateTime.now());
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); try{
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); ItembasicDO item = validatorItembasic(detailDo.getItemCode());
if (businesstypeDO != null) { detailDo.setItemDesc1(item.getDesc1());
createReqVO.setBusinessType(businesstypeDO.getCode()); detailDo.setItemDesc2(item.getDesc2());
detailDo.setItemName(item.getName());
detailDo.setUom(item.getUom());
detailDo.setProjectCode(item.getProject());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
LocationDO location = validatorLocation(detailDo.getToLocationCode());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
List<BalanceDO> balance = validatebalance(detailDo);
for(BalanceDO balancedo: balance ){
mainDo.setFromWarehouseCode(balancedo.getWarehouseCode());
}
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode());
createReqVO.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
if (requestsettingDO != null) { public List<TransferissueRequestMainImportErrorVO> importTransferissueRequestMainList(List<TransferissueRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); if (CollUtil.isEmpty(datas)) {
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); throw exception(TRANSFERISSUE_REQUEST_MAIN_NOT_EXISTS);
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); }
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); List<TransferissueRequestMainImportErrorVO> errorList = new ArrayList<>();
} datas.forEach(createReqVO -> {
TransferissueRequestMainDO createObj = TransferissueRequestMainConvert.INSTANCE.convert(createReqVO);
transferissueRequestMainMapper.insert(createObj);
transferissueRequestDetailMapper.insertBatch(subDOList);
} else if (existPurchaseclaimRequestMainDO == null &&mode != 2) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRequest");
if (businesstypeDO != null) { TransferissueRequestMainDO mainDo = TransferissueRequestMainConvert.INSTANCE.convert(createReqVO);
createReqVO.setBusinessType(businesstypeDO.getCode()); String messageMain = validateTransferissueRequestMainImport(mainDo, businesstypeDO);
List<TransferissueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<TransferissueRequestDetailDO> subDOList = TransferissueRequestDetailConvert.INSTANCE.convertList03(subList);
boolean flag = true;
for (TransferissueRequestDetailDO detailDO : subDOList) {
String messageDetail = validateTransferissueRequestDetailImport(detailDO, mainDo, businesstypeDO);
if (!"".equals(messageMain) ||!"".equals(messageDetail) ) {
TransferissueRequestMainImportErrorVO importErrorVO = TransferissueRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode());
createReqVO.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
if (requestsettingDO != null) {
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
TransferissueRequestMainDO createObj = TransferissueRequestMainConvert.INSTANCE.convert(createReqVO);
transferissueRequestMainMapper.updateById(createObj);
transferissueRequestDetailMapper.updateBatch(subDOList);
} }
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode());
mainDo.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
transferissueRequestMainMapper.insert(mainDo);
for (TransferissueRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
} }
}); transferissueRequestDetailMapper.insertBatch(subDOList);
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
} }
});
return errorList; return errorList;
} }
} }

Loading…
Cancel
Save