检验记录、热表

liweidong
maxiangong 3 weeks ago
parent 99a2020ca6
commit 1b74eeaf50
  1. 19
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MakeRecExpandVO.java
  2. 19
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkPlanExpandVO.java
  3. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java
  4. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.java
  5. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml
  6. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java
  7. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml
  8. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java
  9. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  10. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java
  11. 141
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  12. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java
  13. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.java
  14. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.xml
  15. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java
  16. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml
  17. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemDetailService.java
  18. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java
  19. 373
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  20. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemDetailServiceImpl.java
  21. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.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;
}

@ -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;
}

@ -38,4 +38,6 @@ public class WorkPlanItemVO extends WorkPlanItem {
private List<WorkPlanItemDetailVO> wpItemDetailList; private List<WorkPlanItemDetailVO> wpItemDetailList;
@Schema(description = "硬度详情 List") @Schema(description = "硬度详情 List")
private List<WorkPlanItemThicknessVO> thicknessList; private List<WorkPlanItemThicknessVO> thicknessList;
@Schema(description = "检验员账号")
private String checkUserAccount;
} }

@ -2,7 +2,9 @@ package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.entity.MakeRec;
import org.springblade.desk.produce.pojo.vo.MakeRecExpandVO;
import org.springblade.desk.produce.pojo.vo.MesMakeRecVO; import org.springblade.desk.produce.pojo.vo.MesMakeRecVO;
import java.util.List; import java.util.List;
@ -15,4 +17,6 @@ import java.util.List;
public interface MakeRecMapper extends BaseMapper<MakeRec> { public interface MakeRecMapper extends BaseMapper<MakeRec> {
List<MesMakeRecVO> selectMesMakeRecPage(IPage<MesMakeRecVO> page, MesMakeRecVO mesMakeRec); List<MesMakeRecVO> selectMesMakeRecPage(IPage<MesMakeRecVO> page, MesMakeRecVO mesMakeRec);
List<MakeRecExpandVO> selectVOByWpId(@Param("wpId") Long wpId);
} }

@ -29,6 +29,11 @@
<result column="FLAG_QTY" property="flagQty"/> <result column="FLAG_QTY" property="flagQty"/>
<result column="FLAG_COLOUR_ONE" property="flagColourOne"/> <result column="FLAG_COLOUR_ONE" property="flagColourOne"/>
</resultMap> </resultMap>
<resultMap id="mesMakeRecExpandResultMap" type="org.springblade.desk.produce.pojo.vo.MakeRecExpandVO" extends="mesMakeRecResultMap">
<result column="PPS_NAME" property="ppsName"/>
</resultMap>
<select id="selectMesMakeRecPage" resultType="org.springblade.desk.produce.pojo.vo.MesMakeRecVO"> <select id="selectMesMakeRecPage" resultType="org.springblade.desk.produce.pojo.vo.MesMakeRecVO">
select select
mr.id AS mrId, mr.id AS mrId,
@ -84,5 +89,11 @@
</select> </select>
<select id="selectVOByWpId" resultMap="mesMakeRecExpandResultMap">
SELECT a.* FROM MES_MAKE_REC a
INNER JOIN BLADE_USER b ON a.WORKER = b.ID AND b.IS_DELETED = 0
WHERE a.IS_DELETED = 0 and a.WP_ID = #{wpId}
</select>
</mapper> </mapper>

@ -97,4 +97,6 @@ public interface WorkPlanMapper extends BaseMapper<WorkPlan> {
List<BsSalaryCalculationVO> exportBsSalaryCalculation(BsSalaryCalculationDTO bsSalaryCalculation); List<BsSalaryCalculationVO> exportBsSalaryCalculation(BsSalaryCalculationDTO bsSalaryCalculation);
List<AllWorkPlanVO> getByCardNoByPlanAll(Long id); List<AllWorkPlanVO> getByCardNoByPlanAll(Long id);
List<WorkPlanExpandVO> selectExpandByWoId(@Param("woId") Long woId);
} }

