|
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.fjhx.item.entity.product.po.ProductInfo;
|
|
import com.fjhx.item.entity.product.po.ProductInfo;
|
|
@@ -13,10 +14,7 @@ import com.fjhx.mes.entity.bom.po.BomDetail;
|
|
import com.fjhx.mes.entity.bom.po.BomInfo;
|
|
import com.fjhx.mes.entity.bom.po.BomInfo;
|
|
import com.fjhx.mes.entity.production.dto.ProductionTaskDto;
|
|
import com.fjhx.mes.entity.production.dto.ProductionTaskDto;
|
|
import com.fjhx.mes.entity.production.dto.ProductionTaskSelectDto;
|
|
import com.fjhx.mes.entity.production.dto.ProductionTaskSelectDto;
|
|
-import com.fjhx.mes.entity.production.po.ProductionPlan;
|
|
|
|
-import com.fjhx.mes.entity.production.po.ProductionProcesses;
|
|
|
|
-import com.fjhx.mes.entity.production.po.ProductionTask;
|
|
|
|
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
|
|
|
|
|
|
+import com.fjhx.mes.entity.production.po.*;
|
|
import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
|
|
import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
|
|
import com.fjhx.mes.entity.production.vo.ProductionTaskVo;
|
|
import com.fjhx.mes.entity.production.vo.ProductionTaskVo;
|
|
import com.fjhx.mes.entity.technology.po.Technology;
|
|
import com.fjhx.mes.entity.technology.po.Technology;
|
|
@@ -27,10 +25,7 @@ import com.fjhx.mes.mapper.production.ProductionTaskMapper;
|
|
import com.fjhx.mes.service.applicable.ApplicableProductsService;
|
|
import com.fjhx.mes.service.applicable.ApplicableProductsService;
|
|
import com.fjhx.mes.service.bom.BomDetailService;
|
|
import com.fjhx.mes.service.bom.BomDetailService;
|
|
import com.fjhx.mes.service.bom.BomInfoService;
|
|
import com.fjhx.mes.service.bom.BomInfoService;
|
|
-import com.fjhx.mes.service.production.ProductionPlanService;
|
|
|
|
-import com.fjhx.mes.service.production.ProductionProcessesService;
|
|
|
|
-import com.fjhx.mes.service.production.ProductionTaskDetailService;
|
|
|
|
-import com.fjhx.mes.service.production.ProductionTaskService;
|
|
|
|
|
|
+import com.fjhx.mes.service.production.*;
|
|
import com.fjhx.mes.service.technology.TechnologyService;
|
|
import com.fjhx.mes.service.technology.TechnologyService;
|
|
import com.fjhx.mes.service.work.WorkOrderBomService;
|
|
import com.fjhx.mes.service.work.WorkOrderBomService;
|
|
import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
|
|
import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
|
|
@@ -89,6 +84,8 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
|
|
private ProductionTaskDetailService productionTaskDetailService;
|
|
private ProductionTaskDetailService productionTaskDetailService;
|
|
@Autowired
|
|
@Autowired
|
|
private ProductionProcessesService productionProcessesService;
|
|
private ProductionProcessesService productionProcessesService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProductionTaskDetailRecordService productionTaskDetailRecordService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
|
|
public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
|
|
@@ -228,14 +225,19 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
|
|
}
|
|
}
|
|
//判断是否为定制 获取工序信息
|
|
//判断是否为定制 获取工序信息
|
|
Long productionProcessesId;
|
|
Long productionProcessesId;
|
|
|
|
+ Long nextProductionProcessesId = null;
|
|
if ("1".equals(workOrder.getIsCustomized())) {
|
|
if ("1".equals(workOrder.getIsCustomized())) {
|
|
- WorkOrderProductionProcesses workOrderProductionProcesses = workOrderProductionProcessesService.getOne(q -> q
|
|
|
|
|
|
+ List<WorkOrderProductionProcesses> workOrderProductionProcesses = workOrderProductionProcessesService.list(q -> q
|
|
.eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
|
|
.eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
|
|
.orderByAsc(WorkOrderProductionProcesses::getSort));
|
|
.orderByAsc(WorkOrderProductionProcesses::getSort));
|
|
if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
|
|
if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
|
|
throw new ServiceException("定制工单 工序列表为空");
|
|
throw new ServiceException("定制工单 工序列表为空");
|
|
}
|
|
}
|
|
- productionProcessesId = workOrderProductionProcesses.getId();
|
|
|
|
|
|
+ productionProcessesId = workOrderProductionProcesses.get(0).getId();
|
|
|
|
+ //赋值下一工序id
|
|
|
|
+ if(workOrderProductionProcesses.size()>1){
|
|
|
|
+ nextProductionProcessesId = workOrderProductionProcesses.get(1).getId();
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
|
|
ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
|
|
if (ObjectUtil.isEmpty(applicableProducts)) {
|
|
if (ObjectUtil.isEmpty(applicableProducts)) {
|
|
@@ -251,21 +253,35 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
|
|
}
|
|
}
|
|
String[] split = processRoute.split(",");
|
|
String[] split = processRoute.split(",");
|
|
productionProcessesId = Long.valueOf(split[0]);
|
|
productionProcessesId = Long.valueOf(split[0]);
|
|
|
|
+ //赋值下一工序id
|
|
|
|
+ if(split.length>1){
|
|
|
|
+ nextProductionProcessesId = Long.valueOf(split[1]);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
//创建任务明细
|
|
//创建任务明细
|
|
List<ProductionTaskDetail> productionTaskDetailList = new ArrayList<>();
|
|
List<ProductionTaskDetail> productionTaskDetailList = new ArrayList<>();
|
|
|
|
+ List<ProductionTaskDetailRecord> productionTaskDetailRecordList = new ArrayList<>();
|
|
for (int i = 0; i < productionTaskDto.getQuantity().intValue(); i++) {
|
|
for (int i = 0; i < productionTaskDto.getQuantity().intValue(); i++) {
|
|
ProductionTaskDetail productionTaskDetail = new ProductionTaskDetail();
|
|
ProductionTaskDetail productionTaskDetail = new ProductionTaskDetail();
|
|
|
|
+ productionTaskDetail.setId(IdWorker.getId());
|
|
productionTaskDetail.setProductionTaskId(productionTaskDto.getId());//任务id
|
|
productionTaskDetail.setProductionTaskId(productionTaskDto.getId());//任务id
|
|
productionTaskDetail.setFinishStatus(0);//默认状态未完工
|
|
productionTaskDetail.setFinishStatus(0);//默认状态未完工
|
|
productionTaskDetail.setProductId(workOrder.getProductId());//产品id
|
|
productionTaskDetail.setProductId(workOrder.getProductId());//产品id
|
|
productionTaskDetail.setProductionProcessesId(productionProcessesId);//第一个工序id
|
|
productionTaskDetail.setProductionProcessesId(productionProcessesId);//第一个工序id
|
|
|
|
+ productionTaskDetail.setNextProductionProcessesId(nextProductionProcessesId);//第二个工序id
|
|
//生成SN
|
|
//生成SN
|
|
productionTaskDetail.setProductSn(String.format("%s-%03d", productionTaskDto.getCode(), i + 1));
|
|
productionTaskDetail.setProductSn(String.format("%s-%03d", productionTaskDto.getCode(), i + 1));
|
|
productionTaskDetail.setPersonLiableId(productionTaskDto.getPersonLiableId());//负责人ID
|
|
productionTaskDetail.setPersonLiableId(productionTaskDto.getPersonLiableId());//负责人ID
|
|
productionTaskDetailList.add(productionTaskDetail);
|
|
productionTaskDetailList.add(productionTaskDetail);
|
|
|
|
+ //创建任务明细记录
|
|
|
|
+ ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
|
|
|
|
+ productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
|
|
|
|
+ productionTaskDetailRecord.setProductionProcessesId(productionProcessesId);
|
|
|
|
+ productionTaskDetailRecord.setPersonLiableId(productionTaskDto.getPersonLiableId());
|
|
|
|
+ productionTaskDetailRecordList.add(productionTaskDetailRecord);
|
|
}
|
|
}
|
|
productionTaskDetailService.saveBatch(productionTaskDetailList);
|
|
productionTaskDetailService.saveBatch(productionTaskDetailList);
|
|
|
|
+ productionTaskDetailRecordService.saveBatch(productionTaskDetailRecordList);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|