From 12878263caa8d18860111d6f6900d495e9d9369c Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期四, 12 十二月 2024 14:40:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue | 2
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 137 +++++++-
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCardDetail.vue | 59 ++-
north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue | 1
north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java | 6
north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java | 12
north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java | 3
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 148 ++++++++-
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java | 1
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCard.vue | 360 +++++++++++++++--------
north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java | 31 ++
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue | 25 +
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java | 53 +++
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java | 31 +
14 files changed, 668 insertions(+), 201 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
index 661bbb9..e18573c 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -58,11 +58,9 @@
data.value.printList = JSON.parse(props.printList)
let flowCardCount = ''
onMounted(() => {
- console.log(printProject)
if(props.printProject!=null){
request.post(`/processCard/getSelectPrintProject/${printProject}`).then((res) => {
if (res.code == 200) {
- console.log(res.data.data)
load(res.data.data)
} else {
ElMessage.warning(res.msg)
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue
index 9994920..e0bd895 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/ProjectCreate.vue
@@ -6,6 +6,20 @@
import {ref} from "vue";
import {useI18n} from "vue-i18n";
+let projectRow = ref({
+ processId:null,
+ technologyNumber:null
+})
+
+
+const handleProcessIdUpdate = newProcessId => {
+ projectRow.value.processId = newProcessId;
+};
+
+const handleTechnologyNumberUpdate = newTechnologyNumber => {
+ projectRow.value.technologyNumber = newTechnologyNumber;
+};
+
</script>
@@ -14,11 +28,16 @@
<div style="width: 100%; height: 100%;">
<div id="processCard">
- <process-card/>
+ <process-card :process-id="projectRow.processId===null?null:projectRow.processId"
+ :technology-number="projectRow.technologyNumber===null?null:projectRow.technologyNumber"
+ @updateProcessId="handleProcessIdUpdate"
+ @updateTechnologyNumber="handleTechnologyNumberUpdate"
+ />
</div>
- <div id="processCard-detail">
- <process-card-detail/>
+ <div id="processCard-detail" >
+ <process-card-detail :process-id="projectRow.processId===null?null:projectRow.processId"
+ :technology-number="projectRow.technologyNumber===null?null:projectRow.technologyNumber"/>
</div>
<div id="project-list">
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 72b7383..5dedb14 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
@@ -1,25 +1,93 @@
<script setup>
-import {reactive, ref} from "vue";
+import {onMounted, reactive, ref} from "vue";
import {useI18n} from "vue-i18n";
import {Search} from "@element-plus/icons-vue";
import request from "@/utils/request";
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
-const { t } = useI18n()
+import useUserInfoStore from "@/stores/userInfo";
+
+const {t} = useI18n()
+const userStore = useUserInfoStore()
+const username = userStore.user.userName
+let rowClickIndex = ref(null)
+
+let props = defineProps({
+ processId: null,
+ technologyNumber: null
+})
+
+//鑶滅郴
+const optionVal = ref()
+//鑶滅郴
+const projectNmae = ref()
+//宸ョ▼缂栧彿涓暟
+let projectId = ref()
+//宸ョ▼缂栧彿
+const Id = ref()
+let oddNumbers = ref()
+
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+ processType: [],
+})
+
+const selectGlassType = () => {
+ //鏌ヨ鑶滅郴
+ request.post(`/glassOptimize/selectGlassType`).then((res) => {
+ if (res.code == 200) {
+ titleSelectJson.value.processType = res.data.data
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
+}
+//鏌ヨ鏈�鏂板伐绋嬪彿
+const getProjectId = () => {
+ request.post(`/glassOptimize/getProjectId`).then((res) => {
+ if (res.code == 200) {
+ projectId = res.data.data[0].project_no
+ // 鑾峰彇瀛楃涓茬殑鏈�鍚庝袱浣嶆暟瀛�
+ let maximum = projectId.slice(-2);
+ let lastTwoInteger = parseInt(maximum, 10);
+ // 璁剧疆涓や綅涓嶅琛�0
+ let formattedNumber = (lastTwoInteger + 1).toString().padStart(2, '0');
+ // 鏍煎紡鍖栧綋鍓嶆棩鏈熶负 "yyMMdd"
+ let currentDate = new Date();
+ let formattedDate = currentDate.getFullYear().toString().slice(-2) +
+ (currentDate.getMonth() + 1).toString().padStart(2, '0') +
+ currentDate.getDate().toString().padStart(2, '0');
+
+ // 鎷兼帴鎴愭渶缁堢殑瀛楃涓�
+ oddNumbers.value = 'P' + formattedDate + formattedNumber;
+
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
+}
+
+
+onMounted(() => {
+ getProjectId();
+ selectGlassType();
+
+})
+
const xGrid = ref()
const gridOptions = reactive({
- height:'100%',
+ height: '100%',
loading: false,
- border: "full",//琛ㄦ牸鍔犺竟妗�
+ border: "full",//琛ㄦ牸鍔犺竟妗�
keepSource: true,//淇濇寔婧愭暟鎹�
align: 'center',//鏂囧瓧灞呬腑
- stripe:true,//鏂戦┈绾�
- rowConfig: {isCurrent: true, isHover: true,height: 30, useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+ stripe: true,//鏂戦┈绾�
+ rowConfig: {isCurrent: true, isHover: true, height: 30, useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
id: 'ProcessCard',
- scrollX:{enabled: true},
- scrollY:{ enabled: true ,gt:0},//寮�鍚櫄鎷熸粴鍔�
- showOverflow:true,
+ scrollX: {enabled: true},
+ scrollY: {enabled: true, gt: 0},//寮�鍚櫄鎷熸粴鍔�
+ showOverflow: true,
columnConfig: {
resizable: true,
useKey: true
@@ -35,156 +103,202 @@
mode: 'row',
showStatus: true
},
- /*formConfig: {
- data: {
- width: '',
- height: '',
- quantity: ''
- },
- items: [
- { field: 'width', title: t('order.width')+':', itemRender: { name: 'VxeInput' } },
- { field: 'height', title: t('order.height')+':', itemRender: { name: 'VxeInput' } },
- { field: 'quantity', title: t('order.quantity')+':', itemRender: { name: 'VxeInput' } },
- {
- itemRender: {
- name: 'VxeButtonGroup',
- options: [
- { type: 'submit', content: t('craft.sure'), status: 'primary' },
- { type: 'reset', content: t('product.msg.reset') }
- ]
- }
- }
- ]
- },*/
- columns:[
- {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
+ columns: [
+
{type: 'checkbox', fixed: "left", title: t('basicData.check'), width: 80},
- {field: 'process_id',width: 150, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'technology_number',width: 70, title: '灞�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'TotalFloors',width: 150, title: '鎬诲眰鏁�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'TotalNumber',width: 150, title: '瑙勬牸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'quantity',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'shape',width: 150, title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'glass_child',width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'project', width:150, title: t('order.project'), showOverflow: "ellipsis"},
- {field: 'area',width: 150, title: t('order.area'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {
+ field: 'process_id',
+ width: 150,
+ title: t('processCard.processId'),
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'technology_number',
+ width: 70,
+ title: '灞�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'TotalFloors',
+ width: 150,
+ title: '鎬诲眰鏁�',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'TotalNumber',
+ width: 150,
+ title: '瑙勬牸',
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'quantity',
+ width: 150,
+ title: t('order.quantity'),
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'shape',
+ width: 150,
+ title: t('order.shape'),
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {
+ field: 'glass_child',
+ width: 150,
+ title: t('order.product'),
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
+ {field: 'project', width: 150, title: t('order.project'), showOverflow: "ellipsis"},
+ {
+ field: 'area',
+ width: 150,
+ title: t('order.area'),
+ filters: [{data: ''}],
+ slots: {filter: 'num1_filter'},
+ sortable: true
+ },
],//琛ㄥご鍙傛暟
- data:null,//琛ㄦ牸鏁版嵁
+ data: null,//琛ㄦ牸鏁版嵁
toolbarConfig: {
buttons: [],
- slots:{
+ slots: {
buttons: "toolbar_buttons"
},
},
+
})
-let emit = defineEmits([
- 'changeDialog'
-])
-//鑶滅郴鍒楄〃
-const optionVal = ref('')
-const options = [
- {
- value: '鐧界幓',
- label: '鐧界幓',
- },
- {
- value: '鐏伴暅',
- label: '鐏伴暅',
- },
- {
- value: 'Low-e',
- label: 'Low-e',
- },
-]
+
+const gridEvents = {
+ cellClick({row}) {
+ rowClickIndex.value = row
+ // Emit 浜嬩欢灏嗘洿鏂板悗鐨勫�间紶閫掔粰鐖剁粍浠�
+ emit('updateProcessId', rowClickIndex.value.process_id);
+ emit('updateTechnologyNumber', rowClickIndex.value.technology_number);
+ }
+}
+const emit = defineEmits(['updateProcessId', 'updateTechnologyNumber']);
+
//灏忓渾鐐瑰崟閫夋
let radio = ref(1);
-const selectFlowCardList = ()=>{
+const selectFlowCardList = () => {
request.post(`/glassOptimize/getFlowCardList/${optionVal.value}/${radio.value}`).then((res) => {
- if(res.code==200){
+ if (res.code == 200) {
xGrid.value.loadData(res.data.data)
- }else{
+ } else {
ElMessage.warning(res.msg)
}
})
}
+//鍒涘缓宸ョ▼
+const addProject = () => {
+ const $table = xGrid.value
+ if ($table) {
+ const selectRecords = $table.getCheckboxRecords()
+ if (selectRecords.length == 0) {
+ ElMessage.warning(t('reportingWorks.selectProcessCardData'))
+ return;
+ }
+ let projectData = ref({
+ projectdetail: selectRecords,
+ userName : username
+ })
+ request.post(`/glassOptimize/addProject/${optionVal.value}/${oddNumbers.value}/${projectNmae.value}`, projectData.value).then((res) => {
+ if (res.code == 200 && res.data === true) {
+ ElMessage.success(t('basicData.msg.saveSuccess'))
+ } else {
+ ElMessage.warning(res.msg)
+ }
+ })
+
+ }
+}
</script>
<template>
<div style="width: 100%;height: 110%; margin-top: -36px">
<h1>娴佺▼鍗″垪琛�
- <span style="margin-left: 140px;font-size: 14px">宸ョ▼缂栧彿锛�</span>
- <vxe-input disabled placeholder="" size="small"></vxe-input>
- <span style="font-size: 14px">宸ョ▼鍚嶇О锛�</span>
- <vxe-input placeholder="" size="small"></vxe-input>
- <el-button type="primary" style="margin-left: 20px">鍒涘缓</el-button>
+ <span style="margin-left: 140px;font-size: 14px">宸ョ▼缂栧彿锛�</span>
+<!-- <span>{{oddNumbers}}</span>-->
+ <el-input disabled v-model="oddNumbers" style="width: 100px"></el-input>
+<!-- <vxe-input :disabled="isDisabled" placeholder="" v-model="oddNumbers" size="small" style="color:black;"></vxe-input> -->
+ <span style="font-size: 14px">宸ョ▼鍚嶇О锛�</span>
+ <vxe-input placeholder="" v-model="projectNmae" size="small"></vxe-input>
+ <el-button style="margin-left: 20px" type="primary" @click="addProject">鍒涘缓</el-button>
</h1>
<vxe-grid
- size="small"
- @filter-change="filterChanged"
- height="100%"
- class="mytable-scrollbar"
- ref="xGrid"
- v-bind="gridOptions"
- v-on="gridEvents"
- >
- <template #num2_filter="{ column, $panel }">
- <div>
- <div v-for="(option, index) in column.filters" :key="index">
- <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')" @change="changeFilterEvent($event, option, $panel)">
- <vxe-option value="0" :label="$t('basicData.unchecked')"></vxe-option>
- <vxe-option value="1" :label="$t('basicData.selected')"></vxe-option>
- </vxe-select>
- </div>
+ ref="xGrid"
+ class="mytable-scrollbar"
+ height="100%"
+ size="small"
+ v-bind="gridOptions"
+ v-on="gridEvents"
+ @filter-change="filterChanged"
+ >
+ <template #num2_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')"
+ @change="changeFilterEvent($event, option, $panel)">
+ <vxe-option :label="$t('basicData.unchecked')" value="0"></vxe-option>
+ <vxe-option :label="$t('basicData.selected')" value="1"></vxe-option>
+ </vxe-select>
</div>
- </template>
+ </div>
+ </template>
- <template #num1_filter="{ column, $panel }">
- <div>
- <div v-for="(option, index) in column.filters" :key="index">
- <input
+ <template #num1_filter="{ column, $panel }">
+ <div>
+ <div v-for="(option, index) in column.filters" :key="index">
+ <input
- type="type"
- v-model="option.data"
- @keyup.enter.native="$panel.confirmFilter()"
- @input="changeFilterEvent($event, option, $panel)"/>
- </div>
+ v-model="option.data"
+ type="type"
+ @input="changeFilterEvent($event, option, $panel)"
+ @keyup.enter.native="$panel.confirmFilter()"/>
</div>
- </template>
+ </div>
+ </template>
- <template #toolbar_buttons>
- <h1>鑶滅郴绛涢�夛細</h1>
- <el-select
- placeholder="閫夋嫨鑶滅郴"
- style="margin-left:10px; width: 170px "
- ref="getSelect"
- v-model="optionVal"
- clearable
- class="m-2"
- @change="getWorkOrder"
- >
-
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- <el-button type="primary" :icon="Search" style="margin-left: 20px" @click="selectFlowCardList">鏌ヨ</el-button>
- <vxe-radio-group v-model="radio" style="margin-left: 20px">
- <vxe-radio label="1" content="鍏ㄩ儴"></vxe-radio>
- <vxe-radio label="2" content="姝e崟"></vxe-radio>
- <vxe-radio label="3" content="琛ュ崟"></vxe-radio>
- </vxe-radio-group>
- </template>
+ <template #toolbar_buttons>
+ <h1>鑶滅郴绛涢�夛細</h1>
+ <el-select v-model="optionVal" clearable default-value="default_city" placeholder="閫夋嫨鑶滅郴"
+ style="width: 120px">
+ <el-option
+ v-for="item in titleSelectJson['processType']"
+ :key="item.id"
+ :label="item.glassType"
+ :value="item.glassType"
+ />
+ </el-select>
+ <el-button :icon="Search" style="margin-left: 20px" type="primary" @click="selectFlowCardList">鏌ヨ</el-button>
+ <vxe-radio-group v-model="radio" style="margin-left: 20px">
+ <vxe-radio content="鍏ㄩ儴" label="1"></vxe-radio>
+ <vxe-radio content="姝e崟" label="2"></vxe-radio>
+ <vxe-radio content="琛ュ崟" label="3"></vxe-radio>
+ </vxe-radio-group>
+ </template>
</vxe-grid>
</div>
</template>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCardDetail.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCardDetail.vue
index 4a9e093..044e9f3 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCardDetail.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProcessCardDetail.vue
@@ -1,8 +1,14 @@
<script setup>
-import {reactive, ref} from "vue";
+import {onMounted, reactive, ref, watch} from "vue";
import {useI18n} from "vue-i18n";
+import request from "@/utils/request";
+import {ElMessage} from "element-plus";
const { t } = useI18n()
+let props = defineProps({
+ processId:null,
+ technologyNumber:null
+})
const xGrid = ref()
const gridOptions = reactive({
@@ -54,34 +60,53 @@
]
},*/
columns:[
- {field: 'id',width: 70, title: '搴忓彿',filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
- {field:'state',width: 150,title: t('order.width'),filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
- {type: 'seq',width: 150,title: t('order.height')},
- {field: 'id',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'id',width: 150, title: t('order.buildingNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'id',width: 150, title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'id',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'id',width: 150, title: t('craft.TrademarkAttribute'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'order_number',width: 70, title: '搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field:'child_width',width: 150,title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'child_height',width: 150,title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'quantity',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'building_number',width: 150, title: t('order.buildingNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'shape',width: 150, title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'grossArea',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'separation',width: 150, title: t('craft.TrademarkAttribute'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
],//琛ㄥご鍙傛暟
data:null,//琛ㄦ牸鏁版嵁
toolbarConfig: {
buttons: [],
slots:{
- buttons: "toolbar_buttons"
},
},
})
-let emit = defineEmits([
- 'changeDialog'
-])
-let ProjectName = ref('')
-const changeOrderType = async ()=>{
- await emit('changeDialog',ProjectName.value)
- ProjectName.value = null
+
+
+onMounted(()=>{
+
+})
+
+watch(
+
+ () => props.processId,
+ (newValue, oldValue) => {
+if (props.processId!=null){
+ getWorkOrder()
}
+ }
+);
+
+const getWorkOrder = () => {
+ if (props.processId!=null || props.processId!=""){
+ request.post(`/glassOptimize/getProcessCardDetail/${props.processId}/${props.technologyNumber}`).then((res) => {
+ if(res.code==200){
+ xGrid.value.loadData(res.data.data)
+ }else{
+ ElMessage.warning(res.msg)
+ }
+ })
+ }
+
+}
</script>
<template>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue
index 8420dc0..dc747c2 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/SelectPrintProject.vue
@@ -75,7 +75,6 @@
}
case 'edit3' :{
printRow.value.project=row.project_no
- console.log(printRow.value.project)
dialogTableVisible.value = true
}
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
index 9484a42..19dc67d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
@@ -1,5 +1,6 @@
package com.example.erp.controller.pp;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import com.example.erp.common.Constants;
import com.example.erp.common.Result;
import com.example.erp.entity.pp.OptimizeProjectMange;
@@ -11,6 +12,7 @@
import org.springframework.web.bind.annotation.*;
import java.sql.Date;
+import java.util.Map;
@RestController
@Api(value="浼樺寲绠$悊controller",tags={"浼樺寲绠$悊鎿嶄綔鎺ュ彛"})
@@ -102,4 +104,33 @@
return Result.seccess(glassOptimizeService.selectComputeDetailSv(processId));
}
+ //鍒涘缓宸ョ▼鏌ヨ娴佺▼鍗℃槑缁�
+ @ApiOperation("鍒涘缓宸ョ▼鏌ヨ娴佺▼鍗℃槑缁�")
+ @PostMapping ("/getProcessCardDetail/{processId}/{technologyNumber}")
+ public Result getProcessCardDetail(
+ @PathVariable String processId,
+ @PathVariable Integer technologyNumber){
+ return Result.seccess(glassOptimizeService.getProcessCardDetailSv(processId,technologyNumber));
+ }
+
+ @ApiOperation("鑶滅郴鏌ヨ")
+ @PostMapping ("/selectGlassType")
+ public Result selectGlassType(){
+ return Result.seccess(glassOptimizeService.selectGlassTypeSv());
+ }
+
+ @ApiOperation("鏈�鏂板伐绋嬪彿鏌ヨ")
+ @PostMapping ("/getProjectId")
+ public Result getProjectId(){
+ return Result.seccess(glassOptimizeService.getProjectIdSv());
+ }
+ @ApiOperation("鍒涘缓宸ョ▼鎺ュ彛")
+ @PostMapping("/addProject/{optionVal}/{projectId}/{projectNmae}")
+ public Result addProject(
+ @PathVariable String optionVal,
+ @PathVariable String projectId,
+ @PathVariable String projectNmae,
+ @RequestBody Map<String,Object> object){
+ return Result.seccess(glassOptimizeService.addProjectSv(optionVal,projectId,projectNmae,object));
+ }
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
index a8ab5bc..6c8ec86 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -94,6 +94,9 @@
//灏忕墖鏁伴噺
@TableField(select = false,exist = false)
private String glassCount;
+ //琛ョ墖鐘舵��
+ @TableField(select = false,exist = false)
+ private Integer patchState;
//澶栭敭璁㈠崟琛�
@TableField(select = false,exist= false)
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 b409ee8..04c5fbf 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
@@ -75,7 +75,11 @@
List<Map<String, String>> getPrimaryList(String processId, String technologyNumber, String glassChild, String process, String orderId);
+ List<Map<String, String>> getPrimaryLists(String processId, String technologyNumber, String glassChild, String process, String orderId,Integer quantity);
+
List<Map<String, Object>> getDetailList(String processId, String technologyNumber, String process);
+
+ List<Map<String, Object>> getDetailLists(String processId, String technologyNumber, String process,Integer orderNumber);
List<Map<String, Object>> getProcessList(String processId, String technologyNumber);
@@ -125,6 +129,8 @@
List<Map<String, Object>> getDetailListLike(String processId, String technologyNumber, String process);
+ List<Map<String, Object>> getDetailListLikes(String processId, String technologyNumber, String process,Integer orderNumber,Integer quantity);
+
List<Map<String, String>> getPrimaryListMergeRefund(String processId, String technologyNumber, Integer orderNumber, String orderId);
List<Map<String, Object>> getDetailListRefund(String processId, String technologyNumber, Integer orderNumber, String reportingWorkId, String patchReason);
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 6438c2f..91b894c 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
@@ -39,4 +39,16 @@
//妯℃嫙璁$畻娴佺▼鍗¤鎯�
List<Map<String, Object>> selectComputeDetailMp(String processId);
+
+ List<Map<String, Object>> getProcessCardDetailmMp(String processId, Integer technologyNumber);
+
+ List<Map<String, Object>> selectGlassTypeMp();
+
+ List<Map<String, Object>> getProjectIdSv();
+
+ Boolean updateFlowCardProject(String processId, String technologyNumber, String projectId);
+
+ Double getSelectArea(String processId, String technologyNumber);
+
+ Boolean addProjectMp(String projectId, String projectNmae, String glassThickness, String glassType, Integer sumQuantity, Double sumArea, String userName);
}
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 7acc74e..8775182 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
@@ -377,15 +377,28 @@
String processSub=flowCard.getProcess().substring(0, 2);
if(processSub.equals("澶硅兌") || processSub.equals("涓┖")){
itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
+ if(flowCard.getPatchState().equals(0)){
+ List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess());
+ itemmap.put("detailList", detailList);
+ }else{
+ List<Map<String, Object>> detailList = flowCardMapper.getDetailLists(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess(),flowCard.getOrderNumber());
+ itemmap.put("detailList", detailList);
+ }
- List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getProcess());
- itemmap.put("detailList", detailList);
}
else {
- itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
- List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
- itemmap.put("detailList", detailList);
+ if(flowCard.getPatchState().equals(0)){
+ itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId()));
+ List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess());
+ itemmap.put("detailList", detailList);
+ }else{
+ itemmap.put("detail", flowCardMapper.getPrimaryLists(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess(),flowCard.getOrderId(),flowCard.getQuantity()));
+ List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikes(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getProcess(),flowCard.getOrderNumber(),flowCard.getQuantity());
+ itemmap.put("detailList", detailList);
+ }
+
+
}
@@ -412,7 +425,13 @@
itemmap.put("processList", processList);
// itemmap.put("numberList", numberList);
- itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId()));
+
+ if(flowCard.getPatchState().equals(0)){
+ itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId()));
+ }else{
+ itemmap.put("count", flowCardList.size());
+ }
+ itemmap.put("state", flowCard.getPatchState());
itemmap.put("remarkList", flowCardMapper.remakList(flowCard.getProcessId()));
list.add(itemmap);
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 8a9cb51..a1690a1 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
@@ -1,7 +1,10 @@
package com.example.erp.service.pp;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.pp.OptimizeProjectMange;
import com.example.erp.mapper.pp.GlassOptimizeMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -9,6 +12,7 @@
import java.sql.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
@Service
@@ -86,4 +90,53 @@
return map;
}
+ public Map<String, Object> getProcessCardDetailSv(String processId, Integer technologyNumber) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", glassOptimizeMapper.getProcessCardDetailmMp(processId,technologyNumber));
+ return map;
+ }
+
+ public Map<String, Object> selectGlassTypeSv() {
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", glassOptimizeMapper.selectGlassTypeMp());
+ return map;
+ }
+
+
+ public Map<String, Object> getProjectIdSv() {
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", glassOptimizeMapper.getProjectIdSv());
+ return map;
+ }
+
+ public Boolean addProjectSv(String optionVal, String projectId, String projectNmae, Map<String, Object> object) {
+ String userName = "";
+ if (object.get("userName") != null) {
+ userName = object.get("userName").toString();
+ }
+ Double sumArea = (double) 0;
+ Double area = (double) 0;
+ Integer sumQuantity = 0;
+ List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("projectdetail")), FlowCard.class);
+ if (!flowCardList.isEmpty()) {
+ for (FlowCard flowCard : flowCardList) {
+ //缁欐祦绋嬪崱琛ㄦ坊鍔犲搴旂殑宸ョ▼鍙�
+ glassOptimizeMapper.updateFlowCardProject(flowCard.getProcessId(),flowCard.getTechnologyNumber(),projectId);
+ area = glassOptimizeMapper.getSelectArea(flowCard.getProcessId(),flowCard.getTechnologyNumber());
+ sumArea += area;
+ sumQuantity +=flowCard.getQuantity();
+ }
+ int index = optionVal.indexOf("mm");
+ // 鑾峰彇 "mm" 鍓嶉潰鐨勯儴鍒�
+ String glass_thickness = optionVal.substring(0, index);
+ // 鑾峰彇 "mm" 鍚庨潰鐨勯儴鍒�
+ String glass_type = optionVal.substring(index + 2);
+ glassOptimizeMapper.addProjectMp(projectId,projectNmae,glass_thickness,glass_type,sumQuantity,sumArea,userName);
+ return true;
+ }
+ else {
+ return false;
+
+ }
+ }
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index f77a9b7..fa93989 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -311,7 +311,6 @@
//鍒ゆ柇鏄惁澶т簬褰撳墠鏁伴噺骞朵笖鎶涘嚭寮傚父
if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) {
- System.out.println(processNum+"--"+reportingWorkDetail.getBreakageQuantity()+"--"+reportingWorkDetail.getCompletedQuantity());
Map<String, Object> map = new HashMap<>();
map.put("orderNumber", reportingWorkDetail.getOrderNumber());
map.put("technologyNumber", reportingWorkDetail.getOrderNumber());
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 8d014de..ba8b092 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -660,6 +660,45 @@
group by fc.process_id
</select>
+ <select id="getPrimaryLists">
+ select o.customer_name,
+ o.project,
+ #{process} process,
+ od.edging_type,
+ #{glassChild} as glass_child,
+ od.product_name,
+ o.processing_note,
+ fc.process_id,
+ #{quantity} as quantity,
+ round(od.width*od.height*#{quantity}/1000000, 2) as gross_area,
+ sum(od.weight) as weight,
+ #{technologyNumber} as technologyNumber,
+ concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+ concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch) AS otherRemarks,
+ '' as qrcode
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.`order` as o on o.order_id = fc.order_id
+ left join sd.product as p on p.id = od.product_id
+ left join (select ogd.order_id,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+ from sd.order_glass_detail as ogd
+ where ogd.order_id = #{orderId}
+ and position(ogd.technology_number in #{technologyNumber})
+ GROUP BY order_id, order_number) as ogdc
+ on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
+ ogdc.technology_number = ogd.technology_number
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id
+ </select>
+
<select id="getDetailList">
select fc.order_number,
concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
@@ -688,6 +727,39 @@
and fcs.process = #{process}
where fc.process_id = #{processId}
and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id, fc.order_number
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </select>
+
+ <select id="getDetailLists">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ fc.quantity,
+ round(ogd.total_area, 2) as total_area,
+ od.perimeter,
+ if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ and fc.order_sort = #{orderNumber}
group by fc.process_id, fc.order_number
order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
</select>
@@ -1239,6 +1311,39 @@
and fcs.process = #{process}
where fc.process_id = #{processId}
and position(fc.technology_number in #{technologyNumber})
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+ </select>
+
+ <select id="getDetailListLikes">
+ select fc.order_number,
+ concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+ #{quantity} as quantity,
+ round(ogd.child_width*ogd.child_height*#{quantity}/1000000, 2) as total_area,
+ round((ogd.child_width+ogd.child_height)*2*#{quantity}/1000, 2) as perimeter,
+ if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+ concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+ od.other_columns,
+ round(ogd.child_width) as width,
+ round(ogd.child_height) as height,
+ pd.separation,
+ fc.technology_number,
+ IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+ od.building_number
+ from flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
+ fc.technology_number = ogd.technology_number
+ left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
+ left join sd.product_detail as pd
+ on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+ left join flow_card_sort as fcs
+ on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
+ fcs.technology_number = fc.technology_number
+ and fcs.process = #{process}
+ where fc.process_id = #{processId}
+ and position(fc.technology_number in #{technologyNumber})
+ and fc.order_number=#{orderNumber}
group by fc.process_id, fc.order_number, fc.technology_number
order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
</select>
@@ -2511,29 +2616,26 @@
</update>
<select id="getFlowCardListPrintProject">
- select fc.id,
- fc.order_id,
- fc.process_id,
- o.customer_name,
- o.project,
- fc.order_number,
- ogd.technology_number,
- ogd.glass_address,
- sum(fc.quantity) as quantity,
- round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
- od.product_name,
- ogd.glass_child,
- fc.founder,
- date(fc.splitFrame_time) as splitFrame_time,
- /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as print_status*/
- fc.print_status,
- ogd.process
- from pp.flow_card as fc
- left join sd.order_glass_detail as ogd
- on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
- ogd.technology_number = fc.technology_number
- left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
- left join sd.`order` as o on o.order_id = fc.order_id
+ select
+ od.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ od.order_number,
+ ogd.technology_number,
+ ogd.glass_address,
+ fc.quantity ,
+ round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
+ od.product_name,
+ ogd.glass_child,
+ fc.patch_state,
+ ogd.process
+ from (select process_id,count(*) as quantity,order_sort,project_no,layer,patch_state from pp.optimize_detail where project_no = #{printProject} group by process_id,layer) as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = SUBSTRING(fc.process_id,1,10) and ogd.order_number = fc.order_sort and
+ ogd.technology_number = fc.layer
+ left join sd.order_detail as od on od.order_id = SUBSTRING(fc.process_id,1,10) and od.order_number = fc.order_sort
+ left join sd.`order` as o on o.order_id = SUBSTRING(fc.process_id,1,10)
where fc.project_no = #{printProject}
GROUP BY fc.process_id, ogd.technology_number
order by fc.process_id, ogd.technology_number
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 c72d362..7fc144f 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -166,31 +166,48 @@
</select>
<select id="getFlowCardListMp">
- select fc.process_id,
- fc.technology_number,
- fcss.TotalFloors,
- COUNT(fc.order_number) as TotalNumber,
- SUM(fc.quantity) as quantity,
- ROUND(SUM(od.width * od.height * fc.quantity / 1000000), 2) as area,
- o.project,
- ogd.glass_child,
- od.shape
-
- from pp.flow_card as fc
- left join sd.`order` as o on fc.order_id = o.order_id
- left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
- left join sd.order_glass_detail as ogd
- on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
- ogd.technology_number = fc.technology_number
- left join (select fcs.process_id,
- fcs.order_number,
- COUNT(DISTINCT fcs.technology_number) as TotalFloors
- from pp.flow_card as fcs
- GROUP BY fcs.process_id, fcs.order_number) as fcss
- on fcss.process_id = fc.process_id and fcss.order_number = fc.order_number
- where position(#{optionVal} in ogd.glass_child)
- GROUP BY fc.process_id, fc.technology_number
- ORDER BY fc.process_id, fc.technology_number
+ SELECT
+ fc.process_id,
+ fc.technology_number,
+ fcss.TotalFloors,
+ COUNT( fc.order_number ) AS TotalNumber,
+ SUM( fc.quantity ) AS quantity,
+ ROUND( SUM( od.width * od.height * fc.quantity / 1000000 ), 2 ) AS area,
+ o.project,
+ ogd.glass_child,
+ od.shape,
+ CONCAT( JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.color' )) ) AS glassType
+ FROM
+ pp.flow_card AS fc
+ LEFT JOIN sd.`order` AS o ON fc.order_id = o.order_id
+ LEFT JOIN sd.order_detail AS od ON od.order_id = fc.order_id
+ AND od.order_number = fc.order_number
+ LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = fc.order_id
+ AND ogd.order_number = fc.order_number
+ AND ogd.technology_number = fc.technology_number
+ LEFT JOIN (
+ SELECT
+ fcs.process_id,
+ fcs.order_number,
+ COUNT( DISTINCT fcs.technology_number ) AS TotalFloors
+ FROM
+ pp.flow_card AS fcs
+ GROUP BY
+ fcs.process_id,
+ fcs.order_number
+ ) AS fcss ON fcss.process_id = fc.process_id
+ AND fcss.order_number = fc.order_number
+ LEFT JOIN sd.product_detail AS pd ON pd.prod_id = od.product_id
+ AND pd.glass_sort = fc.technology_number
+ WHERE
+ CONCAT( JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.color' )) )= #{optionVal}
+ and ISNULL(fc.project_no)
+ GROUP BY
+ fc.process_id,
+ fc.technology_number
+ ORDER BY
+ fc.process_id,
+ fc.technology_number
</select>
<!--宸ョ▼绠$悊-->
@@ -334,4 +351,74 @@
p.state IN (1, 2)
AND f.process_id = #{processId}
</select>
+
+ <select id="getProcessCardDetailmMp">
+ select fc.order_number,
+ ogd.child_width,
+ ogd.child_height,
+ fc.quantity,
+ od.building_number,IF(od.shape!=2,'鏅舰','寮傚舰') as shape,
+ ROUND(ogd.child_width*ogd.child_height*fc.quantity/1000000,2) as grossArea,
+ pd.separation
+ from pp.flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number
+ and ogd.technology_number=fc.technology_number
+ left join sd.order_detail as od on od.order_id=ogd.order_id and od.order_number=ogd.order_number
+ left join sd.product_detail as pd on pd.prod_id=od.product_id and pd.glass_sort=fc.technology_number
+ where fc.process_id=#{processId} and fc.technology_number=#{technologyNumber}
+ group by fc.process_id,fc.order_number,fc.technology_number
+ order by fc.order_number,fc.technology_number
+ </select>
+
+ <select id="selectGlassTypeMp">
+ SELECT
+ JSON_UNQUOTE(JSON_EXTRACT(type, '$.lowE')) AS lowE,
+ JSON_UNQUOTE(JSON_EXTRACT(type, '$.color')) AS color,
+ JSON_UNQUOTE(JSON_EXTRACT(type, '$.thickness')) AS thickness,
+ JSON_UNQUOTE(JSON_EXTRACT(type, '$.craft')) AS craft,
+ JSON_UNQUOTE(JSON_EXTRACT(type, '$.position')) AS position,
+ CONCAT(
+ JSON_UNQUOTE(JSON_EXTRACT(type, '$.thickness')),
+ JSON_UNQUOTE(JSON_EXTRACT(type, '$.color'))
+ ) AS glassType
+ FROM pp.v_optimize_create_process_type
+ GROUP BY
+ thickness,
+ color
+ ORDER BY
+ CAST(REPLACE(JSON_UNQUOTE(JSON_EXTRACT(type, '$.thickness')), 'mm', '') AS UNSIGNED);
+ </select>
+
+ <select id="getProjectIdSv">
+ SELECT IFNULL(
+ (SELECT project_no
+ FROM pp.optimize_project
+ WHERE DATE(create_time) = CURDATE()
+ ORDER BY create_time DESC
+ LIMIT 1), '00') AS project_no;
+ </select>
+
+ <update id="updateFlowCardProject">
+ UPDATE pp.flow_card set project_no=#{projectId}
+ where process_id=#{processId} and technology_number=#{technologyNumber}
+ </update>
+
+ <select id="getSelectArea">
+ select
+ ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000,2) as grossArea
+ from pp.flow_card as fc
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number
+ and ogd.technology_number=fc.technology_number
+ left join sd.order_detail as od on od.order_id=ogd.order_id and od.order_number=ogd.order_number
+ left join sd.product_detail as pd on pd.prod_id=od.product_id and pd.glass_sort=fc.technology_number
+ where fc.process_id=#{processId} and fc.technology_number=#{technologyNumber}
+ group by fc.process_id,fc.technology_number
+ </select>
+
+ <insert id="addProjectMp">
+ insert into pp.optimize_project (project_no, project_name, order_glass_type, order_glass_thickness)
+ values (#{projectId}, #{projectNmae}, #{glassType}, #{glassThickness})
+ </insert>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0