@ -45,6 +45,12 @@
<result column="STATUS" property="status"/> <result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/> <result column="IS_DELETED" property="isDeleted"/>
</resultMap> </resultMap>
<resultMap id="workPlanExpandResultMap" type="org.springblade.desk.produce.pojo.vo.WorkPlanExpandVO" extends="workPlanResultMap">
<result column="PPS_NAME" property="ppsName"/>
<result column="CREATE_MAN" property="createMan"/>
</resultMap>
<select id="selectByWoId" resultType="org.springblade.scheduling.pojo.entity.WorkPlanEntity"> <select id="selectByWoId" resultType="org.springblade.scheduling.pojo.entity.WorkPlanEntity">
select * select *
from MES_WORK_PLAN from MES_WORK_PLAN
@ -461,6 +467,7 @@
f.test_qty AS testQty, f.test_qty AS testQty,
g.YP_AREA AS poArea, g.YP_AREA AS poArea,
a.WORK_QTY * g.YP_AREA AS totalArea, a.WORK_QTY * g.YP_AREA AS totalArea,
f.inventory_qty * g.YP_AREA AS putArea,
f.put_store_time AS putStoreTime, f.put_store_time AS putStoreTime,
a.WP_MONEY AS wpMoney, a.WP_MONEY AS wpMoney,
a.BASE_AMOUNT as baseAmount, a.BASE_AMOUNT as baseAmount,
@ -719,4 +726,11 @@
</choose> </choose>
</select> </select>
<select id="selectExpandByWoId" resultMap="workPlanExpandResultMap">
SELECT a.*, b.NAME as PPS_NAME, bu.real_name as CREATE_MAN
FROM MES_WORK_PLAN a
INNER JOIN BS_PROCESS_SET b ON a.PPS_ID = b.ID AND b.IS_DELETED = 0
INNER JOIN BLADE_USER bu on a.create_user = bu.ID AND bu.IS_DELETED = 0
WHERE a.IS_DELETED = 0 and a.WO_ID = #{woId}
</select>
</mapper> </mapper>

@ -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.dto.WorkPlanDto;
import org.springblade.desk.produce.pojo.entity.MakeRec; import org.springblade.desk.produce.pojo.entity.MakeRec;
import org.springblade.desk.produce.pojo.entity.WorkPlan; 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.MesMakeRecVO;
import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO; import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO;
@ -28,4 +29,6 @@ public interface IMakeRecService extends BaseService<MakeRec> {
WorkPlanLoadVO loadNotReceived(String cardNo); WorkPlanLoadVO loadNotReceived(String cardNo);
List<WorkPlan> afterPlaReceive(String cardNo); List<WorkPlan> afterPlaReceive(String cardNo);
List<MakeRecExpandVO> selectVOByWpId(Long wpId);
} }

