|
|
@ -1,14 +1,27 @@ |
|
|
|
package com.win.module.wms.service.supplierdeliverRequest; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailExportReqVO; |
|
|
|
import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailPageReqVO; |
|
|
|
import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailUpdateReqVO; |
|
|
|
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; |
|
|
|
import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.itempackaging.ItempackagingService; |
|
|
|
import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; |
|
|
|
import com.win.module.wms.service.supplieritem.SupplieritemService; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; |
|
|
@ -31,14 +44,32 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR |
|
|
|
|
|
|
|
@Resource |
|
|
|
private SupplierdeliverRequestDetailMapper supplierdeliverRequestDetailMapper; |
|
|
|
@Resource |
|
|
|
private SupplierdeliverRequestMainMapper supplierdeliverRequestMainMapper; |
|
|
|
@Resource |
|
|
|
private ItembasicService itembasicService; |
|
|
|
@Resource |
|
|
|
private SupplieritemService supplieritemService; |
|
|
|
@Resource |
|
|
|
private ItempackagingService itempackagingService; |
|
|
|
@Resource |
|
|
|
private PurchasePlanMainService purchasePlanMainService; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public Long createSupplierdeliverRequestDetail(SupplierdeliverRequestDetailCreateReqVO createReqVO) { |
|
|
|
// 插入
|
|
|
|
SupplierdeliverRequestDetailDO supplierdeliverRequestDetail = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO); |
|
|
|
supplierdeliverRequestDetailMapper.insert(supplierdeliverRequestDetail); |
|
|
|
SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO); |
|
|
|
QueryWrapper<SupplierdeliverRequestMainDO> queryWrapper = new QueryWrapper(); |
|
|
|
queryWrapper.eq("number", createReqVO.getNumber()); |
|
|
|
SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); |
|
|
|
validatorDetailMethod(supplierdeliverRequestDetailDO, mainDO); |
|
|
|
supplierdeliverRequestDetailDO.setMasterId(mainDO.getId()); |
|
|
|
supplierdeliverRequestDetailDO.setNumber(mainDO.getNumber()); |
|
|
|
supplierdeliverRequestDetailDO.setConvertRate(new BigDecimal(0)); |
|
|
|
supplierdeliverRequestDetailMapper.insert(supplierdeliverRequestDetailDO); |
|
|
|
// 返回
|
|
|
|
return supplierdeliverRequestDetail.getId(); |
|
|
|
return supplierdeliverRequestDetailDO.getId(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -49,6 +80,7 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR |
|
|
|
SupplierdeliverRequestDetailDO updateObj = SupplierdeliverRequestDetailConvert.INSTANCE.convert(updateReqVO); |
|
|
|
supplierdeliverRequestDetailMapper.updateById(updateObj); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageResult<SupplierdeliverRequestDetailDO> getSupplierdeliverRequestDetailSenior(CustomConditions conditions) { |
|
|
|
return supplierdeliverRequestDetailMapper.selectSenior(conditions); |
|
|
@ -88,4 +120,42 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR |
|
|
|
return supplierdeliverRequestDetailMapper.selectList(exportReqVO); |
|
|
|
} |
|
|
|
|
|
|
|
//子表校验 校验供应商基础信息
|
|
|
|
private void validatorItembasic(String itemCode) { |
|
|
|
itembasicService.selectItembasic(itemCode); |
|
|
|
} |
|
|
|
|
|
|
|
//子表校验 校验供应商物品
|
|
|
|
private SupplieritemDO validatorSupplierItemExist(String supplierCode, String itemCode) { |
|
|
|
return supplieritemService.selectSupplierItemExist(supplierCode, itemCode); |
|
|
|
} |
|
|
|
|
|
|
|
//子表校验 校验物品标包信息
|
|
|
|
private ItempackagingDO validatorItemPackagingExist(String itemCode) { |
|
|
|
return itempackagingService.selectItemPackagingExist(itemCode); |
|
|
|
} |
|
|
|
|
|
|
|
//子表校验 校验要货计划
|
|
|
|
private PurchasePlanDetailDO validatorPurchasePlan(SupplierdeliverRequestMainDO supplierdeliverRequestMainDO, SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO) { |
|
|
|
PurchasePlanDetailDO purchasePlanDetailDO = |
|
|
|
purchasePlanMainService.selectPurchasePlan(supplierdeliverRequestMainDO.getPpNumber(), supplierdeliverRequestMainDO.getSupplierCode(), |
|
|
|
supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); |
|
|
|
return purchasePlanDetailDO; |
|
|
|
} |
|
|
|
|
|
|
|
//校验子表公共方法(适用于新增/修改)
|
|
|
|
private void validatorDetailMethod(SupplierdeliverRequestDetailDO detailDo, SupplierdeliverRequestMainDO mainDo) { |
|
|
|
this.validatorItembasic(detailDo.getItemCode()); |
|
|
|
this.validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); |
|
|
|
PurchasePlanDetailDO purchasePlanDetailDO = this.validatorPurchasePlan(mainDo, detailDo); |
|
|
|
if ((purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())).compareTo(detailDo.getQty()) == -1) { |
|
|
|
throw exception(QTY_ERROR, detailDo.getQty(), null, detailDo.getPoLine(), null, purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())); |
|
|
|
} |
|
|
|
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); |
|
|
|
if (itempackagingDO != null) { |
|
|
|
detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); |
|
|
|
detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|