瀏覽代碼

合同下发任务生成工单

yzc 1 年之前
父節點
當前提交
5a3253e0e9
共有 1 個文件被更改,包括 112 次插入114 次删除
  1. 112 114
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderServiceImpl.java

+ 112 - 114
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderServiceImpl.java

@@ -46,119 +46,117 @@ import java.util.stream.Collectors;
 @Service
 public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, ProductionOrder> implements ProduceOrderService {
 
-	@Autowired
-	private ContractService contractService;
-	@Autowired
-	private ContractProductService contractProductService;
-	@Autowired
-	private ProduceOrderDetailService produceOrderDetailService;
-	@Autowired
-	private ISysDeptService sysDeptService;
-	@Autowired
-	private ProductInfoService productInfoService;
-	@Autowired
-	private WorkOrderService workOrderService;
-
-	@Override
-	public Page<ProductionOrderVo> getPage(ProduceOrderSelectDto dto) {
-		IWrapper<ProductionOrder> wrapper = getWrapper();
-		wrapper.orderByDesc("po", ProductionOrder::getId);
-
-		//生产状态
-		wrapper.eq(ProductionOrder::getProduceStatus, dto.getProduceStatus());
-		//交期-时间范围过滤
-		wrapper.ge("po", ProductionOrder::getDeliveryPeriod, dto.getStaDeliveryPeriod());
-		wrapper.le("po", ProductionOrder::getDeliveryPeriod, dto.getEndDeliveryPeriod());
-		//下单时间(创建时间)-时间范围过滤
-		wrapper.ge("po", ProductionOrder::getCreateTime, dto.getBeginTime());
-		wrapper.le("po", ProductionOrder::getCreateTime, dto.getEndTime());
-		//关键字
-		wrapper.keyword(dto.getKeyword(), new SqlField(ProductionOrder::getCode));
-
-		Page<ProductionOrderVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-		List<ProductionOrderVo> records = page.getRecords();
-		if (ObjectUtil.isEmpty(records)) {
-			return page;
-		}
-		//赋值订单明细信息
-		List<Long> produceOrderIds = records.stream().map(ProductionOrder::getId).collect(Collectors.toList());
-		List<ProductionOrderDetail> productionOrderDetailList = produceOrderDetailService.list(q ->
-				q.in(ProductionOrderDetail::getProduceOrderId, produceOrderIds));
-		List<ProductionOrderDetailVo> produceOrderDetailVos = BeanUtil.copyToList(productionOrderDetailList, ProductionOrderDetailVo.class);
-
-		productInfoService.attributeAssign(produceOrderDetailVos, ProductionOrderDetail::getProductId, (item, product) -> {
-			item.setProductCode(product.getCustomCode());
-			item.setProductName(product.getName());
-			item.setProductUnit(product.getUnit());
-			item.setProductSpec(product.getSpec());
-			item.setProductLength(product.getLength());
-			item.setProductWidth(product.getWidth());
-			item.setProductHeight(product.getHeight());
-		});
-
-		Map<Long, List<ProductionOrderDetailVo>> produceOrderDetailMap = produceOrderDetailVos.stream()
-				.collect(Collectors.groupingBy(ProductionOrderDetail::getProduceOrderId));
-		for (ProductionOrderVo record : records) {
-			record.setProduceOrderDetailList(produceOrderDetailMap.get(record.getId()));
-		}
-
-		return page;
-	}
-
-	@Override
-	@DSTransactional
-	public void createOrder(ProductionOrderDto produceOrderDto) {
-		Long contractId = produceOrderDto.getContractId();
-		Assert.notEmpty(produceOrderDto.getContractId(), "合同id不能为空!");
-
-		//将数据移到归属公司下
-		SysDept produceCompany = sysDeptService.getById(produceOrderDto.getProduceCompanyId());
-		Assert.notEmpty(produceCompany, "查询不到生产公司信息");
-		String tenantId = produceCompany.getTenantId();
-		produceOrderDto.setTenantId(tenantId);
-
-		//获取合同信息
-		Contract contract = contractService.getById(contractId);
-		Assert.notEmpty(contract, "查询不到合同信息!");
-		contractService.update(q -> q.eq(Contract::getId, contractId).set(Contract::getOrderDistributeStatus, 1));
-
-		produceOrderDto.setCode(contract.getCode());
-		produceOrderDto.setProduceStatus(0);
-		this.save(produceOrderDto);
-
-		//创建生产订单明细
-		List<ProductionOrderDetail> productionOrderDetailList = new ArrayList<>();
-		List<ContractProduct> contractProductList = contractProductService.list(q -> q.eq(ContractProduct::getContractId, contractId));
-		for (ContractProduct contractProduct : contractProductList) {
-			ProductionOrderDetail productionOrderDetail = new ProductionOrderDetail();
-			productionOrderDetail.setProduceOrderId(produceOrderDto.getId());
-			productionOrderDetail.setContractId(contractId);
-			productionOrderDetail.setContractDetailId(contractProduct.getId());
-			productionOrderDetail.setProductId(contractProduct.getProductId());
-			productionOrderDetail.setQuantity(contractProduct.getQuantity());
-			productionOrderDetail.setFinishQuantity(BigDecimal.ZERO);
-			productionOrderDetail.setProduceStatus(0);
-			productionOrderDetail.setTenantId(tenantId);
-			productionOrderDetailList.add(productionOrderDetail);
-		}
-		produceOrderDetailService.saveBatch(productionOrderDetailList);
-
-		//创建生产订单明细
-		List<WorkOrder> workOrderList = new ArrayList<>();
-		for (ContractProduct contractProduct : contractProductList) {
-			//生成工单
-			for (int i = 1; i <= contractProduct.getQuantity().intValue(); i++) {
-				WorkOrder workOrder = new WorkOrder();
-				workOrder.setCode(contract.getCode());
-				workOrder.setProductId(contractProduct.getProductId());
-				workOrder.setQuantity(BigDecimal.ONE);
-				workOrder.setStatus(0);
-				workOrder.setContractId(contractId);
-				workOrder.setContractDetailsId(contractProduct.getId());
-				workOrderList.add(workOrder);
-			}
-		}
-		workOrderService.saveBatch(workOrderList);
-	}
+    @Autowired
+    private ContractService contractService;
+    @Autowired
+    private ContractProductService contractProductService;
+    @Autowired
+    private ProduceOrderDetailService produceOrderDetailService;
+    @Autowired
+    private ISysDeptService sysDeptService;
+    @Autowired
+    private ProductInfoService productInfoService;
+    @Autowired
+    private WorkOrderService workOrderService;
+
+    @Override
+    public Page<ProductionOrderVo> getPage(ProduceOrderSelectDto dto) {
+        IWrapper<ProductionOrder> wrapper = getWrapper();
+        wrapper.orderByDesc("po", ProductionOrder::getId);
+
+        //生产状态
+        wrapper.eq(ProductionOrder::getProduceStatus, dto.getProduceStatus());
+        //交期-时间范围过滤
+        wrapper.ge("po", ProductionOrder::getDeliveryPeriod, dto.getStaDeliveryPeriod());
+        wrapper.le("po", ProductionOrder::getDeliveryPeriod, dto.getEndDeliveryPeriod());
+        //下单时间(创建时间)-时间范围过滤
+        wrapper.ge("po", ProductionOrder::getCreateTime, dto.getBeginTime());
+        wrapper.le("po", ProductionOrder::getCreateTime, dto.getEndTime());
+        //关键字
+        wrapper.keyword(dto.getKeyword(), new SqlField(ProductionOrder::getCode));
+
+        Page<ProductionOrderVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<ProductionOrderVo> records = page.getRecords();
+        if (ObjectUtil.isEmpty(records)) {
+            return page;
+        }
+        //赋值订单明细信息
+        List<Long> produceOrderIds = records.stream().map(ProductionOrder::getId).collect(Collectors.toList());
+        List<ProductionOrderDetail> productionOrderDetailList = produceOrderDetailService.list(q -> q.in(ProductionOrderDetail::getProduceOrderId, produceOrderIds));
+        List<ProductionOrderDetailVo> produceOrderDetailVos = BeanUtil.copyToList(productionOrderDetailList, ProductionOrderDetailVo.class);
+
+        productInfoService.attributeAssign(produceOrderDetailVos, ProductionOrderDetail::getProductId, (item, product) -> {
+            item.setProductCode(product.getCustomCode());
+            item.setProductName(product.getName());
+            item.setProductUnit(product.getUnit());
+            item.setProductSpec(product.getSpec());
+            item.setProductLength(product.getLength());
+            item.setProductWidth(product.getWidth());
+            item.setProductHeight(product.getHeight());
+        });
+
+        Map<Long, List<ProductionOrderDetailVo>> produceOrderDetailMap = produceOrderDetailVos.stream().collect(Collectors.groupingBy(ProductionOrderDetail::getProduceOrderId));
+        for (ProductionOrderVo record : records) {
+            record.setProduceOrderDetailList(produceOrderDetailMap.get(record.getId()));
+        }
+
+        return page;
+    }
+
+    @Override
+    @DSTransactional
+    public void createOrder(ProductionOrderDto produceOrderDto) {
+        Long contractId = produceOrderDto.getContractId();
+        Assert.notEmpty(produceOrderDto.getContractId(), "合同id不能为空!");
+
+        //将数据移到归属公司下
+        SysDept produceCompany = sysDeptService.getById(produceOrderDto.getProduceCompanyId());
+        Assert.notEmpty(produceCompany, "查询不到生产公司信息");
+        String tenantId = produceCompany.getTenantId();
+        produceOrderDto.setTenantId(tenantId);
+
+        //获取合同信息
+        Contract contract = contractService.getById(contractId);
+        Assert.notEmpty(contract, "查询不到合同信息!");
+        contractService.update(q -> q.eq(Contract::getId, contractId).set(Contract::getOrderDistributeStatus, 1));
+
+        produceOrderDto.setCode(contract.getCode());
+        produceOrderDto.setProduceStatus(0);
+        this.save(produceOrderDto);
+
+        //创建生产订单明细
+        List<ProductionOrderDetail> productionOrderDetailList = new ArrayList<>();
+        List<ContractProduct> contractProductList = contractProductService.list(q -> q.eq(ContractProduct::getContractId, contractId));
+        for (ContractProduct contractProduct : contractProductList) {
+            ProductionOrderDetail productionOrderDetail = new ProductionOrderDetail();
+            productionOrderDetail.setProduceOrderId(produceOrderDto.getId());
+            productionOrderDetail.setContractId(contractId);
+            productionOrderDetail.setContractDetailId(contractProduct.getId());
+            productionOrderDetail.setProductId(contractProduct.getProductId());
+            productionOrderDetail.setQuantity(contractProduct.getQuantity());
+            productionOrderDetail.setFinishQuantity(BigDecimal.ZERO);
+            productionOrderDetail.setProduceStatus(0);
+            productionOrderDetail.setTenantId(tenantId);
+            productionOrderDetailList.add(productionOrderDetail);
+        }
+        produceOrderDetailService.saveBatch(productionOrderDetailList);
+
+        //创建生产订单明细
+        List<WorkOrder> workOrderList = new ArrayList<>();
+        for (ContractProduct contractProduct : contractProductList) {
+            //生成工单
+            for (int i = 1; i <= contractProduct.getQuantity().intValue(); i++) {
+                WorkOrder workOrder = new WorkOrder();
+                workOrder.setCode(contract.getCode() + "-" + i);
+                workOrder.setProductId(contractProduct.getProductId());
+                workOrder.setQuantity(BigDecimal.ONE);
+                workOrder.setStatus(0);
+                workOrder.setContractId(contractId);
+                workOrder.setContractDetailsId(contractProduct.getId());
+                workOrderList.add(workOrder);
+            }
+        }
+        workOrderService.saveBatch(workOrderList);
+    }
 
 }