@ -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.WorkOrderVO;
import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO; import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO;
import org.springblade.desk.quality.pojo.entity.InspectionTask; 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.scheduling.pojo.entity.WorkOrderEntity;
import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.produce.pojo.vo.*;
import java.util.List; import org.springblade.scheduling.pojo.entity.YieldOrderEntity;
import java.util.Map;
import java.util.Set; import java.util.*;
/** /**
* 车间订单表 服务类 * 车间订单表 服务类
@ -286,4 +287,8 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
WorkOrder getWorkOrderByCardNoAll(String cardNo); WorkOrder getWorkOrderByCardNoAll(String cardNo);
void returnOemErpByWxno(String wxNo); void returnOemErpByWxno(String wxNo);
Map<String, Object> getInspectionRecordHead(Long woId);
Map<String, Object> getInspectionRecord(Long woId);
} }

@ -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.dto.WorkPlanDto;
import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.enums.WorkOrderEnum; 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.MesMakeRecVO;
import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO; import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO;
import org.springblade.desk.produce.service.*; import org.springblade.desk.produce.service.*;
@ -364,4 +365,9 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
return workPlanMapper.afterPlaReceive(wo.getCardNo()); return workPlanMapper.afterPlaReceive(wo.getCardNo());
} }
@Override
public List<MakeRecExpandVO> selectVOByWpId(Long wpId) {
return baseMapper.selectVOByWpId(wpId);
}
} }

@ -45,6 +45,7 @@ import org.springblade.desk.efficiency.enums.BsSalaryStandardEnum;
import org.springblade.desk.efficiency.pojo.entity.BsSalaryStandardEntity; import org.springblade.desk.efficiency.pojo.entity.BsSalaryStandardEntity;
import org.springblade.desk.efficiency.service.IBsSalaryStandardService; import org.springblade.desk.efficiency.service.IBsSalaryStandardService;
import org.springblade.desk.efficiency.util.BsSalaryUtil; 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.energy.util.HttpRequestService;
import org.springblade.desk.logistics.pojo.dto.AllocationMessPageDTO; import org.springblade.desk.logistics.pojo.dto.AllocationMessPageDTO;
import org.springblade.desk.logistics.pojo.vo.AllocationMessVO; 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.order.service.IYieldOrderService;
import org.springblade.desk.produce.mapper.PlateAroundMapper; import org.springblade.desk.produce.mapper.PlateAroundMapper;
import org.springblade.desk.produce.mapper.WorkOrderMapper; 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.dto.*;
import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.pojo.enums.ProcessCycleEnum; 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.produce.service.*;
import org.springblade.desk.quality.mapper.InspectionTaskMapper; import org.springblade.desk.quality.mapper.InspectionTaskMapper;
import org.springblade.desk.quality.pojo.entity.*; 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.quality.service.*;
import org.springblade.desk.util.date.DateUtils; import org.springblade.desk.util.date.DateUtils;
import org.springblade.erpdata.feign.IErpDataLogisticsClient; 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.QualityGradeEntity;
import org.springblade.scheduling.pojo.entity.WorkOrderEntity; import org.springblade.scheduling.pojo.entity.WorkOrderEntity;
import org.springblade.scheduling.pojo.entity.WorkPlanEntity; 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.DictCache;
import org.springblade.system.cache.UserCache; import org.springblade.system.cache.UserCache;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
@ -168,6 +172,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final IReviewSheetService reviewSheetService; private final IReviewSheetService reviewSheetService;
@Resource
private final WorkPlanMapper workPlanMapper;
// @Autowired // @Autowired
// public void setReviewSheetService(IReviewSheetService reviewSheetService) { // public void setReviewSheetService(IReviewSheetService reviewSheetService) {
// this.reviewSheetService = reviewSheetService; // this.reviewSheetService = reviewSheetService;
@ -2779,6 +2786,123 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// todo 外协订单调用接口回退(调用erp) // todo 外协订单调用接口回退(调用erp)
} }
@Override
public Map<String, Object> getInspectionRecordHead(Long woId) {
Map<String, Object> data = new HashMap<>(1);
List<Map<String, String>> list = new ArrayList<>();
Map<String, String> 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<WorkPlanItem> 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<String, Object> getInspectionRecord(Long woId) {
Map<String, Object> data = new HashMap<>(1);
List<Map<String, Object>> list = new ArrayList<>();
List<WorkPlanItemVO> planItemLst = workPlanItemService.listByWoIdNotNG(woId);
List<WorkPlanItemDetail> planItemDetails = workPlanItemDetailService.listByWoId(woId);
Map<Long, List<WorkPlanItemDetail>> itemDetailMap = planItemDetails.stream()
.collect(Collectors.groupingBy(WorkPlanItemDetail::getWorkPlanItemId));
for (WorkPlanItemVO planItem : planItemLst) {
List<WorkPlanItemDetail> 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<String, Object> 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<String, Object> 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 @Override
public void launchTest(Map<String, Object> data, BladeUser user) throws Exception { public void launchTest(Map<String, Object> data, BladeUser user) throws Exception {
// 提取参数 // 提取参数
@ -2887,6 +3011,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (workOrder == null) { if (workOrder == null) {
return; return;
} }
// 入库数量
BigDecimal inventoryQty = new BigDecimal(workOrder.getInventoryQty());
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId()); YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
if (yieldOrder == null) { if (yieldOrder == null) {
return; return;
@ -2919,12 +3045,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
BigDecimal subsidyAmount = new BigDecimal(0); BigDecimal subsidyAmount = new BigDecimal(0);
// 面积 // 面积
BigDecimal ypArea = new BigDecimal(yieldOrder.getYpArea()); BigDecimal ypArea = new BigDecimal(yieldOrder.getYpArea());
// 数量
BigDecimal workQty = new BigDecimal(workPlanEntity.getWorkQty());
// 计算基础薪资金额 // 计算基础薪资金额
if (BsSalaryStandardEnum.SETTLEMENT_UNIT_PIECE.getCode().equals(standard.getSettlementUnit())) { if (BsSalaryStandardEnum.SETTLEMENT_UNIT_PIECE.getCode().equals(standard.getSettlementUnit())) {
// 件 = 工人结算价 * 数量 // 件 = 工人结算价 * 数量
baseAmount = standard.getSettlementPrice().multiply(workQty); baseAmount = standard.getSettlementPrice().multiply(inventoryQty);
} }
if (BsSalaryStandardEnum.SETTLEMENT_UNIT_BATCH.getCode().equals(standard.getSettlementUnit())) { if (BsSalaryStandardEnum.SETTLEMENT_UNIT_BATCH.getCode().equals(standard.getSettlementUnit())) {
// 批 = 工人结算价 // 批 = 工人结算价
@ -2932,7 +3057,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
if (BsSalaryStandardEnum.SETTLEMENT_UNIT_AREA.getCode().equals(standard.getSettlementUnit())) { if (BsSalaryStandardEnum.SETTLEMENT_UNIT_AREA.getCode().equals(standard.getSettlementUnit())) {
// 面积 = 工人结算价 * 数量 * 面积 // 面积 = 工人结算价 * 数量 * 面积
baseAmount = standard.getSettlementPrice().multiply(ypArea).multiply(workQty); baseAmount = standard.getSettlementPrice().multiply(ypArea).multiply(inventoryQty);
} }
// 计算补贴薪资金额 // 计算补贴薪资金额
if (BsSalaryStandardEnum.STEP_TYPE_NON.getCode().equals(standard.getStepType())) { if (BsSalaryStandardEnum.STEP_TYPE_NON.getCode().equals(standard.getStepType())) {
@ -2949,11 +3074,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_MULTIPLE.getCode().equals(standard.getStepSettlementUnit())) { if (BsSalaryStandardEnum.STEP_SETTLEMENT_UNIT_MULTIPLE.getCode().equals(standard.getStepSettlementUnit())) {
// 固定补贴按件 = 阶梯结算价 * 数量 // 固定补贴按件 = 阶梯结算价 * 数量
if (BsSalaryStandardEnum.STEP_UNIT_PIECE.getCode().equals(standard.getStepUnit())) { if (BsSalaryStandardEnum.STEP_UNIT_PIECE.getCode().equals(standard.getStepUnit())) {
stepBasePrice = stepSettlementPrice.multiply(workQty); stepBasePrice = stepSettlementPrice.multiply(inventoryQty);
} }
// 固定补贴按面积 = 阶梯结算价 * 数量 * 面积 // 固定补贴按面积 = 阶梯结算价 * 数量 * 面积
if (BsSalaryStandardEnum.STEP_UNIT_AREA.getCode().equals(standard.getStepUnit())) { if (BsSalaryStandardEnum.STEP_UNIT_AREA.getCode().equals(standard.getStepUnit())) {
stepBasePrice = stepSettlementPrice.multiply(ypArea).multiply(workQty); stepBasePrice = stepSettlementPrice.multiply(ypArea).multiply(inventoryQty);
} }
// 固定补贴按倍 = 固定补贴金额 * 工人结算价格 // 固定补贴按倍 = 固定补贴金额 * 工人结算价格
subsidyAmount = stepBasePrice.multiply(standard.getSettlementPrice()); subsidyAmount = stepBasePrice.multiply(standard.getSettlementPrice());
@ -2961,10 +3086,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
if (BsSalaryStandardEnum.STEP_TYPE_STEP.getCode().equals(standard.getStepType())) { if (BsSalaryStandardEnum.STEP_TYPE_STEP.getCode().equals(standard.getStepType())) {
if (BsSalaryStandardEnum.STEP_UNIT_PIECE.getCode().equals(standard.getStepUnit())) { if (BsSalaryStandardEnum.STEP_UNIT_PIECE.getCode().equals(standard.getStepUnit())) {
subsidyAmount = BsSalaryUtil.calcStepAmount(standard.getStep(), standard.getStepSettlementPrice(), workQty, standard.getStepSettlementUnit(), standard.getSettlementPrice()); subsidyAmount = BsSalaryUtil.calcStepAmount(standard.getStep(), standard.getStepSettlementPrice(), inventoryQty, standard.getStepSettlementUnit(), standard.getSettlementPrice());
} }
if (BsSalaryStandardEnum.STEP_UNIT_AREA.getCode().equals(standard.getStepUnit())) { if (BsSalaryStandardEnum.STEP_UNIT_AREA.getCode().equals(standard.getStepUnit())) {
subsidyAmount = BsSalaryUtil.calcStepAmount(standard.getStep(), standard.getStepSettlementPrice(), workQty.multiply(ypArea), standard.getStepSettlementUnit(), standard.getSettlementPrice()); subsidyAmount = BsSalaryUtil.calcStepAmount(standard.getStep(), standard.getStepSettlementPrice(), inventoryQty.multiply(ypArea), standard.getStepSettlementUnit(), standard.getSettlementPrice());
} }
} }
WorkPlan upd = new WorkPlan(); WorkPlan upd = new WorkPlan();

@ -55,6 +55,7 @@ import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import org.springblade.desk.produce.service.IMacToolUseService; import org.springblade.desk.produce.service.IMacToolUseService;
import org.springblade.desk.produce.service.IMesRbFilePreserveSlotService; import org.springblade.desk.produce.service.IMesRbFilePreserveSlotService;
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.InspectionTaskConst; import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.constant.QAModuleConst;
@ -122,6 +123,8 @@ public class InspectionTaskController extends BladeController {
private IWorkPlanItemService workPlanItemService; private IWorkPlanItemService workPlanItemService;
@Resource @Resource
private IPlatingService platingService; private IPlatingService platingService;
@Resource
private IWorkOrderService workOrderService;
/** /**
* [检验任务] 详情 * [检验任务] 详情
@ -853,4 +856,17 @@ public class InspectionTaskController extends BladeController {
String url = "https://www.baidu.com" + "?id=" + id; String url = "https://www.baidu.com" + "?id=" + id;
return R.data(new UrlVO(url)); return R.data(new UrlVO(url));
} }
@GetMapping("/getInspectionRecordHead")
@Operation(summary = "获取检验记录头信息", description = "传入woId")
public Map<String, Object> getInspectionRecordHead(Long woId) {
return workOrderService.getInspectionRecordHead(woId);
}
@GetMapping("/getInspectionRecord")
@Operation(summary = "获取检验记录数据", description = "传入woId")
public Map<String, Object> getInspectionRecord(Long woId) {
return workOrderService.getInspectionRecord(woId);
}
} }

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springblade.desk.quality.excel.WorkPlanItemDetailExcel; 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.entity.WorkPlanItemDetail;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO; import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO;
@ -37,4 +38,6 @@ public interface WorkPlanItemDetailMapper extends BaseMapper<WorkPlanItemDetail>
* @return List<WorkPlanItemDetailExcel> * @return List<WorkPlanItemDetailExcel>
*/ */
List<WorkPlanItemDetailExcel> exportWorkPlanItemDetail(@Param("ew") Wrapper<WorkPlanItemDetail> queryWrapper); List<WorkPlanItemDetailExcel> exportWorkPlanItemDetail(@Param("ew") Wrapper<WorkPlanItemDetail> queryWrapper);
List<WorkPlanItemDetail> listByWoId(Long woId);
} }

