|
@@ -6,14 +6,20 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.common.utils.Assert;
|
|
|
+import com.fjhx.item.entity.product.po.ProductInfo;
|
|
|
+import com.fjhx.item.service.product.ProductInfoService;
|
|
|
import com.fjhx.mes.entity.production.dto.ProductionReportingDetailDto;
|
|
|
import com.fjhx.mes.entity.production.dto.ProductionReportingDetailSelectDto;
|
|
|
+import com.fjhx.mes.entity.production.po.ProductionOrderDetail;
|
|
|
import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
|
|
|
import com.fjhx.mes.entity.production.po.ProductionTaskProgress;
|
|
|
import com.fjhx.mes.entity.production.vo.ProductionReportingDetailVo;
|
|
|
+import com.fjhx.mes.entity.technology.po.TechnologyProcessLine;
|
|
|
import com.fjhx.mes.mapper.production.ProductionReportingDetailMapper;
|
|
|
+import com.fjhx.mes.service.production.ProduceOrderDetailService;
|
|
|
import com.fjhx.mes.service.production.ProductionReportingDetailService;
|
|
|
import com.fjhx.mes.service.production.ProductionTaskProgressService;
|
|
|
+import com.fjhx.mes.service.technology.TechnologyProcessLineService;
|
|
|
import com.ruoyi.common.core.domain.BasePo;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
@@ -21,6 +27,7 @@ import com.ruoyi.system.utils.UserUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -38,6 +45,12 @@ public class ProductionReportingDetailServiceImpl extends ServiceImpl<Production
|
|
|
|
|
|
@Autowired
|
|
|
private ProductionTaskProgressService productionTaskProgressService;
|
|
|
+ @Autowired
|
|
|
+ private ProduceOrderDetailService produceOrderDetailService;
|
|
|
+ @Autowired
|
|
|
+ private ProductInfoService productInfoService;
|
|
|
+ @Autowired
|
|
|
+ private TechnologyProcessLineService technologyProcessLineService;
|
|
|
|
|
|
@Override
|
|
|
public Page<ProductionReportingDetailVo> getPage(ProductionReportingDetailSelectDto dto) {
|
|
@@ -65,11 +78,11 @@ public class ProductionReportingDetailServiceImpl extends ServiceImpl<Production
|
|
|
public synchronized void add(ProductionReportingDetailDto dto) {
|
|
|
Long productionTaskId = dto.getProductionTaskId();
|
|
|
Long productionProcessesId = dto.getProductionProcessesId();
|
|
|
- Long quantity = dto.getQuantity();
|
|
|
+ BigDecimal reportingQuantity = dto.getQuantity();
|
|
|
|
|
|
Assert.notEmpty(productionTaskId, "生产任务id不能为空!");
|
|
|
Assert.notEmpty(productionProcessesId, "生产工序id不能为空!");
|
|
|
- Assert.notEmpty(quantity, "报工数量不能为空!");
|
|
|
+ Assert.notEmpty(reportingQuantity, "报工数量不能为空!");
|
|
|
|
|
|
|
|
|
ProductionTaskProgress productionTaskProgress = productionTaskProgressService.getOne(q -> q
|
|
@@ -87,6 +100,32 @@ public class ProductionReportingDetailServiceImpl extends ServiceImpl<Production
|
|
|
.set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
);
|
|
|
|
|
|
+
|
|
|
+ ProductionOrderDetail productionOrderDetail = produceOrderDetailService.getById(productionTaskId);
|
|
|
+ Assert.notEmpty(productionOrderDetail, "查询不到生产任务信息!");
|
|
|
+ ProductInfo productInfo = productInfoService.getById(productionOrderDetail.getProductId());
|
|
|
+ Assert.notEmpty(productInfo, "查询不到生产产品信息!");
|
|
|
+ Long technologyId = productInfo.getTechnologyId();
|
|
|
+
|
|
|
+ long count = technologyProcessLineService.count(q -> q
|
|
|
+ .eq(TechnologyProcessLine::getTechnologyId, technologyId)
|
|
|
+ .eq(TechnologyProcessLine::getSourceProcessesId, productionProcessesId)
|
|
|
+ .eq(TechnologyProcessLine::getTargetProcessesId, 99)
|
|
|
+ );
|
|
|
+ if (count > 0) {
|
|
|
+
|
|
|
+ BigDecimal quantity = productionOrderDetail.getQuantity();
|
|
|
+ BigDecimal finishQuantity = productionOrderDetail.getFinishQuantity();
|
|
|
+
|
|
|
+ BigDecimal add = finishQuantity.add(reportingQuantity);
|
|
|
+ productionOrderDetail.setFinishQuantity(add);
|
|
|
+
|
|
|
+ if (add.compareTo(quantity) >= 0) {
|
|
|
+ productionOrderDetail.setFinishTime(new Date());
|
|
|
+ }
|
|
|
+ produceOrderDetailService.updateById(productionOrderDetail);
|
|
|
+ }
|
|
|
+
|
|
|
this.save(dto);
|
|
|
}
|
|
|
|