|
|
|
@ -4,6 +4,7 @@ |
|
|
|
package org.springblade.desk.quality.service.impl; |
|
|
|
package org.springblade.desk.quality.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
@ -15,6 +16,7 @@ import lombok.Data; |
|
|
|
import lombok.EqualsAndHashCode; |
|
|
|
import lombok.EqualsAndHashCode; |
|
|
|
import lombok.SneakyThrows; |
|
|
|
import lombok.SneakyThrows; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springblade.common.constant.CommonConstant; |
|
|
|
import org.springblade.common.constant.CommonConstant; |
|
|
|
import org.springblade.common.exception.BusinessException; |
|
|
|
import org.springblade.common.exception.BusinessException; |
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
@ -26,10 +28,20 @@ import org.springblade.desk.basic.constant.BaseRequest; |
|
|
|
import org.springblade.desk.basic.constant.BaseValue; |
|
|
|
import org.springblade.desk.basic.constant.BaseValue; |
|
|
|
import org.springblade.desk.basic.util.IdUtil; |
|
|
|
import org.springblade.desk.basic.util.IdUtil; |
|
|
|
import org.springblade.desk.basic.util.StatusCountMap; |
|
|
|
import org.springblade.desk.basic.util.StatusCountMap; |
|
|
|
|
|
|
|
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; |
|
|
|
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; |
|
|
|
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; |
|
|
|
|
|
|
|
import org.springblade.desk.dashboard.service.IBsProcessSetService; |
|
|
|
import org.springblade.desk.dashboard.service.IDsPartService; |
|
|
|
import org.springblade.desk.dashboard.service.IDsPartService; |
|
|
|
|
|
|
|
import org.springblade.desk.order.mapper.YieldOrderMapper; |
|
|
|
|
|
|
|
import org.springblade.desk.order.pojo.entity.YieldOrder; |
|
|
|
|
|
|
|
import org.springblade.desk.order.service.IYieldOrderService; |
|
|
|
import org.springblade.desk.produce.mapper.WorkPlanMapper; |
|
|
|
import org.springblade.desk.produce.mapper.WorkPlanMapper; |
|
|
|
|
|
|
|
import org.springblade.desk.produce.pojo.entity.MacToolUse; |
|
|
|
|
|
|
|
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; |
|
|
|
|
|
|
|
import org.springblade.desk.produce.pojo.entity.WorkOrder; |
|
|
|
import org.springblade.desk.produce.pojo.entity.WorkPlan; |
|
|
|
import org.springblade.desk.produce.pojo.entity.WorkPlan; |
|
|
|
|
|
|
|
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; |
|
|
|
|
|
|
|
import org.springblade.desk.produce.service.IWorkOrderService; |
|
|
|
import org.springblade.desk.produce.service.IWorkPlanService; |
|
|
|
import org.springblade.desk.produce.service.IWorkPlanService; |
|
|
|
import org.springblade.desk.quality.constant.InspectionItemConst; |
|
|
|
import org.springblade.desk.quality.constant.InspectionItemConst; |
|
|
|
import org.springblade.desk.quality.constant.InspectionTaskConst; |
|
|
|
import org.springblade.desk.quality.constant.InspectionTaskConst; |
|
|
|
@ -42,6 +54,7 @@ import org.springblade.desk.quality.pojo.request.InspectionTaskStartNew; |
|
|
|
import org.springblade.desk.quality.pojo.vo.*; |
|
|
|
import org.springblade.desk.quality.pojo.vo.*; |
|
|
|
import org.springblade.desk.quality.service.*; |
|
|
|
import org.springblade.desk.quality.service.*; |
|
|
|
import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper; |
|
|
|
import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper; |
|
|
|
|
|
|
|
import org.springblade.scheduling.pojo.entity.ProcessSetEntity; |
|
|
|
import org.springblade.system.feign.IDictClient; |
|
|
|
import org.springblade.system.feign.IDictClient; |
|
|
|
import org.springblade.system.feign.IUserClient; |
|
|
|
import org.springblade.system.feign.IUserClient; |
|
|
|
import org.springframework.context.annotation.Lazy; |
|
|
|
import org.springframework.context.annotation.Lazy; |
|
|
|
@ -50,6 +63,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.*; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* [检验任务] 服务实现类 |
|
|
|
* [检验任务] 服务实现类 |
|
|
|
@ -90,6 +104,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap |
|
|
|
private IRemindMsgService service; |
|
|
|
private IRemindMsgService service; |
|
|
|
@Resource |
|
|
|
@Resource |
|
|
|
private WorkPlanMapper workPlanMapper; |
|
|
|
private WorkPlanMapper workPlanMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
private IWorkOrderService workOrderService; |
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
private YieldOrderMapper yieldOrderMapper; |
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
private IBsProcessSetService processSetService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public InspectionTaskListVO detailById(InspectionTask inspectionTask) { |
|
|
|
public InspectionTaskListVO detailById(InspectionTask inspectionTask) { |
|
|
|
@ -375,6 +397,112 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap |
|
|
|
return R.data(listVO); |
|
|
|
return R.data(listVO); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public JSONObject newPagePrintEleFiles(Long woId, List<Boolean> planList, List<Boolean> moduleList) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (woId == null || planList == null || planList.size() == 0) { |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
JSONObject jsonObj = new JSONObject(); |
|
|
|
|
|
|
|
WorkOrder wo = workOrderService.getById(woId); |
|
|
|
|
|
|
|
YieldOrder pjYieldOrder = yieldOrderMapper.selectById(wo.getYoId()); |
|
|
|
|
|
|
|
QueryWrapper<DsPartEntity> qwpart = new QueryWrapper<>(); |
|
|
|
|
|
|
|
qwpart.eq("PART_CODE", pjYieldOrder.getPartCode()); |
|
|
|
|
|
|
|
List<DsPartEntity> partList = partService.list(qwpart); |
|
|
|
|
|
|
|
DsPartEntity dsPart = new DsPartEntity(); |
|
|
|
|
|
|
|
if(partList != null && partList.size() > 0){ |
|
|
|
|
|
|
|
dsPart = partList.get(0); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QueryWrapper<WorkPlan> qwplan = new QueryWrapper<>(); |
|
|
|
|
|
|
|
qwplan.eq("WO_ID", woId); |
|
|
|
|
|
|
|
List<WorkPlan> wpList = workPlanMapper.selectList(qwplan); |
|
|
|
|
|
|
|
if (moduleList.get(0)) { |
|
|
|
|
|
|
|
// 头记录
|
|
|
|
|
|
|
|
JSONObject modelJson = new JSONObject(); |
|
|
|
|
|
|
|
modelJson.put("wo", wo); |
|
|
|
|
|
|
|
modelJson.put("dsPart", dsPart); |
|
|
|
|
|
|
|
jsonObj.put("modelOne", modelJson); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 检验记录
|
|
|
|
|
|
|
|
if (moduleList.get(1)) { |
|
|
|
|
|
|
|
JSONObject modelJson1 = new JSONObject(); |
|
|
|
|
|
|
|
// List<PrintChildCheck> checkList = this.getCheckListNotNG(woId, true);
|
|
|
|
|
|
|
|
// modelJson1.put("checkList", checkList);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// List<PrWorkPlan> checkPrWorkPlan = new ArrayList<>();
|
|
|
|
|
|
|
|
// for (PrWorkPlan prWorkPlan : wpList) {
|
|
|
|
|
|
|
|
// if(prWorkPlan.getProcedureSet() != null){
|
|
|
|
|
|
|
|
// if("镀后检验".equals(prWorkPlan.getProcedureSet().getPpsName())){
|
|
|
|
|
|
|
|
// checkPrWorkPlan.add(prWorkPlan);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// modelJson1.put("checkPrWorkPlan", checkPrWorkPlan);
|
|
|
|
|
|
|
|
jsonObj.put("modelThree", modelJson1); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 生产过程(放在获取检验记录下面,这个方法会排除数据)
|
|
|
|
|
|
|
|
this.getNewProcess(wpList, jsonObj, planList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void getNewProcess(List<WorkPlan> wpList, JSONObject jsonObj, List<Boolean> modelFlag) { |
|
|
|
|
|
|
|
if (wpList == null || wpList.size() == 0) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 移除最后两道工序
|
|
|
|
|
|
|
|
List<WorkPlan> newWpList = wpList; |
|
|
|
|
|
|
|
// for (int i = 0; i < 2; i++) {
|
|
|
|
|
|
|
|
// newWpList.remove(wpList.size() - 1);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
List<WorkPlan> workPlanList = new ArrayList<>(); |
|
|
|
|
|
|
|
for (int i = 0; i < newWpList.size(); i++) { |
|
|
|
|
|
|
|
if (modelFlag.get(i)) { |
|
|
|
|
|
|
|
WorkPlan prWorkPlan = newWpList.get(i); |
|
|
|
|
|
|
|
this.getProcessByWp(prWorkPlan); |
|
|
|
|
|
|
|
workPlanList.add(prWorkPlan); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
jsonObj.put("modelTwo", workPlanList); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void getProcessByWp(WorkPlan workPlan) { |
|
|
|
|
|
|
|
MesQcProduceRunEntity box = null; |
|
|
|
|
|
|
|
// 生产追溯数据(从生产追溯表中获取)
|
|
|
|
|
|
|
|
if (WorkPlan.PRINT_TYPE_PROCESS.equals(workPlan.getPrintType())) { |
|
|
|
|
|
|
|
List<MesQcProduceRunEntity> prList = workPlanMapper.listPrByWpId(workPlan.getId()); |
|
|
|
|
|
|
|
// 烘箱信息(从设备,工装使用记录获取)
|
|
|
|
|
|
|
|
box = workPlanMapper.getBoxInfo(workPlan.getId()); |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(box.getInDate())) { |
|
|
|
|
|
|
|
prList.add(box); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Optional.ofNullable(prList).filter(s -> prList.size() > 0).ifPresent(s -> workPlan.setPrList(prList)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BsProcessSetEntity process = processSetService.getById(workPlan.getPpsId()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 同槽信息(从设备,工装使用记录获取)
|
|
|
|
|
|
|
|
List<ProduceMonitorSlotListVO> slotList; |
|
|
|
|
|
|
|
//zxh 20250626 增加固溶工序同炉数据
|
|
|
|
|
|
|
|
if (process.getName().equals("固溶")) { |
|
|
|
|
|
|
|
slotList = workPlanMapper.listSlotInfoGr(workPlan.getId(), Boolean.FALSE); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
slotList = workPlanMapper.listSlotInfo(workPlan.getId(), Boolean.TRUE); |
|
|
|
|
|
|
|
if (slotList == null || slotList.size() == 0) { |
|
|
|
|
|
|
|
slotList = workPlanMapper.listSlotInfo(workPlan.getId(), Boolean.FALSE); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 2025-07-23 线上迁移修改 删除了prMacToolUseService.listSlotInfo方法调用
|
|
|
|
|
|
|
|
workPlan.setSlotList(slotList); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
@SneakyThrows |
|
|
|
@Transactional(rollbackFor = Exception.class) // todo:
|
|
|
|
@Transactional(rollbackFor = Exception.class) // todo:
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
|