@ -33,4 +33,14 @@
SELECT * SELECT *
FROM QA_WORK_PLAN_ITEM_DETAIL ${ew.customSqlSegment} FROM QA_WORK_PLAN_ITEM_DETAIL ${ew.customSqlSegment}
</select> </select>
<select id="listByWoId" resultType="org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail">
SELECT
a.*
FROM QA_WORK_PLAN_ITEM_DETAIL a
INNER JOIN QA_WORK_PLAN_ITEM b on a.WORK_PLAN_ITEM_ID = b.ID
INNER JOIN mes_work_plan c ON b.wp_id = c.ID
WHERE a.is_deleted = 0
AND c.wo_id = #{woId}
</select>
</mapper> </mapper>

@ -39,4 +39,6 @@ public interface WorkPlanItemMapper extends BaseMapper<WorkPlanItem> {
List<WorkPlanItemExcel> exportWorkPlanItem(@Param("ew") Wrapper<WorkPlanItem> queryWrapper); List<WorkPlanItemExcel> exportWorkPlanItem(@Param("ew") Wrapper<WorkPlanItem> queryWrapper);
List<WorkPlanItem> listByWoId(Long woId); List<WorkPlanItem> listByWoId(Long woId);
List<WorkPlanItemVO> listByWoIdNotNG(Long woId);
} }

