|
@@ -93,6 +93,7 @@ import com.fjhx.tenant.utils.DictUtils;
|
|
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.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;
|
|
@@ -3432,6 +3433,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
@DSTransactional
|
|
@DSTransactional
|
|
@Override
|
|
@Override
|
|
public void productionTermination(ContractDto dto) {
|
|
public void productionTermination(ContractDto dto) {
|
|
|
|
+ Contract serviceById = contractService.getById(dto.getId());
|
|
|
|
+
|
|
int TERMINATION = FlowStatusEnum1.TERMINATION.getKey();
|
|
int TERMINATION = FlowStatusEnum1.TERMINATION.getKey();
|
|
|
|
|
|
contractService.update(q -> q
|
|
contractService.update(q -> q
|
|
@@ -3445,6 +3448,35 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
|
|
|
baseMapper.setProdOrderProdStatusByContractId(dto.getId(), TERMINATION);
|
|
baseMapper.setProdOrderProdStatusByContractId(dto.getId(), TERMINATION);
|
|
baseMapper.setProdTaskProdStatusByContractId(dto.getId(), TERMINATION);
|
|
baseMapper.setProdTaskProdStatusByContractId(dto.getId(), TERMINATION);
|
|
|
|
+
|
|
|
|
+ //回滚可用库存
|
|
|
|
+ //获取订单物料
|
|
|
|
+ List<ContractProductBomVo> bomListSum = contractProductBomService.getContractProductBomQuantitySum(IWrapper.getWrapper()
|
|
|
|
+ .eq("cpb.contract_id", dto.getId())
|
|
|
|
+ .ne("cpb.type", 3)
|
|
|
|
+ );
|
|
|
|
+ //获取已经领料
|
|
|
|
+ List<StockWaitDetailsVo> receiptQuantitySum = stockWaitDetailsService.getReceiptQuantitySum(IWrapper.getWrapper()
|
|
|
|
+ .eq("sw.business_type ", 9)
|
|
|
|
+ .eq("sw.contract_id", dto.getId())
|
|
|
|
+ );
|
|
|
|
+ Map<Long, BigDecimal> receiptQuantitySumMap = receiptQuantitySum.stream()
|
|
|
|
+ .collect(Collectors.toMap(StockWaitDetailsVo::getProductId, StockWaitDetailsVo::getReceiptQuantity));
|
|
|
|
+
|
|
|
|
+ List<AvailableStockBo> inOutBoList = new ArrayList<>();
|
|
|
|
+ for (ContractProductBomVo contractProductBomVo : bomListSum) {
|
|
|
|
+ Long materialId = contractProductBomVo.getMaterialId();
|
|
|
|
+ BigDecimal receiptQuantity = receiptQuantitySumMap.getOrDefault(materialId, BigDecimal.ZERO);
|
|
|
|
+ //总量-已经领料
|
|
|
|
+ BigDecimal subtract = contractProductBomVo.getQuantity().subtract(receiptQuantity);
|
|
|
|
+
|
|
|
|
+ AvailableStockBo inOutBo = new AvailableStockBo();
|
|
|
|
+ inOutBo.setProductId(materialId);
|
|
|
|
+ inOutBo.setQuantity(subtract);
|
|
|
|
+ inOutBoList.add(inOutBo);
|
|
|
|
+ }
|
|
|
|
+ productInfoService.editAvailableQuantity(inOutBoList, dto.getId(), ProductAvailableRecordType.PROD_CEASE, serviceById.getOfCompanyId());
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|