|
|
@ -2,6 +2,8 @@ package com.win.module.wms.service.purchase; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import cn.hutool.core.exceptions.UtilException; |
|
|
|
import cn.hutool.json.JSONObject; |
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.win.framework.common.enums.CommonStatusEnum; |
|
|
|
import com.win.framework.common.exception.ServiceException; |
|
|
@ -11,25 +13,35 @@ 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.wms.controller.purchase.vo.*; |
|
|
|
import com.win.module.wms.controller.rule.vo.RuleRespVO; |
|
|
|
import com.win.module.wms.convert.purchase.PurchaseDetailConvert; |
|
|
|
import com.win.module.wms.convert.purchase.PurchaseMainConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO; |
|
|
|
import com.win.module.wms.dal.dataobject.documentSwitch.SwitchDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; |
|
|
|
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.shift.ShiftDO; |
|
|
|
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; |
|
|
|
import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; |
|
|
|
import com.win.module.wms.dal.mysql.purchase.PurchaseDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.purchase.PurchaseMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper; |
|
|
|
import com.win.module.wms.enums.DictTypeConstants; |
|
|
|
import com.win.module.wms.enums.order.OrderStatusEnum; |
|
|
|
import com.win.module.wms.enums.plan.PlanStatusEnum; |
|
|
|
import com.win.module.wms.enums.plan.PurchasePlanStatusEnum; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusState; |
|
|
|
import com.win.module.wms.service.currencyexchange.CurrencyexchangeService; |
|
|
|
import com.win.module.wms.service.documentSwitch.SwitchService; |
|
|
|
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.requestsetting.RequestsettingService; |
|
|
|
import com.win.module.wms.service.rule.RuleService; |
|
|
|
import com.win.module.wms.service.shift.ShiftService; |
|
|
@ -87,6 +99,12 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { |
|
|
|
private TrendsApi trendsApi; |
|
|
|
@Resource |
|
|
|
private PurchasePlanMainMapper purchasePlanMainMapper; |
|
|
|
@Resource |
|
|
|
private SwitchService switchService; |
|
|
|
@Resource |
|
|
|
private PurchasePlanMainService purchasePlanMainService; |
|
|
|
@Resource |
|
|
|
private PurchasePlanDetailMapper purchasePlanDetailMapper; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@ -302,7 +320,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { |
|
|
|
} |
|
|
|
}); |
|
|
|
//错误不为空并非部分更新,手工回滚
|
|
|
|
if(!errorList.isEmpty() && !updatePart) { |
|
|
|
if (!errorList.isEmpty() && !updatePart) { |
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
|
|
|
} |
|
|
|
return errorList; |
|
|
@ -314,16 +332,268 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { |
|
|
|
// 校验存在存在下级单据
|
|
|
|
PurchaseMainDO mainDO = validatePurchaseMainExists(id); |
|
|
|
Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber()); |
|
|
|
if(count > 0) { |
|
|
|
throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); |
|
|
|
if (count > 0) { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_EXISTS); |
|
|
|
} |
|
|
|
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); |
|
|
|
boolean flag = requestStatusState.close(); |
|
|
|
if(!flag) { |
|
|
|
if (!flag) { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_CANNOT_CLOSE); |
|
|
|
} |
|
|
|
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
|
|
|
|
mainDO.setStatus(OrderStatusEnum.CLOSED.getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "plan_purchase_main", "关闭了采购订单申请", TrendsTypeEnum.UPDATE); |
|
|
|
return purchaseMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer openPurchaseMain(Long id) { |
|
|
|
// 校验存在存在下级单据
|
|
|
|
PurchaseMainDO mainDO = validatePurchaseMainExists(id); |
|
|
|
Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber()); |
|
|
|
if (count > 0) { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_EXISTS); |
|
|
|
} |
|
|
|
// RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
|
|
|
|
// boolean flag = requestStatusState.close();
|
|
|
|
// if(!flag) {
|
|
|
|
// throw new ServiceException(PURCHASE_MAIN_CANNOT_CLOSE);
|
|
|
|
// }
|
|
|
|
mainDO.setStatus(OrderStatusEnum.READY.getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "plan_purchase_main", "打开了采购订单申请", TrendsTypeEnum.UPDATE); |
|
|
|
return purchaseMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer publishPurchaseMain(Long id) { |
|
|
|
int res = 0; |
|
|
|
// 校验存在存在下级单据
|
|
|
|
PurchaseMainDO mainDO = validatePurchaseMainExists(id); |
|
|
|
Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber()); |
|
|
|
if (count > 0) { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_EXISTS); |
|
|
|
} |
|
|
|
//如果是离散单
|
|
|
|
if ("DISCRETE".equals(mainDO.getType())) { |
|
|
|
SwitchDO switchDO = switchService.selectSwitchExist("CreatePurchasePlanAfterDiscretePurchaseOrderPublished"); |
|
|
|
if (switchDO != null) { |
|
|
|
//新增要货计划主表
|
|
|
|
PurchasePlanMainDO purchasePlanMainDO = new PurchasePlanMainDO(); |
|
|
|
purchasePlanMainDO.setStatus(PurchasePlanStatusEnum.NEW.getCode()); |
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePlan"); |
|
|
|
if (businesstypeDO != null) { |
|
|
|
purchasePlanMainDO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
} |
|
|
|
purchasePlanMainDO.setNumber(mainDO.getNumber()); |
|
|
|
purchasePlanMainDO.setAvailable("TRUE"); |
|
|
|
//供应商代码
|
|
|
|
purchasePlanMainDO.setSupplierCode(mainDO.getSupplierCode()); |
|
|
|
RuleRespVO ruleRespVO = ruleService.deliverGoods(null, mainDO.getSupplierCode(), null); |
|
|
|
if (ruleRespVO == null) { |
|
|
|
throw new ServiceException(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS); |
|
|
|
} else { |
|
|
|
JSONObject conditionObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); |
|
|
|
purchasePlanMainDO.setWarehouseCode(String.valueOf(conditionObject.get("WarehouseCode"))); |
|
|
|
purchasePlanMainDO.setDockCode(String.valueOf(conditionObject.get("DockCode"))); |
|
|
|
purchasePlanMainDO.setBeginTime(String.valueOf(conditionObject.get("BeginTime"))); |
|
|
|
purchasePlanMainDO.setEndTime(String.valueOf(conditionObject.get("EndTime"))); |
|
|
|
purchasePlanMainDO.setTimeWindow(purchasePlanMainDO.getBeginTime() + "-" + purchasePlanMainDO.getEndTime()); |
|
|
|
} |
|
|
|
purchasePlanMainMapper.insert(purchasePlanMainDO); |
|
|
|
//新增要货计划子表
|
|
|
|
QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseDetailDOQueryWrapper.eq("number", mainDO.getNumber()); |
|
|
|
List<PurchaseDetailDO> purchasePlanDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); |
|
|
|
for (PurchaseDetailDO purchaseDetailDO : purchasePlanDetailDOList) { |
|
|
|
PurchasePlanDetailDO purchasePlanDetailDO = new PurchasePlanDetailDO(); |
|
|
|
purchasePlanDetailDO.setMasterId(purchasePlanMainDO.getId()); |
|
|
|
purchasePlanDetailDO.setPlanQty(purchaseDetailDO.getOrderQty()); |
|
|
|
purchasePlanDetailDO.setPoNumber(purchaseDetailDO.getNumber()); |
|
|
|
purchasePlanDetailDO.setPoLine(purchaseDetailDO.getLineNumber()); |
|
|
|
purchasePlanDetailDO.setItemCode(purchaseDetailDO.getItemCode()); |
|
|
|
purchasePlanDetailDO.setUom(purchaseDetailDO.getUom()); |
|
|
|
purchasePlanDetailDO.setAvailable("TRUE"); |
|
|
|
purchasePlanDetailDO.setTenantId(1L); |
|
|
|
purchasePlanDetailMapper.insert(purchasePlanDetailDO); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
mainDO.setStatus(OrderStatusEnum.PUBLISHED.getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "plan_purchase_main", "发布了采购订单申请", TrendsTypeEnum.UPDATE); |
|
|
|
res = purchaseMainMapper.updateById(mainDO); |
|
|
|
return res; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer witPurchaseMain(Long id) { |
|
|
|
int res = 0; |
|
|
|
// 校验存在存在下级单据
|
|
|
|
PurchaseMainDO mainDO = validatePurchaseMainExists(id); |
|
|
|
Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber()); |
|
|
|
if (count > 0) { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_EXISTS); |
|
|
|
} |
|
|
|
//查询要货计划子表
|
|
|
|
QueryWrapper<PurchasePlanDetailDO> purchasePlanDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchasePlanDetailDOQueryWrapper.eq("po_number", mainDO.getNumber()); |
|
|
|
List<PurchasePlanDetailDO> purchasePlanDetailDOList = purchasePlanDetailMapper.selectList(purchasePlanDetailDOQueryWrapper); |
|
|
|
for (PurchasePlanDetailDO purchasePlanDetailDO : purchasePlanDetailDOList) { |
|
|
|
if (purchasePlanDetailDO.getAvailable() != "FALSE") { |
|
|
|
QueryWrapper<PurchasePlanMainDO> purchasePlanMainDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchasePlanMainDOQueryWrapper.eq("number", mainDO.getNumber()); |
|
|
|
purchasePlanMainDOQueryWrapper.ne("status", PlanStatusEnum.CLOSED.getCode()); |
|
|
|
PurchasePlanMainDO purchasePlanMainDO = purchasePlanMainMapper.selectOne(purchasePlanMainDOQueryWrapper); |
|
|
|
if (purchasePlanMainDO != null) { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_Have); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
mainDO.setStatus(OrderStatusEnum.READY.getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "plan_purchase_main", "下架了采购订单申请", TrendsTypeEnum.UPDATE); |
|
|
|
return purchaseMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
//更新采购订单已计划数量
|
|
|
|
@Override |
|
|
|
public void updateOrderPurchasePlanQty(String poNumber, String poLine, String itemCode, BigDecimal planQty) { |
|
|
|
QueryWrapper<PurchaseMainDO> purchaseMainDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseMainDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseMainDOQueryWrapper.eq("status", OrderStatusEnum.PUBLISHED.getCode()); |
|
|
|
List<PurchaseMainDO> purchaseMainDOList = purchaseMainMapper.selectList(purchaseMainDOQueryWrapper); |
|
|
|
if (purchaseMainDOList != null && purchaseMainDOList.size() > 0) { |
|
|
|
for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) { |
|
|
|
QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseDetailDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("line_number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("item_code", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("available", "TRUE"); |
|
|
|
List<PurchaseDetailDO> purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); |
|
|
|
for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { |
|
|
|
//如果是离散单
|
|
|
|
if ("DISCRETE".equals(purchaseMainDO.getType())) { |
|
|
|
purchaseDetailDO.setPlannedQty(purchaseDetailDO.getPlannedQty().add(planQty)); |
|
|
|
} else { |
|
|
|
purchaseDetailDO.setPlannedQty(planQty); |
|
|
|
} |
|
|
|
trendsApi.createTrends(purchaseDetailDO.getId(), "plan_purchase_detail", "修改了采购订单申请子", TrendsTypeEnum.UPDATE); |
|
|
|
purchaseDetailMapper.updateById(purchaseDetailDO); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_NUMBERNO); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//更新采购订单表的已收货数量
|
|
|
|
@Override |
|
|
|
public void updateOrderPurchaseReceivedQty(String poNumber, String poLine, String itemCode, BigDecimal receivedQty) { |
|
|
|
QueryWrapper<PurchaseMainDO> purchaseMainDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseMainDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseMainDOQueryWrapper.eq("status", OrderStatusEnum.PUBLISHED.getCode()); |
|
|
|
List<PurchaseMainDO> purchaseMainDOList = purchaseMainMapper.selectList(purchaseMainDOQueryWrapper); |
|
|
|
if (purchaseMainDOList != null && purchaseMainDOList.size() > 0) { |
|
|
|
for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) { |
|
|
|
QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseDetailDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("line_number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("item_code", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("available", "TRUE"); |
|
|
|
List<PurchaseDetailDO> purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); |
|
|
|
Boolean res = false; |
|
|
|
for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { |
|
|
|
if ("TRUE".equals(purchaseDetailDO.getAvailable())) { |
|
|
|
res = true; |
|
|
|
} |
|
|
|
} |
|
|
|
if ("DISCRETE".equals(purchaseMainDO.getType()) && res == true) { |
|
|
|
purchaseMainDO.setStatus(OrderStatusEnum.COMPLETED.getCode()); |
|
|
|
} |
|
|
|
for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { |
|
|
|
//如果是离散单
|
|
|
|
if ("DISCRETE".equals(purchaseMainDO.getType())) { |
|
|
|
if (purchaseDetailDO.getReceivedQty() == purchaseDetailDO.getOrderQty() |
|
|
|
|| purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty().multiply(new BigDecimal(1).add(purchaseDetailDO.getOverReceivingPercent()))) |
|
|
|
== 1) { |
|
|
|
purchaseDetailDO.setAvailable("FALSE"); |
|
|
|
} else { |
|
|
|
purchaseDetailDO.setReceivedQty(receivedQty); |
|
|
|
} |
|
|
|
} else { |
|
|
|
purchaseDetailDO.setReceivedQty(purchaseDetailDO.getReceivedQty().add(receivedQty)); |
|
|
|
} |
|
|
|
trendsApi.createTrends(purchaseDetailDO.getId(), "plan_purchase_detail", "修改了采购订单申请子", TrendsTypeEnum.UPDATE); |
|
|
|
purchaseDetailMapper.updateById(purchaseDetailDO); |
|
|
|
} |
|
|
|
trendsApi.createTrends(purchaseMainDO.getId(), "plan_purchase_main", "修改了采购订单申请", TrendsTypeEnum.UPDATE); |
|
|
|
purchaseMainMapper.updateById(purchaseMainDO); |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_NUMBERNO); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//更新采购订单表的已发货数量
|
|
|
|
@Override |
|
|
|
public void updateOrderPurchaseShippedQty(String poNumber, String poLine, String itemCode, BigDecimal shippedQty) { |
|
|
|
QueryWrapper<PurchaseMainDO> purchaseMainDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseMainDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseMainDOQueryWrapper.eq("status", OrderStatusEnum.PUBLISHED.getCode()); |
|
|
|
List<PurchaseMainDO> purchaseMainDOList = purchaseMainMapper.selectList(purchaseMainDOQueryWrapper); |
|
|
|
if (purchaseMainDOList != null && purchaseMainDOList.size() > 0) { |
|
|
|
for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) { |
|
|
|
QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseDetailDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("line_number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("item_code", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("available", "TRUE"); |
|
|
|
List<PurchaseDetailDO> purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); |
|
|
|
for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { |
|
|
|
//如果是离散单
|
|
|
|
if ("DISCRETE".equals(purchaseMainDO.getType())) { |
|
|
|
purchaseDetailDO.setShippedQty(purchaseDetailDO.getShippedQty().add(shippedQty)); |
|
|
|
} else { |
|
|
|
purchaseDetailDO.setPlannedQty(shippedQty); |
|
|
|
} |
|
|
|
trendsApi.createTrends(purchaseDetailDO.getId(), "plan_purchase_detail", "修改了采购订单申请子", TrendsTypeEnum.UPDATE); |
|
|
|
purchaseDetailMapper.updateById(purchaseDetailDO); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_NUMBERNO); |
|
|
|
} |
|
|
|
} |
|
|
|
//更新采购订单表的已发货数量
|
|
|
|
@Override |
|
|
|
public void updateOrderPurchaseReturnQty(String poNumber, String poLine, String itemCode, BigDecimal returnedQty) { |
|
|
|
QueryWrapper<PurchaseMainDO> purchaseMainDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseMainDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseMainDOQueryWrapper.eq("status", OrderStatusEnum.PUBLISHED.getCode()); |
|
|
|
List<PurchaseMainDO> purchaseMainDOList = purchaseMainMapper.selectList(purchaseMainDOQueryWrapper); |
|
|
|
if (purchaseMainDOList != null && purchaseMainDOList.size() > 0) { |
|
|
|
for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) { |
|
|
|
QueryWrapper<PurchaseDetailDO> purchaseDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
purchaseDetailDOQueryWrapper.eq("number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("line_number", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("item_code", poNumber); |
|
|
|
purchaseDetailDOQueryWrapper.eq("available", "TRUE"); |
|
|
|
List<PurchaseDetailDO> purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); |
|
|
|
for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { |
|
|
|
//如果是离散单
|
|
|
|
if ("DISCRETE".equals(purchaseMainDO.getType())) { |
|
|
|
purchaseDetailDO.setReturnedQty(returnedQty); |
|
|
|
} else { |
|
|
|
purchaseDetailDO.setReturnedQty(purchaseDetailDO.getReturnedQty().add(returnedQty)); |
|
|
|
} |
|
|
|
trendsApi.createTrends(purchaseDetailDO.getId(), "plan_purchase_detail", "修改了采购订单申请子", TrendsTypeEnum.UPDATE); |
|
|
|
purchaseDetailMapper.updateById(purchaseDetailDO); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new ServiceException(PURCHASE_MAIN_NUMBERNO); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|