@ -44,9 +44,21 @@
QA_WORK_PLAN_ITEM a QA_WORK_PLAN_ITEM a
INNER JOIN mes_work_plan b ON a.wp_id = b.ID INNER JOIN mes_work_plan b ON a.wp_id = b.ID
LEFT JOIN BS_PROCESS_SET c ON b.PPS_ID = c.ID LEFT JOIN BS_PROCESS_SET c ON b.PPS_ID = c.ID
WHERE WHERE a.is_deleted = 0
b.wo_id = #{woId} AND b.wo_id = #{woId}
AND a.ITEM_NAME != '单件包装材料数量' AND a.ITEM_NAME != '单件包装材料数量'
AND c.NAME != '烧结包装防护' AND c.NAME != '烧结包装防护'
</select> </select>
<select id="listByWoIdNotNG" resultType="org.springblade.desk.quality.pojo.vo.WorkPlanItemVO">
SELECT
a.*,bu.REAL_NAME as checkUserRealName,bu.ACCOUNT as checkUserAccount
FROM
QA_WORK_PLAN_ITEM a
INNER JOIN mes_work_plan b ON a.wp_id = b.ID
LEFT JOIN BLADE_USER bu ON a.CHECK_USER_ID = bu.id
WHERE a.is_deleted = 0
AND b.wo_id = #{woId}
AND a.CHECK_RESULT != 3
</select>
</mapper> </mapper>

