| | |
| | | <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"; |
| | |
| | | // {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:'金额'} |
| | | ], |
| | | //表单验证 |
| | |
| | | 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) |
| | |
| | | <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 |
| | |
| | | const route = useRoute() |
| | | const xGrid = ref() |
| | | let cellArea = ref() |
| | | const shapeList = ref(['普形','异形']) |
| | | const shapeList = ref([ |
| | | {name:'普形',value:1}, {name:'异形',value: 2} |
| | | ]) |
| | | |
| | | // 定义表头上传数据 |
| | | const titleUploadData = ref({ |
| | |
| | | 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 |
| | |
| | | otherMoney.value =res.data.orderOtherMoneyList |
| | | //加载副表数据 |
| | | xGrid.value.reloadData(orderDetails) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.error(res.msg) |
| | | } |
| | |
| | | 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)) |
| | | } |
| | | //导入功能 |
| | |
| | | }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() |
| | | |
| | | |
| | |
| | | </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> |
| | | |
| | |
| | | @Mapper |
| | | public interface OrderOtherMoneyMapper extends BaseMapper<OrderOtherMoney> { |
| | | |
| | | List<OrderOtherMoney> findById(String id); |
| | | List<OrderOtherMoney> findById(String orderId); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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); |
| | | //往订单其他金额副表传入数据 |
| | |
| | | } |
| | | orderOtherMoneyMapper.insert(orderOtherMoney); |
| | | }); |
| | | //修改订单主表面积与周长以及重量 |
| | | orderMapper.updateOrderParameter(orderId); |
| | | |
| | | //查询订单小片表获取工艺传入小片工艺表 |
| | | //List<OrderGlassDetail> orderGlassDetails = orderGlassDetailMapper.selectOrderGlassDetail(orderId); |
| | |
| | | <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 |
| | |
| | | from order_other_money as a |
| | | left join basic_other_money as b |
| | | on a.`column` = b.`column` |
| | | where a.order_id = #{orderId} |
| | | </select> |
| | | |
| | | |
| | |
| | | <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 |