|
@@ -90,10 +90,12 @@ import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
|
|
import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
|
|
import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
|
|
import com.fjhx.tenant.service.dict.DictTenantDataService;
|
|
import com.fjhx.tenant.service.dict.DictTenantDataService;
|
|
import com.fjhx.tenant.utils.DictUtils;
|
|
import com.fjhx.tenant.utils.DictUtils;
|
|
|
|
+import com.fjhx.wms.entity.contract.po.ContractMrpInfo;
|
|
import com.fjhx.wms.entity.stock.emums.JournalType;
|
|
import com.fjhx.wms.entity.stock.emums.JournalType;
|
|
import com.fjhx.wms.entity.stock.po.StockWait;
|
|
import com.fjhx.wms.entity.stock.po.StockWait;
|
|
import com.fjhx.wms.entity.stock.po.StockWaitDetails;
|
|
import com.fjhx.wms.entity.stock.po.StockWaitDetails;
|
|
import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
|
|
import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
|
|
|
|
+import com.fjhx.wms.service.contract.ContractMrpInfoService;
|
|
import com.fjhx.wms.service.stock.StockWaitDetailsService;
|
|
import com.fjhx.wms.service.stock.StockWaitDetailsService;
|
|
import com.fjhx.wms.service.stock.StockWaitService;
|
|
import com.fjhx.wms.service.stock.StockWaitService;
|
|
import com.ruoyi.common.annotation.TenantIgnore;
|
|
import com.ruoyi.common.annotation.TenantIgnore;
|
|
@@ -122,6 +124,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
@@ -241,6 +244,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
private EhsdPurchaseProductMapper ehsdPurchaseProductMapper;
|
|
private EhsdPurchaseProductMapper ehsdPurchaseProductMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private FlowProcessService flowProcessService;
|
|
private FlowProcessService flowProcessService;
|
|
|
|
+ @Resource
|
|
|
|
+ private ContractMrpInfoService contractMrpInfoService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 合同和样品单 下拉分页
|
|
* 合同和样品单 下拉分页
|
|
@@ -3628,7 +3633,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
productInfoService.editAvailableQuantity(collect, contractId, ProductAvailableRecordType.SALE_PASS, companyId);
|
|
productInfoService.editAvailableQuantity(collect, contractId, ProductAvailableRecordType.SALE_PASS, companyId);
|
|
for (AvailableStockBo inOutBo : collect) {
|
|
for (AvailableStockBo inOutBo : collect) {
|
|
Long materialId = inOutBo.getProductId();
|
|
Long materialId = inOutBo.getProductId();
|
|
- BigDecimal requiredQuantity = inOutBo.getQuantity();
|
|
|
|
|
|
+ BigDecimal requiredQuantity = inOutBo.getRequiredQuantity();
|
|
|
|
|
|
//需要采购的数量大于0生成待采购数据
|
|
//需要采购的数量大于0生成待采购数据
|
|
if (requiredQuantity.compareTo(BigDecimal.ZERO) > 0) {
|
|
if (requiredQuantity.compareTo(BigDecimal.ZERO) > 0) {
|
|
@@ -3641,6 +3646,13 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
subscribeDetail.setCompanyId(companyId);
|
|
subscribeDetail.setCompanyId(companyId);
|
|
// subscribeDetail.setProdOrderId(productionOrder.getId());
|
|
// subscribeDetail.setProdOrderId(productionOrder.getId());
|
|
subscribeDetailList.add(subscribeDetail);
|
|
subscribeDetailList.add(subscribeDetail);
|
|
|
|
+
|
|
|
|
+ //生成合同MRP库存信息
|
|
|
|
+ ContractMrpInfo contractMrpInfo = new ContractMrpInfo();
|
|
|
|
+ contractMrpInfo.setContractId(contractId);
|
|
|
|
+ contractMrpInfo.setMaterialId(materialId);
|
|
|
|
+ contractMrpInfo.setStockQuantity(inOutBo.getQuantity().subtract(requiredQuantity));
|
|
|
|
+ contractMrpInfoService.save(contractMrpInfo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//保存待采购明细
|
|
//保存待采购明细
|
|
@@ -3712,6 +3724,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
availableStockBo.setQuantity(oldContractProductBom.getQuantity());
|
|
availableStockBo.setQuantity(oldContractProductBom.getQuantity());
|
|
availableStockBo.setNewQuantity(newQuantity);
|
|
availableStockBo.setNewQuantity(newQuantity);
|
|
availableStockBo.setInStockQuantity(purchaseQuantity);
|
|
availableStockBo.setInStockQuantity(purchaseQuantity);
|
|
|
|
+ availableStockBo.setPurchaseQuantity(purchaseQuantity);
|
|
availableStockBo.setDemandPurchaseCount(demandPurchaseCount);
|
|
availableStockBo.setDemandPurchaseCount(demandPurchaseCount);
|
|
|
|
|
|
availableStockBoList.add(availableStockBo);
|
|
availableStockBoList.add(availableStockBo);
|
|
@@ -3736,6 +3749,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
availableStockBo.setNewQuantity(newPurchaseProduct.getQuantity());
|
|
availableStockBo.setNewQuantity(newPurchaseProduct.getQuantity());
|
|
availableStockBo.setInStockQuantity(BigDecimal.ZERO);
|
|
availableStockBo.setInStockQuantity(BigDecimal.ZERO);
|
|
availableStockBo.setDemandPurchaseCount(BigDecimal.ZERO);
|
|
availableStockBo.setDemandPurchaseCount(BigDecimal.ZERO);
|
|
|
|
+ availableStockBo.setPurchaseQuantity(BigDecimal.ZERO);
|
|
|
|
|
|
availableStockBoList.add(availableStockBo);
|
|
availableStockBoList.add(availableStockBo);
|
|
}
|
|
}
|
|
@@ -3754,7 +3768,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
.eq(SubscribeDetail::getCompanyId, companyId)
|
|
.eq(SubscribeDetail::getCompanyId, companyId)
|
|
);
|
|
);
|
|
|
|
|
|
- BigDecimal requiredQuantity = availableStockBo.getNewQuantity();
|
|
|
|
|
|
+ BigDecimal requiredQuantity = availableStockBo.getRequiredQuantity();
|
|
|
|
|
|
|
|
|
|
//需采购量>0
|
|
//需采购量>0
|
|
@@ -3791,6 +3805,25 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ //生成合同MRP库存信息,待采购=需求量-已采购:if(差额 - 待采购 >0){库存 = 库存-(差额 - 待采购)}
|
|
|
|
+ BigDecimal subtract = availableStockBo.getQuantity().subtract(availableStockBo.getNewQuantity());
|
|
|
|
+ BigDecimal waitPurchaseQuantity = availableStockBo.getDemandPurchaseCount().subtract(availableStockBo.getPurchaseQuantity());
|
|
|
|
+ BigDecimal subtract1 = subtract.subtract(waitPurchaseQuantity);
|
|
|
|
+ if (subtract1.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
+ ContractMrpInfo contractMrpInfo = contractMrpInfoService.getOne(q -> q
|
|
|
|
+ .eq(ContractMrpInfo::getContractId, newContractId)
|
|
|
|
+ .eq(ContractMrpInfo::getMaterialId, materialId)
|
|
|
|
+ );
|
|
|
|
+ if (ObjectUtil.isEmpty(contractMrpInfo)) {
|
|
|
|
+ contractMrpInfo = new ContractMrpInfo();
|
|
|
|
+ contractMrpInfo.setContractId(newContractId);
|
|
|
|
+ contractMrpInfo.setMaterialId(materialId);
|
|
|
|
+ }
|
|
|
|
+ contractMrpInfo.setStockQuantity(contractMrpInfo.getStockQuantity().subtract(subtract1));
|
|
|
|
+ contractMrpInfoService.saveOrUpdate(contractMrpInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
//---------------------------------------------------------------
|