From b0c60452329a61c32db74a1c7d7753d383d6310a Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期五, 05 九月 2025 08:20:53 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue | 6 +-
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 19 ++++-
north-glass-erp/northglass-erp/src/lang/zh.js | 2
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java | 8 ++
north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java | 2
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue | 5 -
north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java | 5 +
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 20 ++++++
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue | 3
north-glass-erp/northglass-erp/src/views/pp/replenish/AddReplenish.vue | 1
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue | 1
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java | 3
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizeCompute.vue | 9 +++
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java | 42 +++++++++++---
14 files changed, 99 insertions(+), 27 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
index 9ba9fcc..c511775 100644
--- a/north-glass-erp/northglass-erp/src/lang/zh.js
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -561,6 +561,8 @@
terminationQuantity:'鐢熶骇缁堟鏁伴噺',
terminationMsg:'璇疯緭鍏ユ纭殑鍙慨鏀规暟閲�',
maxCompleted:'鏈�澶у凡瀹屽伐鏁伴噺',
+ updateProcessMsg:'淇濆瓨澶辫触锛佽妫�鏌ュ彉鏇村伐搴忔槸鍚︽姤宸�',
+ termination:'缁堟',
},
reportingWorks:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
index ef227c4..e68f9c8 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectMange.vue
@@ -72,7 +72,7 @@
{field: 'effectiveCuttingRate', width: 100, title: '鏈夋晥鍒囪鐜�',},
{field: 'residueGlassCuttingRate', width: 100, title: '灏剧墖鍒囪鐜�',},
{field: 'amountOfOriginalGlassUsage1', width: 100, title: '鍘熸枡浣跨敤鏁�',},
- {field: 'averageCuttingRate1', width: 100, title: '骞冲潎鍒囪鐜�',},
+ // {field: 'averageCuttingRate1', width: 100, title: '骞冲潎鍒囪鐜�',},
{field: 'notes', width: 50, title: '澶囨敞',},
{field: 'creator', width: 100, title: '鍒涘缓浜�',},
{field: 'createTime', width: 100, title: '鍒涘缓鏃堕棿',},
@@ -383,9 +383,6 @@
ElMessage.warning('璇烽�夋嫨瑕佹煡鐪嬬殑宸ョ▼');
return;
}
-
- localStorage.setItem('projectNo', row.projectNumber);
- console.log("projectNo:", row.projectNumber);
try {
await router.push({
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizeCompute.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizeCompute.vue
index ebbd06f..687e082 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizeCompute.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizeCompute.vue
@@ -79,6 +79,15 @@
// 鏇存柊 store 鏁版嵁
if (result.layouts && result.layouts.length > 0) {
orderInfo.optimizeData.optimalResults = {
+ projectNo: result.projectNo,
+ glassThickness: result.glassThickness,
+ glassType: result.glassType,
+ totalQuantity: result.totalQuantity,
+ glassTotalQuantity: result.glassTotalQuantity,
+ glassTotalArea: result.glassTotalArea,
+ avgCutRate: result.avgCutRate,
+ lastCutRate: result.lastCutRate,
+ validCutRate: result.validCutRate,
layouts: result.layouts
};
}
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue
index 3251a99..80de7a3 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue
@@ -10,7 +10,7 @@
const {t} = useI18n()
const userStore = useUserInfoStore()
-const username = userStore.user.userName
+const username = userStore.user.userId
let rowClickIndex = ref(null)
let props = defineProps({
@@ -70,6 +70,7 @@
onMounted(() => {
+ console.log(userStore.user);
getProjectId();
selectGlassType();
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
index d5e8506..f1a12fd 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
@@ -249,7 +249,6 @@
const checkAutoRedirectToOptimize = () => {
// 妫�鏌ヨ矾鐢变腑鏄惁鏈夎嚜鍔ㄨ烦杞爣璇�
if (route.query.redirect === 'optimizeControl') {
- // 寤惰繜涓�娈垫椂闂寸‘淇濋〉闈㈠姞杞藉畬鎴愬悗鍐嶈烦杞�
setTimeout(() => {
const projectNo = route.params.projectNo || localStorage.getItem('currentProjectNo');
if (projectNo) {
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
index 7c2486a..b5c8b5c 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectDetailProcessCard.vue
@@ -78,7 +78,7 @@
const saveCraft = () => {
//rowIndex.value.process = craftObj.newCraft.join('->')
let orderProcess= craftObj.newCraft.join('->')
- request.post(`/processCard/updateProcess/${rowIndex.value.process_id}/${rowIndex.value.technology_number}/${rowIndex.value.order_id}/${orderProcess}`, craftObj).then((res) => {
+ request.post(`/processCard/updateProcess/${rowIndex.value.process_id}/${rowIndex.value.order_number}/${rowIndex.value.technology_number}/${rowIndex.value.order_id}/${orderProcess}`, craftObj).then((res) => {
if (res.code == 200 && res.data === true) {
ElMessage.success(t('basicData.msg.saveSuccess'))
router.push({
@@ -87,7 +87,7 @@
})
} else {
- ElMessage.warning('淇濆瓨澶辫触锛屾鏌ユ槸鍚︽姤宸�')
+ ElMessage.warning(t('processCard.updateProcessMsg'))
}
})
@@ -381,7 +381,7 @@
<!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
<template #button_slot="{ row }">
<el-button @click="updateCraft(row)" link type="primary" size="small">{{$t('craft.updateCraft')}}</el-button>
- <el-button @click="updateTermination(row)" link type="primary" size="small">缁堟</el-button>
+ <el-button @click="updateTermination(row)" link type="primary" size="small">{{$t('processCard.termination')}}</el-button>
</template>
<template #num1_filter="{ column, $panel }">
diff --git a/north-glass-erp/northglass-erp/src/views/pp/replenish/AddReplenish.vue b/north-glass-erp/northglass-erp/src/views/pp/replenish/AddReplenish.vue
index 8927ac5..c3abbf8 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/replenish/AddReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/replenish/AddReplenish.vue
@@ -136,6 +136,7 @@
{field: 'glassChild', width: 90, title: t('reportingWorks.glassChild'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
{field: 'glassAddress', width: 120, title: t('replenish.sliceMarking'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'patchNum', width: 120, title: t('order.quantity'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'patchArea', width: 120, title: t('order.area'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'width', width: 80, title: t('order.width'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'height', width: 80, title: t('order.height'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'shape', width: 100, title: t('order.shape'), sortable: true,slots: { filter: 'num1_filter',default:'default_shape' }},
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
index 0f13873..c6729a2 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -440,16 +440,17 @@
}
@ApiOperation("淇敼宸ヨ壓娴佺▼")
- @PostMapping("/updateProcess/{processId}/{technologyNumber}/{orderId}/{process}")
+ @PostMapping("/updateProcess/{processId}/{orderNumber}/{technologyNumber}/{orderId}/{process}")
public Result updateProcess(
@PathVariable String processId,
+ @PathVariable String orderNumber,
@PathVariable String technologyNumber,
@PathVariable String orderId,
@PathVariable String process,
@RequestBody Map<String, Object> object
) {
- return Result.seccess(flowCardService.updateProcessSv(processId,technologyNumber,orderId,process,object));
+ return Result.seccess(flowCardService.updateProcessSv(processId,orderNumber,technologyNumber,orderId,process,object));
}
@ApiOperation("宸ョ▼鎵撳嵃鏍囩娆℃暟淇敼")
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
index f44aab9..0e89cea 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -4,6 +4,7 @@
import com.example.erp.dto.pp.FlowCardDTO;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.OrderDetail;
+import com.example.erp.entity.sd.OrderProcessDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -272,5 +273,10 @@
Integer selectCompletedMp(String processId, Integer orderNumber, String interceptProcess);
- String getProcessOk(String processId, String technologyNumber);
+ String getProcessOk(String processId,String orderNumber, String technologyNumber);
+
+ List<OrderProcessDetail> getProcessDetail(String processId,String orderNumber, String technologyNumber, String process);
+
+ Boolean updateOrderProcessDetail(String processId, String orderNumber, Integer technologyNumber,
+ int reportingWorkNumCount, int reportingWorkNum, int brokenNum, String process);
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
index 92defbc..6502aa7 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
@@ -213,4 +213,6 @@
void deleteOffcutDetails(String processId);
void addUpdateOffcut(Map<String, Object> detail, String processId, String glassType, String glassThickness);
+
+ void updateProjectOptimize(String projectId, Integer states, Map<String, Object> optimalResults);
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index 6069417..5ae8080 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -1213,12 +1213,33 @@
return map;
}
- public Boolean updateProcessSv(String processId, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) {
+ public Boolean updateProcessSv(String processId,String orderNumber, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) {
+ List<OrderProcessDetail> resultList = new ArrayList<>();
//鑾峰彇宸叉姤宸ュ伐鑹烘祦绋�
- String processOk = flowCardMapper.getProcessOk(processId,technologyNumber);
- //鍒ゆ柇璇ユ祦绋嬪崱鏄惁鎶ュ伐
- Integer count = flowCardMapper.reportingWorkCount(processId);
- if (count == 0) {
+ String processOk = flowCardMapper.getProcessOk(processId,orderNumber,technologyNumber);
+ if (processOk != null && !processOk.isEmpty()){
+ List<String> okList = Arrays.asList(processOk.split("->"));
+ List<String> orderList = Arrays.asList(Orderprocess.split("->"));
+
+ // 鍒ゆ柇 processOk 鐨勬瘡涓伐搴忔槸鍚﹂兘鍖呭惈鍦� orderProcess 涓�
+ for (String p : okList) {
+ if (!orderList.contains(p)) {
+ return false;
+ }
+ }
+
+
+
+ for (String process : okList) {
+ List<OrderProcessDetail> details =
+ flowCardMapper.getProcessDetail(processId,orderNumber, technologyNumber, process);
+
+ if (details != null && !details.isEmpty()) {
+ resultList.addAll(details);
+ }
+ }
+ }
+
//鍒犻櫎灏忕墖宸ヨ壓琛ㄥ搴旂殑鏁版嵁
flowCardMapper.deleteProcessMp(processId, technologyNumber);
//閲嶆柊鎻掑叆淇敼濂藉伐鑹烘祦绋嬪崱鐨勬暟鎹�
@@ -1234,12 +1255,15 @@
}
}
}
+ //灏嗗師鏉ュ凡鎶ュ伐鐨勬暟鎹洿鏂�
+ if (resultList != null && !resultList.isEmpty()) {
+ for (OrderProcessDetail d : resultList) {
+ flowCardMapper.updateOrderProcessDetail(d.getProcessId(),d.getOrderNumber(),d.getTechnologyNumber(),
+ d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
+ }
+ }
return true;
- } else {
- return false;
- }
-
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
index 8fa0fe5..377f98d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -348,7 +348,8 @@
}
glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId);
}
- glassOptimizeMapper.updateProjectOptimizeStateMp(projectId,1);
+
+ glassOptimizeMapper.updateProjectOptimize(projectId, 1, optimalResults);
return true;
} catch (Exception e) {
e.printStackTrace();
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 541ec7e..8966a9f 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -3571,7 +3571,27 @@
GROUP_CONCAT(process ORDER BY id SEPARATOR '->') AS processes
FROM sd.order_process_detail
WHERE process_id = #{processId}
+ AND order_number = #{orderNumber}
AND technology_number = #{technologyNumber}
AND reporting_work_num_count > 0;
</select>
+
+ <select id="getProcessDetail">
+ SELECT *
+ FROM sd.order_process_detail
+ WHERE process_id = #{processId}
+ AND order_number = #{orderNumber}
+ AND technology_number = #{technologyNumber}
+ AND reporting_work_num_count > 0
+ AND process = #{process}
+ </select>
+
+ <update id="updateOrderProcessDetail">
+ UPDATE sd.order_process_detail
+ set reporting_work_num_count = #{reportingWorkNumCount},
+ reporting_work_num = #{reportingWorkNum},
+ broken_num = #{brokenNum}
+ where process_id = #{processId} and order_number = #{orderNumber} and
+ technology_number = #{technologyNumber} and process = #{process}
+ </update>
</mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
index ea8cf33..288f536 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -767,11 +767,11 @@
`p`.`frist_stock_qty` AS `Amount of original glass usage 1`,
concat(`p`.`frist_cut_pct`, ' %') AS `Average cutting rate 1`,
`p`.`remark` AS `Notes`,
- `a`.`name` AS `Creator`,
+ `u`.`user_name` AS `Creator`,
`p`.`create_time` AS `Create time`,
`p`.`update_time` AS `Modify time`
from pp.optimize_project as p
- left join pp.optimize_admin as a on p.creater = a.Id
+ left join erp_user_info.user as u on p.creater = u.login_name
where (`p`.`state` > 0)
# and (tempering_state>0 or optimize_state>0)
and DATE (`p`.`create_time`) BETWEEN #{startSelectTime} AND #{endSelectTime}
@@ -1108,14 +1108,14 @@
<update id="updateProjectMp">
update pp.optimize_project set project_name=#{projectNmae},glass_total=#{sumQuantity},glass_total_area= #{sumArea},
- type=#{type},process_qty=#{processIdCount},process_cards=#{processId} where project_no=#{projectId}
+ type=#{type},process_qty=#{processIdCount},process_cards=#{processId},creater = #{userName} where project_no=#{projectId}
</update>
<insert id="addProjectMp">
insert into pp.optimize_project (project_no, project_name, order_glass_type, order_glass_thickness,glass_type, glass_thickness,
- glass_total,glass_total_area,type,state,process_qty,process_cards)
+ glass_total,glass_total_area,type,state,process_qty,process_cards,creater )
values (#{projectId}, #{projectNmae}, #{glassType}, #{glassThickness}, #{glassType}, #{glassThickness},#{sumQuantity}, #{sumArea},
- #{type},1,#{processIdCount},#{processId})
+ #{type},1,#{processIdCount},#{processId},#{userName})
</insert>
@@ -1528,6 +1528,15 @@
WHERE
project_no = #{processId} AND polys_id = #{detail.polySort}
</update>
+ <update id="updateProjectOptimize">
+ update pp.optimize_project as p
+ set p.optimize_state = #{states},
+ p.avg_cut_pct = #{optimalResults.avgCutRate},
+ p.valid_cut_pct = #{optimalResults.validCutRate},
+ p.last_cut_pct = #{optimalResults.lastCutRate},
+ p.raw_stock_qty = #{optimalResults.totalQuantity}
+ where p.project_no = #{projectId}
+ </update>
<select id="simulatedTypesettingUsingOpt">
SELECT
--
Gitblit v1.8.0