From 2b30c5d86d2fcb1c8c5f8f4c90b5a46668760493 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 30 六月 2025 14:12:10 +0800
Subject: [PATCH] 在制品报表查询优化
---
north-glass-erp/northglass-erp/src/lang/en.js | 1
north-glass-erp/northglass-erp/src/lang/ar.js | 1
north-glass-erp/northglass-erp/src/lang/ru.js | 1
north-glass-erp/src/main/resources/mapper/pp/Report.xml | 221 +++++++++++++++++++++++++++---------
north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue | 34 +---
north-glass-erp/northglass-erp/src/lang/zh.js | 1
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java | 56 ++++++++
north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java | 8 +
north-glass-erp/northglass-erp/src/lang/kr.js | 1
9 files changed, 236 insertions(+), 88 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/lang/ar.js b/north-glass-erp/northglass-erp/src/lang/ar.js
index 7eac612..719ba03 100644
--- a/north-glass-erp/northglass-erp/src/lang/ar.js
+++ b/north-glass-erp/northglass-erp/src/lang/ar.js
@@ -995,6 +995,7 @@
finishedProductReport :'鬲賯乇賷乇 丕賱賲賳鬲噩丕鬲 丕賱賳賴丕卅賷丞',
orderWorkReportForm :'璁㈠崟鎶ュ伐鎶ヨ〃',
},
+ teamsGroupsName:'涓婂伐搴忔姤宸�',
productionReport:'鬲賯乇賷乇 丕賱廿賳鬲丕噩',
workInProgressReport:'鬲賯乇賷乇 爻賷乇 丕賱毓賲賱',
processToBeCompleted:'鬲賯乇賷乇 丕賱毓賲賱賷丞 丕賱賲毓賱賯丞',
diff --git a/north-glass-erp/northglass-erp/src/lang/en.js b/north-glass-erp/northglass-erp/src/lang/en.js
index 5dbcacb..58b2db4 100644
--- a/north-glass-erp/northglass-erp/src/lang/en.js
+++ b/north-glass-erp/northglass-erp/src/lang/en.js
@@ -997,6 +997,7 @@
finishedProductReport :'Finished product report',
orderWorkReportForm :'璁㈠崟鎶ュ伐鎶ヨ〃',
},
+ teamsGroupsName:'涓婂伐搴忔姤宸�',
productionReport:'Production report',
workInProgressReport:'Product in process report',
processToBeCompleted:'Process to be completed report',
diff --git a/north-glass-erp/northglass-erp/src/lang/kr.js b/north-glass-erp/northglass-erp/src/lang/kr.js
index 3af0051..5f389f8 100644
--- a/north-glass-erp/northglass-erp/src/lang/kr.js
+++ b/north-glass-erp/northglass-erp/src/lang/kr.js
@@ -1006,6 +1006,7 @@
finishedProductReport :'鞕勳牅頀� 氤搓碃靹�',
orderWorkReportForm :'璁㈠崟鎶ュ伐鎶ヨ〃',
},
+ teamsGroupsName:'涓婂伐搴忔姤宸�',
productionReport:'靸濎偘 氤搓碃靹�',
workInProgressReport:'歆勴枆 欷戩澑 鞝滍拡 氤搓碃靹�',
processToBeCompleted:'鞕勲頃挫暭 頃� 頂勲靹胳姢 氤搓碃靹�',
diff --git a/north-glass-erp/northglass-erp/src/lang/ru.js b/north-glass-erp/northglass-erp/src/lang/ru.js
index 060e35f..7342f8b 100644
--- a/north-glass-erp/northglass-erp/src/lang/ru.js
+++ b/north-glass-erp/northglass-erp/src/lang/ru.js
@@ -995,6 +995,7 @@
finishedProductReport :'袨褌褔械褌 芯 谐芯褌芯胁芯泄 锌褉芯写褍泻褑懈懈',
orderWorkReportForm :'璁㈠崟鎶ュ伐鎶ヨ〃',
},
+ teamsGroupsName:'涓婂伐搴忔姤宸�',
productionReport:'袨褌褔械褌 芯 锌褉芯懈蟹胁芯写褋褌胁械',
workInProgressReport:'袨褌褔械褌 芯 薪械蟹邪胁械褉褕械薪薪芯泄 锌褉芯写褍泻褑懈懈',
processToBeCompleted:'袨褌褔械褌 芯 薪械蟹邪胁械褉褕械薪薪芯泄 芯锌械褉邪褑懈懈',
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
index 8a53693..dc69f51 100644
--- a/north-glass-erp/northglass-erp/src/lang/zh.js
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -1007,6 +1007,7 @@
finishedProductReport :'鎴愬搧鎶ヨ〃',
orderWorkReportForm :'璁㈠崟鎶ュ伐鎶ヨ〃',
},
+ teamsGroupsName:'涓婂伐搴忔姤宸�',
productionReport:'鐢熶骇鎶ヨ〃',
workInProgressReport:'鍦ㄥ埗鍝佹姤琛�',
processToBeCompleted:'宸ュ簭寰呭畬鎴愭姤琛�',
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue b/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
index 45a2ed5..0fcb8df 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
@@ -108,7 +108,7 @@
produceList = produceList.value.concat(deepClone(res.data.data))
titleSelectJson.value.processType = res.data.process
titleSelectJson.value.processType.splice(0,1)
- xGrid.value.reloadData(produceList)
+ //xGrid.value.reloadData(produceList)
gridOptions.loading = false
} else {
ElMessage.warning(res.msg)
@@ -134,6 +134,10 @@
if (res.code == 200) {
total.value = res.data.total
produceList = deepClone(res.data.data)
+ produceList.forEach(item => {
+ // 濡傛灉 shape 鍙兘鏄瓧绗︿覆灏辩敤 ==锛屽鏋滀竴瀹氭槸鏁板瓧灏辩敤 ===
+ item.shape = (item.shape == 2) ? t('order.alien') : t('order.universalShape');
+ });
xGrid.value.loadData(produceList)
gridOptions.loading = false
} else {
@@ -165,6 +169,10 @@
total.pageTotal = res.data.total.pageTotal
pageTotal.value = res.data.total
total.value = res.data.total
+ res.data.data.forEach(item => {
+ // 濡傛灉 shape 鍙兘鏄瓧绗︿覆灏辩敤 ==锛屽鏋滀竴瀹氭槸鏁板瓧灏辩敤 ===
+ item.shape = (item.shape == 2) ? t('order.alien') : t('order.universalShape');
+ });
xGrid.value.loadData(res.data.data)
gridOptions.loading = false
} else {
@@ -204,26 +212,7 @@
}
getWorkOrder()
- // let selectProcesses = value.value
- // let optionVal=stateValue.value
- // if (optionVal == '') {
- // optionVal = null
- // }
- // request.post(`/report/workInProgress/1/${total.pageSize}/${inputVal}/${inputProject}/${selectProcesses}/${optionVal}`, filterData.value).then((res) => {
- //
- // if (res.code == 200) {
- // total.dataTotal = res.data.total.total*1
- // total.pageTotal=parseInt(res.data.total)
- // pageNum.value=1
- // produceList = deepClone(res.data.data)
- // console.log(res.data.data)
- // xGrid.value.reloadData(produceList)
- // gridOptions.loading=false
- // } else {
- // ElMessage.warning(res.msg)
- // }
- // //handleUpdateData(produceList)
- // })
+
}
@@ -309,7 +298,6 @@
{field: 'orderNumber', width: 100, title: t('order.OrderNum'),visible: true},
{field: 'technologyNumber', width: 120, title: t('processCard.technologyNumber'),filters: [{data: ''}],
slots: {filter: 'num1_filter'}, showOverflow: "ellipsis",visible: true},
- {field: 'bend_radius', width: 100, title: t('order.bendRadius'),visible: true},
{field: 'shape', width: 100, title: t('order.shape'),visible: true},
{field: 'process', width: 120, title: t('craft.process'),visible: true},
{field: 'quantity', width: 120, title: t('order.quantity'),visible: true},
@@ -319,7 +307,7 @@
{field: 'stockArea', width: 120, title: t('report.inventoryArea'),visible: true},
{field: 'productName', width: 120, title: t('order.product'),visible: true},
{field: 'bendRadius', width: 120, title: t('order.bendRadius'),visible: true},
- {field: 'teamsGroupsName', width: 110,title: '涓婂伐搴忔姤宸�',showOverflow:"ellipsis",filters: [{data: ''}],
+ {field: 'teamsGroupsName', width: 110,title: t('report.teamsGroupsName'),showOverflow:"ellipsis",filters: [{data: ''}],
slots: {filter: 'num1_filter'}},
],//琛ㄥご鎸夐挳
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
index b8f883a..6a19c48 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -98,9 +98,13 @@
String getLaminating(String selectProcesses);
- Integer workInProgressOrderTotalNew(int i, int i1, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
+ List<WorkInProgressDTO> workInProgressMpdataList1(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
- List<Map<String, Object>> workInProgressOrderMpNew(int offset, int pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
+ List<WorkInProgressDTO> workInProgressMpdataList2(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
+
+ List<WorkInProgressDTO> workInProgressOrderMpList1(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
+
+ List<WorkInProgressDTO> workInProgressProcessMpList1(Integer offset, Integer pageSize, String orderId, String inputProject, String selectProcesses, WorkInProgressDTO workInProgressDTO);
// Map<String, Integer> getWorkInProgressTotal(
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
index e0e4d34..62599e4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -9,11 +9,18 @@
import com.example.erp.mapper.pp.ProductionSchedulingMapper;
import com.example.erp.mapper.pp.ReportMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
import java.sql.Date;
import java.time.LocalDate;
import java.util.*;
+import java.util.concurrent.Executor;
+import java.util.function.Function;
+import java.util.stream.Collectors;
@Service
@DS("pp")
@@ -22,6 +29,34 @@
private final OrderProcessDetailMapper orderProcessDetailMapper;
private final ProductionSchedulingMapper productionSchedulingMapper;
+
+
+ private void mergeTeamsGroupsName(
+ List<WorkInProgressDTO> dataList1,
+ List<WorkInProgressDTO> dataList2
+ ) {
+ Function<WorkInProgressDTO, String> keyFn = dto ->
+ dto.getProcessId() + "|" +
+ dto.getOrderNumber() + "|" +
+ dto.getTechnologyNumber();
+
+ Map<String, WorkInProgressDTO> map2 = dataList2.stream()
+ .collect(Collectors.toMap(
+ keyFn,
+ Function.identity(),
+ (existing, replacement) -> existing
+ ));
+
+ for (WorkInProgressDTO dto1 : dataList1) {
+ WorkInProgressDTO dto2 = map2.get(keyFn.apply(dto1));
+ if (dto2 != null) {
+ String tgn = dto2.getTeamsGroupsName();
+ if (StringUtils.hasText(tgn)) {
+ dto1.setTeamsGroupsName(tgn);
+ }
+ }
+ }
+ }
public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper) {
@@ -140,22 +175,33 @@
}
Map<String, Object> map = new HashMap<>();
+ List<WorkInProgressDTO> dataList2 =reportMapper.workInProgressMpdataList2(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
+
if (optionVal.equals("1")){
/* 鏍规嵁閿�鍞崟鍙锋眹鎬�*/
- map.put("data", reportMapper.workInProgressOrderMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
- // map.put("total", reportMapper.workInProgressOrderTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+ //map.put("data", reportMapper.workInProgressOrderMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+ List<WorkInProgressDTO> dataList1 =reportMapper.workInProgressOrderMpList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
+ mergeTeamsGroupsName(dataList1, dataList2);
+ map.put("data",dataList1);
+ // map.put("total", reportMapper.workInProgressOrderTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO));
}else if(optionVal.equals("2")){
/* 鏍规嵁娴佺▼鍗″彿姹囨��*/
- map.put("data", reportMapper.workInProgressProcessMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
- // map.put("total", reportMapper.workInProgressProcessTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+ //map.put("data", reportMapper.workInProgressProcessMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+ List<WorkInProgressDTO> dataList1 =reportMapper.workInProgressProcessMpList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
+ mergeTeamsGroupsName(dataList1, dataList2);
+ map.put("data",dataList1);
+ // map.put("total", reportMapper.workInProgressProcessTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO));
} else if (optionVal.equals("3")) {
} else {
//娌℃湁閫夋嫨鍒嗙粍
- map.put("data", reportMapper.workInProgressMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+ //map.put("data", reportMapper.workInProgressMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+ List<WorkInProgressDTO> dataList1 =reportMapper.workInProgressMpdataList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
+ mergeTeamsGroupsName(dataList1, dataList2);
+ map.put("data",dataList1);
//map.put("total", reportMapper.workInProgressTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO));
diff --git a/north-glass-erp/src/main/resources/mapper/pp/Report.xml b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
index 764f561..1507f22 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -2171,55 +2171,69 @@
select IFNULL(nickname,'') from sd.basic_data where basic_category='process' and basic_name=#{selectProcesses}
</select>
- <select id="workInProgressOrderTotalNew" >
- select
- ifnull(count(distinct o.order_id),0)
+ <select id="workInProgressMpdataList1" resultMap="workInProgressMap">
+ select #{selectProcesses} as thisProcess,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ o.order_id,
+ o.batch,
+ od.shape,
+ if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.process,
+ od.quantity,
+ ogd.child_width,
+ ogd.child_height,
+ odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num as stockNum,
+ ROUND(ogd.child_width * ogd.child_height *
+ (odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num) / 1000000, 2) as stockArea,
+ od.product_name,
+ od.bend_radius,
+ ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber
+ -- ,
+ -- rws.teams_groups_name
from sd.order_detail AS od
- LEFT JOIN sd.order_glass_detail AS ogd
- ON od.order_id = ogd.order_id
- AND od.order_number = ogd.order_number
- LEFT JOIN flow_card AS fc
- ON fc.order_id = ogd.order_id
- and fc.production_id = ogd.production_id
- AND fc.order_number = ogd.order_number
- AND fc.technology_number = ogd.technology_number
- left join sd.order_process_detail as odpd
- ON odpd.order_id = fc.order_id
- AND odpd.order_number = fc.order_number
- AND odpd.technology_number = fc.technology_number
- and odpd.process_id = fc.process_id
- left join sd.order_process_detail as odpds
- ON odpds.id = odpd.id - 1
- left join
- (SELECT sum(rw.rework_num) as 'patchNumSum',
- rw.process_id,
- rw.order_sort,
- rw.technology_number,
- rwk.this_process
- from rework as rw
- LEFT JOIN
- reporting_work as rwk
- on rw.reporting_work_id = rwk.reporting_work_id
- where rwk.this_process = #{selectProcesses}
- and rw.review_status >= 0
- GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
- on c.process_id = fc.process_id
- and c.order_sort = fc.order_number
- and c.technology_number = fc.technology_number
- left join sd.`order` as o
- on o.order_id = od.order_id
- left join
- (
- select a.process_id,a.teams_groups_name,a.next_process,b.technology_number,b.order_number
- from reporting_work as a
- left join reporting_work_detail as b on a.reporting_work_id=b.reporting_work_id
- GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
- ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
- and rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
+ LEFT JOIN sd.order_glass_detail AS ogd
+ ON od.order_id = ogd.order_id
+ AND od.order_number = ogd.order_number
+ LEFT JOIN pp.flow_card AS fc
+ ON fc.order_id = ogd.order_id
+ and fc.production_id = ogd.production_id
+ AND fc.order_number = ogd.order_number
+ AND fc.technology_number = ogd.technology_number
+ left join sd.order_process_detail as odpd
+ ON odpd.order_id = fc.order_id
+ AND odpd.order_number = fc.order_number
+ AND odpd.technology_number = fc.technology_number
+ and odpd.process_id = fc.process_id
+ left join sd.order_process_detail as odpds
+ ON odpds.id = odpd.id - 1
+ left join
+ (SELECT sum(rw.rework_num) as 'patchNumSum',
+ rw.process_id,
+ rw.order_sort,
+ rw.technology_number,
+ rwk.this_process
+ from pp.rework as rw
+ LEFT JOIN
+ pp.reporting_work as rwk
+ on rw.reporting_work_id = rwk.reporting_work_id
+ where rwk.this_process = #{selectProcesses}
+ and rw.review_status >= 0
+ GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
+ on c.process_id = fc.process_id
+ and c.order_sort = fc.order_number
+ and c.technology_number = fc.technology_number
+ left join sd.`order` as o
+ on o.order_id = od.order_id
where o.create_order>0
- and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
- odpd.broken_num != 0
+ and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num != 0
and odpd.process = #{selectProcesses}
and position(#{orderId} in od.order_id)
and position(#{inputProject} in o.project)
@@ -2235,23 +2249,46 @@
<if test="workInProgressDTO.batch != null and workInProgressDTO.batch != ''">
and o.batch regexp #{workInProgressDTO.batch}
</if>
+ <if test="workInProgressDTO.processId != null and workInProgressDTO.processId != ''">
+ and fc.process_id regexp #{workInProgressDTO.processId}
+ </if>
+ <if test="workInProgressDTO.orderNumber != null and workInProgressDTO.orderNumber != ''">
+ and ogd.order_number regexp #{workInProgressDTO.orderNumber}
+ </if>
+ <if test="workInProgressDTO.technologyNumber != null and workInProgressDTO.technologyNumber != ''">
+ and ogd.technology_number regexp #{workInProgressDTO.technologyNumber}
+ </if>
+ <if test="workInProgressDTO.glassNumber != null and workInProgressDTO.glassNumber != ''">
+ and ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') regexp #{workInProgressDTO.glassNumber}
+ </if>
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by fc.process_id, fc.order_number, fc.technology_number
+ limit #{offset},#{pageSize};
</select>
- <select id="workInProgressOrderMpNew" resultMap="workInProgressMap">
+ <select id="workInProgressMpdataList2" resultMap="workInProgressMap">
+ select
+ a.process_id,a.teams_groups_name,a.next_process,b.technology_number,b.order_number
+ from pp.reporting_work as a
+ left join pp.reporting_work_detail as b on a.reporting_work_id=b.reporting_work_id
+ where a.next_process=#{selectProcesses}
+ GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
+ </select>
+
+ <select id="workInProgressOrderMpList1" resultMap="workInProgressMap">
select #{selectProcesses} as thisProcess,
o.customer_name,
o.project,
o.order_id,
o.batch,
- if(od.shape='' || ISNULL(od.shape),'鏅舰',if(od.shape = 1, '鏅舰', if(od.shape = 2, '寮傚舰', ''))) as shape,
+ od.shape,
sum(od.quantity) as quantity,
sum(odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
odpd.broken_num) as stockNum,
sum(ROUND(ogd.child_width * ogd.child_height *
(odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
odpd.broken_num) / 1000000, 2)) as stockArea,
- od.product_name,
- rws.teams_groups_name
+ od.product_name
from sd.order_detail AS od
LEFT JOIN sd.order_glass_detail AS ogd
@@ -2287,14 +2324,6 @@
and c.technology_number = fc.technology_number
left join sd.`order` as o
on o.order_id = od.order_id
- left join
- (
- select a.process_id,a.teams_groups_name,a.next_process,b.technology_number,b.order_number
- from reporting_work as a
- left join reporting_work_detail as b on a.reporting_work_id=b.reporting_work_id
- GROUP BY a.process_id,a.teams_groups_name,a.next_process,b.order_number,b.technology_number
- ) as rws on rws.process_id=fc.process_id and rws.order_number=fc.order_number
- and rws.technology_number=fc.technology_number and rws.next_process=#{selectProcesses}
where o.create_order>0
and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
odpd.broken_num != 0
@@ -2317,4 +2346,80 @@
order by o.order_id
limit #{offset},#{pageSize};
</select>
+
+ <select id="workInProgressProcessMpList1" resultMap="workInProgressMap">
+ select #{selectProcesses} as thisProcess,
+ o.customer_name,
+ o.project,
+ o.order_id,
+ fc.process_id,
+ o.batch,
+ od.shape,
+ sum(od.quantity) as quantity,
+ sum(odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num) as stockNum,
+ sum(ROUND(ogd.child_width * ogd.child_height *
+ (odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num) / 1000000, 2)) as stockArea,
+ od.product_name
+
+ from sd.order_detail AS od
+ LEFT JOIN sd.order_glass_detail AS ogd
+ ON od.order_id = ogd.order_id
+ AND od.order_number = ogd.order_number
+ LEFT JOIN flow_card AS fc
+ ON fc.order_id = ogd.order_id
+ and fc.production_id = ogd.production_id
+ AND fc.order_number = ogd.order_number
+ AND fc.technology_number = ogd.technology_number
+ left join sd.order_process_detail as odpd
+ ON odpd.order_id = fc.order_id
+ AND odpd.order_number = fc.order_number
+ AND odpd.technology_number = fc.technology_number
+ and odpd.process_id = fc.process_id
+ left join sd.order_process_detail as odpds
+ ON odpds.id = odpd.id - 1
+ left join
+ (SELECT sum(rw.rework_num) as 'patchNumSum',
+ rw.process_id,
+ rw.order_sort,
+ rw.technology_number,
+ rwk.this_process
+ from rework as rw
+ LEFT JOIN
+ reporting_work as rwk
+ on rw.reporting_work_id = rwk.reporting_work_id
+ where rwk.this_process = #{selectProcesses}
+ and rw.review_status >= 0
+ GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
+ on c.process_id = fc.process_id
+ and c.order_sort = fc.order_number
+ and c.technology_number = fc.technology_number
+ left join sd.`order` as o
+ on o.order_id = od.order_id
+ where o.create_order>0
+ and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num != 0
+ and odpd.process = #{selectProcesses}
+ and position(#{orderId} in od.order_id)
+ and position(#{inputProject} in o.project)
+ <if test="workInProgressDTO.customerName != null and workInProgressDTO.customerName != ''">
+ and o.customer_name regexp #{workInProgressDTO.customerName}
+ </if>
+ <if test="workInProgressDTO.project != null and workInProgressDTO.project != ''">
+ and o.project regexp #{workInProgressDTO.project}
+ </if>
+ <if test="workInProgressDTO.orderId != null and workInProgressDTO.orderId != ''">
+ and o.order_id regexp #{workInProgressDTO.orderId}
+ </if>
+ <if test="workInProgressDTO.batch != null and workInProgressDTO.batch != ''">
+ and o.batch regexp #{workInProgressDTO.batch}
+ </if>
+ <if test="workInProgressDTO.processId != null and workInProgressDTO.processId != ''">
+ and fc.process_id regexp #{workInProgressDTO.processId}
+ </if>
+ group by o.order_id, fc.process_id
+ order by o.order_id, fc.process_id
+ limit #{offset},#{pageSize};
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0