@ -59,4 +59,6 @@ public interface IWorkPlanItemDetailService extends BaseService<WorkPlanItemDeta
* @param deleteIds 删除Id * @param deleteIds 删除Id
*/ */
void saveItemDetail(WorkPlanItem wpi, List<WorkPlanItemDetail> itemDetailList, List<Long> deleteIds); void saveItemDetail(WorkPlanItem wpi, List<WorkPlanItemDetail> itemDetailList, List<Long> deleteIds);
List<WorkPlanItemDetail> listByWoId(Long woId);
} }

@ -61,4 +61,6 @@ public interface IWorkPlanItemService extends BaseService<WorkPlanItem> {
List<WorkPlanItem> listByWpId(Long wpId); List<WorkPlanItem> listByWpId(Long wpId);
List<WorkPlanItem> listByWoId(Long woId); List<WorkPlanItem> listByWoId(Long woId);
List<WorkPlanItemVO> listByWoIdNotNG(Long woId);
} }

@ -3,6 +3,7 @@ package org.springblade.desk.quality.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; 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.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;
@ -31,12 +32,10 @@ import org.springblade.desk.basic.service.ICenterTeamService;
import org.springblade.desk.basic.service.IPlatingService; import org.springblade.desk.basic.service.IPlatingService;
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.*;
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.service.IBsProcessSetService; 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.dashboard.service.IDsPartVersionService;
import org.springblade.desk.device.pojo.entity.EquipmentEntity; import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity;
import org.springblade.desk.device.pojo.entity.RackSetEntity; 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.mapper.WorkPlanMapper;
import org.springblade.desk.produce.pojo.dto.*; import org.springblade.desk.produce.pojo.dto.*;
import org.springblade.desk.produce.pojo.entity.*; 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.ProduceMonitorSlotListVO;
import org.springblade.desk.produce.pojo.vo.WorkPlanExpandVO;
import org.springblade.desk.produce.service.*; import org.springblade.desk.produce.service.*;
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;
@ -63,6 +64,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.WorkPlanEntity;
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.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
@ -75,6 +77,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -138,6 +141,12 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
private IProReTemplateService proReTemplateService; private IProReTemplateService proReTemplateService;
@Resource @Resource
private IMesRbFilePreserveDetailService mesRbFilePreserveDetailService; private IMesRbFilePreserveDetailService mesRbFilePreserveDetailService;
@Resource
private IDsPartVersionService dsPartVersionService;
@Resource
private IWorkPlanItemService workPlanItemService;
@Resource
private IMakeRecService makeRecService;
@Override @Override
@ -403,7 +412,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
/** /**
*
* @param start * @param start
* @return * @return
*/ */
@ -626,68 +634,345 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
@Override @Override
public JSONObject newPagePrintEleFiles(Long woId, List<Boolean> planList, List<Boolean> moduleList) { public JSONObject newPagePrintEleFiles(Long woId, List<Boolean> planList, List<Boolean> moduleList) {
if (woId == null) {
if (woId == null || planList == null || planList.size() == 0) {
return null; return null;
} }
List<WorkPlanExpandVO> 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(); JSONObject jsonObj = new JSONObject();
// WorkOrder wo = workOrderService.getById(woId);
WorkOrder wo = workOrderMapper.selectById(woId); WorkOrder wo = workOrderMapper.selectById(woId);
YieldOrder pjYieldOrder = yieldOrderMapper.selectById(wo.getYoId()); YieldOrder yo = yieldOrderMapper.selectById(wo.getYoId());
QueryWrapper<DsPartEntity> qwpart = new QueryWrapper<>(); List<DsPartVersionEntity> partVersionList = dsPartVersionService.list(new LambdaQueryWrapper<DsPartVersionEntity>().eq(DsPartVersionEntity::getPartCode, yo.getPartCode()).eq(DsPartVersionEntity::getPartVersion, yo.getPartVersion()));
qwpart.eq("PART_CODE", pjYieldOrder.getPartCode()); DsPartEntity dsPart = null;
List<DsPartEntity> partList = partService.list(qwpart); if (CollectionUtils.isNotEmpty(partVersionList)) {
DsPartEntity dsPart = new DsPartEntity(); dsPart = partService.getById(partVersionList.get(0).getPartId());
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)) { if (moduleList.get(0)) {
// 头记录 // 头记录
JSONObject modelJson = new JSONObject(); JSONObject modelJson = buildModelOne(wo, yo, dsPart);
modelJson.put("wo", wo);
modelJson.put("dsPart", dsPart);
jsonObj.put("modelOne", modelJson); jsonObj.put("modelOne", modelJson);
} }
// 检验记录 // 检验记录
if (moduleList.get(1)) { if (moduleList.get(1)) {
JSONObject modelJson1 = new JSONObject(); JSONObject modelJson1 = new JSONObject();
// List<PrintChildCheck> checkList = this.getCheckListNotNG(woId, true); List<JSONObject> checkList = this.getCheckListNotNG(woId, wpList, true);
// modelJson1.put("checkList", checkList); 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); jsonObj.put("modelThree", modelJson1);
} }
// 生产过程(放在获取检验记录下面,这个方法会排除数据) List<JSONObject> modelTwoList = this.buildModelTwo(wpList, planList);
this.getNewProcess(wpList, jsonObj, planList); jsonObj.put("modelTwo", modelTwoList);
jsonObj.put("modelTwo", wpList);
if (moduleList.get(2)) {
// 镀后入库记录
jsonObj.put("modelFour", null);
}
if (moduleList.get(3)) { 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); jsonObj.put("modelFive", null);
} }
if (moduleList.get(2)) {
// 镀后入库记录
jsonObj.put("modelFour", wpList.get(wpList.size() - 1));
}
return jsonObj; 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<JSONObject> buildModelTwo(List<WorkPlanExpandVO> wpList, List<Boolean> modelFlag) {
if (wpList == null || wpList.size() == 0) {
return null;
}
List<JSONObject> 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<JSONObject> 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<ProduceMonitorSlotListVO> 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<MesRbFilePreserveSlotEntity> dsRbFilePreserveSlotList = buildDsRbFilePreserveSlotList(prWorkPlan);
modelTwo.put("dsRbFilePreserveSlotList", dsRbFilePreserveSlotList);
}
// 设备编号信息(从设备,工装使用记录获取)
List<MacToolUse> mtuList = workPlanMapper.listMacToolUse(prWorkPlan.getId(), Boolean.FALSE);
if (CollectionUtils.isNotEmpty(mtuList)) {
List<Long> racks = mtuList.stream().map(MacToolUse::getBsRackSet).collect(Collectors.toList());
List<Long> bas = mtuList.stream().map(MacToolUse::getBsFeiBaSet).collect(Collectors.toList());
List<Long> cards = mtuList.stream().map(MacToolUse::getEquipmentCard).collect(Collectors.toList());
List<RackSetEntity> rackList = rackSetService.listByIds(racks);
List<FeiBaSetEntity> basList = feiBaSetService.listByIds(bas);
List<EquipmentEntity> 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<MakeRecExpandVO> makeRecs = makeRecService.selectVOByWpId(prWorkPlan.getId());
MakeRecExpandVO makeRec = null;
if (CollectionUtils.isNotEmpty(makeRecs)) {
makeRec = makeRecs.get(0);
}
List<InspectionTask> 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> user = userClient.userInfoById(maxPrWorkCheck.getCheckUserId());
if (user != null && user.getData() != null) {
modelTwo.put("createMan", user.getData().getRealName());
}
} else {
R<User> 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<MesRbFilePreserveSlotEntity> buildDsRbFilePreserveSlotList(WorkPlanExpandVO workPlan){
List<MesRbFilePreserveSlotEntity> dsRbFilePreserveSlotList = new ArrayList<>();
QueryWrapper<CenterTeam> qwteam = new QueryWrapper<>();
qwteam.eq("TS_ID", workPlan.getMakeTeam());
List<CenterTeam> 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<MesRbFilePreserveSlotEntity> preserveSlotList;
List<MesQcProduceRunEntity> qcProduceRunsList;
MesQcProduceRunEntity boxInfo = new MesQcProduceRunEntity();
// 根据电子档案维护组装数据(上线前) 分槽
List<MacToolUse> 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<MesQcProduceRunEntity> 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<ProReTemplate> 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<MesQcProduceRunEntity> 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<MacToolUse> 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<MesQcProduceRunEntity> 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<JSONObject> getCheckListNotNG(Long woId, List<WorkPlanExpandVO> wpList, Boolean eleOrPrint) {
List<JSONObject> checkList = new ArrayList<>();
//组装检测项集合
List<WorkPlanItemVO> piLst = workPlanItemService.listByWoIdNotNG(woId);
Map<Long, WorkPlanExpandVO> 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<WorkPlan> wpList, JSONObject jsonObj, List<Boolean> modelFlag) { public void getNewProcess(List<WorkPlan> wpList, JSONObject jsonObj, List<Boolean> modelFlag) {
if (wpList == null || wpList.size() == 0) { if (wpList == null || wpList.size() == 0) {
return; return;

@ -139,4 +139,10 @@ public class WorkPlanItemDetailServiceImpl extends BaseServiceImpl<WorkPlanItemD
baseMapper.deleteByIds(deleteIds); baseMapper.deleteByIds(deleteIds);
} }
} }
@Override
public List<WorkPlanItemDetail> listByWoId(Long woId) {
return baseMapper.listByWoId(woId);
}
} }

@ -243,4 +243,9 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
public List<WorkPlanItem> listByWoId(Long woId) { public List<WorkPlanItem> listByWoId(Long woId) {
return baseMapper.listByWoId(woId); return baseMapper.listByWoId(woId);
} }
@Override
public List<WorkPlanItemVO> listByWoIdNotNG(Long woId) {
return baseMapper.listByWoIdNotNG(woId);
}
} }

Loading…
Cancel
Save