From 0df7d2cc1ef75c9aa1b3483dc7067a728af7ceb3 Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期一, 22 四月 2024 15:44:20 +0800 Subject: [PATCH] 计算金额从后端获取,创建时不改变数值 --- north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml | 1 north-glass-erp/target/erp-0.0.1-SNAPSHOT.jar.original | 0 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 43 +++++++------- north-glass-erp/target/classes/mapper/sd/OrderMapper.xml | 18 +++++ north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderOtherMoneyMapper.java | 2 north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml | 18 +++++ north-glass-erp/northglass-erp/src/components/sd/order/OrderOtherMoney.vue | 11 ++- north-glass-erp/northglass-erp/src/views/LoginView.vue | 16 ++-- north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 17 +++++ 9 files changed, 86 insertions(+), 40 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderOtherMoney.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderOtherMoney.vue index 3d167c2..3217d84 100644 --- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderOtherMoney.vue +++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderOtherMoney.vue @@ -1,5 +1,5 @@ <script setup> -import {onMounted, reactive, ref, watch} from "vue" +import {computed, onMounted, reactive, ref, watch} from "vue" import {filterChanged} from "@/hook" import {useI18n} from "vue-i18n" import {ElMessage} from "element-plus"; @@ -36,7 +36,7 @@ // {field: 'buildingNumber',width:120, title: '妤煎彿',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, {field: 'alias', title:'鍏朵粬鍔犲伐',editRender: { name: 'input'},minWith:'130'}, {field: 'price', title:'鍗曚环',editRender: { name: 'input'}}, - {field: 'quantity', title:'鏁伴噺',editRender: { name: 'input'} }, + {field: 'quantity', title:'鏁伴噺' }, {field: 'money', slots:{default:'default'}, title:'閲戦'} ], //琛ㄥ崟楠岃瘉 @@ -149,9 +149,12 @@ xGrid.value.reloadData(prop.otherMoney) }) -const countAmount = (row)=>{ +const countAmount = computed(() => (row) => { + const price = row.price===null?0:row.price + const quantity = row.quantity===null?0:row.quantity return parseFloat((row.price * row.quantity).toFixed(2)) -} +}) + const validate = async () => { const errMap = await xGrid.value.validate(true) diff --git a/north-glass-erp/northglass-erp/src/views/LoginView.vue b/north-glass-erp/northglass-erp/src/views/LoginView.vue index c821584..e18ae22 100644 --- a/north-glass-erp/northglass-erp/src/views/LoginView.vue +++ b/north-glass-erp/northglass-erp/src/views/LoginView.vue @@ -110,14 +110,14 @@ <img id="img-pic" src="@/assets/img.png" alt=""> </div> <div id="div-login"> -<!-- <el-select--> -<!-- @change="changeLanguage"--> -<!-- v-model="language"--> -<!-- placeholder=" "--> -<!-- style="float: right;width: 6rem">--> -<!-- <el-option value="zh" label="涓枃" />--> -<!-- <el-option value="en" label="English" />--> -<!-- </el-select>--> + <el-select + @change="changeLanguage" + v-model="language" + placeholder=" " + style="float: right;width: 6rem"> + <el-option value="zh" label="涓枃" /> + <el-option value="en" label="English" /> + </el-select> <h2>{{$t('login.SysName')}}</h2> <el-form @submit.native.prevent diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue index 119553f..33ac509 100644 --- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue +++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue @@ -24,7 +24,9 @@ const route = useRoute() const xGrid = ref() let cellArea = ref() -const shapeList = ref(['鏅舰','寮傚舰']) +const shapeList = ref([ + {name:'鏅舰',value:1}, {name:'寮傚舰',value: 2} +]) // 瀹氫箟琛ㄥご涓婁紶鏁版嵁 const titleUploadData = ref({ @@ -445,7 +447,6 @@ if (typeof str === 'undefined' || str === null || str === '' || str === '\n' || str === '\r'){ return } - gridOptions.loading=true request.post(`/order/getOrderById/${str}`).then((res) => { if(res.code==200){ titleUploadData.value = res.data.order @@ -503,7 +504,6 @@ otherMoney.value =res.data.orderOtherMoneyList //鍔犺浇鍓〃鏁版嵁 xGrid.value.reloadData(orderDetails) - gridOptions.loading=false }else{ ElMessage.error(res.msg) } @@ -633,9 +633,9 @@ list.forEach((item)=>{ countMoney += parseFloat(item.grossAmount) }) - otherMoney.value.forEach(item => { - countMoney+=item.quantity*item.price - }) + // otherMoney.value.forEach(item => { + // countMoney+=item.quantity*item.price + // }) return parseFloat((countMoney).toFixed(2)) } //瀵煎叆鍔熻兘 @@ -699,21 +699,22 @@ }else if(column.property === 'computeArea'){ row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toFixed(2)) row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) - }else if(column.property.indexOf('otherColumns.M')>-1){ - let quantity = 0 - xGrid.value.getTableData().fullData.forEach(item => { - let orderQuantity = isNaN(item.quantity) ? 0 : item.quantity - let value = isNaN((getNestedProperty(item,column.property)*1)) ? 0 : (getNestedProperty(item,column.property)*1) - quantity += orderQuantity*value - }) - if(!isNaN(quantity)){ - otherMoney.value.forEach(item => { - if(item.column===column.property.split('.')[1]){ - item.quantity = quantity - } - }) - } } + // else if(column.property.indexOf('otherColumns.M')>-1){ + // let quantity = 0 + // xGrid.value.getTableData().fullData.forEach(item => { + // let orderQuantity = isNaN(item.quantity) ? 0 : item.quantity + // let value = isNaN((getNestedProperty(item,column.property)*1)) ? 0 : (getNestedProperty(item,column.property)*1) + // quantity += orderQuantity*value + // }) + // if(!isNaN(quantity)){ + // otherMoney.value.forEach(item => { + // if(item.column===column.property.split('.')[1]){ + // item.quantity = quantity + // } + // }) + // } + // } titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString() @@ -907,7 +908,7 @@ </template> <template #shape_edit="{ row }"> <vxe-select v-model="row.shape" transfer> - <vxe-option v-for="item in shapeList" :key="item" :value="item" :label="item" /> + <vxe-option v-for="item in shapeList" :key="item" :value="item.value" :label="item.name" /> </vxe-select> </template> diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderOtherMoneyMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderOtherMoneyMapper.java index 3fca4c2..a2a74c6 100644 --- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderOtherMoneyMapper.java +++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderOtherMoneyMapper.java @@ -9,5 +9,5 @@ @Mapper public interface OrderOtherMoneyMapper extends BaseMapper<OrderOtherMoney> { - List<OrderOtherMoney> findById(String id); + List<OrderOtherMoney> findById(String orderId); } diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java index ba6e55e..4008094 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java @@ -1,7 +1,9 @@ package com.example.erp.service.sd; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -112,14 +114,23 @@ OrderDetails.get(i).setOrderId(orderId); OrderDetails.get(i).setPerimeter(OrderDetails.get(i).getWidth()*OrderDetails.get(i).getHeight()*2/1000); OrderDetails.get(i).setWeight(1.0); + Map<String,Double> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Double>>(){}); + int finalI = i; + otherColumns.forEach((key, value) ->{ + orderOtherMoneyList.forEach(orderOtherMoney ->{ + if(orderOtherMoney.getColumn().equals(key)){ + orderOtherMoney.setQuantity (orderOtherMoney.getQuantity()==null?0:orderOtherMoney.getQuantity()); + orderOtherMoney.setQuantity(((value==null?0:value)*OrderDetails.get(finalI).getQuantity())); + } + }); + + }); } //寰�鏄庣粏琛ㄦ彃鏁版嵁 orderDetailMapper.insertBatch(OrderDetails); - //淇敼璁㈠崟涓昏〃闈㈢Н涓庡懆闀夸互鍙婇噸閲� - orderMapper.updateOrderParameter(orderId); //寰�灏忕墖琛ㄤ紶鍏ヤ骇鍝佹暟鎹� orderGlassDetailMapper.insertOrderGlassDetail(orderId); //寰�璁㈠崟鍏朵粬閲戦鍓〃浼犲叆鏁版嵁 @@ -131,6 +142,8 @@ } orderOtherMoneyMapper.insert(orderOtherMoney); }); + //淇敼璁㈠崟涓昏〃闈㈢Н涓庡懆闀夸互鍙婇噸閲� + orderMapper.updateOrderParameter(orderId); //鏌ヨ璁㈠崟灏忕墖琛ㄨ幏鍙栧伐鑹轰紶鍏ュ皬鐗囧伐鑹鸿〃 //List<OrderGlassDetail> orderGlassDetails = orderGlassDetailMapper.selectOrderGlassDetail(orderId); diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml index 770d133..6af7965 100644 --- a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml +++ b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml @@ -17,10 +17,24 @@ <update id="updateOrderParameter"> update `order` o left join - (select a.order_id,round(sum(a.perimeter),2) as aa,sum(a.quantity) as b,sum(a.compute_gross_area) as c - from sd.order_detail as a group by a.order_id) od + (select a.order_id, + round(sum(a.perimeter),2) as aa, + sum(a.quantity) as b, + sum(a.compute_gross_area) as c, + sum(a.gross_amount) as 'detailAmount' + from sd.order_detail as a group by a.order_id + ) as od on o.order_id = od.order_id + left join (select oom.order_id, + sum(oom.money) as 'money' + from order_other_money as oom + where + oom.order_id = #{orderId} + group by oom.order_id + ) as c + on c.order_id = o.order_id set + o.money = ifnull(od.detailAmount,0)+ifnull(c.money,0), o.quantity = od.b, o.area = od.c, o.perimeter= od.aa diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml index 2d5ce59..fbe2e09 100644 --- a/north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml +++ b/north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml @@ -10,6 +10,7 @@ from order_other_money as a left join basic_other_money as b on a.`column` = b.`column` + where a.order_id = #{orderId} </select> diff --git a/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml b/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml index 770d133..6af7965 100644 --- a/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml +++ b/north-glass-erp/target/classes/mapper/sd/OrderMapper.xml @@ -17,10 +17,24 @@ <update id="updateOrderParameter"> update `order` o left join - (select a.order_id,round(sum(a.perimeter),2) as aa,sum(a.quantity) as b,sum(a.compute_gross_area) as c - from sd.order_detail as a group by a.order_id) od + (select a.order_id, + round(sum(a.perimeter),2) as aa, + sum(a.quantity) as b, + sum(a.compute_gross_area) as c, + sum(a.gross_amount) as 'detailAmount' + from sd.order_detail as a group by a.order_id + ) as od on o.order_id = od.order_id + left join (select oom.order_id, + sum(oom.money) as 'money' + from order_other_money as oom + where + oom.order_id = #{orderId} + group by oom.order_id + ) as c + on c.order_id = o.order_id set + o.money = ifnull(od.detailAmount,0)+ifnull(c.money,0), o.quantity = od.b, o.area = od.c, o.perimeter= od.aa diff --git a/north-glass-erp/target/erp-0.0.1-SNAPSHOT.jar.original b/north-glass-erp/target/erp-0.0.1-SNAPSHOT.jar.original index 65b8d2f..9435a71 100644 --- a/north-glass-erp/target/erp-0.0.1-SNAPSHOT.jar.original +++ b/north-glass-erp/target/erp-0.0.1-SNAPSHOT.jar.original Binary files differ -- Gitblit v1.8.0