|
|
@ -1,7 +1,6 @@ |
|
|
|
package com.win.module.wms.service.supplierdeliverRequest; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import cn.hutool.json.JSONArray; |
|
|
|
import cn.hutool.json.JSONObject; |
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
@ -13,37 +12,44 @@ 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.purchase.vo.*; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.rule.vo.RuleRespVO; |
|
|
|
import com.win.module.wms.controller.supplierdeliverRecord.vo.SupplierdeliverRecordDetailCreateReqVO; |
|
|
|
import com.win.module.wms.controller.supplierdeliverRecord.vo.SupplierdeliverRecordMainCreateReqVO; |
|
|
|
import com.win.module.wms.controller.supplierdeliverRequest.vo.*; |
|
|
|
import com.win.module.wms.convert.purchase.PurchaseDetailConvert; |
|
|
|
import com.win.module.wms.convert.purchase.PurchaseMainConvert; |
|
|
|
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; |
|
|
|
import com.win.module.wms.convert.supplierdeliverRecord.SupplierdeliverRecordDetailConvert; |
|
|
|
import com.win.module.wms.convert.supplierdeliverRecord.SupplierdeliverRecordMainConvert; |
|
|
|
import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestDetailConvert; |
|
|
|
import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestMainConvert; |
|
|
|
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.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.location.LocationDO; |
|
|
|
import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; |
|
|
|
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.requestsetting.RequestsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.shift.ShiftDO; |
|
|
|
import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; |
|
|
|
import com.win.module.wms.dal.dataobject.supplier.SupplierDO; |
|
|
|
import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; |
|
|
|
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.packageMassage.PackageMapper; |
|
|
|
import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.supplierdeliverRecord.SupplierdeliverRecordDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.supplierdeliverRecord.SupplierdeliverRecordMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper; |
|
|
|
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.request.RequestStatusEnum; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.itempackaging.ItempackagingService; |
|
|
|
import com.win.module.wms.service.location.LocationService; |
|
|
|
import com.win.module.wms.service.packageMassage.PackageService; |
|
|
|
import com.win.module.wms.service.purchase.PurchaseMainService; |
|
|
|
import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; |
|
|
|
import com.win.module.wms.service.requestsetting.RequestsettingService; |
|
|
|
import com.win.module.wms.service.rule.RuleService; |
|
|
@ -51,16 +57,16 @@ 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.util.JobUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.List; |
|
|
@ -103,6 +109,23 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq |
|
|
|
private RuleService ruleService; |
|
|
|
@Resource |
|
|
|
private ItempackagingService itempackagingService; |
|
|
|
@Resource |
|
|
|
private PackageMapper packageMapper; |
|
|
|
@Resource |
|
|
|
private PackageService packageService; |
|
|
|
@Resource |
|
|
|
private SupplierdeliverRecordMainMapper supplierdeliverRecordMainMapper; |
|
|
|
@Resource |
|
|
|
private SupplierdeliverRecordDetailMapper supplierdeliverRecordDetailMapper; |
|
|
|
@Resource |
|
|
|
private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper; |
|
|
|
@Resource |
|
|
|
private PurchasereceiptRequestDetailMapper purchasereceiptRequestDetailMapper; |
|
|
|
@Resource |
|
|
|
private PurchaseMainService purchaseMainService; |
|
|
|
@Resource |
|
|
|
private LocationService locationService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@ -239,15 +262,17 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq |
|
|
|
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()); |
|
|
|
supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); |
|
|
|
return purchasePlanDetailDO; |
|
|
|
} |
|
|
|
|
|
|
@ -277,10 +302,10 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq |
|
|
|
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())); |
|
|
|
throw exception(QTY_ERROR, detailDo.getQty(), detailDo.getNumber(), detailDo.getPoLine(), purchasePlanDetailDO.getItemCode(), purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())); |
|
|
|
} |
|
|
|
ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); |
|
|
|
if(itempackagingDO != null){ |
|
|
|
if (itempackagingDO != null) { |
|
|
|
detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); |
|
|
|
detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); |
|
|
|
} |
|
|
@ -313,7 +338,7 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq |
|
|
|
validatorDetailMethod(supplierdeliverRequestDetailDO, supplierdeliverRequestMainDO); |
|
|
|
} |
|
|
|
supplierdeliverRequestMainMapper.updateById(supplierdeliverRequestMainDO); |
|
|
|
if(subDOList!=null&&subDOList.size()>0){ |
|
|
|
if (subDOList != null && subDOList.size() > 0) { |
|
|
|
supplierdeliverRequestDetailMapper.updateBatch(subDOList); |
|
|
|
} |
|
|
|
return supplierdeliverRequestMainDO; |
|
|
@ -447,7 +472,7 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq |
|
|
|
@Transactional |
|
|
|
public Integer witSupplierdeliverRequestMain(Long id) { |
|
|
|
SupplierdeliverRequestMainDO mainDO = validateSupplierdeliverRequestMainExists(id); |
|
|
|
mainDO.setStatus(PlanStatusEnum.AGREED.getCode());//增加操作记录
|
|
|
|
mainDO.setStatus(RequestStatusEnum.AGREED.getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "request_supplierdeliver_main", "审批通过了供应商发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return supplierdeliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
@ -462,12 +487,11 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq |
|
|
|
@Transactional |
|
|
|
public Integer rejSupplierdeliverRequestMain(Long id) { |
|
|
|
SupplierdeliverRequestMainDO mainDO = validateSupplierdeliverRequestMainExists(id); |
|
|
|
mainDO.setStatus(PlanStatusEnum.REFUSED.getCode());//增加操作记录
|
|
|
|
mainDO.setStatus(RequestStatusEnum.REFUSED.getCode());//增加操作记录
|
|
|
|
trendsApi.createTrends(id, "request_supplierdeliver_main", "驳回了供应商发货申请", TrendsTypeEnum.UPDATE); |
|
|
|
return supplierdeliverRequestMainMapper.updateById(mainDO); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 生成标签 |
|
|
|
* |
|
|
@ -477,18 +501,209 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq |
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer genLabel(String id) { |
|
|
|
Integer result = 0; |
|
|
|
//--------------------------------------------------生成包装-----------------------------------------------------------------------------------------------
|
|
|
|
//主表
|
|
|
|
QueryWrapper<SupplierdeliverRequestMainDO> queryWrapper = new QueryWrapper(); |
|
|
|
queryWrapper.eq("number", id); |
|
|
|
queryWrapper.eq("id", id); |
|
|
|
SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); |
|
|
|
PackageDO packageDO = new PackageDO(); |
|
|
|
packageDO.setSupplierCode(mainDO.getSupplierCode()); |
|
|
|
packageDO.setSupplierItemCode(null); |
|
|
|
packageDO.setPpNumber(mainDO.getPpNumber()); |
|
|
|
|
|
|
|
packageDO.setAsnNumber(mainDO.getAsnNumber()); |
|
|
|
//判断ASN单号 是否重复,如果重复不生成
|
|
|
|
QueryWrapper<PackageDO> packageDOQueryWrapper = new QueryWrapper(); |
|
|
|
packageDOQueryWrapper.eq("asn_number", mainDO.getAsnNumber()); |
|
|
|
Long count = packageMapper.selectCount(packageDOQueryWrapper); |
|
|
|
if (count > 0) { |
|
|
|
throw exception(LABLE_AND_PACK_TYPE_NOT_EXISTS); |
|
|
|
} |
|
|
|
//子表
|
|
|
|
QueryWrapper<SupplierdeliverRequestDetailDO> supplierdeliverRequestDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
supplierdeliverRequestDetailDOQueryWrapper.eq("master_id", id); |
|
|
|
List<SupplierdeliverRequestDetailDO> detailDOList = supplierdeliverRequestDetailMapper.selectList(supplierdeliverRequestDetailDOQueryWrapper); |
|
|
|
|
|
|
|
for (SupplierdeliverRequestDetailDO detailDO : detailDOList) { |
|
|
|
// 获取标包数量
|
|
|
|
BigDecimal itemPackagingDOQty = detailDO.getStdPackQty(); |
|
|
|
// 库存余额输入数量
|
|
|
|
BigDecimal detailDOQty = detailDO.getQty(); |
|
|
|
|
|
|
|
// 判断 库存余额输入的数量 大于 标包数 进行拆分
|
|
|
|
if (detailDOQty.compareTo(itemPackagingDOQty) == 1) { |
|
|
|
// 库存余额 除以 标包 保留0位 具体子表 例如:保留1位 1.60-1.6 1.61-1.7 1.66-1.7 -1.62--1.7
|
|
|
|
// 拆分数据总条数 bdcount
|
|
|
|
BigDecimal bdCount = detailDOQty.divide(itemPackagingDOQty, 0, BigDecimal.ROUND_UP); |
|
|
|
int forInt = bdCount.intValue(); |
|
|
|
//最后一条数据插入数 residueoty= 库存余额数-( 拆分数据总条数-1)*标包数
|
|
|
|
BigDecimal residue0ty = detailDOQty.subtract(itemPackagingDOQty.multiply(bdCount.subtract(new BigDecimal(1)))); |
|
|
|
for (int i = 0; i < forInt; i++) { |
|
|
|
PackageDO packageDO = new PackageDO(); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PACKING_NUMBER.getCode()); |
|
|
|
packageDO.setNumber(number); |
|
|
|
LocalDate today = LocalDate.now(); // 获取当前日期
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); // 定义日期格式
|
|
|
|
packageDO.setBatch(today.format(formatter)); |
|
|
|
//主表给包装表赋值
|
|
|
|
packageDO.setSupplierCode(mainDO.getSupplierCode()); |
|
|
|
packageDO.setSupplierItemCode(null); |
|
|
|
packageDO.setPpNumber(mainDO.getPpNumber()); |
|
|
|
packageDO.setAsnNumber(mainDO.getAsnNumber()); |
|
|
|
//子表给包装表赋值
|
|
|
|
packageDO.setPoNumber(detailDO.getPoNumber()); |
|
|
|
packageDO.setPoLine(detailDO.getPoLine()); |
|
|
|
packageDO.setItemCode(detailDO.getItemCode()); |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); |
|
|
|
packageDO.setItemName(itembasicDO.getName()); |
|
|
|
packageDO.setItemDesc1(detailDO.getItemDesc1()); |
|
|
|
packageDO.setItemDesc2(detailDO.getItemDesc2()); |
|
|
|
packageDO.setUom(detailDO.getUom()); |
|
|
|
packageDO.setStdPackQty(detailDO.getStdPackQty()); |
|
|
|
packageDO.setProduceDate(detailDO.getProduceDate()); |
|
|
|
packageDO.setValidityDays(0); |
|
|
|
packageDO.setExpireDate(detailDO.getExpireDate()); |
|
|
|
packageDO.setConvertRate(detailDO.getConvertRate()); |
|
|
|
// 最后一条数据 插入数量 qty = 标包*数据条数 - 库存余额数
|
|
|
|
if (i == (forInt - 1)) { |
|
|
|
packageDO.setQty(residue0ty); |
|
|
|
} else { |
|
|
|
packageDO.setQty(itemPackagingDOQty); |
|
|
|
} |
|
|
|
result = packageMapper.insert(packageDO); |
|
|
|
//生成标签
|
|
|
|
packageService.generateLabel(packageDO); |
|
|
|
} |
|
|
|
} else { |
|
|
|
PackageDO packageDO = new PackageDO(); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.PACKING_NUMBER.getCode()); |
|
|
|
packageDO.setNumber(number); |
|
|
|
LocalDate today = LocalDate.now(); // 获取当前日期
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); // 定义日期格式
|
|
|
|
packageDO.setBatch(today.format(formatter)); |
|
|
|
//主表给包装表赋值
|
|
|
|
packageDO.setSupplierCode(mainDO.getSupplierCode()); |
|
|
|
packageDO.setSupplierItemCode(null); |
|
|
|
packageDO.setPpNumber(mainDO.getPpNumber()); |
|
|
|
packageDO.setAsnNumber(mainDO.getAsnNumber()); |
|
|
|
//子表给包装表赋值
|
|
|
|
packageDO.setPoNumber(detailDO.getPoNumber()); |
|
|
|
packageDO.setPoLine(detailDO.getPoLine()); |
|
|
|
packageDO.setItemCode(detailDO.getItemCode()); |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); |
|
|
|
packageDO.setItemName(itembasicDO.getName()); |
|
|
|
packageDO.setItemDesc1(detailDO.getItemDesc1()); |
|
|
|
packageDO.setItemDesc2(detailDO.getItemDesc2()); |
|
|
|
packageDO.setUom(detailDO.getUom()); |
|
|
|
packageDO.setStdPackQty(detailDO.getStdPackQty()); |
|
|
|
packageDO.setProduceDate(detailDO.getProduceDate()); |
|
|
|
packageDO.setValidityDays(0); |
|
|
|
packageDO.setExpireDate(detailDO.getExpireDate()); |
|
|
|
packageDO.setConvertRate(detailDO.getConvertRate()); |
|
|
|
|
|
|
|
packageDO.setQty(detailDO.getQty()); |
|
|
|
result = packageMapper.insert(packageDO); |
|
|
|
//生成标签
|
|
|
|
packageService.generateLabel(packageDO); |
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 处理操作(生成记录,生成采购收货申请) |
|
|
|
* |
|
|
|
* @param id 采采购订单申请主ID |
|
|
|
* @return 更新数量 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer genRecords(String id) { |
|
|
|
Integer result = 0; |
|
|
|
//主表
|
|
|
|
QueryWrapper<SupplierdeliverRequestMainDO> queryWrapper = new QueryWrapper(); |
|
|
|
queryWrapper.eq("id", id); |
|
|
|
SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); |
|
|
|
//子表
|
|
|
|
QueryWrapper<SupplierdeliverRequestDetailDO> supplierdeliverRequestDetailDOQueryWrapper = new QueryWrapper(); |
|
|
|
supplierdeliverRequestDetailDOQueryWrapper.eq("master_id", id); |
|
|
|
List<SupplierdeliverRequestDetailDO> detailDOList = supplierdeliverRequestDetailMapper.selectList(supplierdeliverRequestDetailDOQueryWrapper); |
|
|
|
//跳过任务直接生成记录
|
|
|
|
SupplierdeliverRecordMainCreateReqVO supplierdeliverRecordMainCreateReqVO = new SupplierdeliverRecordMainCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(mainDO, supplierdeliverRecordMainCreateReqVO); |
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_RECORD.getCode()); |
|
|
|
supplierdeliverRecordMainCreateReqVO.setNumber(number); |
|
|
|
supplierdeliverRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); |
|
|
|
//增加业务类型
|
|
|
|
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("SupplierdeliverRequest"); |
|
|
|
supplierdeliverRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); |
|
|
|
supplierdeliverRecordMainCreateReqVO.setAvailable("TRUE"); |
|
|
|
supplierdeliverRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); |
|
|
|
supplierdeliverRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); |
|
|
|
supplierdeliverRecordMainCreateReqVO.setDepartmentCode(mainDO.getDepartmentCode()); |
|
|
|
supplierdeliverRecordMainMapper.insert(SupplierdeliverRecordMainConvert.INSTANCE.convert(supplierdeliverRecordMainCreateReqVO)); |
|
|
|
for (SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO : detailDOList) { |
|
|
|
SupplierdeliverRecordDetailCreateReqVO supplierdeliverRecordDetailCreateReqVO = new SupplierdeliverRecordDetailCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(supplierdeliverRequestDetailDO, supplierdeliverRecordDetailCreateReqVO); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setNumber(number); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setFromPackingNumber(""); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setToPackingNumber(""); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setFromBatch(""); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setToBatch(""); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setAltBatch(""); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setFromContainerNumber(""); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setToContainerNumber(""); |
|
|
|
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDO.getSupplierCode(), supplierdeliverRequestDetailDO.getItemCode()); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setToLocationCode(supplieritemDO.getDefaultLocationCode()); |
|
|
|
LocationDO locationDO = locationService.selectLocation(supplieritemDO.getDefaultLocationCode()); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setToAreaCode(locationDO.getAreaCode()); |
|
|
|
supplierdeliverRecordDetailCreateReqVO.setToLocationGroupCode(locationDO.getLocationGroupCode()); |
|
|
|
supplierdeliverRecordDetailMapper.insert(SupplierdeliverRecordDetailConvert.INSTANCE.convert(supplierdeliverRecordDetailCreateReqVO)); |
|
|
|
} |
|
|
|
|
|
|
|
return 0; |
|
|
|
//生成采购收货申请 叶佳兴
|
|
|
|
PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = new PurchasereceiptRequestMainDO(); |
|
|
|
BeanUtils.copyProperties(mainDO, purchasereceiptRequestMainDO); |
|
|
|
String number2 = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); |
|
|
|
purchasereceiptRequestMainDO.setNumber(number2); |
|
|
|
purchasereceiptRequestMainMapper.insert(purchasereceiptRequestMainDO); |
|
|
|
for (SupplierdeliverRequestDetailDO detailDO : detailDOList) { |
|
|
|
//包装
|
|
|
|
QueryWrapper<PackageDO> packageDOQueryWrapper = new QueryWrapper(); |
|
|
|
packageDOQueryWrapper.eq("asn_number", mainDO.getAsnNumber()); |
|
|
|
packageDOQueryWrapper.eq("po_number", detailDO.getPoNumber()); |
|
|
|
packageDOQueryWrapper.eq("po_line", detailDO.getPoLine()); |
|
|
|
packageDOQueryWrapper.eq("item_code", detailDO.getItemCode()); |
|
|
|
List<PackageDO> packageDOList = packageMapper.selectList(packageDOQueryWrapper); |
|
|
|
for (PackageDO packageDO : packageDOList) { |
|
|
|
PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO = new PurchasereceiptRequestDetailDO(); |
|
|
|
purchasereceiptRequestDetailDO.setMasterId(purchasereceiptRequestMainDO.getId()); |
|
|
|
purchasereceiptRequestDetailDO.setNumber(number2); |
|
|
|
//供应商子表
|
|
|
|
BeanUtils.copyProperties(detailDO, purchasereceiptRequestDetailDO); |
|
|
|
purchasereceiptRequestDetailDO.setContainerNumber(null); |
|
|
|
purchasereceiptRequestDetailDO.setBatch(packageDO.getBatch()); |
|
|
|
purchasereceiptRequestDetailDO.setAltBatch(packageDO.getAltBatch()); |
|
|
|
purchasereceiptRequestDetailDO.setArriveDate(detailDO.getArriveDate()); |
|
|
|
purchasereceiptRequestDetailDO.setProduceDate(packageDO.getProduceDate()); |
|
|
|
purchasereceiptRequestDetailDO.setExpireDate(packageDO.getExpireDate()); |
|
|
|
purchasereceiptRequestDetailDO.setPackingNumber(packageDO.getNumber()); |
|
|
|
purchasereceiptRequestDetailDO.setInventoryStatus("INS"); |
|
|
|
purchasereceiptRequestDetailDO.setFromLocationCode(null); |
|
|
|
SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDO.getSupplierCode(), detailDO.getItemCode()); |
|
|
|
purchasereceiptRequestDetailDO.setDefaultToLocationCode(supplieritemDO.getDefaultLocationCode()); |
|
|
|
purchasereceiptRequestDetailDO.setRemark(null); |
|
|
|
purchasereceiptRequestDetailDO.setCreateTime(LocalDateTime.now()); |
|
|
|
purchasereceiptRequestDetailDO.setSiteId(null); |
|
|
|
purchasereceiptRequestDetailMapper.insert(purchasereceiptRequestDetailDO); |
|
|
|
} |
|
|
|
//更新要货计划的已发货数量
|
|
|
|
purchasePlanMainService.updatePlanPurchaseShippedQty(detailDO.getNumber(), mainDO.getPpNumber(), detailDO.getPoLine() |
|
|
|
, detailDO.getItemCode(), detailDO.getQty()); |
|
|
|
//更新要货计划的已发货数量
|
|
|
|
purchaseMainService.updateOrderPurchaseShippedQty(detailDO.getPoNumber(), detailDO.getPoLine(), detailDO.getItemCode(), detailDO.getQty()); |
|
|
|
} |
|
|
|
mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); |
|
|
|
supplierdeliverRequestMainMapper.updateBatch(mainDO); |
|
|
|
trendsApi.createTrends(mainDO.getId(), "SupplierdeliverRequest", "处理了供应商发货申请", TrendsTypeEnum.CREATE); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|