Browse Source

Merge remote-tracking branch 'origin/master'

master
廉洪喜 2 years ago
parent
commit
a971aa0fef
  1. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/PurchasePlanMainController.java
  2. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainBaseVO.java
  3. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainUpdateReqVO.java
  4. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasePlan/PurchasePlanDetailConvert.java
  5. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasePlan/PurchasePlanMainConvert.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchase/PurchaseDetailMapper.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java
  8. 247
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/PurchasePlanMainController.java

@ -55,8 +55,8 @@ public class PurchasePlanMainController {
@Operation(summary = "更新要货计划主") @Operation(summary = "更新要货计划主")
@PreAuthorize("@ss.hasPermission('wms:purchase-plan-main:update')") @PreAuthorize("@ss.hasPermission('wms:purchase-plan-main:update')")
public CommonResult<Boolean> updatePurchasePlanMain(@Valid @RequestBody PurchasePlanMainUpdateReqVO updateReqVO) { public CommonResult<Boolean> updatePurchasePlanMain(@Valid @RequestBody PurchasePlanMainUpdateReqVO updateReqVO) {
purchasePlanMainService.updatePurchasePlanMain(updateReqVO); Long result = purchasePlanMainService.updatePurchasePlanMain(updateReqVO);
return success(true); return success(result > 0);
} }
@DeleteMapping("/delete") @DeleteMapping("/delete")

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainBaseVO.java

@ -33,18 +33,17 @@ public class PurchasePlanMainBaseVO {
private String dockCode; private String dockCode;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
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;
@ -68,7 +67,6 @@ public class PurchasePlanMainBaseVO {
private String updater; private String updater;
@Schema(description = "是否可用", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "是否可用", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否可用不能为空")
private String available; private String available;
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainUpdateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.purchasePlan.vo; package com.win.module.wms.controller.purchasePlan.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
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 PurchasePlanMainUpdateReqVO extends PurchasePlanMainBaseVO { public class PurchasePlanMainUpdateReqVO extends PurchasePlanMainBaseVO {
@Schema(description = "子表数据")
private List<PurchasePlanDetailUpdateReqVO> subList;
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasePlan/PurchasePlanDetailConvert.java

@ -35,6 +35,8 @@ public interface PurchasePlanDetailConvert {
List<PurchasePlanDetailDO> convertList03(List<PurchasePlanDetailCreateReqVO> list); List<PurchasePlanDetailDO> convertList03(List<PurchasePlanDetailCreateReqVO> list);
List<PurchasePlanDetailDO> convertList05(List<PurchasePlanDetailUpdateReqVO> list);
PurchasePlanDetailCreateReqVO convert1(PurchasePlanDetailDO bean); PurchasePlanDetailCreateReqVO convert1(PurchasePlanDetailDO bean);
@Mappings({ @Mappings({
@ -50,4 +52,6 @@ public interface PurchasePlanDetailConvert {
PurchasePlanMainImportErrorVO convert(PurchasePlanMainCreateReqVO mainVo,PurchasePlanDetailCreateReqVO detailVo); PurchasePlanMainImportErrorVO convert(PurchasePlanMainCreateReqVO mainVo,PurchasePlanDetailCreateReqVO detailVo);
PurchasePlanMainImportErrorVO convert(PurchasePlanMainCreateReqVO mainVo, PurchasePlanDetailDO detailDo);
} }

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasePlan/PurchasePlanMainConvert.java

@ -1,16 +1,12 @@
package com.win.module.wms.convert.purchasePlan; package com.win.module.wms.convert.purchasePlan;
import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasePlan.vo.*;
import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainCreateReqVO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO;
import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainExcelVO;
import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainRespVO;
import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainUpdateReqVO;
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.purchasePlan.PurchasePlanMainDO;
import java.util.List;
/** /**
* 要货计划主 Convert * 要货计划主 Convert
@ -26,6 +22,8 @@ public interface PurchasePlanMainConvert {
PurchasePlanMainDO convert(PurchasePlanMainUpdateReqVO bean); PurchasePlanMainDO convert(PurchasePlanMainUpdateReqVO bean);
PurchasePlanMainDO convert(PurchasePlanMainBaseVO baseVO);
PurchasePlanMainRespVO convert(PurchasePlanMainDO bean); PurchasePlanMainRespVO convert(PurchasePlanMainDO bean);
List<PurchasePlanMainRespVO> convertList(List<PurchasePlanMainDO> list); List<PurchasePlanMainRespVO> convertList(List<PurchasePlanMainDO> list);

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchase/PurchaseDetailMapper.java

@ -22,7 +22,7 @@ public interface PurchaseDetailMapper extends BaseMapperX<PurchaseDetailDO> {
default PageResult<PurchaseDetailDO> selectPage(PurchaseDetailPageReqVO reqVO) { default PageResult<PurchaseDetailDO> selectPage(PurchaseDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<PurchaseDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<PurchaseDetailDO>()
.eq(PurchaseDetailDO::getMasterId,reqVO.getMasterId()) .eqIfPresent(PurchaseDetailDO::getMasterId,reqVO.getMasterId())
.eqIfPresent(PurchaseDetailDO::getLineNumber, reqVO.getLineNumber()) .eqIfPresent(PurchaseDetailDO::getLineNumber, reqVO.getLineNumber())
.eqIfPresent(PurchaseDetailDO::getErpLocationCode, reqVO.getErpLocationCode()) .eqIfPresent(PurchaseDetailDO::getErpLocationCode, reqVO.getErpLocationCode())
.eqIfPresent(PurchaseDetailDO::getProjectCode, reqVO.getProjectCode()) .eqIfPresent(PurchaseDetailDO::getProjectCode, reqVO.getProjectCode())

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java

@ -37,7 +37,7 @@ public interface PurchasePlanMainService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updatePurchasePlanMain(@Valid PurchasePlanMainUpdateReqVO updateReqVO); Long updatePurchasePlanMain(@Valid PurchasePlanMainUpdateReqVO updateReqVO);
/** /**
* 删除要货计划主 * 删除要货计划主

247
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java

@ -9,6 +9,8 @@ import com.win.framework.common.pojo.PageResult;
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.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum; 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.purchasePlan.vo.*; import com.win.module.wms.controller.purchasePlan.vo.*;
import com.win.module.wms.convert.purchasePlan.PurchasePlanDetailConvert; import com.win.module.wms.convert.purchasePlan.PurchasePlanDetailConvert;
import com.win.module.wms.convert.purchasePlan.PurchasePlanMainConvert; import com.win.module.wms.convert.purchasePlan.PurchasePlanMainConvert;
@ -16,21 +18,24 @@ 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.purchasePlan.PurchasePlanDetailDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO;
import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO; import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO;
import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanDetailMapper; import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanDetailMapper;
import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper; import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.plan.PlanStatusEnum; import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.plan.PurchasePlanStatusEnum; import com.win.module.wms.enums.plan.PurchasePlanStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.supplier.SupplierService;
import com.win.module.wms.service.supplieritem.SupplieritemService; 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.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
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;
@ -66,24 +71,42 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource @Resource
private TrendsApi trendsApi; private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private SupplierService supplierService;
@Resource
private RequestsettingService requestsettingService;
@Override @Override
public Long createPurchasePlanMain(PurchasePlanMainCreateReqVO createReqVO) { public Long createPurchasePlanMain(PurchasePlanMainCreateReqVO createReqVO) {
// 插入 // 插入主表
PurchasePlanMainDO purchasePlanMain = PurchasePlanMainConvert.INSTANCE.convert(createReqVO); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePlan");
purchasePlanMain.setCreateTime(LocalDateTime.now()); createReqVO.setBusinessType(businesstypeDO.getCode());
purchasePlanMainMapper.insert(purchasePlanMain); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_PLAN.getCode());
// 返回 createReqVO.setNumber(number);
return purchasePlanMain.getId(); createReqVO.setCreateTime(LocalDateTime.now());
PurchasePlanMainDO purchasePlanMainDO = validatorToCreate(createReqVO);
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(purchasePlanMainDO.getStatus())) {
}
trendsApi.createTrends(purchasePlanMainDO.getId(), "PurchaseOrder", "增加了采购订单", TrendsTypeEnum.CREATE);
return purchasePlanMainDO.getId();
} }
@Override @Override
public void updatePurchasePlanMain(PurchasePlanMainUpdateReqVO updateReqVO) { public Long updatePurchasePlanMain(PurchasePlanMainUpdateReqVO updateReqVO) {
// 校验存在 RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasePlan");
// 校验存在,如子表需要也再此校验
validatePurchasePlanMainExists(updateReqVO.getId()); validatePurchasePlanMainExists(updateReqVO.getId());
// 更新 // 更新主表
PurchasePlanMainDO updateObj = PurchasePlanMainConvert.INSTANCE.convert(updateReqVO); PurchasePlanMainDO purchasePlanMainDO = validatorToUpdate(updateReqVO);
purchasePlanMainMapper.updateById(updateObj); if (RequestStatusEnum.HANDLING.getCode().equals(purchasePlanMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE);
return purchasePlanMainDO.getId();
} }
@Override @Override
@ -154,89 +177,153 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService {
} }
} }
//主表校验 校验供应商基础信息
private SupplierDO validatorShiftExist(String supplierCode) {
return supplierService.selectSupplier(supplierCode);
}
//子表校验 校验供应商基础信息
private void validatorItembasic(String itemCode) {
itembasicService.selectItembasic(itemCode);
}
//子表校验 校验供应商物品
private SupplieritemDO validatorSupplierItemExist(String supplierCode, String itemCode) {
return supplieritemService.selectSupplierItemExist(supplierCode, itemCode);
}
//校验主表公共方法(适用于新增/修改)
private PurchasePlanMainDO validatorMainMethod(PurchasePlanMainBaseVO baseVO) {
PurchasePlanMainDO mainDo = PurchasePlanMainConvert.INSTANCE.convert(baseVO);
SupplierDO supplierDO = this.validatorShiftExist(mainDo.getSupplierCode());
if (supplierDO == null) {
throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
}
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(PurchasePlanDetailDO detailDo, PurchasePlanMainDO mainDo) {
this.validatorItembasic(detailDo.getItemCode());
this.validatorSupplierItemExist(mainDo.getSupplierCode(),detailDo.getItemCode());
}
@Override
@Transactional
public List<PurchasePlanMainImportErrorVO> importPurchasePlanMainList(List<PurchasePlanMainCreateReqVO> datas, Integer mode, boolean updatePart) { public List<PurchasePlanMainImportErrorVO> importPurchasePlanMainList(List<PurchasePlanMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) { if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
} }
List<PurchasePlanMainImportErrorVO> errorList = new ArrayList<>(); List<PurchasePlanMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { for (PurchasePlanMainCreateReqVO createReqVO : datas) {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList PurchasePlanMainDO mainDo = PurchasePlanMainConvert.INSTANCE.convert(createReqVO);
String messageMain = ""; String messageMain = validatorPurchasePlanMainImport(mainDo);
//主表的验证
//校验供应商基础信息
try {
ShiftDO shiftDO = shiftService.selectShiftExist(createReqVO.getSupplierCode());
BeanUtils.copyProperties(createReqVO, shiftDO);
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
//子表的验证
List<PurchasePlanDetailCreateReqVO> subList = createReqVO.getSubList(); List<PurchasePlanDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasePlanDetailDO> subDOList = PurchasePlanDetailConvert.INSTANCE.convertList03(subList); List<PurchasePlanDetailDO> subDOList = PurchasePlanDetailConvert.INSTANCE.convertList03(subList);
for (PurchasePlanDetailDO purchasePlanDetailDO : subDOList) { // 是否有错误数据
String messageDetail = ""; boolean flag = true;
// 校验物品基础信息 for (PurchasePlanDetailDO detailDO : subDOList) {
try { String messageDetail = validatorPurchasePlanDetailImport(detailDO, mainDo);
ItembasicDO itembasicDO = itembasicService.selectItembasic(purchasePlanDetailDO.getItemCode()); if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
if (itembasicDO.getUom() != purchasePlanDetailDO.getUom()) { PurchasePlanMainImportErrorVO importErrorVO = PurchasePlanDetailConvert.INSTANCE.convert(createReqVO, detailDO);
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchasePlanDetailDO.getUom() + ","; importErrorVO.setImportStatus("失败");
}
// purchasePlanDetailDO.setProjectCode(itembasicDO.getCode());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
// 校验供应商物品
try {
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(createReqVO.getSupplierCode(), purchasePlanDetailDO.getItemCode());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
PurchasePlanDetailCreateReqVO purchasePlanDetailCreateReqVO = PurchasePlanDetailConvert.INSTANCE.convert1(purchasePlanDetailDO);
PurchasePlanMainImportErrorVO importVO = PurchasePlanDetailConvert.INSTANCE.convert(createReqVO, purchasePlanDetailCreateReqVO);
//进行子表的错误统计
//主表没有错误 写入库里
if (!messageMain.equals("") || !messageDetail.equals("")) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail; messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO); errorList.add(importErrorVO);
} else { flag = false;
purchasePlanDetailDO.setNumber(createReqVO.getNumber());
} }
} }
//写入数据
if (errorList.isEmpty()) { if (flag) {
// 判断如果不存在,在进行插入 mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
PurchasePlanMainDO existPurchaseclaimRequestMainDO = purchasePlanMainMapper.selectByNumber(createReqVO.getNumber()); // mainDo.setOrderDate(LocalDateTime.now());
if (existPurchaseclaimRequestMainDO == null && mode != 3) { // mainDo.setTaxRate(BigDecimal.ZERO);
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePlan"); mainDo.setBusinessType(businesstypeDO.getCode());
if (businesstypeDO != null) { mainDo.setAvailable("TRUE");
createReqVO.setBusinessType(businesstypeDO.getCode()); purchasePlanMainMapper.insert(mainDo);
} for (PurchasePlanDetailDO detailDO : subDOList) {
PurchasePlanMainDO createObj = PurchasePlanMainConvert.INSTANCE.convert(createReqVO); detailDO.setMasterId(mainDo.getId());
purchasePlanMainMapper.insert(createObj); detailDO.setNumber(mainDo.getNumber());
purchasePlanDetailMapper.insertBatch(subDOList); detailDO.setShippedQty(BigDecimal.ZERO);
} else if (existPurchaseclaimRequestMainDO != null && mode != 2) { detailDO.setAvailable("TRUE");
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder");
if (businesstypeDO != null) {
createReqVO.setBusinessType(businesstypeDO.getCode());
}
PurchasePlanMainDO createObj = PurchasePlanMainConvert.INSTANCE.convert(createReqVO);
purchasePlanMainMapper.updateById(createObj);
purchasePlanDetailMapper.updateBatch(subDOList);
} }
purchasePlanDetailMapper.insertBatch(subDOList);
} }
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
} }
return errorList; return errorList;
} }
/**
* 校验主表导入并赋值一些参数
*
* @param mainDo
* @return
*/
private String validatorPurchasePlanMainImport(PurchasePlanMainDO mainDo) {
String messageMain = "";
//主表的验证
//校验供应商基础信息
try {
ShiftDO shiftDO = shiftService.selectShiftExist(mainDo.getSupplierCode());
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
return messageMain;
}
private String validatorPurchasePlanDetailImport(PurchasePlanDetailDO detailDo, PurchasePlanMainDO mainDo) {
String messageDetail = "";
// 校验物品基础信息
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
if (itembasicDO.getUom() != detailDo.getUom()) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",";
}
// purchasePlanDetailDO.setProjectCode(itembasicDO.getCode());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
// 校验供应商物品
try {
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
return messageDetail;
}
//新增校验
private PurchasePlanMainDO validatorToCreate(PurchasePlanMainCreateReqVO createReqVO) {
PurchasePlanMainDO purchasePlanMainDO = validatorMainMethod(createReqVO);
//子表校验
List<PurchasePlanDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasePlanDetailDO> subDOList = PurchasePlanDetailConvert.INSTANCE.convertList03(subList);
purchasePlanMainMapper.insert(purchasePlanMainDO);
for (PurchasePlanDetailDO purchasePlanDetailDO : subDOList) {
validatorDetailMethod(purchasePlanDetailDO, purchasePlanMainDO);
purchasePlanDetailDO.setMasterId(purchasePlanMainDO.getId());
purchasePlanDetailDO.setNumber(purchasePlanMainDO.getNumber());
purchasePlanDetailDO.setShippedQty(BigDecimal.ZERO);
purchasePlanDetailDO.setAvailable("TRUE");
}
purchasePlanDetailMapper.insertBatch(subDOList);
return purchasePlanMainDO;
}
//修改校验
private PurchasePlanMainDO validatorToUpdate(PurchasePlanMainUpdateReqVO updateReqVO) {
PurchasePlanMainDO purchasePlanMainDO = validatorMainMethod(updateReqVO);
//子表校验
List<PurchasePlanDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<PurchasePlanDetailDO> subDOList = PurchasePlanDetailConvert.INSTANCE.convertList05(subList);
for (PurchasePlanDetailDO purchasePlanDetailDO : subDOList) {
validatorDetailMethod(purchasePlanDetailDO, purchasePlanMainDO);
}
purchasePlanMainMapper.updateById(purchasePlanMainDO);
purchasePlanDetailMapper.updateBatch(subDOList);
return purchasePlanMainDO;
}
@Override @Override
@Transactional @Transactional
public Integer closePurchasePlanMain(Long id) { public Integer closePurchasePlanMain(Long id) {

Loading…
Cancel
Save