|
@@ -1,16 +1,28 @@
|
|
|
package com.fjhx.mes.service.production.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+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.mes.entity.production.dto.ProductionReportingDetailDto;
|
|
|
+import com.fjhx.mes.entity.production.dto.ProductionReportingDetailSelectDto;
|
|
|
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.mapper.production.ProductionReportingDetailMapper;
|
|
|
import com.fjhx.mes.service.production.ProductionReportingDetailService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.fjhx.mes.entity.production.vo.ProductionReportingDetailVo;
|
|
|
-import com.fjhx.mes.entity.production.dto.ProductionReportingDetailSelectDto;
|
|
|
+import com.fjhx.mes.service.production.ProductionTaskProgressService;
|
|
|
+import com.ruoyi.common.core.domain.BasePo;
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
-import com.fjhx.mes.entity.production.dto.ProductionReportingDetailDto;
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.ruoyi.system.utils.UserUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -18,17 +30,26 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
* 生产报工明细 服务实现类
|
|
|
* </p>
|
|
|
*
|
|
|
- * @author
|
|
|
+ * @author
|
|
|
* @since 2023-03-30
|
|
|
*/
|
|
|
@Service
|
|
|
public class ProductionReportingDetailServiceImpl extends ServiceImpl<ProductionReportingDetailMapper, ProductionReportingDetail> implements ProductionReportingDetailService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ProductionTaskProgressService productionTaskProgressService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<ProductionReportingDetailVo> getPage(ProductionReportingDetailSelectDto dto) {
|
|
|
IWrapper<ProductionReportingDetail> wrapper = getWrapper();
|
|
|
wrapper.orderByDesc("prd", ProductionReportingDetail::getId);
|
|
|
Page<ProductionReportingDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
+ List<ProductionReportingDetailVo> records = page.getRecords();
|
|
|
+ if (ObjectUtil.isEmpty(records)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ //赋值创建人名称
|
|
|
+ UserUtil.assignmentNickName(records, ProductionReportingDetail::getCreateUser, ProductionReportingDetailVo::setCreateUserName);
|
|
|
return page;
|
|
|
}
|
|
|
|
|
@@ -40,8 +61,33 @@ public class ProductionReportingDetailServiceImpl extends ServiceImpl<Production
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void add(ProductionReportingDetailDto productionReportingDetailDto) {
|
|
|
- this.save(productionReportingDetailDto);
|
|
|
+ @DSTransactional
|
|
|
+ public synchronized void add(ProductionReportingDetailDto dto) {
|
|
|
+ Long productionTaskId = dto.getProductionTaskId();
|
|
|
+ Long productionProcessesId = dto.getProductionProcessesId();
|
|
|
+ Long quantity = dto.getQuantity();
|
|
|
+
|
|
|
+ Assert.notEmpty(productionTaskId, "生产任务id不能为空!");
|
|
|
+ Assert.notEmpty(productionProcessesId, "生产工序id不能为空!");
|
|
|
+ Assert.notEmpty(quantity, "报工数量不能为空!");
|
|
|
+
|
|
|
+
|
|
|
+ ProductionTaskProgress productionTaskProgress = productionTaskProgressService.getOne(q -> q
|
|
|
+ .eq(ProductionTaskProgress::getTaskId, productionTaskId)
|
|
|
+ .eq(ProductionTaskProgress::getProcessesId, productionProcessesId)
|
|
|
+ );
|
|
|
+
|
|
|
+ Assert.notEmpty(productionTaskProgress, "查询不到生产进度信息");
|
|
|
+
|
|
|
+ //更新生产进度信息
|
|
|
+ productionTaskProgressService.update(q -> q
|
|
|
+ .eq(ProductionTaskProgress::getId, productionTaskProgress.getId())
|
|
|
+ .setSql("finish_quantity = finish_quantity + " + dto.getQuantity())
|
|
|
+ .set(BasePo::getUpdateTime, new Date())
|
|
|
+ .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
+ );
|
|
|
+
|
|
|
+ this.save(dto);
|
|
|
}
|
|
|
|
|
|
@Override
|