|
@@ -27,6 +27,7 @@ import com.fjhx.mes.entity.production.po.*;
|
|
|
import com.fjhx.mes.entity.production.vo.ProductionTaskDetailRecordVo;
|
|
|
import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
|
|
|
import com.fjhx.mes.entity.task.po.TaskProgress;
|
|
|
+import com.fjhx.mes.entity.task.vo.TaskProgressVo;
|
|
|
import com.fjhx.mes.entity.technology.po.Technology;
|
|
|
import com.fjhx.mes.entity.technology.po.TechnologyProcessLine;
|
|
|
import com.fjhx.mes.entity.work.po.WorkOrder;
|
|
@@ -55,6 +56,7 @@ import com.fjhx.wms.entity.stock.po.StockWaitDetails;
|
|
|
import com.fjhx.wms.service.stock.StockWaitDetailsService;
|
|
|
import com.fjhx.wms.service.stock.StockWaitService;
|
|
|
import com.ruoyi.common.annotation.TenantIgnore;
|
|
|
+import com.ruoyi.common.core.domain.BasePo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
@@ -129,7 +131,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
//过滤负责人为自己的任务
|
|
|
wrapper.eq("tp.person_liable_id", SecurityUtils.getUserId());
|
|
|
//过滤进行中的数据
|
|
|
- wrapper.eq("tp.status",1);
|
|
|
+ wrapper.eq("tp.status", 1);
|
|
|
// //过滤未在流转的记录
|
|
|
// wrapper.eq("ptd", ProductionTaskDetail::getCirculationStatus, 0);
|
|
|
//过滤未完成的记录
|
|
@@ -241,7 +243,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
List<Long> nextProcessIdList = new ArrayList<>();
|
|
|
Long workOrderId = productionTaskDetail.getWorkOrderId();
|
|
|
WorkOrder workOrder = workOrderService.getById(workOrderId);
|
|
|
- if(Objects.equals(workOrder.getIsCustomized(),"1")){
|
|
|
+ if (Objects.equals(workOrder.getIsCustomized(), "1")) {
|
|
|
//定制
|
|
|
|
|
|
//获取父节点id
|
|
@@ -260,17 +262,17 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
.in(TaskProgress::getProcessesId, longs1)
|
|
|
.ne(TaskProgress::getStatus, 2)
|
|
|
);
|
|
|
- if(count==0){
|
|
|
+ if (count == 0) {
|
|
|
//统计节点已经完成,生成下级节点的任务
|
|
|
List<Long> longs2 = workOrderProcessLineService.listObject(WorkOrderProcessLine::getTargetProcessesId, q -> q
|
|
|
.eq(WorkOrderProcessLine::getWorkOrderId, workOrderId)
|
|
|
.eq(WorkOrderProcessLine::getSourceProcessesId, taskProgress.getProcessesId())
|
|
|
.ne(WorkOrderProcessLine::getTargetProcessesId, 99)
|
|
|
);
|
|
|
- if(ObjectUtil.isEmpty(longs2)){
|
|
|
+ if (ObjectUtil.isEmpty(longs2)) {
|
|
|
//完工入库
|
|
|
productStorage(dto);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//生成下一节点任务信息
|
|
|
List<TaskProgress> taskProgressList = new ArrayList<>();
|
|
|
for (Long aLong : longs2) {
|
|
@@ -284,7 +286,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
taskProgressService.saveBatch(taskProgressList);
|
|
|
}
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//非定制
|
|
|
ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q
|
|
|
.eq(ApplicableProducts::getProductId, productionTaskDetail.getProductId())
|
|
@@ -307,17 +309,17 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
.in(TaskProgress::getProcessesId, longs1)
|
|
|
.ne(TaskProgress::getStatus, 2)
|
|
|
);
|
|
|
- if(count==0){
|
|
|
+ if (count == 0) {
|
|
|
//统计节点已经完成,生成下级节点的任务
|
|
|
List<Long> longs2 = technologyProcessLineService.listObject(TechnologyProcessLine::getTargetProcessesId, q -> q
|
|
|
.eq(TechnologyProcessLine::getTechnologyId, technologyId)
|
|
|
.eq(TechnologyProcessLine::getSourceProcessesId, taskProgress.getProcessesId())
|
|
|
.ne(TechnologyProcessLine::getTargetProcessesId, 99)
|
|
|
);
|
|
|
- if(ObjectUtil.isEmpty(longs2)){
|
|
|
+ if (ObjectUtil.isEmpty(longs2)) {
|
|
|
//完工入库
|
|
|
productStorage(dto);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//生成下一节点任务信息
|
|
|
List<TaskProgress> taskProgressList = new ArrayList<>();
|
|
|
for (Long aLong : longs2) {
|
|
@@ -375,7 +377,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
ObsFileUtil.saveFile(dto.getFileList(), productionTaskDetailRecord.getId());
|
|
|
|
|
|
//推送消息给下一工序的用户有单可以抢了
|
|
|
- if(ObjectUtil.isNotEmpty(nextProcessIdList)) {
|
|
|
+ if (ObjectUtil.isNotEmpty(nextProcessIdList)) {
|
|
|
// Long nextProductionProcessesId = productionTaskDetail.getNextProductionProcessesId();
|
|
|
List<Long> userIds = productionTaskProcessesDetailService.listObject(ProductionTaskProcessesDetail::getUserId, q -> q
|
|
|
.in(ProductionTaskProcessesDetail::getProductionProcessesId, nextProcessIdList)
|
|
@@ -404,12 +406,12 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
}
|
|
|
|
|
|
//创建任务明细记录
|
|
|
- ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
|
|
|
- productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
|
|
|
- productionTaskDetailRecord.setProductionProcessesId(taskProgress.getProcessesId());
|
|
|
- productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
- productionTaskDetailRecord.setReceivedTime(taskProgress.getReceivedTime());
|
|
|
- productionTaskDetailRecordService.save(productionTaskDetailRecord);
|
|
|
+// ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
|
|
|
+// productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
|
|
|
+// productionTaskDetailRecord.setProductionProcessesId(taskProgress.getProcessesId());
|
|
|
+// productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
+// productionTaskDetailRecord.setReceivedTime(taskProgress.getReceivedTime());
|
|
|
+// productionTaskDetailRecordService.save(productionTaskDetailRecord);
|
|
|
|
|
|
productionTaskDetail.setFinishStatus(1);//标记为完成
|
|
|
productionTaskDetail.setFinishTime(new Date());//记录完成时间
|
|
@@ -424,8 +426,8 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
|
|
|
this.updateById(productionTaskDetail);
|
|
|
|
|
|
- //保存附件
|
|
|
- ObsFileUtil.saveFile(dto.getFileList(), productionTaskDetailRecord.getId());
|
|
|
+// //保存附件
|
|
|
+// ObsFileUtil.saveFile(dto.getFileList(), productionTaskDetailRecord.getId());
|
|
|
|
|
|
StockWait stockWait = new StockWait();
|
|
|
stockWait.setType(1);//入库
|
|
@@ -458,7 +460,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
//过滤工序用户列表里有自己的数据
|
|
|
wrapper.eq("ptpd.user_id", SecurityUtils.getUserId());
|
|
|
//过滤未开始的数据
|
|
|
- wrapper.eq("tp.status",0);
|
|
|
+ wrapper.eq("tp.status", 0);
|
|
|
//过滤正在流转中的数据
|
|
|
// wrapper.eq("ptd", ProductionTaskDetail::getCirculationStatus, 1);
|
|
|
//过滤未完工的数据
|
|
@@ -611,7 +613,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
@Override
|
|
|
public Long haveTaskCount(ProductionTaskDetailDto dto) {
|
|
|
//获取负责人为当前用户 工序为某一工序 未在流转(进行中) 未完成 的任务计数
|
|
|
- return taskProgressService.count(q->q
|
|
|
+ return taskProgressService.count(q -> q
|
|
|
.eq(TaskProgress::getPersonLiableId, SecurityUtils.getUserId())
|
|
|
.eq(ObjectUtil.isNotEmpty(dto.getProductionProcessesId()), TaskProgress::getProcessesId, dto.getProductionProcessesId())
|
|
|
.eq(TaskProgress::getStatus, 1)
|
|
@@ -701,7 +703,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
|
|
|
|
|
|
List<ProductionTaskDetailVo> records = page.getRecords();
|
|
|
- if(ObjectUtil.isEmpty(records)){
|
|
|
+ if (ObjectUtil.isEmpty(records)) {
|
|
|
return page;
|
|
|
}
|
|
|
List<Long> productIds = records.stream().map(ProductionTaskDetail::getProductId).distinct().collect(Collectors.toList());
|
|
@@ -744,11 +746,29 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
arr.add(ppName);
|
|
|
}
|
|
|
|
|
|
- String collect = arr.stream().collect(Collectors.joining("->"));
|
|
|
+ String collect = arr.stream().collect(Collectors.joining(","));
|
|
|
record.setProductionProcessesNames(collect);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //当前工序处理
|
|
|
+ List<Long> ptdIds = records.stream().map(ProductionTaskDetail::getId).collect(Collectors.toList());
|
|
|
+ List<TaskProgress> taskProgressList = taskProgressService.list( q -> q
|
|
|
+ .in(TaskProgress::getProductionTaskDetailId, ptdIds)
|
|
|
+ .ne(TaskProgress::getStatus,2)
|
|
|
+ );
|
|
|
+ List<TaskProgressVo> taskProgressVos = BeanUtil.copyToList(taskProgressList, TaskProgressVo.class);
|
|
|
+ UserUtil.assignmentNickName(taskProgressVos, TaskProgress::getPersonLiableId, TaskProgressVo::setPersonLiableName);
|
|
|
+ for (TaskProgressVo taskProgressVo : taskProgressVos) {
|
|
|
+ taskProgressVo.setProcessesName(productionProcessesMap.getOrDefault(taskProgressVo.getProcessesId(),"未知工序"));
|
|
|
+ }
|
|
|
+ Map<Long, List<TaskProgressVo>> taskProgressMap = taskProgressVos.stream().collect(Collectors.groupingBy(TaskProgressVo::getProductionTaskDetailId));
|
|
|
+ for (ProductionTaskDetailVo record : records) {
|
|
|
+ List<TaskProgressVo> taskProgressVos1 = taskProgressMap.get(record.getId());
|
|
|
+ record.setTaskProgressList(taskProgressVos1);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
return page;
|
|
|
}
|
|
|
|