From bf90cf8568301edb38920e8b0a0ce7e137a668ef Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 21 八月 2025 09:51:55 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue | 8
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml | 9
north-glass-erp/src/main/resources/mapper/pp/DamageDetails.xml | 16 +
north-glass-erp/northglass-erp/src/lang/en.js | 5
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml | 28 +
north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue | 2
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue | 3
north-glass-erp/src/main/java/com/example/erp/mapper/pp/DamageDetailsMapper.java | 7
north-glass-erp/northglass-erp/src/lang/zh.js | 6
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java | 1
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue | 5
north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue | 1
north-glass-erp/northglass-erp/src/lang/ar.js | 4
north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml | 19 +
north-glass-erp/src/main/resources/mapper/pp/Report.xml | 34 +
north-glass-erp/northglass-erp/src/views/mm/productStock/CreateProductStock.vue | 1
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue | 9
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyangDetails.vue | 4
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue | 46 ++
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java | 6
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 35 +
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue | 2
north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java | 8
north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecordPint.vue | 13
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java | 146 ++++++++
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java | 32 +
north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStockList.vue | 87 ++++
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java | 26
north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue | 42 +-
north-glass-erp/northglass-erp/src/lang/ru.js | 5
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue | 48 +-
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java | 173 +++++++++-
north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java | 4
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java | 17
north-glass-erp/northglass-erp/src/lang/kr.js | 4
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml | 38 +
north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml | 10
37 files changed, 704 insertions(+), 200 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue b/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
index 8f6675d..746a879 100644
--- a/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
+++ b/north-glass-erp/northglass-erp/src/components/mm/PrintPackingListLuoyang.vue
@@ -217,7 +217,6 @@
sum:sum
})
})
- console.log(orderDetailList.value)
} else {
ElMessage.warning(res.msg)
router.push("/login")
diff --git a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue
index bff24f1..5b26402 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyang.vue
@@ -213,7 +213,7 @@
<template>
<div >
- <div v-for="(page,pageIndex) in pageData" class="content1">
+ <div v-for="(page,pageIndex) in pageData" class="content1" >
<table>
<thead>
<tr style="height: 3.6cm"><td></td></tr>
@@ -311,7 +311,7 @@
</tr>
</tbody>
</table>
- <table class="foot">
+ <table class="foot" >
<tr >
<td style="width: 5cm"></td>
<td style="width: 150px" ></td>
@@ -330,6 +330,7 @@
:value="getMoneySum(pageIndex)"
style="font-size: 17px;border: 0;width: 100%"/>
</td>
+ <td></td>
</tr>
<tr style="height: 0.65cm"><td></td></tr>
<tr>
diff --git a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyangDetails.vue b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyangDetails.vue
index b9031f1..5ee00cb 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyangDetails.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheetLuoyangDetails.vue
@@ -319,7 +319,7 @@
<el-col :span="5" style="font-size: 16px;white-space: nowrap;">
<input v-model="delivery.project"
- style="border: 0;width: 100%;
+ style="border: 0;width: 250%;
height: 100%;font-size:16px;white-space: nowrap; "/>
</el-col>
</el-row>
@@ -515,7 +515,7 @@
}*/
.foot{
position: absolute;
- bottom: 1cm;
+ bottom: 0.1cm;
//transform: translateY(8cm);
}
/*#table-sum {
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
index 55ac32e..13383ee 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -163,7 +163,7 @@
gridOptions.columns.forEach(item =>{
item.filterMethod = filterChanged
})
- list.value = ['quantity','Storage','gross_area','shippedQuantity','shippedArea','glassQuantity','StorageArea']
+ list.value = ['quantity','Storage','grossArea','shippedQuantity','shippedArea','glassQuantity','StorageArea','broken_num']
title.value = res.data.title
res.data.title.forEach((item,index) =>{
list.value.push('reportWorkQuantity.'+item.process)
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue
index 08ecf40..ba7704d 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcessCollect.vue
@@ -41,7 +41,7 @@
mergeCells:[],
toolbarConfig: {
zoom: true,
- /*custom: true*/
+ // custom: true
},
cellClassName ({ row, column,columnIndex}) {
if (columnIndex>10 && row.thisQuantity*1 === row.reportWorkQuantity[column.title]*1){
@@ -69,24 +69,19 @@
orderId:null
})
const columns = [
- {field: 'order_number',fixed:"left", width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis"},
- // {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
{field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
{field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
- {field: 'technology_number', width: 90,title: t('processCard.technologyNumber'),showOverflow:"ellipsis"},
- {field: 'child_width', width: 90,title: t('order.width'),showOverflow:"ellipsis"},
- {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"},
- {field: 'quantity', width: 90,title: t('order.quantity')},
- {field: 'glassQuantity', width: 90,title: t('order.glassQuantity')},
- {field: 'gross_area', width: 90,title: t('order.area')},
- {field: 'shippedQuantity',width: 120, title: t('delivery.deliveryQuantity')},
- {field: 'inventory',width: 120, title: t('productStock.inventoryQuantity')},
- {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
+ {field: 'technology_number', width: 90,title: t('processCard.technologyNumber'),showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+ {field: 'quantity',slots: { default: 'show'}, width: 90,title: t('order.quantity')},
+ {field: 'thisQuantity', width: 90,title: t('order.glassQuantity')},
+ {field: 'gross_area',slots: { default: 'show'}, width: 90,title: t('order.area')},
+ {field: 'inventory',slots: { default: 'show'},width: 120, title: t('report.inventoryNum')},
+ {field: 'inventoryArea',slots: { default: 'show'},width: 120, title: t('report.StorageArea')},
{field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
]
-let column = [0,1,3,6,7,8,10,11,12,13]
+let column = [0,2,3,5,7,8,9]
onMounted(()=>{
@@ -96,7 +91,9 @@
watch(()=>props.orderId,(newValue)=>{
getWorkOrder()
})
-
+const show = (row,column ) =>{
+ return row[column.field+'Show']
+}
let mergeCells = ref()
const getWorkOrder = () => {
@@ -107,7 +104,9 @@
gridOptions.columns.forEach(item =>{
item.filterMethod = filterChanged
})
- list.value = ['quantity','inventory','inventoryArea','gross_area','shippedQuantity','glassQuantity']
+ console.log(res)
+
+ list.value = ['quantity','thisQuantity','inventory','inventoryArea','gross_area','glassQuantity','broken_num']
res.data.title.forEach((item,index) =>{
list.value.push('reportWorkQuantity.'+item.process)
let column = {slots: { default: 'quantitySum'},
@@ -119,7 +118,7 @@
res.data.data.forEach(item => {
item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity)
item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount)
- item.reportWorkQuantityShow=JSON.parse(item.reportWorkQuantityShow)
+ item.reportWorkQuantityShow=JSON.parse(item.reportWorkQuantityShow)
})
await xGrid.value.loadData(res.data.data)
@@ -145,19 +144,22 @@
}
const footSum =(list, field) => {
- if(xGrid.value.isFilter()){
- return
- }
let count = 0
list.forEach(item => {
if(field.indexOf('.')>-1){
let array = field.split('.')
- count += Number(item[array[0]][array[1]]) || 0
+ //鍒ゆ柇鏄惁涓虹瓫閫夌姸鎬佸拰闈炶鍗曞悎骞剁姸鎬�
+ if(xGrid.value.isFilter() ){
+ count += Number(item[array[0]+'Show'][array[1]]) || 0
+ }else{
+ count += Number(item[array[0]][array[1]]) || 0
+ }
+
}else {
count += Number(item[field]) || 0
}
})
- return count.toFixed(2)
+ return count.toFixed(2).replace(/\.?0+$/, '');
}
const quantitySum = ( row,column )=>{
@@ -200,6 +202,10 @@
<template #quantitySum="{ row,column }">
<span>{{ quantitySum(row,column) }} </span>
</template>
+ <template #show="{ row,column }">
+ <span>{{ show(row,column) }} </span>
+ </template>
+
</vxe-grid>
</div>
diff --git a/north-glass-erp/northglass-erp/src/lang/ar.js b/north-glass-erp/northglass-erp/src/lang/ar.js
index 22414ab..351b860 100644
--- a/north-glass-erp/northglass-erp/src/lang/ar.js
+++ b/north-glass-erp/northglass-erp/src/lang/ar.js
@@ -311,7 +311,8 @@
glassQuantity:'灏忕墖鏁伴噺',
merge:'瀹屾暣妯″紡',
layer:'鍗曠墖妯″紡',
- notFinish:'寰呭畬鎴�'
+ notFinish:'寰呭畬鎴�',
+ processCardCollect:'娴佺▼鍗℃眹鎬�',
},
searchOrder:{
@@ -662,6 +663,7 @@
pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
+ pleaseNumber15:'宸插叆搴撴暟閲忎笉鑳藉ぇ浜庡凡瀹屽伐鏁伴噺',
},
productStock:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/en.js b/north-glass-erp/northglass-erp/src/lang/en.js
index dc07132..b2627b0 100644
--- a/north-glass-erp/northglass-erp/src/lang/en.js
+++ b/north-glass-erp/northglass-erp/src/lang/en.js
@@ -312,7 +312,8 @@
glassQuantity:'灏忕墖鏁伴噺',
merge:'瀹屾暣妯″紡',
layer:'鍗曠墖妯″紡',
- notFinish:'寰呭畬鎴�'
+ notFinish:'寰呭畬鎴�',
+ processCardCollect:'娴佺▼鍗℃眹鎬�',
},
searchOrder:{
@@ -664,7 +665,7 @@
pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
-
+ pleaseNumber15:'宸插叆搴撴暟閲忎笉鑳藉ぇ浜庡凡瀹屽伐鏁伴噺',
},
productStock:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/kr.js b/north-glass-erp/northglass-erp/src/lang/kr.js
index 8b0df0d..65e1a00 100644
--- a/north-glass-erp/northglass-erp/src/lang/kr.js
+++ b/north-glass-erp/northglass-erp/src/lang/kr.js
@@ -321,7 +321,8 @@
glassQuantity:'灏忕墖鏁伴噺',
merge:'瀹屾暣妯″紡',
layer:'鍗曠墖妯″紡',
- notFinish:'寰呭畬鎴�'
+ notFinish:'寰呭畬鎴�',
+ processCardCollect:'娴佺▼鍗℃眹鎬�',
},
searchOrder:{
@@ -671,6 +672,7 @@
pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
+ pleaseNumber15:'宸插叆搴撴暟閲忎笉鑳藉ぇ浜庡凡瀹屽伐鏁伴噺',
},
productStock:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/ru.js b/north-glass-erp/northglass-erp/src/lang/ru.js
index eabbbec..1bb87ca 100644
--- a/north-glass-erp/northglass-erp/src/lang/ru.js
+++ b/north-glass-erp/northglass-erp/src/lang/ru.js
@@ -311,8 +311,8 @@
glassQuantity:'灏忕墖鏁伴噺',
merge:'瀹屾暣妯″紡',
layer:'鍗曠墖妯″紡',
- notFinish:'寰呭畬鎴�'
-
+ notFinish:'寰呭畬鎴�',
+ processCardCollect:'娴佺▼鍗℃眹鎬�',
},
searchOrder:{
createOrder:'袙褘锌懈褋邪褌褜 蟹邪泻邪蟹',
@@ -660,6 +660,7 @@
pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
+ pleaseNumber15:'宸插叆搴撴暟閲忎笉鑳藉ぇ浜庡凡瀹屽伐鏁伴噺',
},
productStock:{
page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
index cbfee4b..20f4b41 100644
--- a/north-glass-erp/northglass-erp/src/lang/zh.js
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -321,7 +321,8 @@
glassQuantity:'灏忕墖鏁伴噺',
merge:'瀹屾暣妯″紡',
layer:'鍗曠墖妯″紡',
- notFinish:'寰呭畬鎴�'
+ notFinish:'寰呭畬鎴�',
+ processCardCollect:'娴佺▼鍗℃眹鎬�',
},
searchOrder:{
@@ -675,6 +676,7 @@
pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
+ pleaseNumber15:'宸插叆搴撴暟閲忎笉鑳藉ぇ浜庡凡瀹屽伐鏁伴噺',
},
productStock:{
page:{
@@ -827,7 +829,7 @@
produce:'鐢熶骇',
traveler:'娴佺▼鍗�',
warehousing:'鍏ュ簱',
- unpaidQuantity:"鏈彂鏁伴噺 ",
+ unpaidQuantity:"璁㈠崟鏈彂鏁伴噺 ",
availableStock:'鍙敤搴撳瓨',
deliveryQuantity:'鍙戣揣鏁伴噺',
pleaseEnterTheAmountOfFunds:'璇疯緭鍏ラ」鐩悕绉�',
diff --git a/north-glass-erp/northglass-erp/src/views/mm/productStock/CreateProductStock.vue b/north-glass-erp/northglass-erp/src/views/mm/productStock/CreateProductStock.vue
index 234ef9c..4993ce7 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/productStock/CreateProductStock.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/productStock/CreateProductStock.vue
@@ -284,7 +284,6 @@
container: container.value,
flowCard: selectRecords
})
-
request.post("/finishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => {
if(res.code==200 && res.data==="true"){
ElMessage.success(t('productStock.receivedSuccessfully'))
diff --git a/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStockList.vue b/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStockList.vue
index 3823495..8b6a42d 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStockList.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/productStock/ProductStockList.vue
@@ -8,11 +8,14 @@
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
import {addListener} from "@/hook/mouseMove";
+import useUserInfoStore from '@/stores/userInfo'
//璇█鑾峰彇
const { t } = useI18n()
+const userStore = useUserInfoStore()
let router=useRouter()
let produceList = ref([])
+let dialogTableVisible = ref(false)
const getTableRow = (row,type) =>{
switch (type) {
case 'edit' :{
@@ -122,7 +125,6 @@
filterData.value[column.property] = value
}
request.post(`/finishedGoodsInventory/getSelect/1/${total.pageSize}`,filterData.value).then((res) => {
-
if(res.code==200){
total.dataTotal = res.data.total.total*1
total.pageTotal= res.data.total.pageTotal
@@ -139,7 +141,6 @@
const selectOrderList = ()=>{
request.post(`/finishedGoodsInventory/getSelect/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => {
-
if(res.code==200){
if (res.data.total!=null){
total.dataTotal = res.data.total.total*1
@@ -233,6 +234,7 @@
{ 'code' :'issue','name':t('productStock.orderTransfer'),status: 'primary'},
{ 'code' :'out','name':t('productStock.finishedProductPickup'),status: 'primary'},
/*{ 'code' :'rework','name':t('productStock.finishedProductRework'),status: 'primary'},*/
+ { 'code' :'changeRack','name':'瑁呯璋冩灦',status: 'primary'},
],
/*import: false,
@@ -261,7 +263,7 @@
})
-
+let currentRecord = ref(null)
const xGrid = ref();
const gridEvents = {
toolbarButtonClick({ code }) {
@@ -270,23 +272,49 @@
switch (code){
case 'issue':{
/*VXETable.modal.confirm('鐐瑰嚮浜嗗簱瀛樿皟鎷�');*/
- router.push({path: '/main/productStock/OrderAllocation'});
- return;
+ router.push({path: '/main/productStock/OrderAllocation'})
break
}
case 'out':{
- router.push({path: '/main/productStock/FinishedGoodsIssue'});
- return;
- break;
+ router.push({path: '/main/productStock/FinishedGoodsIssue'})
+ break
}
case 'rework':{
- router.push({path: '/main/productStock/FinishedProductRework'});
- return;
- break;
+ router.push({path: '/main/productStock/FinishedProductRework'})
+ break
+ }
+ case 'changeRack':{
+ currentRecord.value = null
+ if(xGrid.value.getCurrentRecord()===null){
+ ElMessage.warning(t('productStock.unselectedData'))
+ return
+ }
+ currentRecord.value = JSON.parse(JSON.stringify(xGrid.value.getCurrentRecord()))
+ dialogTableVisible.value = true
+ break
}
}
}
}
+}
+const changeRack =async () => {
+ const max = xGrid.value.getCurrentRecord().quantityAvailable*1 || 0
+ if(currentRecord.value.quantityAvailable<=0 || parseInt(currentRecord.value.quantityAvailable)>max){
+ ElMessage.warning(`0<value<=${xGrid.value.getCurrentRecord().quantityAvailable}`)
+ return
+ }
+ if(currentRecord.value.boxNo.length>255 || currentRecord.value.remark.length>255){
+ ElMessage.warning('绠卞彿鎴栧娉�'+t('basicData.msg.max255'))
+ return
+ }
+ await request.post(`/finishedGoodsInventory/changeRack/${userStore.user.userName}`,currentRecord.value).then((res) => {
+ if(res.code==200 ){
+ ElMessage.success('瑁呯璋冩灦鎴愬姛')
+ router.push({path: '/main/productStock/productStockList', query:{random:Math.random()}})
+ }else{
+ ElMessage.warning(res.msg)
+ }
+ })
}
@@ -345,6 +373,40 @@
</template>
</vxe-grid>
+
+ <el-dialog v-model="dialogTableVisible" style="width: 400px;height:250px;margin-top: 25vh">
+ <el-row>
+ <el-col :span="8">
+ <el-text>绠卞彿:</el-text>
+ </el-col>
+ <el-col :span="16">
+ <el-input v-model="currentRecord.boxNo"/>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="8">
+ <el-text>鏁伴噺:</el-text>
+ </el-col>
+ <el-col :span="16">
+ <el-input v-model="currentRecord.quantityAvailable" type="number"/>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="8">
+ <el-text>澶囨敞:</el-text>
+ </el-col>
+ <el-col :span="16">
+ <el-input v-model="currentRecord.remark"/>
+ </el-col>
+ </el-row>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" @click="changeRack">
+ 璋冩灦
+ </el-button>
+ </div>
+ </template>
+ </el-dialog>
</div>
</template>
@@ -360,4 +422,7 @@
-ms-user-select: none;
user-select: none;
}
+.el-row {
+ margin-bottom: 10px;
+}
</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue b/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue
index 3f43be0..6ebb02a 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue
@@ -293,6 +293,8 @@
}else if(res.data==="false1"){
ElMessage.warning("鍙戣揣鍗曞凡鍒涘缓")
+ }else if(res.data==="false2"){
+ ElMessage.warning("鐗╂枡鍙兘瀛樺湪瑁呯璋冩灦锛屾棤娉曢��鍥�")
}else{
ElMessage.warning(t('productStock.cancellationFailed'))
}
diff --git a/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecordPint.vue b/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecordPint.vue
index 4d6a6fb..7e0317a 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecordPint.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecordPint.vue
@@ -25,18 +25,7 @@
const dialogTableVisible = ref(false)
const dialogTableVisible1 = ref(false)
let produceList = ref([])
-const getTableRow = (row,type) =>{
- switch (type) {
- case 'add' :{
- alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
- break
- }
- case 'delete':{
- alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
- break
- }
- }
-}
+
//鎵撳嵃
let printRow = ref({
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 85f03f8..e2a88af 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
@@ -531,7 +531,14 @@
downGrind: item.downGrind,
leftGrind: item.leftGrind,
rightGrind:item.rightGrind,
- layoutId:item.layoutId,
+ heatLayoutId:item.heatLayoutId,
+ process:item.process,
+ orderNo:item.orderNo,
+ customerName:item.customerName,
+ processingNote:item.processingNote,
+ projectName:item.projectName,
+ productName:item.productName,
+ buildingNumber:item.buildingNumber,
rackNo: rackNoValue
};
});
diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
index 1d3dbbb..eab016e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -431,8 +431,15 @@
}else if(row.quantity_card<row.completedQuantity){
return new Error(t('reportingWorks.pleaseNumber10'))
}
+ const nextProcess = titleUploadData.value.nextProcess//涓嬪伐搴�
+
const completedSum = Number(row.thisQuantitySum) //鎬诲畬宸ユ暟閲�
- const nextQuantitySum = Number(row.nextQuantitySum) //鎬讳笅宸ュ簭瀹屽伐鏁伴噺
+ let nextQuantitySum = ''
+ if (nextProcess!=''){
+ nextQuantitySum = Number(row.nextQuantitySum) //鎬讳笅宸ュ簭瀹屽伐鏁伴噺
+ }else {
+ nextQuantitySum = Number(row.received_quantity) //鎬讳笅宸ュ簭瀹屽伐鏁伴噺
+ }
const totalQuantity = Number(row.quantity) //鍙畬宸ユ暟閲�
const val = Number(cellValue) //杈撳叆鍊�
@@ -450,21 +457,37 @@
`)
}
if(titleUploadData.value.reportingWorkId!=null){
- if(row.completedQuantityComputed>=row.minQuantity ){
- if((val<(row.completedQuantityComputed-row.minQuantity || val>=row.completedQuantityComputed))){
- return new Error(`${row.completedQuantityComputed-row.minQuantity}
+ if (nextProcess!=''){//闈炴渶鍚庝竴閬撳伐搴�
+ if(row.completedQuantityComputed>=row.minQuantity ){
+ if((val<(row.completedQuantityComputed-row.minQuantity || val>=row.completedQuantityComputed))){
+ return new Error(`${row.completedQuantityComputed-row.minQuantity}
<=val<=
${row.completedQuantityComputed}`)
- }
- }else{
- if((val>row.completedQuantityComputed)){
- return new Error(`val
+ }
+ }else{
+ if((val>row.completedQuantityComputed)){
+ return new Error(`val
<=
${row.completedQuantityComputed}`)
+ }
+ }
+ }else {//鏈�鍚庝竴閬撳伐搴�
+ if (val<row.completedQuantityComputed){
+ //搴撳瓨鏁伴噺銆佸凡鍏ュ簱鏁伴噺
+ if (val>(row.inventory_quantity-row.received_quantity)){
+ return new Error(`val
+ <=
+ ${row.inventory_quantity-row.received_quantity}`)
+ }else {
+ if (val < (row.inventory_quantity-row.received_quantity)){
+ //瀹屽伐鎬绘暟銆佹湰娆″畬宸ユ暟銆佸凡鍏ュ簱鏁伴噺
+ if (completedSum-row.completedQuantityComputed <row.received_quantity){
+ return new Error(`${t('reportingWorks.pleaseNumber15')}`)
+ }
+ }
+ }
}
}
-
-
}
}
@@ -1523,7 +1546,8 @@
orderId: titleUploadData.value.orderId
},
processId:processIdStr,
- orderNumber:item.order_number
+ orderNumber:item.order_number,
+ inventoryQuantity:item.completedQuantity
}));
let flowData = ref({
decValue:company.decValue,
diff --git a/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue b/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue
index 884570f..32215fe 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue
@@ -119,38 +119,28 @@
columns:[
{title: t('basicData.operate'), width: 110, slots: { default: 'button_slot' },fixed:"left",},
{type: 'seq', title: t('basicData.Number'), width: 80 ,fixed:"left",},
-
- {field:'createOrder',title: t('searchOrder.createOrder'), width: 40, slots: { default: 'state' }},
- {field:'processReview',title: t('order.technology'), width: 40, filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
- {field:'orderReview',title: t('basicData.review'), width: 40, filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
- {field:'productionOrder',title: t('searchOrder.production'), width: 40, filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
- {field:'processingCard',title: t('searchOrder.process'), width: 40, filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
- {field:'warehousing',title: t('searchOrder.storage'), width: 40, filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
- {field:'delivery',title: t('searchOrder.delivery'), width: 40,filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }},
-
-
{field: 'orderId',width:120, title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'customerId',width:120, title: t('customer.customerNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'customerName',width:120, title: t('customer.customerName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'project',width:120, title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'batch',width:120, title: t('order.batch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'quantity',width:120, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'goodsQuantity',width:120, title: t('searchOrder.inventoryNum'), sortable: true},
+ // {field: 'goodsQuantity',width:120, title: t('searchOrder.inventoryNum'), sortable: true},
{field: 'area',width:120, title: t('order.computeGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ {field: 'bomPrice',width:120, title: 'BOM鎴愭湰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'money',width:120, title: t('order.money'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'createTime',width:120,filters:[{ data: '' }],slots: { filter: 'num1_filter' }, title: t('basicData.reportData'), sortable: true},
- {field: 'updateTime',width:120, title: t('productStock.approvedDate'), sortable: true},
{field: 'packType',width:120, title: t('order.packType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'orderType',width:120, title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'salesman',width:120, title: t('order.salesman'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'creator',width:120, title: t('product.creator'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'verifier',width:120, title: t('basicData.review'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ //{field: 'verifier',width:120, title: t('basicData.review'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'perimeter',width:120, title: t('searchOrder.perimeter'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'deliveryDate',width:120, title: t('order.deliveryDate'), sortable: true},
{field: 'customerBatch',width:120, title: t('order.customerBatch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
//{field: '14',width:120, title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
- {field: 'deliveryAddress',width:120, title: t('order.deliveryAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+ //{field: 'deliveryAddress',width:120, title: t('order.deliveryAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
{field: 'processingNote',width:120, title: t('order.processingNote'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
],
@@ -180,10 +170,10 @@
if (columnIndex === 0) {
return t('basicData.total')
}
- const List = ["quantity",'goodsQuantity','area','perimeter','money']
+ const List = ["quantity",'goodsQuantity','area','perimeter','money','bomPrice']
if (List.includes(column.field)) {
- //return footSum(data, column.field)
- return total.value[column.field]
+ return footSum(data, column.field)
+ //return total.value[column.field]
}
return ''
})
@@ -383,6 +373,9 @@
/*total.dataTotal = res.data.total.dataTotal*1
total.pageTotal= res.data.total.pageTotal*/
orderInfo.selectDate = res.data.selectDate
+ res.data.data.forEach((item)=>{
+ item.bomPrice=(item.money/1.3).toFixed(2)
+ })
orderList.value = deepClone(res.data.data)
xGrid.value.loadData(orderList.value)
}else{
@@ -598,7 +591,7 @@
link
type="primary"
size="small">
- 鐢熸垚BOM
+ BOM鏌ヨ
</el-button>
</template>
@@ -693,6 +686,7 @@
<el-col :span="8">鍏朵粬锛�</el-col>
<el-col :span="8">5</el-col>
</el-row>
+ <template #footer>鍚堣xxx鍏�</template>
</el-card>
@@ -725,7 +719,7 @@
<el-col :span="8">5</el-col>
</el-row>
-<!-- <template #footer>鍚堣xx鍏�</template>-->
+ <template #footer>鍚堣xxx鍏�</template>
</el-card>
<el-card style="max-width: 480px;margin-left: 45px;margin-top: 20px">
@@ -753,8 +747,16 @@
<el-col :span="8">853.11銕�</el-col>
</el-row>
- <!-- <template #footer>鍚堣xx鍏�</template>-->
+ <template #footer>鍚堣xxx鍏�</template>
</el-card>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary">杞噰璐崟</el-button>
+ <el-button type="primary">
+ 棰嗘枡
+ </el-button>
+ </div>
+ </template>
</el-dialog>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
index 27b8def..40662a0 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -320,13 +320,14 @@
{field: 'select',type:'checkbox',title: t('basicData.check'), width: 80,fixed:"left"},
{type: 'seq', title: t('basicData.Number'), width: 80 ,fixed:"left"},
{field: 'orderId',width:120, title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'orderNumber',width:120, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field: 'finishedGoodsInventory.boxNo',width:120, title: t('绠卞彿'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field: 'productName',width:120, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field: 'width',width:120, title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field: 'height',width:120, title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field: 'deliveryDetail.quantity',width:120, title: t('delivery.deliveryQuantity'),editRender: { name: 'input' },filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged},
{field: 'finishedGoodsInventory.quantityAvailable',width:120, title: t('delivery.availableStock'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
- {field: 'order.quantity',width:120, title: t('delivery.unpaidQuantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+ {field: 'order.quantity',width:160, title: t('delivery.unpaidQuantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field: 'quantity',width:120, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
//{field: 'buildingNumber',width:120, title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
{field: 'productId',width:120, title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
index 93c0818..83e5bbe 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -21,6 +21,7 @@
import PrintSheet3 from "@/components/sd/order/PrintSheet3.vue"
import PrintSheet4 from "@/components/sd/order/PrintSheet4.vue"
import PrintSheet5 from "@/components/sd/order/PrintSheet5.vue"
+import OrderProcessCollect from "@/components/sd/order/OrderProcessCollect.vue";
const { t } = useI18n()
const orderInfo = useOrderInfoStore()
const userStore = useUserInfoStore()
@@ -753,6 +754,13 @@
:row="rowClickIndex===null?{}:rowClickIndex"
/>
</el-tab-pane>
+ <el-tab-pane :label="$t('order.processCardCollect')" name="4">
+ <order-process-collect
+ v-if="tabsValue==='4'"
+ :orderId="rowClickIndex===null?null:rowClickIndex.orderId"
+ :row="rowClickIndex===null?{}:rowClickIndex"
+ />
+ </el-tab-pane>
</el-tabs>
</div>
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
index d53c7ab..787890b 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java
@@ -209,4 +209,12 @@
public Result getSelectPrints( @RequestBody Map<String, Object> object){
return Result.seccess(finishedGoodsInventoryService.getSelectPrintSvs(object));
}
+
+ @ApiOperation("鎴愬搧瑁呯璋冩灦")
+ @SaCheckPermission("createProductStock.add")
+ @PostMapping("/changeRack/{user}")
+ public Result changeRack( @RequestBody FinishedGoodsInventory finishedGoodsInventory,@PathVariable String user){
+ return Result.seccess(finishedGoodsInventoryService.changeRack(finishedGoodsInventory,user));
+
+ }
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java
index bd66074..8981f66 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java
@@ -1,6 +1,7 @@
package com.example.erp.entity.mm;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.example.erp.entity.sd.*;
import lombok.Data;
@@ -27,8 +28,11 @@
private LocalDate endTime;
private String processId;
private String boxNo;
+ @TableField(select = false,exist = false)
private Order order;
+ @TableField(select = false,exist = false)
private OrderDetail orderDetail;
+ @TableField(select = false,exist = false)
private Double weight;
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
index 2010c30..110ff08 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
@@ -1,20 +1,20 @@
package com.example.erp.mapper.mm;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.dto.otherSystem.GlassDetailList;
import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.*;
-import com.example.erp.entity.userInfo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.repository.CrudRepository;
-import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@Mapper
-public interface FinishedGoodsInventoryMapper extends CrudRepository<FinishedGoodsInventory,Long> {
+public interface FinishedGoodsInventoryMapper extends BaseMapper<FinishedGoodsInventory> {
@@ -34,7 +34,7 @@
Map<String,Integer> getSelectWarehousingPageTotal(Integer offset, Integer pageSize,FlowCard flowCard);
Integer findOrderNumberdcount(@Param("orderId") String orderId,
- @Param("orderNumber") Integer orderNumber);
+ @Param("orderNumber") Integer orderNumber, String boxNo);
FinishedGoodsInventory findOrderNumberd(@Param("orderId") String orderId,
@Param("orderNumber") Integer orderNumber);
@@ -88,7 +88,7 @@
Boolean updateDeliveryDeliveryState(String deliveryId,Integer state);
Boolean updateDeliveryDetailState(@Param("orderId") String orderId,
- @Param("orderNumber") Integer orderNumber,@Param("deliveryId") String deliveryId,Integer state);
+ @Param("orderNumber") Integer orderNumber, @Param("deliveryId") String deliveryId, Integer state, String remarks);
Boolean insertFinishedGoodsInventory(@Param("flowCard") FlowCard flowCard,
@Param("storageRegion") String storageRegion,
@@ -117,18 +117,22 @@
@Param("quantity") Integer quantity);
Boolean updateInventoryquantityOut(@Param("orderId") String orderId,
- @Param("orderNumber") Integer orderNumber,
- @Param("quantity") Integer quantity);
+ @Param("orderNumber") Integer orderNumber,
+ @Param("quantity") Integer quantity,
+ @Param("boxNo") String boxNo);
Boolean updateInventoryquantityInt(@Param("orderId") String orderId,
- @Param("orderNumber") Integer orderNumber,
- @Param("quantity") Integer quantity);
+ @Param("orderNumber") Integer orderNumber,
+ @Param("quantity") Integer quantity);
+ Boolean updateInventoryquantityIntBybox(@Param("orderId") String orderId,
+ @Param("orderNumber") Integer orderNumber,
+ @Param("quantity") Integer quantity, String boxNo);
Boolean updateInventoryInventoryOut(@Param("orderId") String orderId,
- @Param("orderNumber") Integer orderNumber,
- @Param("quantity") Integer quantity);
+ @Param("orderNumber") Integer orderNumber,
+ @Param("quantity") Integer quantity, String boxNo);
Boolean updateInventoryInventoryInt(@Param("orderId") String orderId,
- @Param("orderNumber") Integer orderNumber,
- @Param("quantity") Integer quantity);
+ @Param("orderNumber") Integer orderNumber,
+ @Param("quantity") Integer quantity, String remarks);
List<OrderDetail> getSelectOrderDetail(String orderId);
@@ -139,7 +143,7 @@
FlowCard findFlowCard(FlowCard flowCard);
DeliveryDetail findDeliverydetail(@Param("orderId") String orderId,
- @Param("orderNumber") Integer orderNumber,@Param("deliveryId") String deliveryId);
+ @Param("orderNumber") Integer orderNumber, @Param("deliveryId") String deliveryId, String boxNo);
Integer findOrderNumberdContainercount(String orderId, Integer orderNumber, String container);
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
index 6bd9690..5cbc12e 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedOperateLogMapper.java
@@ -1,7 +1,7 @@
package com.example.erp.mapper.mm;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.erp.dto.mm.FinishedOperateLogDTO;
-import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.OrderDetail;
@@ -14,14 +14,14 @@
import java.util.Map;
@Mapper
-public interface FinishedOperateLogMapper extends CrudRepository<FinishedOperateLog,Long> {
+public interface FinishedOperateLogMapper extends BaseMapper<FinishedOperateLog> {
FinishedOperateLog getselectFinishedOperateLog();
Boolean insertIntFinishedOperateLog(@Param("flowCard") FlowCard flowCard ,@Param("userName") String userName,
@Param("oddNumber") String oddNumber,@Param("container") String container,
@Param("deliveryDetailMoney") Double deliveryDetailMoney,@Param("deliveryDetailArea") Double deliveryDetailArea);
- Boolean insertOutFinishedOperateLog(@Param("orderDetail") OrderDetail orderDetail,@Param("userName") String userName,@Param("oddNumber") String oddNumber);
+ Boolean insertOutFinishedOperateLog(@Param("orderDetail") OrderDetail orderDetail, @Param("userName") String userName, @Param("oddNumber") String oddNumber, String boxNo);
Boolean insertFinishedOperateLogAllocate(@Param("orderDetail") OrderDetail orderDetail,@Param("userName") String userName,@Param("oddNumber") String oddNumber);
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/DamageDetailsMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/DamageDetailsMapper.java
index bbab6fd..5eb0fb3 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/DamageDetailsMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/DamageDetailsMapper.java
@@ -1,10 +1,15 @@
package com.example.erp.mapper.pp;
+import com.baomidou.mybatisplus.core.assist.ISqlRunner;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.erp.entity.pp.DamageDetails;
import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
@Mapper
public interface DamageDetailsMapper extends BaseMapper<DamageDetails> {
- Integer getBehindDamageSum(String processId, String orderNumber, String technologyNumber, String behindProcess);
+ Integer getBehindDamageSum(String processId, String orderNumber, String technologyNumber, String behindProcess,Integer needOrderNumber);
+
+ List<DamageDetails> getNotReview(String processId, String orderNumber,String technologyNumber);
}
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java
index a99f2ca..32aba77 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java
@@ -21,6 +21,7 @@
List<Map<String,String>> filterOrderProcess(String orderId);
List<Map<String,Object>> getGlassLRow(String orderId);
+ List<Map<String,Object>> getProcessGlassLRow(String orderId);
List<Map<String, String>> filterLastProcess(String orderId, String orderNumber, String technologyNumber,String id);
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index c57f5f4..32149f0 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -3,7 +3,9 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.example.erp.dto.mm.FinishedOperateLogDTO;
import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
@@ -28,12 +30,9 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.sql.SQLException;
-import java.sql.Wrapper;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
-import java.util.stream.Collectors;
@Service
@DS("mm")
@@ -424,7 +423,7 @@
//娣诲姞棰嗗嚭璁板綍
finishedOperateLogMapper.insertFinishedOperateLogTakeOut(orderDetail,userName,oddNumber,operateType,remarks);
//淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()), orderDetail.getDeliveryDetail().getBoxNo());
//淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
if (Objects.equals(oldordersum, oldordernumbersum)){
@@ -507,7 +506,7 @@
//娣诲姞棰嗗嚭璁板綍
finishedOperateLogMapper.insertFinishedOperateLogRework(orderDetail,userName,oddNumber,operateType,remarks);
//淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()), orderDetail.getDeliveryDetail().getBoxNo());
//淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
if (Objects.equals(oldordersum, oldordernumbersum)){
@@ -557,13 +556,13 @@
//瀹℃牳淇敼棰嗗嚭璁板綍
finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"宸插鏍�");
//瀹℃牳淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()),finishedOperateLog.getRemarks());
log.setFunction("updateFinishedGoodsInventoryToExamine瀹℃牳");
} else if (Objects.equals(type, "鍙嶅")) {
//瀹℃牳淇敼棰嗗嚭璁板綍
finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"鏈鏍�");
//瀹℃牳淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()), finishedOperateLog.getRemarks());
log.setFunction("updateFinishedGoodsInventoryToExamine鍙嶅");
}
@@ -800,6 +799,8 @@
alias="LC";
}else if(Objects.equals(type, "杩斿伐")){
alias="FG";
+ }else if(Objects.equals(type, "璋冩灦")){
+ alias="TJ";
}
//鏌ヨ褰撳ぉ鐨勬渶澶ф暟閲�
Integer maximum=finishedOperateLogMapper.getmaximum(type);
@@ -861,7 +862,10 @@
}
Map<String, Object> itemmap = new HashMap<>();
- itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(finishedOperateLog.getOrder().getCustomerName(),finishedOperateLog.getOrder().getProject(),finishedOperateLog.getRemarks()));
+ itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(
+ finishedOperateLog.getOrder().getCustomerName(),
+ finishedOperateLog.getOrder().getProject(),
+ finishedOperateLog.getRemarks()));
List<Map<String, Object>> detailList = finishedOperateLogMapper.getDetailList2(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks());
@@ -904,21 +908,33 @@
String oddNumber= orderNumberSetting("鍑哄簱");
OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
//娣诲姞鍑哄叆搴撹褰�
- finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
- Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
+ finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber,orderDetail.getDeliveryDetail().getBoxNo());
+ //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪
+ Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getBoxNo());
+ //鑾峰彇璁㈠崟鎬绘暟閲�
Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
+ //鑾峰彇搴撳瓨鎬绘暟閲�
Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
+ //鑾峰彇鍙戣揣鎬绘暟閲�
Integer orderNumberdDeliverysum = finishedGoodsInventoryMapper.findOrderDeliveryQuantitySum(orderDetail.getDeliveryDetail().getOrderId());
+ //鑾峰彇姝ゅ彂璐у崟 鍙戣揣鎬绘暟閲�
Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
+ //鑾峰彇宸茬粡鍑哄簱鐨勬暟閲�
Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
if(deliverydetailsum==null){
deliverydetailsum=0;
}
- DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
+ DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.
+ findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),
+ orderDetail.getDeliveryDetail().getOrderNumber(),
+ orderDetail.getDeliveryDetail().getDeliveryId(),
+ orderDetail.getDeliveryDetail().getBoxNo()
+
+ );
/*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" +
orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" +
deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/
@@ -928,9 +944,9 @@
if(deliveryDetail==null){
if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
//淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
- finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+ finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity(),orderDetail.getDeliveryDetail().getBoxNo());
//淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
+ finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0, orderDetail.getDeliveryDetail().getBoxNo());
//淇敼鍙戣揣琛ㄧ姸鎬�
finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
//淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
@@ -974,7 +990,19 @@
if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){
Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId());
- if(delivery==null){
+ FinishedGoodsInventory existFinishedGoodsInventory = finishedGoodsInventoryMapper.
+ selectOne(new LambdaQueryWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getOrderId, finishedOperateLog.getOrderId())
+ .eq(FinishedGoodsInventory::getOrderNumber, finishedOperateLog.getOperationNumber())
+ .eq(FinishedGoodsInventory::getBoxNo, finishedOperateLog.getRemarks())
+ );
+ if(delivery!=null){
+ return "false1";
+ }
+ if(existFinishedGoodsInventory.getQuantityAvailable()<finishedOperateLog.getQuantity()){
+ return "false2";
+ }
+
//淇敼璁板綍琛�
finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
//淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
@@ -996,9 +1024,7 @@
finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
}
log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱");
- }else{
- return "false1";
- }
+
@@ -1006,9 +1032,19 @@
//淇敼璁板綍琛�
finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
//淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
- finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
+ finishedGoodsInventoryMapper.updateInventoryInventoryInt(
+ finishedOperateLog.getOrderId(),
+ finishedOperateLog.getOperationNumber(),
+ finishedOperateLog.getQuantity(),
+ finishedOperateLog.getRemarks()
+ );
//淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
+ finishedGoodsInventoryMapper.updateDeliveryDetailState(
+ finishedOperateLog.getOrderId(),
+ finishedOperateLog.getOperationNumber(),
+ finishedOperateLog.getOperationOrderNumber(),
+ 1,
+ finishedOperateLog.getRemarks());
//淇敼鍙戣揣琛ㄧ姸鎬�
finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1);
//淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲�
@@ -1032,4 +1068,103 @@
}
return "true";
}
+
+ public Map<String,Object> changeRack(FinishedGoodsInventory finishedGoodsInventory, String user) {
+ Long id = finishedGoodsInventory.getId();
+ Map<String,Object> map = new HashMap<>();
+ FinishedGoodsInventory oldFinishedGoodsInventory = finishedGoodsInventoryMapper.selectById(finishedGoodsInventory.getId());
+
+ //鏌ヨ姝ゆ搴忓彿绠卞彿鐨勫簱瀛樻槸鍚﹀瓨鍦�
+ FinishedGoodsInventory existFinishedGoodsInventory = finishedGoodsInventoryMapper
+ .selectOne(new LambdaQueryWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getOrderId, finishedGoodsInventory.getOrderId())
+ .eq(FinishedGoodsInventory::getOrderNumber, finishedGoodsInventory.getOrderNumber())
+ .eq(FinishedGoodsInventory::getBoxNo, finishedGoodsInventory.getBoxNo())
+ .last("limit 1")
+ );
+ String operationOrderNumber = orderNumberSetting("璋冩灦");
+ FinishedOperateLog finishedOperateLog = new FinishedOperateLog();
+ finishedOperateLog.setOperationOrderNumber(operationOrderNumber);
+ finishedOperateLog.setOrderId(oldFinishedGoodsInventory.getOrderId());
+ finishedOperateLog.setOperationNumber(oldFinishedGoodsInventory.getOrderNumber());
+ finishedOperateLog.setProcessId(oldFinishedGoodsInventory.getProcessId());
+ finishedOperateLog.setOperateType("璋冩灦");
+ finishedOperateLog.setOperator(user);
+ //褰撴垚鍝佺鍙蜂笉瀛樺湪锛屽垯鏂板
+ if(existFinishedGoodsInventory==null){
+ //褰撹浆绉绘暟閲忓ぇ浜庡疄闄呭簱瀛樼鍙锋椂锛屽垯涓嶈兘杞Щ
+ if(oldFinishedGoodsInventory.getQuantityAvailable()<finishedGoodsInventory.getQuantityAvailable()){
+ map.put("code",0);
+ return map;
+ }
+ //鍘熷簱瀛� 鏁伴噺闈㈢Н鍑忓皯
+ oldFinishedGoodsInventory.setInventory(oldFinishedGoodsInventory.getInventory()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setQuantityAvailable(oldFinishedGoodsInventory.getQuantityAvailable()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getActualSignalArea());
+
+ //鏂板簱瀛樻暟鎹鍔�
+ finishedGoodsInventory.setId(null);
+ finishedGoodsInventory.setInventory(finishedGoodsInventory.getQuantityAvailable());
+ finishedGoodsInventory.setArea(finishedGoodsInventory.getQuantityAvailable()*finishedGoodsInventory.getActualSignalArea());
+
+ finishedGoodsInventoryMapper.
+ update(oldFinishedGoodsInventory,
+ new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,id)
+ ) ;
+ finishedGoodsInventoryMapper.insert(finishedGoodsInventory);
+
+
+ //寰�鎿嶄綔鏃ュ織琛ㄦ坊鍔犳暟鎹�
+ finishedOperateLog.setQuantity(finishedGoodsInventory.getQuantityAvailable());
+ finishedOperateLog.setRemarks(oldFinishedGoodsInventory.getBoxNo()+"->"+finishedGoodsInventory.getBoxNo());
+ finishedOperateLogMapper.insert(finishedOperateLog);
+
+ map.put("code",1);
+ return map;//搴撳瓨杞Щ鎴愬姛锛屾柊澧炵鍙�
+
+ }else{
+ //褰搃d涓嶅彉鏃讹紝淇敼澶囨敞
+ if(Objects.equals(id, existFinishedGoodsInventory.getId())){
+ finishedGoodsInventoryMapper.
+ update(null,new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,id)
+ .set(FinishedGoodsInventory::getRemark,finishedGoodsInventory.getRemark()));
+ map.put("code",2);
+ return map;//搴撳瓨澶囨敞淇敼鎴愬姛
+ }else{
+ //鍘熷簱瀛� 鏁伴噺闈㈢Н鍑忓皯
+ oldFinishedGoodsInventory.setInventory(oldFinishedGoodsInventory.getInventory()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setQuantityAvailable(oldFinishedGoodsInventory.getQuantityAvailable()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getActualSignalArea());
+
+ existFinishedGoodsInventory.setInventory(existFinishedGoodsInventory.getInventory()+finishedGoodsInventory.getQuantityAvailable());
+ existFinishedGoodsInventory.setQuantityAvailable(existFinishedGoodsInventory.getQuantityAvailable()+finishedGoodsInventory.getQuantityAvailable());
+ existFinishedGoodsInventory.setArea(existFinishedGoodsInventory.getInventory()*existFinishedGoodsInventory.getActualSignalArea());
+
+ finishedGoodsInventoryMapper.
+ update(oldFinishedGoodsInventory,
+ new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,id)
+ ) ;
+ finishedGoodsInventoryMapper.
+ update(existFinishedGoodsInventory,
+ new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,existFinishedGoodsInventory.getId())
+ ) ;
+
+ //寰�鎿嶄綔鏃ュ織琛ㄦ坊鍔犳暟鎹�
+ finishedOperateLog.setQuantity(finishedGoodsInventory.getQuantityAvailable());
+ finishedOperateLog.setRemarks(oldFinishedGoodsInventory.getBoxNo()+"->"+existFinishedGoodsInventory.getBoxNo());
+ finishedOperateLogMapper.insert(finishedOperateLog);
+
+ map.put("code",3);
+ List<String> list = new ArrayList<>();
+ list.add(oldFinishedGoodsInventory.getBoxNo());
+ list.add(existFinishedGoodsInventory.getBoxNo());
+ map.put("msg",list);
+ return map;//搴撳瓨杞Щ鎴愬姛锛屼慨鏀圭鍙�
+ }
+ }
+ }
}
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 7e304ce..4c04559 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
@@ -193,14 +193,11 @@
});
//鍒ゆ柇鍚庡伐搴忔娴佺▼鍗″彿鏄惁鏈夋鐮�
List<DamageDetails> hasBreak = damageDetailsMapper
- .selectList(new LambdaQueryWrapper<DamageDetails>()
- .eq(DamageDetails::getProcessId, dataList.get(i).get("processId"))
- .eq(DamageDetails::getOrderNumber, dataList.get(i).get("order_number"))
- .eq(DamageDetails::getTechnologyNumber, dataList.get(i).get("technology_number"))
- .eq(DamageDetails::getPatchStatus, 0)
- .gt(DamageDetails::getBreakageQuantity,0)
-
+ .getNotReview(dataList.get(i).get("process_id"),
+ String.valueOf(dataList.get(i).get("order_number")),
+ String.valueOf(dataList.get(i).get("technology_number"))
);
+
if(!hasBreak.isEmpty()){
int finalI = i;
data.forEach((thisProcess, index)->{
@@ -216,7 +213,7 @@
dataList.get(finalI).get("processId"),
String.valueOf(dataList.get(finalI).get("order_number")),
String.valueOf(dataList.get(finalI).get("technology_number")),
- behindProcess
+ behindProcess,1
);
if(behindDamageSum>0){
data.put(thisProcess, String.valueOf(Integer.parseInt(data.get(thisProcess) )- behindDamageSum));
@@ -826,9 +823,138 @@
List<Map<String, String>> dataList = reportMapper.processCardProgressCollectMp(orderId);
//鑾峰彇琛ㄥご宸ュ簭绛涢�夋暟鎹�
List<Map<String, String>> uniqueList = orderProcessDetailMapper.filterOrderProcess(orderId);
-
map.put("title", uniqueList);
- return null;
+ Map<String,Map<String,Object>> clos = new HashMap<>();
+ for (int i=0;i<uniqueList.size();i++){
+ //鏍规嵁娴佺▼鏌ヨ鍩虹鏁版嵁
+ BasicData basicData = basicDataMapper.selectOne(
+ new QueryWrapper<BasicData>()
+ .eq("basic_category","process")
+ .eq("basic_name",uniqueList.get(i).get("process"))
+ .last("limit 1")
+ );
+ Map<String,Object> getCol = new HashMap<>();
+ //鍒ゆ柇澶硅兌鍜屽す鑳跺悗宸ュ簭
+ //Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC")
+ if(Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC")){
+ getCol.put("col", 11+i);
+ getCol.put("step","stepA");
+ clos.put(uniqueList.get(i).get("process"), getCol);
+ }
+ //鍒ゆ柇涓┖鍜屼腑绌哄悗宸ュ簭
+ //Objects.equals(basicData.getNickname(), "stepB") || Objects.equals(basicData.getNickname(), "stepD")
+ if(Objects.equals(basicData.getNickname(), "stepB") || Objects.equals(basicData.getNickname(), "stepD")){
+ columns.add(11+i);
+ getCol.put("col", 11+i);
+ getCol.put("step","stepB");
+ clos.put(uniqueList.get(i).get("process"), getCol);
+ }
+ }
+ List<Map<String, Object>> getRowCount = orderProcessDetailMapper.getGlassLRow(orderId);
+ List<Map<String, Integer>> rowCount = new ArrayList<>();
+ columns.forEach(col -> {
+ getRowCount.forEach(row -> {
+ Map<String, Integer> getRow = new HashMap<>();
+ // { row: 0, col: 1, rowspan: 3, colspan: 0},
+ getRow.put("row", ((Number) row.get("RowNum")).intValue());
+ getRow.put("col", col);
+ getRow.put("rowspan", ((Number) row.get("rowCount")).intValue());
+ getRow.put("colspan", 0);
+ rowCount.add(getRow);
+ });
+ });
+
+ //寰幆缁撴灉
+ for (int i=0;i<dataList.size();i++ ) {
+ dataList.get(i).put("reportWorkQuantityShow",dataList.get(i).get("reportWorkQuantity"));
+ Map<String, String> data = JSON.parseObject(dataList.get(i).get("reportWorkQuantity"),
+ new TypeReference<Map<String, String>>() {
+ });
+ Map<String, String> dataShow = JSON.parseObject(dataList.get(i).get("reportWorkQuantityShow"),
+ new TypeReference<Map<String, String>>() {
+ });
+ //鍒ゆ柇鍚庡伐搴忔娴佺▼鍗″彿鏄惁鏈夋鐮�
+ List<DamageDetails> hasBreak = damageDetailsMapper
+ .getNotReview(dataList.get(i).get("process_id"),
+ null,
+ String.valueOf(dataList.get(i).get("technology_number"))
+ );
+
+ if(!hasBreak.isEmpty()){
+ int finalI = i;
+ data.forEach((thisProcess, index)->{
+ String behindProcess = orderProcessDetailMapper.getBehindProcess(
+ dataList.get(finalI).get("process_id"),
+ String.valueOf(dataList.get(finalI).get("order_number")),
+ String.valueOf(dataList.get(finalI).get("technology_number")),
+ thisProcess,
+ orderId
+ );
+
+ if(behindProcess!=null &&!behindProcess.isEmpty()){
+ Integer behindDamageSum = damageDetailsMapper.getBehindDamageSum(
+ dataList.get(finalI).get("process_id"),
+ String.valueOf(dataList.get(finalI).get("order_number")),
+ String.valueOf(dataList.get(finalI).get("technology_number")),
+ behindProcess,
+ null
+ );
+ if(behindDamageSum>0){
+ data.put(thisProcess, String.valueOf(Integer.parseInt(data.get(thisProcess) )- behindDamageSum));
+ dataShow.put(thisProcess, String.valueOf(Integer.parseInt(dataShow.get(thisProcess) )- behindDamageSum));
+ }
+
+ }
+ });
+
+ }
+
+ if(!clos.isEmpty()){
+ Integer max = orderGlassDetailMapper
+ .getMaxTechnologyNumberByGroup(dataList.get(i).get("order_id"),
+ String.valueOf(dataList.get(i).get("order_number")),
+ String.valueOf(dataList.get(i).get("group"))
+ );
+ Integer min = orderGlassDetailMapper
+ .getMinTechnologyNumberByGroup(dataList.get(i).get("order_id"),
+ String.valueOf(dataList.get(i).get("order_number")),
+ String.valueOf(dataList.get(i).get("group"))
+ );
+
+ for (String key : clos.keySet()) {
+ if(data.get(key) != null){
+ //鍒ゆ柇鏄す鑳跺伐搴�
+ if( clos.get(key).get("step")=="stepA"){
+ if(min == Integer.parseInt(String.valueOf(dataList.get(i).get("technology_number"))) ){
+ Map<String, Integer> getRow = new HashMap<>();
+ getRow.put("row", i );
+ getRow.put("col", (Integer) clos.get(key).get("col"));
+ getRow.put("rowspan", max-min+1);
+ getRow.put("colspan", 0);
+ rowCount.add(getRow);
+ }else{
+ data.put(key,"0");
+ }
+ }else{//涓┖锛屼腑绌哄悗宸ュ簭
+ //灏忕墖搴忓彿涓嶆槸1 鐨勬椂鍊欒祴鍊�0
+ if(Integer.parseInt(String.valueOf(dataList.get(i).get("technology_number"))) !=1){
+ data.put(key,"0");
+ }
+ }
+ }
+ }
+ }
+ dataList.get(i).put("reportWorkQuantity",JSON.toJSONString(data));
+ dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow));
+
+ }
+
+ map.put("mergeCells", rowCount);
+
+ map.put("data",dataList);
+
+
+ return map;
}
public Map<String, Object> processCardProgressReportSv(String orderId, List<Integer> columns) {
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 6500b96..6734c72 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
@@ -636,18 +636,7 @@
log.setFunction("deleteWork鎶ュ伐鍒犻櫎");
log.setOperatorId(userId);
log.setOperator(userName);
- if(reportingWork.getReviewedState()==0){
- //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
- List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
- for (Map<String, Object> item : workDateList) {
- //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
- reportingWorkMapper.updateWorkProcess(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"), item.get("breakage_quantity"), thisProcess);
- }
- //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
- reportingWorkMapper.deleteWork(reportingWorkId);
- logService.saveLog(log);
- return true;
- }
+
//鍒ゆ柇鏄惁鏄叆搴撳伐搴�
if (lastProcess.equals(thisProcess)) {//鏄叆搴撳伐搴�
@@ -683,6 +672,19 @@
}
} else {//涓嶆槸鍏ュ簱宸ュ簭
+ if(reportingWork.getReviewedState()==0){
+ //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
+ List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
+ for (Map<String, Object> item : workDateList) {
+ //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
+ reportingWorkMapper.updateWorkProcess(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"), item.get("breakage_quantity"), thisProcess);
+ }
+ //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
+ reportingWorkMapper.deleteWork(reportingWorkId);
+ logService.saveLog(log);
+ return true;
+ }
+
if (count == 0) {
//鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
index 70f76b1..74b716a 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -6,11 +6,9 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.dynamic.datasource.annotation.DS;
-import com.example.erp.dto.mm.FinishedOperateLogDTO;
import com.example.erp.dto.sd.DeliveryDetailDTO;
import com.example.erp.dto.sd.DeliveryDetailProductDTO;
import com.example.erp.entity.mm.FinishedOperateLog;
-import com.example.erp.entity.pp.BasicDataProduce;
import com.example.erp.entity.sd.*;
import com.example.erp.entity.userInfo.Log;
import com.example.erp.entity.userInfo.SysError;
@@ -21,22 +19,13 @@
import com.example.erp.service.userInfo.LogService;
import com.example.erp.service.userInfo.SysErrorService;
import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -221,7 +210,7 @@
if (!deliveryDetaillist.isEmpty()) {
for (DeliveryDetail deliveryDetail : deliveryDetaillist) {
//杩樺師搴撳瓨鏁颁互鍙婅鍗曟槑缁嗙殑鍙戣揣鏁�
- finishedGoodsInventoryMapper.updateInventoryquantityInt(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity());
+ finishedGoodsInventoryMapper.updateInventoryquantityIntBybox(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity(),deliveryDetail.getBoxNo());
deliveryDetailMapper.updateIsNotOrderDetailDeliveryNum(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity());
}
}
@@ -380,7 +369,7 @@
//淇敼璁㈠崟鏄庣粏
deliveryDetailMapper.updateOrderDetailDeliveryNum(orderDetail);
//淇敼搴撳瓨琛ㄥ嚭搴撴暟閲�
- finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getOrderId(), orderDetail.getOrderNumber(), orderDetail.getDeliveryDetail().getQuantity());
+ finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getOrderId(), orderDetail.getOrderNumber(), orderDetail.getDeliveryDetail().getQuantity(),orderDetail.getFinishedGoodsInventory().getBoxNo());
}else{
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
return "false2";
@@ -494,7 +483,7 @@
if (!deliveryDetaillist.isEmpty()) {
for (DeliveryDetail deliveryDetail : deliveryDetaillist) {
//杩樺師搴撳瓨鏁颁互鍙婅鍗曟槑缁嗙殑鍙戣揣鏁�
- finishedGoodsInventoryMapper.updateInventoryquantityInt(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity());
+ finishedGoodsInventoryMapper.updateInventoryquantityIntBybox(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity(), deliveryDetail.getBoxNo());
deliveryDetailMapper.updateIsNotOrderDetailDeliveryNum(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity());
}
}
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
index b96504e..e4c6272 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -7,6 +7,10 @@
<!--鏄犲皠鎴愬搧搴撳瓨-->
<resultMap id="selectFinishedGoodsInventory" type="com.example.erp.entity.mm.FinishedGoodsInventory">
<id column="fid" property="id"/>
+ <result column="id" property="id"/>
+ <result column="order_id" property="orderId"/>
+ <result column="order_number" property="orderNumber"/>
+ <result column="process_id" property="processId"/>
<result column="inventory" property="inventory"/>
<result column="area" property="area"/>
<result column="actual_signal_area" property="actualSignalArea"/>
@@ -88,6 +92,7 @@
<result column="order_id" property="deliveryDetail.orderId"/>
<result column="create_time" property="deliveryDetail.createTime"/>
<result column="dd_quantity" property="deliveryDetail.quantity"/>
+ <result column="box_no" property="deliveryDetail.boxNo"/>
<result column="project" property="order.project"/>
@@ -140,24 +145,30 @@
update_time=now(),area=actual_signal_area*quantity_available
where order_number=#{orderNumber} and order_id=#{orderId}
</update>
+ <update id="updateInventoryquantityIntBybox">
+ update mm.finished_goods_inventory
+ set quantity_available=quantity_available+#{quantity},
+ update_time=now(),area=actual_signal_area*quantity_available
+ where order_number=#{orderNumber} and order_id=#{orderId} and trim(box_no) = trim(#{boxNo})
+ </update>
<update id="updateInventoryquantityOut">
update mm.finished_goods_inventory
set quantity_available=quantity_available-#{quantity},
update_time=now(),area=actual_signal_area*quantity_available
- where order_number=#{orderNumber} and order_id=#{orderId}
+ where order_id=#{orderId} and order_number=#{orderNumber} and trim(box_no) = trim(#{boxNo})
</update>
<update id="updateInventoryInventoryInt">
update mm.finished_goods_inventory
set inventory=inventory+#{quantity}
- where order_number=#{orderNumber} and order_id=#{orderId}
+ where order_number=#{orderNumber} and order_id=#{orderId} and trim(box_no) = trim(#{remarks})
</update>
<update id="updateInventoryInventoryOut">
update mm.finished_goods_inventory
set inventory=inventory-#{quantity}
- where order_number=#{orderNumber} and order_id=#{orderId}
+ where order_number=#{orderNumber} and order_id=#{orderId} and trim(box_no) = trim(#{boxNo})
</update>
<select id="getSelectAllocate" resultMap="selectDeliveryFinishedGoodsInventory">
@@ -219,7 +230,7 @@
and fgi.storage_region regexp #{orderDetail.finishedGoodsInventory.storageRegion}
</if>
</where>
- group by fgi.order_id, fgi.order_number
+ group by fgi.order_id, fgi.order_number,fgi.box_no
limit #{offset},#{pageSize};
</select>
@@ -281,7 +292,7 @@
<update id="updateDeliveryDetailState">
update sd.delivery_detail
set delivery_detail_state=#{state}
- where order_number=#{orderNumber} and order_id=#{orderId} and delivery_id=#{deliveryId}
+ where order_number=#{orderNumber} and order_id=#{orderId} and delivery_id=#{deliveryId} and trim(box_no) = trim(#{remarks})
</update>
<update id="updateInventoryquantityavailable">
@@ -372,7 +383,8 @@
od.building_number,
d.creator,
dd.delivery_detail_remakes,
- dd.create_time
+ dd.create_time,
+ dd.box_no
from sd.delivery_detail dd
left join sd.delivery d on dd.delivery_id = d.delivery_id
left join sd.order_detail od on od.order_id = dd.order_id and dd.order_number = od.order_number
@@ -529,6 +541,7 @@
set inventory=inventory-${finishedOperateLog.quantity},quantity_available=quantity_available-${finishedOperateLog.quantity},
update_time=now(),area=actual_signal_area*quantity_available
where order_number=#{finishedOperateLog.operationNumber} and order_id=#{finishedOperateLog.orderId}
+ and box_no=#{finishedOperateLog.remarks}
</update>
<insert id="insertFinishedGoodsInventory" useGeneratedKeys="true" >
@@ -559,7 +572,7 @@
<select id="findOrderNumberdcount" >
select count(*)
from mm.`finished_goods_inventory`
- where order_number = #{orderNumber} and order_id=#{orderId};
+ where order_number = #{orderNumber} and order_id=#{orderId} and box_no=#{boxNo};
</select>
@@ -764,7 +777,10 @@
<select id="defaultfinishedGoods" resultMap="selectFinishedGoodsInventory">
- select od.order_number,
+ select
+ fgi.id,
+ fgi.process_id,
+ od.order_number,
o.order_id,
o.project,
o.order_type,
@@ -1017,7 +1033,11 @@
<select id="findDeliverydetail">
select * from sd.delivery_detail
- where order_number=#{orderNumber} and order_id=#{orderId} and delivery_id=#{deliveryId} and delivery_detail_state=0
+ where order_number=#{orderNumber}
+ and order_id=#{orderId}
+ and delivery_id=#{deliveryId}
+ and delivery_detail_state=0
+ and trim(#{boxNo}) =box_no
</select>
<select id="getSelectDeliveryDetailDeliveryId" resultMap="selectDelivery">
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
index acd93dd..a848a73 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -633,11 +633,12 @@
operator,
quantity,
operate_time,
- status
+ status,
+ remarks
)
values (
#{orderDetail.deliveryDetail.deliveryId} ,#{orderDetail.deliveryDetail.orderId},#{orderDetail.deliveryDetail.orderNumber}
- ,"鍑哄簱",#{userName},#{orderDetail.deliveryDetail.quantity},now(),"鏈鏍�"
+ ,"鍑哄簱",#{userName},#{orderDetail.deliveryDetail.quantity},now(),"鏈鏍�",#{boxNo}
)
</insert>
@@ -853,7 +854,9 @@
and fol.remarks regexp #{finishedOperateLog.remarks}
</if>
</where>
- group by fol.remarks,od.order_id,fol.process_id) as zu
+ group by fol.remarks,od.order_id
+ -- ,fol.process_id
+ ) as zu
</select>
diff --git a/north-glass-erp/src/main/resources/mapper/pp/DamageDetails.xml b/north-glass-erp/src/main/resources/mapper/pp/DamageDetails.xml
index 3ad6b5f..7b8f8cb 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/DamageDetails.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/DamageDetails.xml
@@ -9,7 +9,9 @@
left join pp.reporting_work as b
on a.reporting_work_id = b.reporting_work_id
WHERE a.process_id = #{processId}
+ <if test="needOrderNumber!=null">
and a.order_number = #{orderNumber}
+ </if>
and a.technology_number =#{technologyNumber}
and a.breakage_quantity>0
and a.patch_status=0
@@ -24,5 +26,19 @@
WHERE REGEXP_SUBSTR(#{behindProcess}, '[^,]+', 1, n) IS NOT NULL)
</select>
+ <select id="getNotReview">
+ select a.*
+ from damage_details as a
+ left join reporting_work as b
+ on a.reporting_work_id = b.reporting_work_id
+ where a.process_id=#{processId}
+ and b.reviewed_state>=0
+ <if test="orderNumber!=null">
+ and a.order_number = #{orderNumber}
+ </if>
+ and a.technology_number = #{technologyNumber}
+ and a.patch_status=0
+ and a.breakage_quantity>0
+ </select>
</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 85394a8..2a1f455 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -196,13 +196,22 @@
op.project_name,
0 as patchState,
c.rack AS rackNo,
- 0 as layoutId
+ 0 as heatLayoutId,
+ d.process,
+ o.order_id AS orderNo,
+ o.customer_name AS customerName,
+ o.processing_note AS processingNote,
+ o.project AS projectName,
+ od.product_name AS productName,
+ od.building_number AS buildingNumber
FROM
pp.flow_card c
LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
AND c.order_number = d.order_number
AND c.technology_number = d.technology_number
INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no
+ LEFT JOIN sd.ORDER o ON o.order_id = c.order_id
+ LEFT JOIN order_detail od ON c.order_id = od.order_id
WHERE
c.project_no IS NOT NULL
and c.project_no = #{projectNo}
@@ -226,7 +235,14 @@
op.project_name,
1 as patch_state,
a.id as rackNo,
- 0 as layoutId
+ 0 as heatLayoutId,
+ d.process,
+ o.order_id AS orderNo,
+ o.customer_name AS customerName,
+ o.processing_note AS processingNote,
+ o.project AS projectName,
+ od.product_name AS productName,
+ od.building_number AS buildingNumber
FROM
pp.patch_log c
LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
@@ -234,6 +250,8 @@
AND c.technology_number = d.technology_number
INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no
LEFT JOIN pp.flow_card fc ON c.process_id = fc.process_id and fc.technology_number=c.technology_number
+ LEFT JOIN sd.ORDER o ON o.order_id = c.order_id
+ LEFT JOIN order_detail od ON c.order_id = od.order_id
left join
(select (@row_number := @row_number + 1) as id,process_id as process_id,technology_number as technology_number from (select process_id,technology_number from pp.flow_card tt where project_no =#{projectNo} group by process_id,technology_number) tt,(select @row_number := 0) as t) a
on a.process_id=c.process_id and a.technology_number=c.technology_number
@@ -311,7 +329,7 @@
<select id="computeAndOptimization">
SELECT
c.rack AS rackNo,
- h.layout_id as layoutId,
+ h.layout_id as heatLayoutId,
h.width AS width,
h.height AS height,
count( 1 ) AS quantity,
@@ -323,7 +341,14 @@
c.order_number,
h.order_sort AS orderSort,
d.icon AS markIcon,
- h.patch_state AS patchState
+ h.patch_state AS patchState,
+ d.process,
+ o.order_id AS orderNo,
+ o.customer_name AS customerName,
+ o.processing_note AS processingNote,
+ o.project AS projectName,
+ od.product_name AS productName,
+ od.building_number AS buildingNumber
from
pp.`optimize_heat_detail` h
LEFT JOIN pp.flow_card c ON h.process_id = c.process_id
@@ -332,6 +357,8 @@
LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
AND c.order_number = d.order_number
AND c.technology_number = d.technology_number
+ LEFT JOIN sd.order o on o.order_id = c.order_id
+ LEFT JOIN order_detail od on c.order_id = od.order_id
WHERE
h.project_no = #{projectNo}
GROUP BY
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 bde52d5..2d019f6 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -2973,30 +2973,50 @@
<select id="processCardProgressCollectMp">
- select * from (select b.product_name,
- c.detail as 'glassName',
+ select * from (select
+ a.order_id,
+ a.order_number,
+ c.glass_group as 'group',
+ a.technology_number,
+ b.product_name,
+ c.detail as glass_child,
+ d.order_type,
concat(a.process_id,'/',a.technology_number) as processID,
a.process_id,
- a.quantity,
- a.received_quantity,
- round(sum(a.received_quantity*b.area),2) as received_area,
+ if(a.technology_number=1,sum(a.quantity-ifnull(a.termination_quantity,0)),0) as quantity,
+ sum(a.quantity)-ifnull(a.termination_quantity,0) as thisQuantity,/*鐢ㄤ簬鍒ゆ柇鏄惁鏀瑰彉棰滆壊*/
+ if(a.technology_number=1, round(sum((a.quantity-ifnull(a.termination_quantity,0)))*b.compute_area,2),0) as gross_area,
+ if(a.technology_number=1, sum(a.received_quantity),0) as inventory,
+ if(a.technology_number=1, round(sum(a.received_quantity*b.area),2),0) as inventoryArea,
- a.technology_number
+ -- show
+ sum(a.quantity-ifnull(a.termination_quantity,0)) as quantityShow ,
+ round(sum((a.quantity-ifnull(a.termination_quantity,0)))*b.compute_area,2) as gross_areaShow,
+ sum(a.received_quantity) as inventoryShow,
+ round(sum(a.received_quantity*b.area),2) as inventoryAreaShow
+
+
+
+
from pp.flow_card as a
left join sd.order_detail as b
on a.order_id = b.order_id and a.order_number = b.order_number
left join sd.product_detail as c
on c.prod_id = b.product_id and c.glass_sort = a.technology_number
+ LEFT JOIN sd.`order` as d
+ on a.order_id = d.order_id
where a.order_id = #{orderId} group by processID
) as a
left join (SELECT process_id,
technology_number,
sum(broken_num) as broken_num,
- concat('{',GROUP_CONCAT(reporting_work_nums),'}') as reporting_work_num
+ concat('{',GROUP_CONCAT(reporting_work_nums),'}') as reportWorkQuantity,
+ concat('{',GROUP_CONCAT(reporting_work_counts),'}') as reportWorkQuantityCount
from (select
opd.process_id,
opd.technology_number,
concat("\"", process, "\":\"", SUM(reporting_work_num), "\"") as reporting_work_nums,
+ concat("\"", process, "\":\"", SUM(reporting_work_num_count), "\"") as reporting_work_counts,
sum(broken_num) as broken_num
from sd.order_process_detail as opd
where opd.order_id = #{orderId}
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
index f8bac5c..52b7c6c 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -452,13 +452,13 @@
) as minQuantity -- 淇敼鏈�灏忔暟
</if>
<if test="nextProcess == null or nextProcess == ''"> -- 鏈�鍚庝竴閬撳伐搴�
-# c.received_quantity, -- 宸插叆搴撴暟閲�
-# c.inventory_quantity, -- 搴撳瓨鏁伴噺
+ c.received_quantity, -- 宸插叆搴撴暟閲�
+ c.inventory_quantity, -- 搴撳瓨鏁伴噺
if(ifnull(inventory_quantity,0)
-ifnull(c.received_quantity,0)
- >= a.completed_quantity,0,
- (a.completed_quantity-(ifnull(c.inventory_quantity,0)
- -ifnull(c.received_quantity,0)))
+ >= a.completed_quantity,a.completed_quantity,
+ (ifnull(c.inventory_quantity,0)
+ -ifnull(c.received_quantity,0))
)
as minQuantity -- 淇敼鏈�灏忔暟
</if>
diff --git a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
index a28adf5..b3ea803 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -54,6 +54,7 @@
<result column="storage_region" property="finishedGoodsInventory.storageRegion"/>
<result column="actual_signal_area" property="finishedGoodsInventory.actualSignalArea"/>
<result column="box_no" property="finishedGoodsInventory.boxNo"/>
+ <result column="id" property="finishedGoodsInventory.id"/>
</resultMap>
@@ -181,7 +182,7 @@
fgi.quantity_available + dd.quantity as quantity_available,
od.order_number,
od.quantity-od.delivery_num as t_quantity,
- od.quantity as o_quantity,
+ (fgi.quantity_available+ifnull(dd1.sumQuantity,0)) as o_quantity,
dd.quantity as d_quantity,
od.building_number,
od.product_id,
@@ -207,10 +208,14 @@
left join sd.delivery d on dd.delivery_id=d.delivery_id
left join sd.order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
left join sd.`order` o on dd.order_id=o.order_id
- left join mm.finished_goods_inventory fgi on dd.order_id=fgi.order_id and dd.order_number=fgi.order_number
+ left join mm.finished_goods_inventory fgi on dd.order_id=fgi.order_id and dd.order_number=fgi.order_number and fgi.box_no = dd.box_no
+ left join (SELECT IFNULL(sum(quantity),0) as sumQuantity,dd.*
+ from sd.delivery_detail dd
+ GROUP BY dd.order_id,dd.order_number,dd.box_no) AS dd1
+ on od.order_id = dd1.order_id and od.order_number = dd1.order_number and dd1.box_no = fgi.box_no
<where>
<if test="orderDetail.deliveryDetail.deliveryId != null and orderDetail.deliveryDetail.deliveryId != ''">
- and dd.delivery_id regexp #{orderDetail.deliveryDetail.deliveryId}
+ and dd.delivery_id = #{orderDetail.deliveryDetail.deliveryId}
</if>
<if test="orderDetail.orderId != null and orderDetail.orderId != ''">
and od.order_id regexp #{orderDetail.orderId}
@@ -371,14 +376,16 @@
</select>
<select id="getSelectShippingOrderDetails" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail">
- select od.order_id,
+ select
+ fgi.id,
+ od.order_id,
od.order_number,
o.batch,
o.calculate_type,
fgi.quantity_available,
- od.quantity- od.delivery_num as t_quantity,
- od.quantity as o_quantity,
- fgi.quantity_available as d_quantity,
+ od.quantity- od.delivery_num as t_quantity,-- 鏈彂鏁伴噺
+ ifnull(dd1.sumQuantity,0)+fgi.quantity_available as o_quantity,-- 鏁伴噺
+ fgi.quantity_available as d_quantity,-- 鍙戣揣鏁伴噺
od.building_number,
od.product_id,
od.product_name,
@@ -401,6 +408,13 @@
left join sd.`order` o on od.order_id = o.order_id
left join mm.finished_goods_inventory fgi
on od.order_id = fgi.order_id and od.order_number = fgi.order_number
+ left join (SELECT IFNULL(sum(quantity),0) as sumQuantity,dd.*
+ from sd.delivery_detail dd
+ where dd.order_id regexp #{orderDetail.orderId}
+ GROUP BY dd.order_id,dd.order_number,dd.box_no) AS dd1
+ on od.order_id = dd1.order_id and od.order_number = dd1.order_number and dd1.box_no = fgi.box_no
+
+
<where>
fgi.quantity_available > 0 and od.quantity > od.delivery_num
<if test="orderDetail.orderId != null and orderDetail.orderId != ''">
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
index 7e5064d..1b4a22e 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
@@ -133,6 +133,25 @@
order by RowNum
</select>
+
+ <select id="getProcessGlassLRow">
+ select
+ max(a.technology_number) as rowCount,
+ RowNum
+ from pp.flow_card as a
+ left join
+ (select min((@i:=@i+1)) AS RowNum,c.*
+ from pp.flow_card as c,
+ (SELECT @i:=-1) as d
+ where order_id = #{orderId}
+ GROUP BY process_id
+ ) as b
+ on b.id = a.id
+ where a.order_id = #{orderId}
+ group by a.process_id
+ order by RowNum
+
+ </select>
<update id="insertByReportingWorkDetail">
update sd.order_process_detail as a
set
--
Gitblit v1.8.0