diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MakeRecExpandVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MakeRecExpandVO.java new file mode 100644 index 000000000..e5c2dc7c5 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MakeRecExpandVO.java @@ -0,0 +1,19 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.produce.pojo.entity.MakeRec; + +import java.io.Serial; + +@Data +@EqualsAndHashCode(callSuper = true) +public class MakeRecExpandVO extends MakeRec { + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "报工人账号") + private String workerAccount; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkPlanExpandVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkPlanExpandVO.java new file mode 100644 index 000000000..000b3518a --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkPlanExpandVO.java @@ -0,0 +1,19 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.produce.pojo.entity.WorkPlan; + +import java.io.Serial; + +@Data +@EqualsAndHashCode(callSuper = true) +public class WorkPlanExpandVO extends WorkPlan { + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "工序名称") + private String ppsName; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java index dc7a86839..561ee6d31 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java @@ -38,4 +38,6 @@ public class WorkPlanItemVO extends WorkPlanItem { private List wpItemDetailList; @Schema(description = "硬度详情 List") private List thicknessList; + @Schema(description = "检验员账号") + private String checkUserAccount; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/pojo/vo/BsSalaryCalculationVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/pojo/vo/BsSalaryCalculationVO.java index 99153f22f..5414e8d00 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/pojo/vo/BsSalaryCalculationVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/pojo/vo/BsSalaryCalculationVO.java @@ -63,7 +63,7 @@ public class BsSalaryCalculationVO { /** * 准备工时 */ - private String hourPrepar; + private String hourPrepare; /** * 工时额定单位 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/BsSalaryUtil.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/BsSalaryUtil.java index e565f49d2..fe4297b07 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/BsSalaryUtil.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/util/BsSalaryUtil.java @@ -109,7 +109,6 @@ public class BsSalaryUtil { if (!StringUtils.hasText(stepStr) || !StringUtils.hasText(stepPriceStr) || count == null || count.compareTo(BigDecimal.ZERO) <= 0) { return BigDecimal.ZERO; } - // 解析阶梯区间 List stepList = Arrays.stream(stepStr.split(" ")) .filter(StringUtils::hasText) @@ -125,37 +124,24 @@ public class BsSalaryUtil { if (priceList.size() != stepList.size() + 1) { return BigDecimal.ZERO; } - BigDecimal totalAmount = BigDecimal.ZERO; - BigDecimal remain = count; - BigDecimal preStep = BigDecimal.ZERO; - // 遍历每一档阶梯 - BigDecimal one = new BigDecimal(1); - for (int i = 0; i < stepList.size() && remain.compareTo(BigDecimal.ZERO) > 0; i++) { - BigDecimal currStep = stepList.get(i).subtract(one); - BigDecimal stepDiff = currStep.subtract(preStep); - // 当前区间实际耗用数量 - BigDecimal useNum = remain.min(stepDiff); - // 累加金额 - if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_BATCH.getCode().equals(stepSettlementUnit)) { - totalAmount = totalAmount.add(priceList.get(i)); + BigDecimal finalPrice = BigDecimal.ZERO; + for (int i = 0; i < stepList.size(); i++) { + BigDecimal stepLimit = stepList.get(i); + if (count.compareTo(stepLimit) <= 0) { + finalPrice = priceList.get(i); + break; } - if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_MULTIPLE.getCode().equals(stepSettlementUnit)) { - totalAmount = totalAmount.add(useNum.multiply(priceList.get(i)).multiply(settlementPrice)); - } - // 剩余数量 - remain = remain.subtract(useNum); - // 记录上一档阶梯 - preStep = currStep; } - // 超出所有阶梯的部分,取最后一档价格 - if (remain.compareTo(BigDecimal.ZERO) > 0) { - BigDecimal lastPrice = priceList.get(priceList.size() - 1); - if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_BATCH.getCode().equals(stepSettlementUnit)) { - totalAmount = totalAmount.add(lastPrice); - } - if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_MULTIPLE.getCode().equals(stepSettlementUnit)) { - totalAmount = totalAmount.add(remain.multiply(lastPrice).multiply(settlementPrice)); - } + if (finalPrice.compareTo(BigDecimal.ZERO) == 0) { + finalPrice = priceList.get(priceList.size() - 1); + } + // 遍历每一档阶梯 + BigDecimal totalAmount = BigDecimal.ZERO; + if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_BATCH.getCode().equals(stepSettlementUnit)) { + totalAmount = finalPrice; + } + if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_MULTIPLE.getCode().equals(stepSettlementUnit)) { + totalAmount = count.multiply(finalPrice).multiply(settlementPrice); } return totalAmount; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java index 52d4de883..e9ed87d53 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java @@ -1,15 +1,12 @@ package org.springblade.desk.produce.controller; import com.alibaba.fastjson.JSONObject; -import com.google.protobuf.ServiceException; import lombok.extern.slf4j.Slf4j; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; -import org.springblade.common.exception.BusinessException; import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.desk.oldv1.constant.Constant; +import org.springblade.core.log.exception.ServiceException; import org.springblade.desk.oldv1.pojo.ResultInfo; import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.quality.service.IReviewSheetService; @@ -31,8 +28,8 @@ public class AiWebApiController extends BladeController { @PostMapping("/reviewResult") @Operation(summary = "审理结束回调接口") - public ResultInfo reviewResult(HttpServletRequest request) throws Exception { - JSONObject params = (JSONObject) request.getAttribute(Constant.WEBAPI_REQUEST_PARAMETERS); + public ResultInfo reviewResult(@RequestBody JSONObject params) { + log.info("审理结束回调接口 params = {}", params); if (params == null || params.isEmpty()) { throw new ServiceException("参数传递异常!"); } @@ -46,7 +43,6 @@ public class AiWebApiController extends BladeController { Integer concedeQty = params.getInteger("concedeQty"); String memo = params.getString("memo"); qcReviewSheetService.reviewResult(trialId, resultStatus, reviewMan, liabilityPart, scrapQty, reworkQty, concedeQty, memo); - log.error("审理结束回调接口{}", params.toJSONString()); } catch (Exception e) { log.error("审理结束回调接口{}", params.toJSONString(), e); } @@ -54,13 +50,11 @@ public class AiWebApiController extends BladeController { } @PostMapping(value = "/deleteReviewOrder") - @Operation(summary = "审理结束回调接口") - public ResultInfo deleteReviewOrder(HttpServletRequest request) throws Exception { - JSONObject params = (JSONObject) request.getAttribute(Constant.WEBAPI_REQUEST_PARAMETERS); - // 添加 调试log + @Operation(summary = "审理单删除调用接口") + public ResultInfo deleteReviewOrder(@RequestBody JSONObject params) { log.info("审理单删除调用接口 params = {}", params); - if (params == null || params.size() == 0) { - throw new BusinessException("参数传递异常!"); + if (params == null || params.isEmpty()) { + throw new ServiceException("参数传递异常!"); } try { String trialId = params.getString("trialId"); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java index ae91ddbde..c387f7a9c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java @@ -2,7 +2,9 @@ package org.springblade.desk.produce.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import io.lettuce.core.dynamic.annotation.Param; import org.springblade.desk.produce.pojo.entity.MakeRec; +import org.springblade.desk.produce.pojo.vo.MakeRecExpandVO; import org.springblade.desk.produce.pojo.vo.MesMakeRecVO; import java.util.List; @@ -15,4 +17,6 @@ import java.util.List; public interface MakeRecMapper extends BaseMapper { List selectMesMakeRecPage(IPage page, MesMakeRecVO mesMakeRec); + + List selectVOByWpId(@Param("wpId") Long wpId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml index a5f7c4d70..f7e9ae785 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml @@ -29,6 +29,11 @@ + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java index 60cf811ac..72e71d0aa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java @@ -97,4 +97,6 @@ public interface WorkPlanMapper extends BaseMapper { List exportBsSalaryCalculation(BsSalaryCalculationDTO bsSalaryCalculation); List getByCardNoByPlanAll(Long id); + + List selectExpandByWoId(@Param("woId") Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml index 0584765aa..9dfe84483 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml @@ -45,6 +45,12 @@ + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java index 7749130d4..56abe816d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java @@ -5,6 +5,7 @@ import org.springblade.core.mp.base.BaseService; import org.springblade.desk.produce.pojo.dto.WorkPlanDto; import org.springblade.desk.produce.pojo.entity.MakeRec; import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.MakeRecExpandVO; import org.springblade.desk.produce.pojo.vo.MesMakeRecVO; import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO; @@ -28,4 +29,6 @@ public interface IMakeRecService extends BaseService { WorkPlanLoadVO loadNotReceived(String cardNo); List afterPlaReceive(String cardNo); + + List selectVOByWpId(Long wpId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java index dc5a06d82..98eb38091 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -12,11 +12,12 @@ import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO; import org.springblade.desk.produce.pojo.vo.WorkOrderVO; import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO; import org.springblade.desk.quality.pojo.entity.InspectionTask; +import org.springblade.desk.quality.pojo.entity.WorkPlanItem; import org.springblade.scheduling.pojo.entity.WorkOrderEntity; import org.springblade.desk.produce.pojo.vo.*; -import java.util.List; -import java.util.Map; -import java.util.Set; +import org.springblade.scheduling.pojo.entity.YieldOrderEntity; + +import java.util.*; /** * 车间订单表 服务类 @@ -286,4 +287,8 @@ public interface IWorkOrderService extends BaseService { WorkOrder getWorkOrderByCardNoAll(String cardNo); void returnOemErpByWxno(String wxNo); + + Map getInspectionRecordHead(Long woId); + + Map getInspectionRecord(Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java index ea0d6e72b..934865579 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java @@ -23,6 +23,7 @@ import org.springblade.desk.produce.mapper.WorkPlanMapper; import org.springblade.desk.produce.pojo.dto.WorkPlanDto; import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.enums.WorkOrderEnum; +import org.springblade.desk.produce.pojo.vo.MakeRecExpandVO; import org.springblade.desk.produce.pojo.vo.MesMakeRecVO; import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO; import org.springblade.desk.produce.service.*; @@ -364,4 +365,9 @@ public class MakeRecServiceImpl extends BaseServiceImpl return workPlanMapper.afterPlaReceive(wo.getCardNo()); } + @Override + public List selectVOByWpId(Long wpId) { + return baseMapper.selectVOByWpId(wpId); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index db8df817b..b90d20497 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -45,6 +45,7 @@ import org.springblade.desk.efficiency.enums.BsSalaryStandardEnum; import org.springblade.desk.efficiency.pojo.entity.BsSalaryStandardEntity; import org.springblade.desk.efficiency.service.IBsSalaryStandardService; import org.springblade.desk.efficiency.util.BsSalaryUtil; +import org.springblade.desk.energy.util.DateTime; import org.springblade.desk.energy.util.HttpRequestService; import org.springblade.desk.logistics.pojo.dto.AllocationMessPageDTO; import org.springblade.desk.logistics.pojo.vo.AllocationMessVO; @@ -54,6 +55,7 @@ import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.produce.mapper.PlateAroundMapper; import org.springblade.desk.produce.mapper.WorkOrderMapper; +import org.springblade.desk.produce.mapper.WorkPlanMapper; import org.springblade.desk.produce.pojo.dto.*; import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.enums.ProcessCycleEnum; @@ -62,6 +64,7 @@ import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.produce.service.*; import org.springblade.desk.quality.mapper.InspectionTaskMapper; import org.springblade.desk.quality.pojo.entity.*; +import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO; import org.springblade.desk.quality.service.*; import org.springblade.desk.util.date.DateUtils; import org.springblade.erpdata.feign.IErpDataLogisticsClient; @@ -69,6 +72,7 @@ import org.springblade.erpdata.feign.IErpDataProduceClient; import org.springblade.scheduling.pojo.entity.QualityGradeEntity; import org.springblade.scheduling.pojo.entity.WorkOrderEntity; import org.springblade.scheduling.pojo.entity.WorkPlanEntity; +import org.springblade.scheduling.pojo.entity.YieldOrderEntity; import org.springblade.system.cache.DictCache; import org.springblade.system.cache.UserCache; import org.springblade.system.feign.IDictClient; @@ -168,6 +172,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl getInspectionRecordHead(Long woId) { + Map data = new HashMap<>(1); + List> list = new ArrayList<>(); + Map map = new HashMap<>(3); + WorkOrder workOrder = this.getById(woId); + YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId()); + map.put("partCode", yieldOrder.getPartCode()); + map.put("batchNo", yieldOrder.getBatchNo()); + List workPlanItems = workPlanItemService.listByWoId(woId); + if (CollectionUtils.isNotEmpty(workPlanItems)) { + String code = workPlanItems.stream().map(WorkPlanItem::getStandardName).distinct().collect(Collectors.joining(System.lineSeparator())); + map.put("code", code); + } + list.add(map); + data.put("data", list); + return data; + } + + @Override + public Map getInspectionRecord(Long woId) { + Map data = new HashMap<>(1); + List> list = new ArrayList<>(); + List planItemLst = workPlanItemService.listByWoIdNotNG(woId); + List planItemDetails = workPlanItemDetailService.listByWoId(woId); + Map> itemDetailMap = planItemDetails.stream() + .collect(Collectors.groupingBy(WorkPlanItemDetail::getWorkPlanItemId)); + for (WorkPlanItemVO planItem : planItemLst) { + List itemDetails = itemDetailMap.get(planItem.getId()); + String checkManByNewErp = null; + try { + checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(planItem.getCheckUserAccount()); + } catch (Exception e) { + // DB Link 等异常降级,避免阻塞 PDF 生成 + } + if(CollectionUtils.isNotEmpty(itemDetails)){ + for(WorkPlanItemDetail itemDetail : itemDetails){ + Map map = new HashMap<>(12); + map.put("projectNo", planItem.getItemCode()); + map.put("equipmentName", itemDetail.getTools()); + if ("厚度检测".equals(planItem.getItemName())) { + map.put("testItem", planItem.getItemName()); + String value = ""; + if (StringUtils.isNotBlank(itemDetail.getGaugeValue1()) && StringUtils.isNotBlank(itemDetail.getGaugeValue2()) && !"/".equals(itemDetail.getGaugeValue2())) { + value += itemDetail.getGaugeValue1() + ":" + itemDetail.getGaugeValue2(); + } + if (StringUtils.isNotBlank(itemDetail.getGaugeValue3()) && StringUtils.isNotBlank(itemDetail.getGaugeValue4()) && !"/".equals(itemDetail.getGaugeValue4())) { + if (StringUtils.isNotBlank(value)) { + value += "/"; + } + value += itemDetail.getGaugeValue3() + ":" + itemDetail.getGaugeValue4(); + } + if (StringUtils.isNotBlank(itemDetail.getGaugeValue5()) && StringUtils.isNotBlank(itemDetail.getGaugeValue6()) && !"/".equals(itemDetail.getGaugeValue6())) { + if (StringUtils.isNotBlank(value)) { + value += "/"; + } + value += itemDetail.getGaugeValue5() + ":" + itemDetail.getGaugeValue6(); + } + map.put("testResult", value); + map.put("equipmentCode", itemDetail.getGaugeValue8()); + map.put("equipmentName", "测厚仪"); + } else if ("尺寸检测".equals(planItem.getItemName())) { + String value = ""; + map.put("testItem", planItem.getItemName() + ":" + itemDetail.getRuleSize()); + if (StringUtils.isNotBlank(itemDetail.getGaugeValue1())) { + value += itemDetail.getGaugeValue1(); + } + if (StringUtils.isNotBlank(itemDetail.getGaugeValue2())) { + if (StringUtils.isNotBlank(value)) { + value += "/"; + } + value += itemDetail.getGaugeValue2(); + } + if (StringUtils.isNotBlank(itemDetail.getGaugeValue3())) { + if (StringUtils.isNotBlank(value)) { + value += "/"; + } + value += itemDetail.getGaugeValue3(); + } + map.put("testResult", StringUtils.isBlank(value) ? planItem.getCheckValue() : value); + map.put("equipmentCode", "/"); + } + map.put("validPeriod", "/"); + map.put("testQty", planItem.getTestQty()); + map.put("checkQty", planItem.getCheckQty()); + map.put("checkResult", planItem.getCheckResult() == -1 ? "未检验" : planItem.getCheckResult() == 1 ? "合格" : + planItem.getCheckResult() == 2 ? "不合格" : planItem.getCheckResult() == 3 ? "NA" : ""); + map.put("inspectorName", checkManByNewErp); + if(planItem.getCheckDate() != null){ + map.put("checkDate", planItem.getCheckDate().toLocalDate().toString()); + } + list.add(map); + } + } else { + Map map = new HashMap<>(12); + map.put("projectNo", planItem.getItemCode()); + map.put("testItem", planItem.getItemName()); +// map.put("partHardness", prWorkPlanItem.getTrialStandard()); + map.put("testResult", planItem.getCheckValue()); + map.put("equipmentName", "/"); + map.put("equipmentCode", "/"); + map.put("validPeriod", "/"); + map.put("testQty", planItem.getTestQty()); + map.put("checkQty", planItem.getCheckQty()); + map.put("checkResult", planItem.getCheckResult() == -1 ? "未检验" : planItem.getCheckResult() == 1 ? "合格" : + planItem.getCheckResult() == 2 ? "不合格" : planItem.getCheckResult() == 3 ? "NA" : ""); + map.put("inspectorName", checkManByNewErp); + if(planItem.getCheckDate() != null){ + map.put("checkDate", planItem.getCheckDate().toLocalDate().toString()); + } + list.add(map); + } + } + data.put("data", list); + return data; + } + @Override public void launchTest(Map data, BladeUser user) throws Exception { // 提取参数 @@ -2887,6 +3011,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl getInspectionRecordHead(Long woId) { + return workOrderService.getInspectionRecordHead(woId); + } + + @GetMapping("/getInspectionRecord") + @Operation(summary = "获取检验记录数据", description = "传入woId") + public Map getInspectionRecord(Long woId) { + return workOrderService.getInspectionRecord(woId); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.java index c9337cffb..7a87d54c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import org.springblade.desk.quality.excel.WorkPlanItemDetailExcel; +import org.springblade.desk.quality.pojo.entity.WorkPlanItem; import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO; @@ -37,4 +38,6 @@ public interface WorkPlanItemDetailMapper extends BaseMapper * @return List */ List exportWorkPlanItemDetail(@Param("ew") Wrapper queryWrapper); + + List listByWoId(Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.xml index 4151e8b7a..577860252 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.xml @@ -33,4 +33,14 @@ SELECT * FROM QA_WORK_PLAN_ITEM_DETAIL ${ew.customSqlSegment} + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java index 23578e922..492431fec 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java @@ -39,4 +39,6 @@ public interface WorkPlanItemMapper extends BaseMapper { List exportWorkPlanItem(@Param("ew") Wrapper queryWrapper); List listByWoId(Long woId); + + List listByWoIdNotNG(Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml index 7367603d4..f57551c0f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml @@ -44,9 +44,21 @@ QA_WORK_PLAN_ITEM a INNER JOIN mes_work_plan b ON a.wp_id = b.ID LEFT JOIN BS_PROCESS_SET c ON b.PPS_ID = c.ID - WHERE - b.wo_id = #{woId} + WHERE a.is_deleted = 0 + AND b.wo_id = #{woId} AND a.ITEM_NAME != '单件包装材料数量' AND c.NAME != '烧结包装防护' + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java index 48d437ceb..4c7c832bc 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java @@ -59,4 +59,6 @@ public interface IWorkPlanItemDetailService extends BaseService itemDetailList, List deleteIds); + + List listByWoId(Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java index 442cbc5bf..98e84eaaa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java @@ -61,4 +61,6 @@ public interface IWorkPlanItemService extends BaseService { List listByWpId(Long wpId); List listByWoId(Long woId); + + List listByWoIdNotNG(Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java index fe0296b1d..8f6717161 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java @@ -3,6 +3,7 @@ package org.springblade.desk.quality.service.impl; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -31,12 +32,10 @@ import org.springblade.desk.basic.service.ICenterTeamService; import org.springblade.desk.basic.service.IPlatingService; import org.springblade.desk.basic.util.IdUtil; 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.DsPartRelationEntity; -import org.springblade.desk.dashboard.pojo.entity.DsPartSub; +import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.service.IBsProcessSetService; import org.springblade.desk.dashboard.service.IDsPartService; +import org.springblade.desk.dashboard.service.IDsPartVersionService; import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.entity.RackSetEntity; @@ -50,7 +49,9 @@ import org.springblade.desk.produce.mapper.WorkOrderMapper; import org.springblade.desk.produce.mapper.WorkPlanMapper; import org.springblade.desk.produce.pojo.dto.*; import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.pojo.vo.MakeRecExpandVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; +import org.springblade.desk.produce.pojo.vo.WorkPlanExpandVO; import org.springblade.desk.produce.service.*; import org.springblade.desk.quality.constant.InspectionItemConst; import org.springblade.desk.quality.constant.InspectionTaskConst; @@ -63,6 +64,7 @@ import org.springblade.desk.quality.pojo.request.InspectionTaskStartNew; import org.springblade.desk.quality.pojo.vo.*; import org.springblade.desk.quality.service.*; import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper; +import org.springblade.scheduling.pojo.entity.WorkPlanEntity; import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; @@ -75,6 +77,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -138,6 +141,12 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl planList, List moduleList) { - - if (woId == null || planList == null || planList.size() == 0) { + if (woId == null) { return null; } + List wpList = workPlanMapper.selectExpandByWoId(woId); + if (planList == null || planList.isEmpty()) { + planList = new ArrayList<>(); + for (int i = 0; i < wpList.size(); i++) { + planList.add(Boolean.TRUE); + } + } JSONObject jsonObj = new JSONObject(); -// WorkOrder wo = workOrderService.getById(woId); WorkOrder wo = workOrderMapper.selectById(woId); - YieldOrder pjYieldOrder = yieldOrderMapper.selectById(wo.getYoId()); - QueryWrapper qwpart = new QueryWrapper<>(); - qwpart.eq("PART_CODE", pjYieldOrder.getPartCode()); - List partList = partService.list(qwpart); - DsPartEntity dsPart = new DsPartEntity(); - if (partList != null && partList.size() > 0) { - dsPart = partList.get(0); + YieldOrder yo = yieldOrderMapper.selectById(wo.getYoId()); + List partVersionList = dsPartVersionService.list(new LambdaQueryWrapper().eq(DsPartVersionEntity::getPartCode, yo.getPartCode()).eq(DsPartVersionEntity::getPartVersion, yo.getPartVersion())); + DsPartEntity dsPart = null; + if (CollectionUtils.isNotEmpty(partVersionList)) { + dsPart = partService.getById(partVersionList.get(0).getPartId()); } - - QueryWrapper qwplan = new QueryWrapper<>(); - qwplan.eq("WO_ID", woId); - List wpList = workPlanMapper.selectList(qwplan); if (moduleList.get(0)) { // 头记录 - JSONObject modelJson = new JSONObject(); - modelJson.put("wo", wo); - modelJson.put("dsPart", dsPart); + JSONObject modelJson = buildModelOne(wo, yo, dsPart); jsonObj.put("modelOne", modelJson); } // 检验记录 if (moduleList.get(1)) { JSONObject modelJson1 = new JSONObject(); -// List checkList = this.getCheckListNotNG(woId, true); -// modelJson1.put("checkList", checkList); -// -// List checkPrWorkPlan = new ArrayList<>(); -// for (PrWorkPlan prWorkPlan : wpList) { -// if(prWorkPlan.getProcedureSet() != null){ -// if("镀后检验".equals(prWorkPlan.getProcedureSet().getPpsName())){ -// checkPrWorkPlan.add(prWorkPlan); -// } -// } -// } -// modelJson1.put("checkPrWorkPlan", checkPrWorkPlan); + List checkList = this.getCheckListNotNG(woId, wpList, true); + modelJson1.put("checkList", checkList); jsonObj.put("modelThree", modelJson1); } - // 生产过程(放在获取检验记录下面,这个方法会排除数据) - this.getNewProcess(wpList, jsonObj, planList); - jsonObj.put("modelTwo", wpList); + List modelTwoList = this.buildModelTwo(wpList, planList); + jsonObj.put("modelTwo", modelTwoList); + + if (moduleList.get(2)) { + // 镀后入库记录 + jsonObj.put("modelFour", null); + } if (moduleList.get(3)) { // 审理单记录 -// PrWorkOrder wor = this.getByKey(woId); -// PjYieldOrder yo = wo.getPjYieldOrder(); -// jsonObj.put("modelFive", qcReviewSheetDao.getQcReviewSheetList(yo.getPartCode(), yo.getBatchNo())); jsonObj.put("modelFive", null); } - if (moduleList.get(2)) { - // 镀后入库记录 - jsonObj.put("modelFour", wpList.get(wpList.size() - 1)); - } return jsonObj; } + /** + * 构建modelOne + * @param wo + * @param yo + * @param dsPart + * @return + */ + private JSONObject buildModelOne(WorkOrder wo, YieldOrder yo, DsPartEntity dsPart) { + JSONObject woJson = new JSONObject(); + JSONObject yoJson = new JSONObject(); + JSONObject partJson = new JSONObject(); + JSONObject modelJson = new JSONObject(); + partJson.put("partCode", dsPart.getPartCode()); + partJson.put("partName", dsPart.getPartName()); + partJson.put("hardness", dsPart.getHardness()); + partJson.put("plate", dsPart.getPlate()); + partJson.put("material", dsPart.getMaterial()); + partJson.put("cruxMemo", dsPart.getKeyInfo()); + partJson.put("memo", dsPart.getRemarks()); + yoJson.put("productType", yo.getProductType()); + yoJson.put("prodIdent", yo.getProductIdent()); + yoJson.put("poQty", yo.getYpQty()); + yoJson.put("poArea", yo.getYpArea()); + yoJson.put("primaryCraft", yo.getPrimaryCraft()); + woJson.put("batchNo", wo.getBatchNo()); + woJson.put("pjYieldOrder", yoJson); + modelJson.put("wo", woJson); + modelJson.put("dsPart", partJson); + return modelJson; + } + + /** + * 构建modelTwo + * @param wpList + * @param modelFlag + * @return + */ + private List buildModelTwo(List wpList, List modelFlag) { + if (wpList == null || wpList.size() == 0) { + return null; + } + List modelTwoList = new ArrayList<>(); + for (int i = 0; i < wpList.size(); i++) { + if (i < modelFlag.size() && modelFlag.get(i)) { + JSONObject modelTwo = new JSONObject(); + JSONObject procedureSet = new JSONObject(); + List slotList = new ArrayList<>(); + JSONObject tankInfo = new JSONObject(); + WorkPlanExpandVO prWorkPlan = wpList.get(i); + procedureSet.put("ppsName", prWorkPlan.getPpsName()); + tankInfo.put("cdjArea", null); + tankInfo.put("pdjArea", null); + tankInfo.put("gjArea", null); + modelTwo.put("orders", prWorkPlan.getOrders()); + modelTwo.put("papers", prWorkPlan.getPapers()); + modelTwo.put("createMan", prWorkPlan.getCreateMan()); + modelTwo.put("factEndTime", prWorkPlan.getFactEndTime()); + modelTwo.put("referenceFile", prWorkPlan.getReferenceFile()); + modelTwo.put("procedureSet", procedureSet); + modelTwo.put("slotList", slotList); + modelTwo.put("tankInfo", tankInfo); + if (WorkPlan.PRINT_TYPE_PROCESS.equals(prWorkPlan.getPrintType())) { + // 同槽信息(从设备,工装使用记录获取) + List slotVOList = null; + //zxh 20250626 增加固溶工序同炉数据 + if ("固溶".equals(prWorkPlan.getPpsName())) { + slotVOList = workPlanMapper.listSlotInfoGr(prWorkPlan.getId(), Boolean.FALSE); + } else { + slotVOList = workPlanMapper.listSlotInfoList(prWorkPlan.getId(), Boolean.TRUE); + if (slotVOList == null || slotVOList.size() == 0) { + slotVOList = workPlanMapper.listSlotInfoList(prWorkPlan.getId(), Boolean.FALSE); + } + } + if (CollectionUtils.isNotEmpty(slotVOList)) { + for (ProduceMonitorSlotListVO slot : slotVOList) { + JSONObject slotJson = new JSONObject(); + slotJson.put("mtuCode", slot.getMtuCode()); + slotJson.put("partCode", slot.getPartCode()); + slotJson.put("batchNo", slot.getBatchNo()); + slotJson.put("workQty", slot.getWorkQty()); + slotJson.put("prodIdent", slot.getProdIdent()); + slotJson.put("area", slot.getArea()); + slotJson.put("totalArea", slot.getTotalArea()); + slotList.add(slotJson); + } + } + List dsRbFilePreserveSlotList = buildDsRbFilePreserveSlotList(prWorkPlan); + modelTwo.put("dsRbFilePreserveSlotList", dsRbFilePreserveSlotList); + } + // 设备编号信息(从设备,工装使用记录获取) + List mtuList = workPlanMapper.listMacToolUse(prWorkPlan.getId(), Boolean.FALSE); + if (CollectionUtils.isNotEmpty(mtuList)) { + List racks = mtuList.stream().map(MacToolUse::getBsRackSet).collect(Collectors.toList()); + List bas = mtuList.stream().map(MacToolUse::getBsFeiBaSet).collect(Collectors.toList()); + List cards = mtuList.stream().map(MacToolUse::getEquipmentCard).collect(Collectors.toList()); + List rackList = rackSetService.listByIds(racks); + List basList = feiBaSetService.listByIds(bas); + List cardList = mesEquipmentCardService.listByIds(cards); + // 设备编号 + String gj = StringUtils.join(rackList.stream().filter(j -> j.getRsType() != null).map(j -> j.getRsType()).collect(Collectors.toList()), "'、'"); + String fb = StringUtils.join(basList.stream().filter(j -> j.getFsType() != null).map(j -> j.getFsType()).collect(Collectors.toList()), "、"); + String eq = StringUtils.join(cardList.stream().filter(j -> j.getDeviceCode() != null).map(j -> j.getDeviceCode()).collect(Collectors.toList()), "、"); + modelTwo.put("gjCode", gj); + modelTwo.put("fbCode", fb); + modelTwo.put("deviceCode", eq); + } + List makeRecs = makeRecService.selectVOByWpId(prWorkPlan.getId()); + MakeRecExpandVO makeRec = null; + if (CollectionUtils.isNotEmpty(makeRecs)) { + makeRec = makeRecs.get(0); + } + List workCheckListByWpId = this.getPrWorkCheckListByWpId(prWorkPlan.getId()); + InspectionTask maxPrWorkCheck = workCheckListByWpId.stream().max(Comparator.comparing(InspectionTask::getCheckDate)).orElse(null); + if (prWorkPlan.getOcId() == null && prWorkPlan.getReceiveMan() != null) { + if (makeRec != null) { + modelTwo.put("createMan", makeRec.getWorkerName()); + } else if (maxPrWorkCheck != null) { + R user = userClient.userInfoById(maxPrWorkCheck.getCheckUserId()); + if (user != null && user.getData() != null) { + modelTwo.put("createMan", user.getData().getRealName()); + } + } else { + R user = userClient.userInfoById(prWorkPlan.getReceiveMan()); + if (user != null && user.getData() != null) { + modelTwo.put("createMan", user.getData().getRealName()); + } + } + } else if (prWorkPlan.getOcId() != null) { // 外协 + Oem oem = oemMapper.selectById(prWorkPlan.getOcId()); + if (oem != null) { + modelTwo.put("createMan", oem.getCode()); + } + } + // 如果是荧光检测工序,需要返回报工人签章图片 + if ("荧光检测".equals(prWorkPlan.getPpsName())) { + if (makeRec != null) { + String checkManByNewErpMes = workPlanMapper.getCheckManByNewErpMes(makeRec.getWorkerAccount()); + modelTwo.put("workerImgUrl", checkManByNewErpMes); + } + } + modelTwoList.add(modelTwo); + } + } + return modelTwoList; + } + + /** + * 构建dsRbFilePreserveSlotList + * @param workPlan + * @return + */ + private List buildDsRbFilePreserveSlotList(WorkPlanExpandVO workPlan){ + List dsRbFilePreserveSlotList = new ArrayList<>(); + QueryWrapper qwteam = new QueryWrapper<>(); + qwteam.eq("TS_ID", workPlan.getMakeTeam()); + List teamList = centerTeamService.list(qwteam); + CenterTeam bsCenterTeam = null; + if (teamList != null && teamList.size() > 0) { + bsCenterTeam = teamList.get(0); + } + if (bsCenterTeam != null && bsCenterTeam.getWcId() != null) { + MacToolUse prMacToolUse; + List preserveSlotList; + List qcProduceRunsList; + MesQcProduceRunEntity boxInfo = new MesQcProduceRunEntity(); + // 根据电子档案维护组装数据(上线前) 分槽 + List dataByWpIdAndIndexList = workPlanMapper.getDataByWpIdAndIndexList(workPlan.getId(), "1"); + if (dataByWpIdAndIndexList != null && dataByWpIdAndIndexList.size() > 0) { + for (MacToolUse prMacToolUseItem : dataByWpIdAndIndexList) { + if (prMacToolUseItem != null && prMacToolUseItem.getId() != null) { + // 获取模板数据 + preserveSlotList = mesRbFilePreserveSlotService.getByRfpId(Long.valueOf(prMacToolUseItem.getRfpId())); + qcProduceRunsList = workPlanMapper.listPrByWpIdIndexAndMtnCode(workPlan.getId(), 1, prMacToolUseItem.getMtnCode()); + // 烘箱信息(从设备,工装使用记录获取) + List runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); + if (runs != null && runs.size() > 0) { + boxInfo = runs.get(0); + } + if (StringUtils.isNotBlank(boxInfo.getInDate())) { + qcProduceRunsList.add(boxInfo); + } + + if (qcProduceRunsList != null && qcProduceRunsList.size() > 0) { + + // 2025-07-23 线上迁移修改删除了日志打印 + // cdl 20250218 修改分槽同一槽号连续出现 + this.setRbFilePreserveData(preserveSlotList, qcProduceRunsList, workPlan, + dsRbFilePreserveSlotList, prMacToolUseItem); + } + } + } + } + + // 根据电子档案维护组装数据(自动) + prMacToolUse = workPlanMapper.getDataByWpIdAndIndex(workPlan.getId(), "2"); + if (prMacToolUse != null && prMacToolUse.getId() != null) { + + List dsRbFilePreserveList = null; + if (workPlan.getPpsId() != null) { + BsProcessSetEntity process = processSetService.getById(workPlan.getPpsId()); + if ("喷砂".equals(process.getName()) || "涂色标".equals(process.getName())) { + dsRbFilePreserveList = workPlanMapper.getDataByWcIdAndPpsId(null, + workPlan.getPpsId(), Boolean.TRUE); + } else { + dsRbFilePreserveList = workPlanMapper.getDataByWcIdAndPpsId(bsCenterTeam.getWcId(), + workPlan.getPpsId(), Boolean.TRUE); + } + } + + //sql不对 + if (dsRbFilePreserveList != null && dsRbFilePreserveList.size() > 0) { + //00000000000000 + preserveSlotList = workPlanMapper.getByRfpId(dsRbFilePreserveList.get(0).getId()); + qcProduceRunsList = workPlanMapper.listPrByWpIdIndex(workPlan.getId(), 2, Boolean.TRUE); + List runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); + if (runs != null && runs.size() > 0) { + boxInfo = runs.get(0); + } + // 烘箱信息(从设备,工装使用记录获取) + if (qcProduceRunsList != null && qcProduceRunsList.size() > 0 && StringUtils.isNotBlank(boxInfo.getInDate())) { + qcProduceRunsList.add(boxInfo); + } + if (qcProduceRunsList != null && qcProduceRunsList.size() > 0) { + // cdl 20250218 修改分槽同一槽号连续出现 + this.setRbFilePreserveData(preserveSlotList, qcProduceRunsList, workPlan, + dsRbFilePreserveSlotList, prMacToolUse); + } + } + } + //zxh 20250117 解决单工序绑定两个手动记录只显示一个问题 + List prMacToolUseList = workPlanMapper.getDataByWpIdAndIndexList(workPlan.getId(), "3"); + if (prMacToolUseList != null && prMacToolUseList.size() > 0) { + for (MacToolUse prMacToolUseSd : prMacToolUseList) { + if (prMacToolUseSd != null && prMacToolUseSd.getId() != null) { + // 获取模板数据 + preserveSlotList = workPlanMapper.getByRfpId(Long.valueOf(prMacToolUseSd.getRfpId())); + qcProduceRunsList = workPlanMapper.listPrByWpIdIndexAndMtnCode(workPlan.getId(), 3, prMacToolUseSd.getMtnCode()); + // 烘箱信息(从设备,工装使用记录获取) + List runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); + if (runs != null && runs.size() > 0) { + boxInfo = runs.get(0); + } + + if (StringUtils.isNotBlank(boxInfo.getInDate())) { + qcProduceRunsList.add(boxInfo); + } + + if (qcProduceRunsList != null && qcProduceRunsList.size() > 0) { + + // cdl 20250218 修改分槽同一槽号连续出现 + this.setRbFilePreserveData(preserveSlotList, qcProduceRunsList, workPlan, + dsRbFilePreserveSlotList, prMacToolUseSd); + } + } + } + } + } + return dsRbFilePreserveSlotList; + } + + private List getCheckListNotNG(Long woId, List wpList, Boolean eleOrPrint) { + List checkList = new ArrayList<>(); + //组装检测项集合 + List piLst = workPlanItemService.listByWoIdNotNG(woId); + Map workPlanMap = wpList.stream() + .collect(Collectors.toMap( + WorkPlanExpandVO::getId, + Function.identity() + )); + if (CollectionUtils.isNotEmpty(piLst)) { + for (WorkPlanItemVO pi : piLst) { + WorkPlanExpandVO workPlan = workPlanMap.get(pi.getWpId()); + String testOrder = workPlan.getOrders() + "-" + pi.getItemCode(); + JSONObject checkDetail = new JSONObject(); + checkDetail.put("testOrders", testOrder); + checkDetail.put("checkName", pi.getCheckUserRealName()); + if (StringUtils.isNotEmpty(pi.getCheckUserAccount())) { + String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(pi.getCheckUserAccount()); + if (eleOrPrint) { + checkDetail.put("imgUrl", checkManByNewErp); + } else { + if (checkManByNewErp != null && checkManByNewErp.indexOf("base64,") > 0) { + String checkManByNewErpSubString = checkManByNewErp.substring(checkManByNewErp.indexOf("base64,") + 7); + checkDetail.put("imgUrl", checkManByNewErpSubString); + } + } + } + checkList.add(checkDetail); + } + } + return checkList; + } + public void getNewProcess(List wpList, JSONObject jsonObj, List modelFlag) { if (wpList == null || wpList.size() == 0) { return; @@ -1631,7 +1916,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl user = userClient.userInfoById(prWorkPlanItem.getCheckUserId()); if (null != user && null != user.getData()) { @@ -2072,7 +2357,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl user = userClient.userInfoById(prWorkPlanItem.getCheckUserId()); if (null != user && null != user.getData()) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java index 75f40fc1a..96378d56f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java @@ -300,10 +300,10 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl listByWoId(Long woId) { + return baseMapper.listByWoId(woId); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java index f97ed44c1..154bf8dfa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java @@ -243,4 +243,9 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl listByWoId(Long woId) { return baseMapper.listByWoId(woId); } + + @Override + public List listByWoIdNotNG(Long woId) { + return baseMapper.listByWoIdNotNG(woId); + } }