From aa5d2f68e1d97f7a1b20fa15e1bde9195544bb3e Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 11 十一月 2025 15:15:06 +0800
Subject: [PATCH] 1、钢化查询添加显示工程名称 2、中空任务界面缺片详情修改
---
hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml | 28 ++++-
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 8 +
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java | 16 ++
UI-Project/src/views/hollow/hollowequipment.vue | 2
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java | 2
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java | 4
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java | 3
UI-Project/src/views/Slicecage/slicecage.vue | 22 ++++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 5 +
hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java | 7 +
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java | 4
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java | 9 +
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java | 2
hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java | 7
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java | 84 ++++++++++++++++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java | 4
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml | 88 +++++++++++------
hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java | 2
18 files changed, 243 insertions(+), 54 deletions(-)
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 9c777e1..24d1ce4 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1530,8 +1530,25 @@
<el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchxianga">
{{$t('reportmanage.inquire')}}</el-button>
</div>
- <el-table ref="table" style="margin-top: 20px;height: 700px;width: 1770px;" :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.cagenumber')" min-width="100" />
+<el-table
+ ref="table"
+ style="margin-top: 20px; height: 700px; width: 1770px; overflow-y: auto;"
+ :data="tableDataa"
+ :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+ virtual-scroll
+ :virtual-scroll-item-size="50"
+ :virtual-scroll-offset="100"
+ :row-height="50"
+ :border="false"
+ :lazy="true"
+ :cell-style="{padding: '8px 0'}"
+ :show-header-overflow="false"
+ :show-overflow="false"
+ :stripe="false"
+ :selectable="false"
+ :tooltip-effect="null"
+>
+ <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.cagenumber')" min-width="100" />
<el-table-column prop="engineerId" align="center" :label="$t('searchOrder.projectnumber')" min-width="100" />
<el-table-column prop="layer" align="center" :label="$t('processCard.layer')" min-width="50" />
<el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="150" />
@@ -1642,6 +1659,7 @@
<el-table ref="table" style="margin-top: 20px;height: 500px;"
:data="tableDatagh" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
<el-table-column prop="engineerId" fixed align="center" :label="$t('searchOrder.projectnumber')" min-width="150"/>
+ <el-table-column prop="engineerName" fixed align="center" :label="$t('large.productname')" min-width="150"/>
<el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" min-width="150" />
<el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="150" />
<el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutnumber')" min-width="120" />
diff --git a/UI-Project/src/views/hollow/hollowequipment.vue b/UI-Project/src/views/hollow/hollowequipment.vue
index 85fcb40..6f71f4b 100644
--- a/UI-Project/src/views/hollow/hollowequipment.vue
+++ b/UI-Project/src/views/hollow/hollowequipment.vue
@@ -780,7 +780,7 @@
<el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="80" />
<el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
<template #default="scope">
- <el-button type="text" plain @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}</el-button>
+ <el-button type="text" plain :disabled="scope.row.glassId==null" @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}{{ }}</el-button>
</template>
</el-table-column>
<div style="float: right;margin-bottom: 5px;">
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
index 56ac4c2..7c19797 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
@@ -3,6 +3,9 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.damage.entity.Damage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -15,4 +18,5 @@
@DS("northGlassMes")
public interface DamageMapper extends MPJBaseMapper<Damage> {
+ List<Damage> queryUnTempByFlowCardId(@Param("flowCardId") String flowCardId);
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index 054022d..f46bafc 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -68,4 +68,6 @@
void deleteByGlassId(String glassId);
Boolean sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails, Boolean type);
+
+ List<Damage> queryUnTempByFlowCardId(String flowCardId);
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index 2c4ad7d..3996f10 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -430,4 +430,9 @@
return false;
}
}
+
+ @Override
+ public List<Damage> queryUnTempByFlowCardId(String flowCardId){
+ return baseMapper.queryUnTempByFlowCardId(flowCardId);
+ }
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java
index d4a4757..398d6ee 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/mapper/OrdersMapper.java
@@ -1,9 +1,6 @@
package com.mes.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mes.order.entity.HollowGlassDetailsDTO;
-import com.mes.order.entity.HollowOrderDTO;
-import com.mes.order.entity.OrderDetailsDTO;
-import com.mes.order.entity.Orders;
+import com.mes.order.entity.*;
import com.mes.order.entity.dto.OrderDTO;
import java.util.List;
@@ -27,4 +24,6 @@
List<HollowGlassDetailsDTO> queryFlowCardIdLayerGlassInfo(String flowCardId, int totalLayer, int layer);
OrderDetailsDTO queryProductNameByFlowCardId(String flowCardId);
+
+ List<ProcessCardReport> queryLackByERP(String flowCardId);
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java
index e783a1d..19016a7 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/OrdersService.java
@@ -29,4 +29,6 @@
List<HollowGlassDetailsDTO> queryFlowCardIdLayerGlassInfo(String flowCardId, int totalLayer, int layer);
OrderDetailsDTO queryProductNameByFlowCardId(String flowCardId);
+
+ List<ProcessCardReport> queryLackByERP(String flowCardId);
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java
index f01e222..eba9aed 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/service/impl/OrdersServiceImpl.java
@@ -68,9 +68,14 @@
}
@Override
- @Cacheable(value = "orderDetails", key = "#flowCardId",unless = "#result == null")
+ @Cacheable(value = "orderDetails", key = "#flowCardId", unless = "#result == null")
public OrderDetailsDTO queryProductNameByFlowCardId(String flowCardId) {
log.info("鏌ヨ鏁版嵁搴撲竴娆★細{}", flowCardId);
return baseMapper.queryProductNameByFlowCardId(flowCardId);
}
+
+ @Override
+ public List<ProcessCardReport> queryLackByERP(String flowCardId) {
+ return baseMapper.queryLackByERP(flowCardId);
+ }
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
index ab29243..26b158e 100644
--- a/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
@@ -25,8 +25,7 @@
a.area,
a.quantity,
a.create_time,
- round(ifnull(d.finishNum, 0) / a.quantity * 100) as 'percent',
- ifnull(d.finishNum, 0)
+ round(ifnull(d.finishNum, 0) / a.quantity * 100) as 'percent', ifnull(d.finishNum, 0)
from sd.`order` as a
LEFT JOIN (
SELECT sum(c.reporting_work_num) as 'finishNum',order_id
@@ -38,16 +37,15 @@
) as d
on a.order_id = d.order_id
where a.warehousing != 2 and a.warehousing >= 0
- ORDER BY a.order_id desc
+ ORDER BY a.order_id desc
</select>
<select id="queryOrderByFlowCardId" resultType="com.mes.order.entity.HollowOrderDTO">
select t1.*
from pp.flow_card t
inner join sd.order t1 on t.order_id = t1.order_id
- where t.process_id = #{flowCardId}
- limit 1
+ where t.process_id = #{flowCardId} limit 1
</select>
- <select id="queryFlowCardIdMaxLayerGlassInfo" resultMap="baseMapHollowDetail">
+ <select id="queryFlowCardIdMaxLayerGlassInfo" resultMap="baseMapHollowDetail">
with temp_flow as (SELECT t.process_id,
t.order_id,
t.order_number,
@@ -137,7 +135,21 @@
select min(order_id) as order_id, min(order_number) as order_number
from pp.flow_card
where process_id = #{flowCardId}
- )
- limit 1
+ ) limit 1
+ </select>
+ <select id="queryLackByERP" resultType="com.mes.order.entity.ProcessCardReport">
+ select a.*,
+ (b.quantity - b.termination_quantity) as 'quantity',
+ (b.quantity - b.termination_quantity - reporting_work_num) as 'lack_quantity'
+ from order_process_detail as a
+ inner join pp.flow_card as b
+ on a.order_id = b.order_id
+ and a.process_id = b.process_id
+ and a.order_number = b.order_number
+ and a.technology_number = b.technology_number
+ where termination_status = 0
+ and a.process_id = #{flowCardId}
+ and a.process = "涓┖"
+ and (b.quantity - b.termination_quantity) > reporting_work_num
</select>
</mapper>
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
index 241b4fe..5d0aad2 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
@@ -122,6 +122,7 @@
private static final String ALARM_TYPE1 = "涓�绾垮崸寮忕悊鐗囩";
private static final String ALARM_TYPE2 = "浜岀嚎鍗у紡鐞嗙墖绗�";
private static final String ALARM_CODE_NOGLASS = "noGlass";
+ private static final String ALARM_CODE_ID = "idSame";
@Scheduled(fixedDelay = 1000)
public void startOneOpcTask() throws Exception {
@@ -323,6 +324,17 @@
}
if (glassInIdOne.equals(task.getGlassIdIn()) || glassInIdTwo.equals(task.getGlassIdIn())) {
log.info("鐜荤拑id涓庝笂娆$浉鍚岋紝绂佹杩涚墖");
+ ProductAlarmInfo alarmInfo = new ProductAlarmInfo();
+ alarmInfo.setState(Const.LOAD_RAW_GLASS_NEW);
+ alarmInfo.setAlarmModule(ALARM_MODULE);
+ if (deviceId == 1) {
+ alarmInfo.setAlarmType(ALARM_TYPE1);
+ } else {
+ alarmInfo.setAlarmType(ALARM_TYPE2);
+ }
+ alarmInfo.setAlarmCode(ALARM_CODE_ID);
+ alarmInfo.setAlarmMessage(task.getGlassIdIn());
+ productAlarmInfoService.save(alarmInfo);
Date endDate = new Date();
log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
return Boolean.FALSE;
@@ -380,9 +392,9 @@
private boolean outTask(S7DataWL task, int deviceId, int cellFlag) {
Date startDate = new Date();
- GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdOut()));
+ GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
if (null == glassInfo && StringUtils.isNotBlank(task.getGlassIdIn())) {
- log.info("杩涚墖鐜荤拑淇℃伅涓嶅瓨鍦紝鐜荤拑id:{}", task.getGlassIdIn());
+ log.info("鐩撮�氱幓鐠冧俊鎭笉瀛樺湪锛岀幓鐠僫d:{}", task.getGlassIdIn());
ProductAlarmInfo alarmInfo = new ProductAlarmInfo();
alarmInfo.setState(Const.LOAD_RAW_GLASS_NEW);
alarmInfo.setAlarmModule(ALARM_MODULE);
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java
index 18316aa..d5d0f7a 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/dto/TemperingGlassCountDTO.java
@@ -15,6 +15,10 @@
*/
private String engineerId;
/**
+ * 宸ョ▼鍙�
+ */
+ private String engineerName;
+ /**
* 閽㈠寲鐗堝浘id
*/
private Integer temperingLayoutId;
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index b87c897..4c2d064 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -32,6 +32,7 @@
<resultMap id="temperingGlassCount" type="com.mes.bigstorage.entity.dto.TemperingGlassCountDTO">
<result column="engineer_id" property="engineerId"/>
+ <result column="engineer_name" property="engineerName"/>
<result column="tempering_layout_id" property="temperingLayoutId"/>
<result column="films_id" property="filmsId"/>
<result column="thickness" property="thickness"/>
@@ -166,9 +167,9 @@
<select id="selectTemperingGlassCount" resultMap="temperingGlassCount">
with glass_info_temp as (
- select engineer_id, tempering_layout_id, count(*) as total_count
- from glass_info
- group by engineer_id, tempering_layout_id
+ select t.engineer_id,t1.engineer_name, t.tempering_layout_id, count(*) as total_count
+ from glass_info t inner join engineering t1 on t.engineer_id=t1.engineer_id
+ group by t.engineer_id, t.tempering_layout_id
),
big_details_temp as (
select engineer_id, tempering_layout_id, count(*) as real_count, films_id, thickness
@@ -191,6 +192,7 @@
),
result as (
select t.engineer_id,
+ t1.engineer_name,
t.tempering_layout_id,
t.films_id,
t.thickness,
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java
index febdd48..d179ad1 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/controller/HollowGlassRelationInfoController.java
@@ -61,12 +61,19 @@
// return Result.success(lackDetailsList);
// }
@ApiOperation("鏌ヨ鎸囧畾娴佺▼鍗$殑缂虹墖璇︽儏")
- @PostMapping("/queryLackByFlowCard")
+ @PostMapping("/queryLackByFlowCardByERP")
public Result<Map<Integer,List<LackDetailsDTO>>> queryLackByFlowCard(String flowCardId) {
Map<Integer,List<LackDetailsDTO>> lackDetailsMap = hollowGlassRelationInfoService.queryLackByFlowCard(flowCardId);
return Result.success(lackDetailsMap);
}
+ @ApiOperation("鏌ヨ鎸囧畾娴佺▼鍗$殑缂虹墖璇︽儏")
+ @PostMapping("/queryLackByFlowCard")
+ public Result<Map<Integer,List<LackDetailsDTO>>> queryLackByFlowCardByERP(String flowCardId) {
+ Map<Integer,List<LackDetailsDTO>> lackDetailsMap = hollowGlassRelationInfoService.queryLackByFlowCardByERP(flowCardId);
+ return Result.success(lackDetailsMap);
+ }
+
@ApiOperation("涓┖缂虹墖鐖嗙牬绗兼姤鐮存崯")
@PostMapping("/hollowBigStorageGlassDamage")
public Result<Boolean> hollowBigStorageGlassDamage(@RequestBody DamageRequest request) {
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java
index 5690d91..6a435d2 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/dto/LackDetailsDTO.java
@@ -21,11 +21,11 @@
/**
* 娴佺▼鍗�
*/
- private int layer;
+ private Integer layer;
/**
* 娴佺▼鍗�
*/
- private int glassType;
+ private Integer glassType;
/**
* 鑶滅郴
*/
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java
index d35c61d..f523cf4 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/mapper/HollowGlassRelationInfoMapper.java
@@ -4,6 +4,7 @@
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.hollow.entity.HollowGlassRelationInfo;
import com.mes.hollow.entity.dto.LackDetailsDTO;
+import com.mes.order.entity.ProcessCardReport;
import org.apache.ibatis.annotations.Param;
import org.springframework.cache.annotation.Cacheable;
@@ -29,5 +30,7 @@
List<LackDetailsDTO> queryLackByFlowCard(@Param("flowCardId") String flowCardId);
List<LackDetailsDTO> queryLackGlassByFlowCard(@Param("flowCardId") String flowCardId, @Param("orderSort") Integer orderSort, @Param("layer") Integer layer);
+
+ List<LackDetailsDTO> queryLackByFlowCardByERP(@Param("flowCardIdList") List<ProcessCardReport> flowCardIdList);
}
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java
index 93fd9c3..b3780cf 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/HollowGlassRelationInfoService.java
@@ -43,6 +43,8 @@
Map<Integer,List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId);
+ Map<Integer,List<LackDetailsDTO>> queryLackByFlowCardByERP(String flowCardId);
+
/**
* 鎸夌収鍘氬害鑾峰彇鐜荤拑闂撮殭
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
index 3d508b1..591ee47 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.common.config.Const;
import com.mes.common.config.ConstSysConfig;
+import com.mes.damage.entity.Damage;
import com.mes.damage.entity.request.DamageRequest;
import com.mes.damage.service.DamageService;
import com.mes.glassinfo.entity.GlassInfo;
@@ -27,6 +28,7 @@
import com.mes.hollow.service.HollowGlassRelationInfoService;
import com.mes.order.entity.HollowGlassDetailsDTO;
import com.mes.order.entity.OrderDetailsDTO;
+import com.mes.order.entity.ProcessCardReport;
import com.mes.order.service.OrdersService;
import com.mes.sysconfig.service.SysConfigService;
import lombok.extern.slf4j.Slf4j;
@@ -434,6 +436,88 @@
}
@Override
+ public Map<Integer, List<LackDetailsDTO>> queryLackByFlowCardByERP(String flowCardId) {
+ List<ProcessCardReport> processCardReports = ordersService.queryLackByERP(flowCardId);
+ if (CollectionUtil.isEmpty(processCardReports)) {
+ return null;
+ }
+ List<HollowBigStorageCageDetails> hollowBigStorageCageDetails = hollowBigStorageCageDetailsService.list(
+ new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+ .eq(HollowBigStorageCageDetails::getFlowCardId, flowCardId)
+ .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL)
+ );
+ // 1. 缁熻姣忎釜 (glassType, layer) 缁勫悎鐨勫嚭鐜版鏁�
+ Map<String, Long> typeLayerCountMap = hollowBigStorageCageDetails.stream()
+ .map(detail -> detail.getGlassType() + "_" + detail.getLayer())
+ .collect(Collectors.groupingBy(
+ key -> key, // 浠ュ鍚堥敭涓哄垎缁勪緷鎹�
+ Collectors.counting() // 缁熻姣忎釜閿殑鍑虹幇娆℃暟
+ ));
+ // 2. 閬嶅巻骞舵寜娆℃暟鍑� quantity锛堥伩鍏嶈礋鏁帮級
+ processCardReports.forEach(report -> {
+ String reportPair = report.getOrderNumber() + "_" + report.getTechnologyNumber();
+ Long count = typeLayerCountMap.getOrDefault(reportPair, 0L);
+ if (count > 0) {
+ int newQuantity = Math.max(0, report.getLackQuantity() - count.intValue());
+ report.setLackQuantity(newQuantity);
+ }
+ });
+ List<LackDetailsDTO> detailsDTOS = baseMapper.queryLackByFlowCardByERP(processCardReports);
+ List<Damage> damages = damageService.queryUnTempByFlowCardId(flowCardId);
+// 1. 鎸�(orderNumber+layer)鍒嗙粍锛屽悓鏃剁紦瀛楧TO鐨勫叾浠栧瓧娈典綔涓烘ā鏉�
+ Map<String, List<Damage>> damageMap = new HashMap<>();
+ Map<String, LackDetailsDTO> dtoTemplateMap = new HashMap<>(); // 瀛樺偍鍒嗙粍瀵瑰簲鐨凞TO妯℃澘
+
+// 1.1 鍒濆鍖杁amage鍒嗙粍鍜孌TO妯℃澘
+ damages.forEach(damage -> {
+ if (damage.getOrderNumber() == null || damage.getTechnologyNumber() == null) {
+ return;
+ }
+ String key = damage.getOrderNumber() + "_" + damage.getTechnologyNumber();
+ damageMap.computeIfAbsent(key, k -> new ArrayList<>()).add(damage);
+ });
+
+ detailsDTOS.forEach(dto -> {
+ if (dto.getGlassType() == null || dto.getLayer() == null) {
+ return;
+ }
+ String key = dto.getGlassType() + "_" + dto.getLayer();
+ // 缂撳瓨绗竴涓狣TO浣滀负妯℃澘锛堝寘鍚叾浠栧瓧娈靛�硷級
+ dtoTemplateMap.putIfAbsent(key, dto);
+ });
+
+// 2. 鍖归厤骞舵洿鏂板師濮婦TO
+ detailsDTOS.forEach(dto -> {
+ if (dto.getGlassType() == null || dto.getLayer() == null) {
+ return;
+ }
+ String key = dto.getGlassType() + "_" + dto.getLayer();
+ List<Damage> damagess = damageMap.get(key);
+ if (damagess != null && !damagess.isEmpty()) {
+ Damage damage = damagess.remove(0);
+ dto.setGlassId(damage.getGlassId());
+ dto.setWorkingProcedure(damage.getWorkingProcedure());
+ }
+ });
+
+// 3. 澶勭悊鍓╀綑damage锛氬鐢ㄥ悓缁凞TO妯℃澘鐨勫叾浠栧瓧娈�
+ damageMap.values().forEach(damagess -> damagess.forEach(damage -> {
+ String key = damage.getOrderNumber() + "_" + damage.getTechnologyNumber();
+ LackDetailsDTO template = dtoTemplateMap.get(key); // 鑾峰彇鍚岀粍妯℃澘
+ if (template == null) return; // 鏃犳ā鏉垮垯璺宠繃锛堢悊璁轰笂涓嶄細鍑虹幇锛�
+
+ LackDetailsDTO newDto = new LackDetailsDTO();
+ // 1. 澶嶅埗妯℃澘涓殑鍏朵粬瀛楁锛堥櫎浜唃lassId鍜寃orkproduce锛�
+ BeanUtils.copyProperties(template, newDto); // 鐢⊿pring鐨勫伐鍏风被澶嶅埗灞炴��
+ // 2. 瑕嗙洊glassId鍜寃orkproduce涓哄綋鍓峝amage鐨勫��
+ newDto.setGlassId(damage.getGlassId());
+ newDto.setWorkingProcedure("鏈煡");
+ detailsDTOS.add(newDto);
+ }));
+ return detailsDTOS.stream().collect(Collectors.groupingBy(item -> item.getLayer()));
+ }
+
+ @Override
public Integer getGlassGapByThickness(Double thickness) {
int sysKey = 0;
if (thickness >= 12) {
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
index bdb9005..4d66e4d 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
@@ -72,50 +72,47 @@
detail_temp AS (
SELECT t.*
FROM glass_temp t
- WHERE NOT EXISTS (
+ WHERE NOT EXISTS(
SELECT 1
FROM hollow_big_storage_cage_details t1
WHERE t1.glass_id = t.glass_id
- AND t1.state NOT IN (8,9)
+ AND t1.state NOT IN (8, 9)
)
),
damage_latest AS (
- SELECT
- dr.glass_id,
- dr.type,
- dr.status
+ SELECT dr.glass_id,
+ dr.type,
+ dr.status
FROM (
- SELECT
- t1.glass_id,
- t1.type,
- t1.status,
- ROW_NUMBER() OVER(PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
+ SELECT t1.glass_id,
+ t1.type,
+ t1.status,
+ ROW_NUMBER() OVER(PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
FROM detail_temp t
INNER JOIN damage t1 ON t.flow_card_id = t1.process_id
) dr
WHERE dr.rn = 1
),
result_temp AS (
- SELECT
- t.flow_card_id,
- t.layer,
- t.glass_type,
- t.thickness,
- t.filmsId,
- t.width,
- t.height,
- COUNT(DISTINCT t.glass_id) as lack_count,
- COUNT(DISTINCT CASE WHEN t1.type IN (8,9) AND t1.status = 1 THEN t.glass_id END) as damage_count
+ SELECT t.flow_card_id,
+ t.layer,
+ t.glass_type,
+ t.thickness,
+ t.filmsId,
+ t.width,
+ t.height,
+ COUNT(DISTINCT t.glass_id) as lack_count,
+ COUNT(DISTINCT
+ CASE WHEN t1.type IN (8, 9) AND t1.status = 1 THEN t.glass_id END) as damage_count
FROM detail_temp t
LEFT JOIN damage_latest t1 ON t.glass_id = t1.glass_id
- GROUP BY
- t.flow_card_id,
- t.layer,
- t.glass_type,
- t.thickness,
- t.filmsId,
- t.width,
- t.height
+ GROUP BY t.flow_card_id,
+ t.layer,
+ t.glass_type,
+ t.thickness,
+ t.filmsId,
+ t.width,
+ t.height
)
SELECT *
FROM result_temp
@@ -137,7 +134,7 @@
, detail_temp as (
select t.*
from glass_temp t
- left join hollow_big_storage_cage_details t1 on t.glass_id = t1.glass_id and t1.state not in (8,9)
+ left join hollow_big_storage_cage_details t1 on t.glass_id = t1.glass_id and t1.state not in (8, 9)
where t1.glass_id is null
)
, damage_ranked AS (
@@ -164,6 +161,37 @@
select *
from damage_latest
</select>
+ <select id="queryLackByFlowCardByERP" resultType="com.mes.hollow.entity.dto.LackDetailsDTO">
+ WITH RECURSIVE nums(n) AS (
+ SELECT 1
+ UNION ALL
+ SELECT n + 1 FROM nums WHERE n < (SELECT MAX(quantity) FROM (
+ <foreach collection="flowCardIdList" item="item" separator="UNION ALL">
+ SELECT #{item.lackQuantity} AS quantity
+ </foreach>
+ ) t)
+ )
+ <foreach collection="flowCardIdList" item="item" separator="UNION ALL">
+ SELECT t1.*
+ FROM (
+ SELECT
+ g.flow_card_id AS flowCardId,
+ g.layer AS layer,
+ g.glass_type AS glassType,
+ g.filmsid AS filmsId,
+ g.width AS width,
+ g.height AS height,
+ g.thickness AS thickness
+ FROM glass_info g
+ WHERE g.flow_card_id = #{item.processId}
+ AND g.layer = #{item.technologyNumber}
+ AND g.glass_type = #{item.orderNumber}
+ LIMIT 1
+ ) t1
+ CROSS JOIN nums
+ WHERE nums.n <= #{item.lackQuantity}
+ </foreach>
+ </select>
<update id="clearDirtyFlowCardData">
--
Gitblit v1.8.0