|
@@ -68,6 +68,7 @@ import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseProductVo;
|
|
|
import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
|
|
|
import com.fjhx.sale.mapper.contract.ContractMapper;
|
|
|
import com.fjhx.sale.mapper.contract.ContractProductBomMapper;
|
|
|
+import com.fjhx.sale.service.SaleService;
|
|
|
import com.fjhx.sale.service.claim.ClaimContractService;
|
|
|
import com.fjhx.sale.service.contract.*;
|
|
|
import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
|
|
@@ -221,6 +222,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
private ContractOutboundInfoService contractOutboundInfoService;
|
|
|
@Autowired
|
|
|
private ContractOutboundRecordsService contractOutboundRecordsService;
|
|
|
+ @Autowired
|
|
|
+ private SaleService saleService;
|
|
|
|
|
|
/**
|
|
|
* 合同和样品单 下拉分页
|
|
@@ -3066,7 +3069,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
@Override
|
|
|
public void saleOutbound(ContractOutboundInfoDto dto) {
|
|
|
Long contractId = dto.getContractId();
|
|
|
- List<ContractOutboundRecords> productDtoList = dto.getOutboundRecordList();
|
|
|
+ List<ContractOutboundRecordsDto> productDtoList = dto.getOutboundRecordList();
|
|
|
|
|
|
dto.setStatus(FlowStatusEnum1.PASS.getKey());
|
|
|
|
|
@@ -3097,12 +3100,17 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
@Override
|
|
|
public void saleOutboundComm(ContractOutboundInfoDto dto) {
|
|
|
Long contractId = dto.getContractId();
|
|
|
- List<ContractOutboundRecords> productDtoList = dto.getOutboundRecordList();
|
|
|
+ List<ContractOutboundRecordsDto> productDtoList = dto.getOutboundRecordList();
|
|
|
//补充数据
|
|
|
- for (ContractOutboundRecords outboundRecords : productDtoList) {
|
|
|
+ for (ContractOutboundRecordsDto outboundRecords : productDtoList) {
|
|
|
ContractProduct byId = contractProductService.getById(outboundRecords.getContractProductId());
|
|
|
outboundRecords.setProductId(byId.getProductId());
|
|
|
outboundRecords.setPrice(byId.getPrice());
|
|
|
+
|
|
|
+ //赋值生产信息
|
|
|
+ ContractOutboundRecordsDto taskInfo = saleService.getProdOrderIdByContractDetailId(byId.getId());
|
|
|
+ outboundRecords.setProdOrderId(taskInfo.getProdOrderId());
|
|
|
+ outboundRecords.setProdTaskId(taskInfo.getProdTaskId());
|
|
|
}
|
|
|
|
|
|
//修改订单出库状态
|
|
@@ -3114,41 +3122,47 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
.set(BasePo::getUpdateTime, new Date())
|
|
|
);
|
|
|
|
|
|
- //修改生产订单出库状态为出库中
|
|
|
- stockWaitDetailsMapper.updateOrderStatusByContractId(contractId, 5);
|
|
|
+// //修改生产订单出库状态为出库中
|
|
|
+// stockWaitDetailsMapper.updateOrderStatusByContractId(contractId, 5);
|
|
|
|
|
|
ContractVo contract = baseMapper.detail(contractId);
|
|
|
Assert.notEmpty(contract, "查询不到销售订单信息!");
|
|
|
|
|
|
-
|
|
|
- //生成待出库数据
|
|
|
- StockWait stockWait = new StockWait();
|
|
|
- stockWait.setCompanyId(SecurityUtils.getCompanyId());
|
|
|
- stockWait.setType(2);
|
|
|
- stockWait.setBusinessCode(contract.getCode());
|
|
|
- stockWait.setBusinessType(JournalType.SALE_OUT.getDetailType());
|
|
|
- stockWait.setBusinessId(dto.getId());
|
|
|
- stockWait.setContractId(contractId);
|
|
|
- stockWait.setStatus(0);
|
|
|
- stockWaitService.save(stockWait);
|
|
|
-
|
|
|
- List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
- for (ContractOutboundRecords outboundRecords : productDtoList) {
|
|
|
- BigDecimal quantity = outboundRecords.getQuantity();
|
|
|
- //跳过出库数量为空||出库数量为0
|
|
|
- if (ObjectUtil.isEmpty(quantity) || quantity.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
- continue;
|
|
|
+ //根据生产订单id分组
|
|
|
+ Map<Long, List<ContractOutboundRecordsDto>> collect = productDtoList.stream().collect(Collectors.groupingBy(ContractOutboundRecordsDto::getProdOrderId));
|
|
|
+ for (Map.Entry<Long, List<ContractOutboundRecordsDto>> entry : collect.entrySet()) {
|
|
|
+ //生成待出库数据
|
|
|
+ StockWait stockWait = new StockWait();
|
|
|
+ stockWait.setCompanyId(SecurityUtils.getCompanyId());
|
|
|
+ stockWait.setType(2);
|
|
|
+ stockWait.setBusinessCode(contract.getCode());
|
|
|
+ stockWait.setBusinessType(JournalType.SALE_OUT.getDetailType());
|
|
|
+ stockWait.setBusinessId(dto.getId());
|
|
|
+ stockWait.setContractId(contractId);
|
|
|
+ stockWait.setStatus(0);
|
|
|
+ stockWait.setProdOrderId(entry.getKey());
|
|
|
+ stockWaitService.save(stockWait);
|
|
|
+
|
|
|
+ List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
+ for (ContractOutboundRecordsDto outboundRecords : entry.getValue()) {
|
|
|
+ BigDecimal quantity = outboundRecords.getQuantity();
|
|
|
+ //跳过出库数量为空||出库数量为0
|
|
|
+ if (ObjectUtil.isEmpty(quantity) || quantity.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ StockWaitDetails stockWaitDetails = new StockWaitDetails();
|
|
|
+ stockWaitDetails.setStockWaitId(stockWait.getId());
|
|
|
+ stockWaitDetails.setProductId(outboundRecords.getProductId());
|
|
|
+ stockWaitDetails.setQuantity(quantity);
|
|
|
+ stockWaitDetails.setReceiptQuantity(BigDecimal.ZERO);
|
|
|
+ stockWaitDetails.setBusinessDetailsId(outboundRecords.getId());
|
|
|
+ stockWaitDetails.setContractDetailId(outboundRecords.getContractProductId());
|
|
|
+ stockWaitDetails.setProdTaskId(outboundRecords.getProdTaskId());
|
|
|
+ stockWaitDetails.setProdOrderId(outboundRecords.getProdOrderId());
|
|
|
+ stockWaitDetailsList.add(stockWaitDetails);
|
|
|
}
|
|
|
- StockWaitDetails stockWaitDetails = new StockWaitDetails();
|
|
|
- stockWaitDetails.setStockWaitId(stockWait.getId());
|
|
|
- stockWaitDetails.setProductId(outboundRecords.getProductId());
|
|
|
- stockWaitDetails.setQuantity(quantity);
|
|
|
- stockWaitDetails.setReceiptQuantity(BigDecimal.ZERO);
|
|
|
- stockWaitDetails.setBusinessDetailsId(outboundRecords.getId());
|
|
|
- stockWaitDetails.setContractDetailId(outboundRecords.getContractProductId());
|
|
|
- stockWaitDetailsList.add(stockWaitDetails);
|
|
|
+ stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
}
|
|
|
- stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -3156,8 +3170,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
public void createOutboundInfo(ContractOutboundInfoDto dto) {
|
|
|
Assert.notEmpty(dto.getContractId(), "合同id不能为空!");
|
|
|
contractOutboundInfoService.save(dto);
|
|
|
- List<ContractOutboundRecords> outboundRecordList = dto.getOutboundRecordList();
|
|
|
- for (ContractOutboundRecords records : outboundRecordList) {
|
|
|
+ List<ContractOutboundRecordsDto> outboundRecordList = dto.getOutboundRecordList();
|
|
|
+
|
|
|
+ for (ContractOutboundRecordsDto records : outboundRecordList) {
|
|
|
records.setId(null);
|
|
|
Assert.notEmpty(records.getContractProductId(), "合同明细id不能为空!");
|
|
|
records.setContractId(dto.getContractId());
|
|
@@ -3166,8 +3181,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
Assert.notEmpty(contractProduct, "查询不到合同明细信息!");
|
|
|
records.setProductId(contractProduct.getProductId());
|
|
|
records.setPrice(contractProduct.getPrice());
|
|
|
+
|
|
|
+ contractOutboundRecordsService.save(records);
|
|
|
}
|
|
|
- contractOutboundRecordsService.saveBatch(outboundRecordList);
|
|
|
}
|
|
|
|
|
|
@DSTransactional
|