|
@@ -1,21 +1,147 @@
|
|
|
package com.fjhx.mes.service.production.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
|
|
|
+import com.fjhx.mes.entity.production.dto.ProductionTaskDetailDto;
|
|
|
+import com.fjhx.mes.entity.production.dto.ProductionTaskDetailSelectDto;
|
|
|
+import com.fjhx.mes.entity.production.po.ProductionPlan;
|
|
|
+import com.fjhx.mes.entity.production.po.ProductionTask;
|
|
|
import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
|
|
|
+import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
|
|
|
+import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
|
|
|
+import com.fjhx.mes.entity.technology.po.Technology;
|
|
|
+import com.fjhx.mes.entity.work.po.WorkOrder;
|
|
|
+import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
|
|
|
import com.fjhx.mes.mapper.production.ProductionTaskDetailMapper;
|
|
|
+import com.fjhx.mes.service.production.ProductionPlanService;
|
|
|
+import com.fjhx.mes.service.production.ProductionTaskDetailRecordService;
|
|
|
import com.fjhx.mes.service.production.ProductionTaskDetailService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.mes.service.production.ProductionTaskService;
|
|
|
+import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
|
|
|
+import com.fjhx.mes.service.work.WorkOrderService;
|
|
|
+import com.obs.services.internal.ServiceException;
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
|
+import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
* 生产任务明细 服务实现类
|
|
|
* </p>
|
|
|
*
|
|
|
- * @author
|
|
|
- * @since 2023-05-17
|
|
|
+ * @author
|
|
|
+ * @since 2023-05-18
|
|
|
*/
|
|
|
@Service
|
|
|
public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskDetailMapper, ProductionTaskDetail> implements ProductionTaskDetailService {
|
|
|
+ @Autowired
|
|
|
+ private ProductionTaskDetailRecordService productionTaskDetailRecordService;
|
|
|
+ @Autowired
|
|
|
+ private ProductionTaskService productionTaskService;
|
|
|
+ @Autowired
|
|
|
+ private ProductionPlanService productionPlanService;
|
|
|
+ @Autowired
|
|
|
+ private WorkOrderService workOrderService;
|
|
|
+ @Autowired
|
|
|
+ private WorkOrderProductionProcessesService workOrderProductionProcessesService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<ProductionTaskDetailVo> getPage(ProductionTaskDetailSelectDto dto) {
|
|
|
+ IWrapper<ProductionTaskDetail> wrapper = getWrapper();
|
|
|
+ //过滤负责人为自己的任务
|
|
|
+ wrapper.eq(ProductionTaskDetail::getPersonLiableId, SecurityUtils.getUserId());
|
|
|
+ wrapper.orderByDesc("ptd", ProductionTaskDetail::getId);
|
|
|
+ Page<ProductionTaskDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void edit(ProductionTaskDetailDto productionTaskDetailDto) {
|
|
|
+ this.updateById(productionTaskDetailDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 任务流转
|
|
|
+ */
|
|
|
+ public void circulation(ProductionTaskDetailDto productionTaskDetailDto) {
|
|
|
+ //修改流转状态
|
|
|
+ productionTaskDetailDto.setCirculationStatus(1);
|
|
|
+ //赋值流转人id
|
|
|
+ productionTaskDetailDto.setCirculationUserId(SecurityUtils.getUserId());
|
|
|
+ this.updateById(productionTaskDetailDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 任务流转接收
|
|
|
+ */
|
|
|
+ public void receive(ProductionTaskDetailDto productionTaskDetailDto) {
|
|
|
+ //修改流转状态
|
|
|
+ productionTaskDetailDto.setCirculationStatus(0);
|
|
|
+ //将下一工序赋值到当前工序
|
|
|
+ productionTaskDetailDto.setProductionProcessesId(productionTaskDetailDto.getNextProductionProcessesId());
|
|
|
+ //将负责人赋值为接收人id
|
|
|
+ productionTaskDetailDto.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
+
|
|
|
+ //赋值下一工序相关信息
|
|
|
+// ProductionTask productionTask = productionTaskService.getById(productionTaskDetailDto.getProductionTaskId());
|
|
|
+// ProductionPlan productionPlan = productionPlanService.getById(productionTask.getProductionPlanId());
|
|
|
+// WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
|
|
|
+// if ("1".equals(workOrder.getIsCustomized())) {
|
|
|
+// List<WorkOrderProductionProcesses> workOrderProductionProcesses = workOrderProductionProcessesService.list(q -> q
|
|
|
+// .eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
|
|
|
+// .orderByAsc(WorkOrderProductionProcesses::getSort));
|
|
|
+// if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
|
|
|
+// throw new ServiceException("定制工单 工序列表为空");
|
|
|
+// }
|
|
|
+//
|
|
|
+// for (int i = 0; i < workOrderProductionProcesses.size(); i++) {
|
|
|
+// WorkOrderProductionProcesses wopp = workOrderProductionProcesses.get(i);
|
|
|
+// if(wopp.getId().equals(productionTaskDetailDto.getProductionProcessesId())){
|
|
|
+//
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// productionProcessesId = workOrderProductionProcesses.get(0).getId();
|
|
|
+// //赋值下一工序id
|
|
|
+// if (workOrderProductionProcesses.size() > 1) {
|
|
|
+// nextProductionProcessesId = workOrderProductionProcesses.get(1).getId();
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
|
|
|
+// if (ObjectUtil.isEmpty(applicableProducts)) {
|
|
|
+// throw new ServiceException("未找到适用于该产品的工艺信息");
|
|
|
+// }
|
|
|
+// Technology technology = technologyService.getById(applicableProducts.getTechnologyId());
|
|
|
+// if (ObjectUtil.isEmpty(technology)) {
|
|
|
+// throw new ServiceException("工艺信息不存在");
|
|
|
+// }
|
|
|
+// String processRoute = technology.getProcessRoute();
|
|
|
+// if (ObjectUtil.isEmpty(processRoute)) {
|
|
|
+// throw new ServiceException("工艺线路为空");
|
|
|
+// }
|
|
|
+// String[] split = processRoute.split(",");
|
|
|
+// productionProcessesId = Long.valueOf(split[0]);
|
|
|
+// //赋值下一工序id
|
|
|
+// if (split.length > 1) {
|
|
|
+// nextProductionProcessesId = Long.valueOf(split[1]);
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ this.updateById(productionTaskDetailDto);
|
|
|
+
|
|
|
+ //创建任务明细记录
|
|
|
+ ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
|
|
|
+ productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetailDto.getId());
|
|
|
+ productionTaskDetailRecord.setProductionProcessesId(productionTaskDetailDto.getProductionProcessesId());
|
|
|
+ productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
+ productionTaskDetailRecordService.save(productionTaskDetailRecord);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|