Merge branch 'master' of http://bore.pub:10439/r/ERP_override
| | |
| | | "@vue-macros/reactivity-transform": "^0.3.23", |
| | | "axios": "^1.5.1", |
| | | "element-plus": "^2.4.0", |
| | | "file-saver": "^2.0.5", |
| | | "moment": "^2.30.1", |
| | | "pinia": "^2.1.6", |
| | | "pinia-plugin-persistedstate": "^3.2.0", |
| | |
| | | "version": "2.0.2", |
| | | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", |
| | | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
| | | }, |
| | | "node_modules/file-saver": { |
| | | "version": "2.0.5", |
| | | "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", |
| | | "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" |
| | | }, |
| | | "node_modules/fill-range": { |
| | | "version": "7.0.1", |
| | |
| | | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", |
| | | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
| | | }, |
| | | "file-saver": { |
| | | "version": "2.0.5", |
| | | "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", |
| | | "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" |
| | | }, |
| | | "fill-range": { |
| | | "version": "7.0.1", |
| | | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |
| | |
| | | "@vue-macros/reactivity-transform": "^0.3.23", |
| | | "axios": "^1.5.1", |
| | | "element-plus": "^2.4.0", |
| | | "file-saver": "^2.0.5", |
| | | "moment": "^2.30.1", |
| | | "pinia": "^2.1.6", |
| | | "pinia-plugin-persistedstate": "^3.2.0", |
| | |
| | | |
| | | columns:[ |
| | | {type: 'seq', title: t('basicData.Number'), width: 80 }, |
| | | // {field: 'buildingNumber',width:120, title: '楼号',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'buildingNumber',width:120, title: t('order.floorNumber'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'productId',width:140, title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'productName',width:300, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | //{field: 'price',width:140, title: t('order.price'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | |
| | | {field: 'computeArea',width:180, title: t('order.computeArea'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'computeGrossArea',width:200, title: t('order.computeGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'processingNote',width:200, title: t('order.processingNote'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'remarks',width:140, title: t('order.floorNumber'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'remarks',width:140, title: t('basicData.remarks'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'shape',width:120, |
| | | title: t('order.shape'), |
| | | editRender: { name: 'input'}, |
| | |
| | | storage: true |
| | | }, |
| | | columns:[ |
| | | {type: 'seq',fixed:"left", title: t('basicData.Number'), width: 80 }, |
| | | {field: 'width', title: t('order.width'),editRender: { name: 'input'}}, |
| | | {field: 'height', title:t('order.height'), editRender: { name: 'input'}}, |
| | | {field: 'quantity', title: t('order.quantity') ,editRender: { name: 'input'}, }, |
| | |
| | | |
| | | const editClosedEvent = ({ row, column,rowIndex}) => { |
| | | const $table = props.OrderDetail |
| | | console.log($table.getTableData()) |
| | | let checkVal = row[column.property]*1 |
| | | const oldVal = $table.getTableData().fullData[rowIndex][column.property]*1 |
| | | if(checkVal!=oldVal){ |
| | | if(checkVal!==oldVal){ |
| | | row[column.property]=null |
| | | } |
| | | } |
| New file |
| | |
| | | <script setup> |
| | | let props = defineProps({ |
| | | order:null |
| | | }) |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <el-row style="text-align: left "> |
| | | <el-col :span="4">下单员:{{props.order.creator}}</el-col> |
| | | <el-col :span="4">审核人:{{props.order.verifier}}</el-col> |
| | | <el-col :span="4">校对:</el-col> |
| | | </el-row> |
| | | <el-row style="text-align: left "> |
| | | <el-col :span="4">创建时间:{{props.order.createTime}}</el-col> |
| | | <el-col :span="4">审核时间:</el-col> |
| | | <el-col :span="4">打印时间:</el-col> |
| | | </el-row> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | <script setup> |
| | | import request from "@/utils/request" |
| | | import {computed, onMounted, ref} from "vue" |
| | | import PrintFoot from "@/components/sd/order/PrintFoot.vue" |
| | | import companyInfo from "@/stores/sd/companyInfo" |
| | | const company = companyInfo() |
| | | |
| | | //这里是打印的配置项 |
| | | const print=ref({ |
| | | id: 'printBox',//这里的id就是上面我们的打印区域id,实现指哪打哪 |
| | | popTitle: '配置页眉标题', // 打印配置页上方的标题 |
| | | extraHead: '', // 最上方的头部文字,附加在head标签上的额外标签,使用逗号分割 |
| | | preview: false, // 是否启动预览模式,默认是false |
| | | previewTitle: '预览的标题', // 打印预览的标题 |
| | | previewPrintBtnLabel: '预览结束,开始打印', // 打印预览的标题下方的按钮文本,点击可进入打印 |
| | | zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高 |
| | | previewBeforeOpenCallback() { console.log('正在加载预览窗口!'); }, // 预览窗口打开之前的callback |
| | | previewOpenCallback() { console.log('已经加载完预览窗口,预览打开了!') }, // 预览窗口打开时的callback |
| | | beforeOpenCallback() { console.log('开始打印之前!') }, // 开始打印之前的callback |
| | | openCallback() { console.log('执行打印了!') }, // 调用打印时的callback |
| | | closeCallback() { console.log('关闭了打印工具!') }, // 关闭打印的callback(无法区分确认or取消) |
| | | clickMounted() { console.log('点击v-print绑定的按钮了!') }, |
| | | |
| | | }) |
| | | |
| | | let props = defineProps({ |
| | | orderId:null |
| | |
| | | const getData = () => { |
| | | request.get(`/order/printOrderProductDetail/${props.orderId}`).then(res => { |
| | | data.value= res.data |
| | | console.log(data.value) |
| | | res.data.orderProductDetail.forEach(item => { |
| | | grossNum.value.quantity += getQuantity(item.productDetail) |
| | | grossNum.value.grossArea += getArea(item.productDetail) |
| | |
| | | } |
| | | |
| | | const printSheet = () => { |
| | | // printJS({ |
| | | // printable:'sheet', |
| | | // type:'html', |
| | | // //style:styleAll(), |
| | | // targetStyles: ['*'] |
| | | // //scanStyles:false |
| | | // }) |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | <template> |
| | | <div id="sheet"> |
| | | |
| | | <el-row style="margin-bottom: 0.5rem;"> |
| | | <el-col :span="24"> |
| | | <h1> |
| | | <table border="1" > |
| | | <tr class="title-s"> |
| | | <th colspan="13"> |
| | | <img src="../../../assets/northGlass.ico" alt="" style="float: left;max-width: 60px;max-height: 60px"> |
| | | 天津北玻玻璃工业技术有限公司(THBB-QR7.1-01) |
| | | </h1> |
| | | </el-col> |
| | | <h1> |
| | | {{company.companyName}} |
| | | </h1> |
| | | </th> |
| | | </tr> |
| | | |
| | | </el-row > |
| | | <el-row style="text-align: left"> |
| | | <el-col :span="2" ></el-col> |
| | | <el-col :span="8" >地址:天津宝坻区节能环保工业区天兴路西侧宝中道南侧</el-col> |
| | | <el-col :span="2"></el-col> |
| | | <el-col :span="5" >电话:022-59280088</el-col> |
| | | <el-col :span="5" >传真:022-59280066</el-col> |
| | | </el-row> |
| | | <hr> |
| | | <hr class="hr-border"> |
| | | <tr class="title-s"> |
| | | <th colspan="5">地址:{{company.address}}</th> |
| | | <th colspan="4">电话:{{ company.telephone }}</th> |
| | | <th colspan="4">传真:{{ company.fax }}</th> |
| | | </tr> |
| | | <!-- <tr class="title-s">--> |
| | | <!-- <th colspan="13">--> |
| | | <!-- <hr>--> |
| | | <!-- <hr class="hr-border">--> |
| | | <!-- </th>--> |
| | | <!-- </tr>--> |
| | | |
| | | <el-row > |
| | | <el-col :span="24"><h3>玻璃加工单</h3></el-col> |
| | | <tr class="title-s"> |
| | | <th colspan="13"> |
| | | <h3>玻璃加工单</h3> |
| | | </th> |
| | | |
| | | </el-row> |
| | | </tr> |
| | | |
| | | <table > |
| | | <tr> |
| | | <th class="title-1">客户名称</th> |
| | | <th colspan="3">{{data.order.customerName}}</th> |
| | | <th colspan="6">{{data.order.customerName}}</th> |
| | | <th class="title-1">工程名称</th> |
| | | <th colspan="3">{{data.order.project}}</th> |
| | | <th colspan="5">{{data.order.project}}</th> |
| | | </tr> |
| | | <tr> |
| | | <th class="title-1">生产单号</th> |
| | | <th>{{data.order.orderId}}</th> |
| | | <th colspan="2">{{data.order.orderId}}</th> |
| | | <th class="title-1">下单日期</th> |
| | | <th>{{data.order.createTime}}</th> |
| | | <th colspan="2">{{data.order.createTime}}</th> |
| | | <th class="title-1">订单类型</th> |
| | | <th>{{data.order.orderType}}</th> |
| | | <th colspan="3">{{data.order.orderType}}</th> |
| | | <th class="title-1">跟单员</th> |
| | | <th>{{data.order.creator}}</th> |
| | | <th colspan="2">{{data.order.creator}}</th> |
| | | </tr> |
| | | <tr> |
| | | <th>磨边</th> |
| | | <th></th> |
| | | <th colspan="2"></th> |
| | | <th>完工日期</th> |
| | | <th>{{data.order.deliveryDate}}</th> |
| | | <th colspan="2">{{data.order.deliveryDate}}</th> |
| | | <th>商标</th> |
| | | <th>{{data.order.icon}}</th> |
| | | <th colspan="3">{{data.order.icon}}</th> |
| | | <th>包装</th> |
| | | <th>{{data.order.packType}}</th> |
| | | <th colspan="2">{{data.order.packType}}</th> |
| | | </tr> |
| | | |
| | | </table> |
| | | <table border="1" > |
| | | <thead> |
| | | |
| | | |
| | | |
| | | <tr> |
| | | <th class="title-1">玻璃图号</th> |
| | | <th>彩釉图号</th> |
| | |
| | | <th>备注2</th> |
| | | <th>磨边/备注/加工内容</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody v-for="(item,index) in data.orderProductDetail" :key="index"> |
| | | <tr> |
| | | <td class="no-change-row">品 种</td> |
| | | <td colspan="9">{{item.productName}}</td> |
| | | <td class="no-change-row">产品描述</td> |
| | | <td colspan="3"></td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr v-for="(item1,index1) in item.productDetail" :key="index1"> |
| | | <td>{{}}</td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td>{{item1.width +'*'+item1.height}}</td> |
| | |
| | | |
| | | |
| | | </tbody> |
| | | <tfoot> |
| | | <tr> |
| | | <td colspan="4">总计</td> |
| | | <td>{{grossNum.quantity}}</td> |
| | |
| | | <td colspan="6"></td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="13"> |
| | | <!-- v-model=""--> |
| | | <el-input |
| | | v-model="data.order.processingNote" |
| | | :rows="2" |
| | | type="textarea" |
| | | placeholder="" |
| | | readonly |
| | | autosize |
| | | resize="none" |
| | | <td colspan="13" style="white-space: pre-wrap;text-align:left "> |
| | | <template v-for="(item,index) in data.order.processingNote.split('\n')"> |
| | | {{item}} |
| | | <br> |
| | | </template> |
| | | <!-- <el-input--> |
| | | <!-- v-model="data.order.processingNote"--> |
| | | <!-- :rows="2"--> |
| | | <!-- type="textarea"--> |
| | | <!-- placeholder=""--> |
| | | <!-- readonly--> |
| | | <!-- autosize--> |
| | | <!-- resize="none"--> |
| | | |
| | | /> |
| | | <!-- />--> |
| | | </td> |
| | | </tr> |
| | | </tfoot> |
| | | </table> |
| | | <el-row style="text-align: left "> |
| | | <el-col :span="4">下单员:</el-col> |
| | | <el-col :span="4">审核人:</el-col> |
| | | <el-col :span="4">校对:</el-col> |
| | | </el-row> |
| | | <el-row style="text-align: left "> |
| | | <el-col :span="4">创建时间:</el-col> |
| | | <el-col :span="4">审核时间:</el-col> |
| | | <el-col :span="4">打印时间:</el-col> |
| | | </el-row> |
| | | <print-foot :order='data.order' /> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | #sheet{ |
| | | width: 100%; |
| | | height: 100%; |
| | | text-align: center; |
| | | } |
| | | h1,h3{ |
| | |
| | | |
| | | table{ |
| | | border-collapse: collapse; |
| | | border: 1px solid black; |
| | | width: 100%; |
| | | text-align: center; |
| | | } |
| | | tr,td,th{ |
| | | border: 1px solid black; |
| | | } |
| | | |
| | | th,.no-change-row { |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .title-1{ |
| | | width: 76px; |
| | | } |
| | | .title-s,.title-s th{ |
| | | border:0 |
| | | } |
| | | |
| | | .hr-border{ |
| | |
| | | color: black; |
| | | } |
| | | |
| | | |
| | | </style> |
| | |
| | | <script setup> |
| | | import request from "@/utils/request" |
| | | import {computed, onMounted, ref} from "vue" |
| | | import PrintFoot from "@/components/sd/order/PrintFoot.vue" |
| | | import companyInfo from "@/stores/sd/companyInfo" |
| | | const company = companyInfo() |
| | | |
| | | let props = defineProps({ |
| | | orderId:null |
| | |
| | | return parseFloat(perimeter.toFixed(3)) |
| | | } |
| | | |
| | | |
| | | const Url = '' |
| | | |
| | | </script> |
| | | |
| | | |
| | | <template> |
| | | <div id="sheet"> |
| | | <table border="1"> |
| | | <tr class="title-s"> |
| | | <th colspan="14"> |
| | | <img src="../../../assets/northGlass.ico" alt="" style="float: left;max-width: 60px;max-height: 60px"> |
| | | <h1> |
| | | {{company.companyName}} |
| | | </h1> |
| | | </th> |
| | | </tr> |
| | | |
| | | <el-row style="margin-bottom: 0.5rem;"> |
| | | <img src="../../../assets/northGlass.ico" alt="" style="max-width: 60px;max-height: 60px"> |
| | | <h1>天津北玻玻璃工业技术有限公司(THBB-QR7.1-01)</h1> |
| | | </el-row > |
| | | <el-row style="text-align: left"> |
| | | <el-col :span="2" ></el-col> |
| | | <el-col :span="8" >地址:天津宝坻区节能环保工业区天兴路西侧宝中道南侧</el-col> |
| | | <el-col :span="2"></el-col> |
| | | <el-col :span="5" >电话:022-59280088</el-col> |
| | | <el-col :span="5" >传真:022-59280066</el-col> |
| | | </el-row> |
| | | <hr> |
| | | <hr class="hr-border"> |
| | | <tr class="title-s"> |
| | | <th colspan="6">地址:{{company.address}}</th> |
| | | <th colspan="4">电话:{{ company.telephone }}</th> |
| | | <th colspan="4">传真:{{ company.fax }}</th> |
| | | </tr> |
| | | |
| | | <el-row > |
| | | <h3>玻璃加工单</h3> |
| | | </el-row> |
| | | |
| | | <table> |
| | | <tr class="title-s" > |
| | | <th colspan="14"> |
| | | <h3>玻璃加工单</h3> |
| | | </th> |
| | | </tr> |
| | | <tr> |
| | | <th class="title-1">客户名称</th> |
| | | <th colspan="3"></th> |
| | | <th colspan="6"></th> |
| | | <th class="title-1">工程名称</th> |
| | | <th colspan="3"></th> |
| | | <th colspan="6"></th> |
| | | </tr> |
| | | <tr> |
| | | <th class="title-1">生产单号</th> |
| | | <th></th> |
| | | <th colspan="3"></th> |
| | | <th class="title-1">下单日期</th> |
| | | <th></th> |
| | | <th colspan="2"></th> |
| | | <th class="title-1">订单类型</th> |
| | | <th></th> |
| | | <th colspan="3"></th> |
| | | <th class="title-1">跟单员</th> |
| | | <th></th> |
| | | <th colspan="2"></th> |
| | | </tr> |
| | | <tr> |
| | | <th>磨边</th> |
| | | <th></th> |
| | | <th colspan="3"></th> |
| | | <th>完工日期</th> |
| | | <th></th> |
| | | <th colspan="2"></th> |
| | | <th>商标</th> |
| | | <th></th> |
| | | <th colspan="3"></th> |
| | | <th>包装</th> |
| | | <th></th> |
| | | <th colspan="2"></th> |
| | | </tr> |
| | | |
| | | </table> |
| | | <table > |
| | | <thead> |
| | | <tr> |
| | | <th >序号</th> |
| | | <th >图号</th> |
| | | <th>彩釉图号</th> |
| | | <th>编号</th> |
| | | <th>规格(宽W*高H)</th> |
| | | <th>片数</th> |
| | | <th>面积</th> |
| | | <th>延米</th> |
| | | <th>交货日期</th> |
| | | <th>序号</th> |
| | | <th>箱架号</th> |
| | | <th>备注1</th> |
| | | <th>备注2</th> |
| | | <th>磨边/备注/加工内容</th> |
| | | </tr> |
| | | </thead> |
| | | |
| | | <tr> |
| | | <th >序号</th> |
| | | <th >图号</th> |
| | | <th>彩釉图号</th> |
| | | <th>编号</th> |
| | | <th>规格(宽W*高H)</th> |
| | | <th>片数</th> |
| | | <th>面积</th> |
| | | <th>延米</th> |
| | | <th>交货日期</th> |
| | | <th>序号</th> |
| | | <th>箱架号</th> |
| | | <th>备注1</th> |
| | | <th>备注2</th> |
| | | <th>磨边/备注/加工内容</th> |
| | | </tr> |
| | | <tbody v-for="(item,index) in data.orderDetail" :key="index"> |
| | | <tr> |
| | | <td colspan="2" class="no-change-row">产品名称</td> |
| | |
| | | <template v-for="(item1,index1) in item.productDetail" :key="index1"> |
| | | <tr > |
| | | <td>{{item1.orderNumber}}</td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td>{{}}</td> |
| | | <td>{{}}</td> |
| | | <td>{{}}</td> |
| | | <td>{{item1.width}}*{{item1.height}}</td> |
| | | <td>{{item1.quantity}}</td> |
| | | <td>{{item1.grossArea}}</td> |
| | |
| | | <td></td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <tr v-if="item1.differentSize"> |
| | | <td></td> |
| | | <td>标记</td> |
| | | <td colspan="4">半成品名称</td> |
| | |
| | | |
| | | <td colspan="4"></td> |
| | | </tr> |
| | | <tr v-for="(item2,index2) in item1.orderGlassDetails" :key="index2" > |
| | | <tr v-if="item1.differentSize" v-for="(item2,index2) in item1.orderGlassDetails" :key="index2" > |
| | | |
| | | <td></td> |
| | | <td style="border: 0"></td> |
| | | <td>{{ item2.technologyNumber }}</td> |
| | | <td colspan="4"> {{item2.glassChild}}</td> |
| | | <td>{{item2.childWidth}}</td> |
| | |
| | | </tr> |
| | | </template> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <tr> |
| | | <td colspan="5">小计</td> |
| | | <td>{{getQuantity(item.productDetail)}}</td> |
| | |
| | | |
| | | |
| | | </tbody> |
| | | <tfoot> |
| | | <tr> |
| | | <td colspan="5">总计</td> |
| | | <td>{{grossNum.quantity}}</td> |
| | |
| | | <td colspan=""></td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="14"> |
| | | <!-- v-model=""--> |
| | | <el-input |
| | | v-model="data.order.processingNote" |
| | | :rows="2" |
| | | type="textarea" |
| | | placeholder="" |
| | | readonly |
| | | autosize |
| | | resize="none" |
| | | |
| | | /> |
| | | <td colspan="14" style="white-space: pre-wrap;text-align:left "> |
| | | <template v-for="(item,index) in data.order.processingNote.split('\n')"> |
| | | {{item}} |
| | | <br> |
| | | </template> |
| | | </td> |
| | | </tr> |
| | | </tfoot> |
| | | </table> |
| | | <el-row style="text-align: left "> |
| | | <el-col :span="4">下单员:</el-col> |
| | | <el-col :span="4">审核人:</el-col> |
| | | <el-col :span="4">校对:</el-col> |
| | | </el-row> |
| | | <el-row style="text-align: left "> |
| | | <el-col :span="4">创建时间:</el-col> |
| | | <el-col :span="4">审核时间:</el-col> |
| | | <el-col :span="4">打印时间:</el-col> |
| | | </el-row> |
| | | <print-foot :order='data.order' /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | border-collapse: collapse; |
| | | border: 1px solid black; |
| | | width: 100%; |
| | | text-align: center; |
| | | } |
| | | table, th, td { |
| | | border: 1px solid black; |
| | |
| | | background-color: black; |
| | | color: black; |
| | | } |
| | | .title-s,.title-s th{ |
| | | border:0 |
| | | } |
| | | |
| | | |
| | | </style> |
| | |
| | | calculationAreaPrompt3:'是否按照', |
| | | calculationAreaPrompt4:'计算', |
| | | warning:'提示', |
| | | calculationAreaPrompt5:'订单重复是否继续创建', |
| | | } |
| | | |
| | | }, |
| | |
| | | export default defineStore('companyInfo', { |
| | | |
| | | state: () => ({ |
| | | companyName: '天津北玻玻璃工业技术有限公司', |
| | | companyName: '天津北玻玻璃工业技术有限公司(THBB-QR7.1-01)', |
| | | address:'天津宝坻区节能环保工业区天兴路西侧宝中道南侧', |
| | | telephone:'022-59280088', |
| | | fax:'022-59280066', |
| | |
| | | },//表头参数 |
| | | columns:[ |
| | | {type: 'seq',fixed:"left", title: t('basicData.Number'), width: 80 }, |
| | | {field: 'buildingNumber',width:120, title: '楼号',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'productId',width:140, title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'productName',width:300, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'buildingNumber',width:120, title: t('order.floorNumber'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'price',width:140, title: t('order.price'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'grossAmount',width:160, title: t('order.grossAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'width',width:120, title: t('order.width') ,editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | |
| | | width:[ |
| | | { |
| | | validator ({ cellValue }) { |
| | | const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/ |
| | | //const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/ |
| | | const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/ |
| | | if (!regex.test(cellValue)) { |
| | | return new Error(t('basicData.msg.range99999Dec2')) |
| | | } |
| | |
| | | {'code': 'Craft', 'name': t('order.technology'),status: 'primary',disabled: true}, |
| | | {'code': 'review', 'name': t('basicData.review'),status: 'primary',disabled: true}, |
| | | {'code': 'updateMoney', 'name': t('order.amountReset'),status: 'primary',disabled: true}, |
| | | {'code': 'saveOrder', 'name': t('basicData.save'),status: 'primary',icon: 'vxe-icon-save',disabled: false} |
| | | {'code': 'saveOrder', 'name': t('basicData.save'),status: 'primary',icon: 'vxe-icon-save',disabled: false}, |
| | | |
| | | ], |
| | | slots: { |
| | | tools: 'toolbar_buttons' |
| | |
| | | ElMessage.error(t('basicData.msg.checkoutLose')) |
| | | return |
| | | } |
| | | |
| | | if($grid.getTableData().tableData.length!=$grid.getTableData().fullData.length){ |
| | | ElMessage.error("请先取消筛选") |
| | | return |
| | | } |
| | | let order ={ |
| | | title:titleUploadData.value, |
| | | detail:$grid.getTableData().fullData, |
| | | detail:$grid.getTableData().tableData, |
| | | otherMoney:otherMoney.value |
| | | } |
| | | const errorAreaList = $grid.getTableData().fullData.filter( |
| | |
| | | } |
| | | ).then(()=>{ |
| | | errorAreaComputed() |
| | | saveOrder(order) |
| | | selectOrder(order) |
| | | }).catch(()=>{ |
| | | saveOrder(order) |
| | | selectOrder(order) |
| | | }) |
| | | |
| | | }else { |
| | | saveOrder(order) |
| | | selectOrder(order) |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | break |
| | | } |
| | | case 'saveOrderTitle': { |
| | | if(!gridOptions.menuConfig.body.options[0][5].disabled){ |
| | | ElMessage.error(t('order.msg.amountReset')) |
| | | return |
| | | } |
| | | |
| | | const project = titleUploadData.value.project |
| | | if(project === null || project === undefined || project === ''){ |
| | | ElMessage.error(t('order.msg.projectCheck')) |
| | | return |
| | | } |
| | | const customer = titleUploadData.value.customerId |
| | | if(customer === null || customer === undefined || customer === ''){ |
| | | ElMessage.error(t('order.msg.customerCheck')) |
| | | return |
| | | } |
| | | const salasMan = titleUploadData.value.salesman |
| | | if(salasMan === null || salasMan === undefined || salasMan === ''){ |
| | | ElMessage.error(t('order.msg.salasManCheck')) |
| | | return |
| | | } |
| | | const calculateType = titleUploadData.value.calculateType |
| | | if(calculateType === null || calculateType === undefined || calculateType === ''){ |
| | | ElMessage.error(t('order.msg.calculateTypeCheck')) |
| | | return |
| | | } |
| | | |
| | | if ($grid) { |
| | | const errMap = await $grid.validate(true) |
| | | if (errMap) { |
| | | ElMessage.error(t('basicData.msg.checkoutLose')) |
| | | return |
| | | } |
| | | |
| | | let order ={ |
| | | title:titleUploadData.value, |
| | | } |
| | | const errorAreaList = $grid.getTableData().fullData.filter( |
| | | item=>item.computeArea*1 < errorArea.value*1 |
| | | ) |
| | | |
| | | saveOrderTitle(order) |
| | | |
| | | |
| | | |
| | | |
| | |
| | | ElMessage.error(t('order.msg.tableLengthMax')) |
| | | return |
| | | } |
| | | $grid.insertAt({}, $grid.getTableData.length || -1) |
| | | if ($grid.getTableData().tableData.length != $grid.getTableData().fullData.length){ |
| | | ElMessage.error("请先取消筛选") |
| | | return |
| | | } |
| | | let result = toolbarButtonClickEvent() |
| | | let lengths = 0 |
| | | if (result!=null){ |
| | | lengths=result.start |
| | | } |
| | | /*console.log($grid.getTableData().tableData) |
| | | console.log($grid.getTableData().fullData)*/ |
| | | //$grid.insertAt({}, $grid.getTableData.length || -1) |
| | | if($grid.getTableData().fullData.length>lengths+1){ |
| | | $grid.insertAt({}, lengths+1) |
| | | }else{ |
| | | $grid.insertAt({}, -1) |
| | | } |
| | | break |
| | | } |
| | | case 'deleteRow':{ |
| | |
| | | case 'copyChecked' :{ |
| | | let result = toolbarButtonClickEvent() |
| | | if(result){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start && index<=result.end){ |
| | | item[result.cell] = val |
| | | } |
| | | }) |
| | | if(result.cell=='productName'){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | const val1 = dataList[result.start]["productId"] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start && index<=result.end){ |
| | | item[result.cell] = val |
| | | item["productId"] = val1 |
| | | } |
| | | }) |
| | | }else if(result.cell=='productId'){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | const val1 = dataList[result.start]["productName"] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start && index<=result.end){ |
| | | item[result.cell] = val |
| | | item["productName"] = val1 |
| | | } |
| | | }) |
| | | }else{ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start && index<=result.end){ |
| | | item[result.cell] = val |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | gridOptions.menuConfig.body.options[0][5].disabled=false |
| | | break |
| | |
| | | case 'copyAll' :{ |
| | | let result = toolbarButtonClickEvent() |
| | | if(result){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | item[result.cell] = val |
| | | } |
| | | }) |
| | | if(result.cell=='productName'){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | const val1 = dataList[result.start]["productId"] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | item[result.cell] = val |
| | | item["productId"] = val1 |
| | | } |
| | | }) |
| | | }else if(result.cell=='productId'){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | const val1 = dataList[result.start]["productName"] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | item[result.cell] = val |
| | | item["productName"] = val1 |
| | | } |
| | | }) |
| | | }else{ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = dataList[result.start][result.cell] |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | item[result.cell] = val |
| | | } |
| | | }) |
| | | } |
| | | |
| | | } |
| | | gridOptions.menuConfig.body.options[0][5].disabled=false |
| | | break |
| | |
| | | status: 'primary', |
| | | 'name': (res.data.order.orderReview>0?t('basicData.cancel'):t('basicData.restore'))} |
| | | gridOptions.toolbarConfig.buttons.push(button) |
| | | const buttonTitle = {'code': 'saveOrderTitle', |
| | | status: 'primary', |
| | | 'name': (res.data.order.orderReview>0?'保存表头':'保存表头')} |
| | | gridOptions.toolbarConfig.buttons.push(buttonTitle) |
| | | if(res.data.order.orderReview===-2){ |
| | | gridOptions.toolbarConfig.buttons[2].disabled = true |
| | | gridOptions.toolbarConfig.buttons[3].disabled = true |
| | |
| | | } |
| | | }) |
| | | |
| | | //查询重复订单方法 |
| | | const selectOrder = (order) => { |
| | | console.log(order) |
| | | request.post(`/order/selectOrder`,order).then((res) => { |
| | | if(res.code==200){ |
| | | if(res.data.data>0){ |
| | | ElMessageBox.confirm(`${t('order.msg.calculationAreaPrompt1')} |
| | | ${t('order.msg.calculationAreaPrompt5')}`, |
| | | t('order.msg.warning'), |
| | | { |
| | | confirmButtonText: t('basicData.confirmButtonText'), |
| | | cancelButtonText: t('basicData.cancelButtonText'), |
| | | type: 'warning', |
| | | } |
| | | ).then(()=>{ |
| | | saveOrder(order) |
| | | }).catch(()=>{ |
| | | }) |
| | | }else{ |
| | | saveOrder(order) |
| | | } |
| | | } |
| | | }).catch((err)=>{ |
| | | ElMessage.error(t('basicData.msg.ServerConnectionError')) |
| | | router.push("/login") |
| | | }) |
| | | } |
| | | |
| | | //保存订单方法 |
| | | const saveOrder = (order) => { |
| | | request.post(`/order/saveOrder`,order).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | | router.push({path:'/main/order/selectOrder'}) |
| | | }else { |
| | | ElMessage.error(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | //保存订单表头方法 |
| | | const saveOrderTitle = (order) => { |
| | | request.post(`/order/saveOrderTitle`,order).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | | router.push({path:'/main/order/selectOrder'}) |
| | |
| | | </el-col> |
| | | <el-col :span="2"><el-text>{{$t('order.icon')}}:</el-text></el-col> |
| | | <el-col :span="2"> |
| | | <el-select v-model="titleUploadData.icon" clearable placeholder=" " > |
| | | <el-select v-model="titleUploadData.icon" clearable placeholder=" " allow-create filterable> |
| | | <el-option v-for="item in titleSelectJson['icon']" |
| | | :key="item.id" |
| | | :label="item.basicName" |
| | |
| | | </el-col> |
| | | <el-col :span="2"><el-text>{{$t('order.packType')}}:</el-text></el-col> |
| | | <el-col :span="2"> |
| | | <el-select v-model="titleUploadData.packType" clearable placeholder=" " > |
| | | <el-select v-model="titleUploadData.packType" clearable placeholder=" " allow-create filterable > |
| | | <el-option v-for="item in titleSelectJson['packType']" |
| | | :key="item.id" |
| | | :label="item.basicName" |
| | |
| | | import OrderProcess from "@/components/sd/order/OrderProcess.vue" |
| | | import PrintSheet1 from "@/components/sd/order/PrintSheet1.vue" |
| | | import PrintSheet2 from "@/components/sd/order/PrintSheet2.vue" |
| | | import PrintSheet3 from "@/components/sd/order/PrintSheet3.vue" |
| | | import {useI18n} from "vue-i18n" |
| | | import {Download, Printer} from "@element-plus/icons-vue/global"; |
| | | import {Download, Printer} from "@element-plus/icons-vue/global" |
| | | import { saveAs } from "file-saver" |
| | | const { t } = useI18n() |
| | | const userStore = useUserInfoStore() |
| | | const tabsValue=ref('1') |
| | |
| | | name: '加工单', |
| | | children: [ |
| | | { code: 'sheet1', name: '横版-普通' }, |
| | | { code: 'sheet2', name: '横版-多层明细' }, |
| | | { code: 'sheet3', name: '横版-多层弯钢' } |
| | | { code: 'sheet2', name: '横版-多层明细' } |
| | | ] |
| | | } |
| | | // { code: 'getProcessList', name: t('searchOrder.processFlows'), prefixIcon: 'vxe-icon-file-txt', visible: true} |
| | |
| | | |
| | | const printContent = ref({ |
| | | id: 'child', |
| | | |
| | | }) |
| | | const exportFile = ()=>{ |
| | | const html = document.getElementById("child").innerHTML // 获取需要导出的HTML内容 |
| | | const blob = new Blob([html], { type: 'application/vnd.ms-excel' }) // 创建Blob对象 |
| | | saveAs(blob, rowClickIndex.value.orderId+".xlsx"); |
| | | |
| | | |
| | | } |
| | | |
| | | </script> |
| | | |
| | |
| | | > |
| | | <template #header="{ close, titleId, titleClass }"> |
| | | <el-button v-print="printContent" :icon="Printer" circle /> |
| | | <el-button :icon="Download" circle /> |
| | | <el-button @click="exportFile" :icon="Download" circle /> |
| | | </template> |
| | | |
| | | <print-sheet1 id="child" v-if="sheetIndex===1" :orderId="rowClickIndex.orderId" /> |
| | | <print-sheet2 id="child" v-else-if="sheetIndex===2" :orderId="rowClickIndex.orderId" /> |
| | | <print-sheet3 id="child" v-else :orderId="rowClickIndex.orderId" /> |
| | | |
| | | </el-dialog> |
| | | |
| | |
| | | width: 100%; |
| | | overflow-y: auto; |
| | | } |
| | | #child{ |
| | | width:100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | throw new ServiceException(Constants.Code_500,Constants.Code_msg); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("订单保存") |
| | | @PostMapping("/saveOrderTitle") |
| | | @SaCheckPermission("createOrder.add") |
| | | public Result saveOrderTitle(@RequestBody Map<String, Object> orderMap) throws Exception { |
| | | if(orderService.saveOrderTitle(orderMap)) { |
| | | return Result.seccess(true); |
| | | }else{ |
| | | throw new ServiceException(Constants.Code_500,Constants.Code_msg); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation("重复订单查询") |
| | | @SaCheckPermission("createOrder.search") |
| | | @PostMapping("/selectOrder") |
| | | public Result selectOrder(@RequestBody Map<String, Object> orderMap) throws Exception { |
| | | return Result.seccess(orderService.selectOrder(orderMap)); |
| | | } |
| | | @ApiOperation("订单分页筛选查询") |
| | | @SaCheckPermission("selectOrder.search") |
| | | @PostMapping("/getOrderList/{pageNum}/{pageSize}/{orderType}/{selectDate}") |
| | |
| | | private String levelTwo; |
| | | @TableField(exist= false) |
| | | private String totalThickness; |
| | | @TableField(exist= false) |
| | | private Integer differentSize;//用于标签打印时 明细是否显示 |
| | | //private Product product; |
| | | |
| | | } |
| | |
| | | List<OrderGlassDetail> selectOrderGlassDetailByOrderId(@Param("orderId") String orderId); |
| | | |
| | | void updateSizeAndProcess(@Param("orderGlassDetails")List<OrderGlassDetail> orderGlassDetails); |
| | | |
| | | Integer getDifferentSizeNumber(String orderId, Integer orderNumber); |
| | | } |
| | |
| | | |
| | | boolean reviewOrderById(String id, Integer status, String userId, String userName); |
| | | |
| | | boolean reviewOrderByIds(String id, Integer status, String userId, String userName); |
| | | |
| | | boolean reviewProcessById(String id, Integer status); |
| | | |
| | | boolean updateMoney(@Param("order") Order order); |
| | | |
| | | Integer cancelOrder(String id); |
| | | |
| | | Integer selectOrder(@Param("order") Order order); |
| | | } |
| | |
| | | } |
| | | return saveState; |
| | | } |
| | | |
| | | public boolean saveOrderTitle(Map<String,Object> orderMap) throws Exception { |
| | | JSONObject orderJson = new JSONObject(orderMap); |
| | | Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class); |
| | | |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | //判断传入id参数是否为空,未传入id为空插入订单表,传入更新表 |
| | | try{ |
| | | LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(Order::getOrderId, order.getOrderId()); |
| | | orderMapper.update(order,updateWrapper); |
| | | //修改订单主表面积与周长以及重量 |
| | | orderMapper.updateOrderParameter(order.getOrderId()); |
| | | |
| | | }catch (Exception e){ |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | //throw new Exception(); |
| | | } |
| | | return saveState; |
| | | } |
| | | |
| | | |
| | | public Map<String,Object> selectOrder(Map<String,Object> orderMap) throws Exception { |
| | | JSONObject orderJson = new JSONObject(orderMap); |
| | | Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class); |
| | | Map<String,Object> map = new HashMap<>(); |
| | | if(order.getOrderId()!=null){ |
| | | map.put("data",0); |
| | | }else{ |
| | | map.put("data",orderMapper.selectOrder(order)); |
| | | } |
| | | |
| | | return map; |
| | | } |
| | | //生成订单数据 |
| | | public void insertOrder(Order order,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) { |
| | | Integer maxOrderId = orderMapper.selectMaxOrderId(); |
| | |
| | | order.setOrderId(orderId); |
| | | order.setCreateOrder(2); |
| | | orderMapper.insert(order); |
| | | |
| | | insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList); |
| | | |
| | | |
| | | } |
| | | //修改订单数据,并且重新生成多个副表数据 |
| | |
| | | LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(Order::getOrderId, order.getOrderId()); |
| | | orderMapper.update(order,updateWrapper); |
| | | //删除订单明细表 |
| | | orderDetailMapper.delete(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, order.getOrderId())); |
| | | //删除订单小片表 |
| | | orderGlassDetailMapper.delete(new LambdaQueryWrapper<OrderGlassDetail>().eq(OrderGlassDetail::getOrderId, order.getOrderId())); |
| | | //删除其他金额明细表 |
| | | orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId())); |
| | | //删除订单明细表 |
| | | orderDetailMapper.delete(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, order.getOrderId())); |
| | | //删除订单小片表 |
| | | orderGlassDetailMapper.delete(new LambdaQueryWrapper<OrderGlassDetail>().eq(OrderGlassDetail::getOrderId, order.getOrderId())); |
| | | //删除其他金额明细表 |
| | | orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId())); |
| | | |
| | | |
| | | //删除订单工艺表 |
| | | // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId())); |
| | | insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList); |
| | | //删除订单工艺表 |
| | | // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId())); |
| | | insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList); |
| | | } |
| | | |
| | | |
| | |
| | | Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id)); |
| | | if(order.getProcessReview()!=2){ |
| | | throw new ServiceException(Constants.Code_600,"该订单还未审核"); |
| | | }else if(status==0){ |
| | | return orderMapper.reviewOrderByIds(id,status,userId,userName); |
| | | }else{ |
| | | return orderMapper.reviewOrderById(id,status,userId,userName); |
| | | } |
| | | return orderMapper.reviewOrderById(id,status,userId,userName); |
| | | |
| | | } |
| | | //工艺审核界面审核更新数据 |
| | | public boolean reviewProcessById(String id, Integer status,List<OrderGlassDetail> orderGlassDetails) { |
| | |
| | | orderProductDetailMap.put("productName",map.get("productName")); |
| | | List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId); |
| | | orderDetails.forEach(orderDetail->{ |
| | | |
| | | orderDetail.setGrossArea( |
| | | Double.parseDouble(String.format("%.3f", |
| | | Double.parseDouble(String.format("%.3f",Double.parseDouble( |
| | | String.format("%.3f", |
| | | orderDetail.getWidth()*orderDetail.getHeight()/1000000) |
| | | ) * orderDetail.getQuantity() |
| | | ) * orderDetail.getQuantity())) |
| | | ); |
| | | }); |
| | | |
| | |
| | | List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId); |
| | | orderDetails.forEach(orderDetail->{ |
| | | orderDetail.setGrossArea( |
| | | Double.parseDouble(String.format("%.3f", |
| | | orderDetail.getWidth()*orderDetail.getHeight()/1000000) |
| | | ) * orderDetail.getQuantity() |
| | | Double.parseDouble(String.format("%.3f",Double.parseDouble( |
| | | String.format("%.3f", |
| | | orderDetail.getWidth()*orderDetail.getHeight()/1000000) |
| | | ) * orderDetail.getQuantity())) |
| | | ); |
| | | |
| | | List<OrderGlassDetail> orderGlassDetails = |
| | |
| | | new QueryWrapper<OrderGlassDetail>(). |
| | | eq("order_id",orderId). |
| | | eq("order_number",orderDetail.getOrderNumber()) |
| | | ); |
| | | ); |
| | | Integer differentSize = orderGlassDetailMapper.getDifferentSizeNumber(orderId,orderDetail.getOrderNumber()); |
| | | orderDetail.setDifferentSize(differentSize); |
| | | orderDetail.setOrderGlassDetails(orderGlassDetails); |
| | | }); |
| | | |
| | |
| | | dd.money, |
| | | dd.area, |
| | | ifnull(od.processing_note,"") as processingNote, |
| | | ifnull(od.remarks,"") as buildingNumber, |
| | | ifnull(od.buildingNumber,"") as buildingNumber, |
| | | od.price |
| | | from delivery_detail dd |
| | | left join order_detail od on dd.order_id = od.order_id and dd.order_number = od.order_number |
| | |
| | | </foreach> |
| | | |
| | | </update> |
| | | |
| | | <select id="getDifferentSizeNumber"> |
| | | select if(count(id)>1,1,0) from (select |
| | | id |
| | | from order_glass_detail as a |
| | | where a.order_id = #{orderId} |
| | | and a.order_number = #{orderNumber} |
| | | group by child_width,child_height) as c |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.example.erp.mapper.sd.OrderMapper"> |
| | | |
| | | <select id="selectOrder"> |
| | | select |
| | | count(*) |
| | | from |
| | | sd.`order` as o |
| | | where |
| | | o.quantity=#{order.quantity} and o.area=#{order.area} and o.project=#{order.project} and o.customer_id=#{order.customerId} and o.money=#{order.money} |
| | | </select> |
| | | |
| | | <select id="selectMaxOrderId"> |
| | | select |
| | | ifnull(SUBSTR(max(order_id) from 9),0) |
| | |
| | | verifier = #{userName} |
| | | where order_id = #{id} |
| | | </update> |
| | | <update id="reviewOrderByIds"> |
| | | update `order` set order_review = #{status},process_review = #{status}, |
| | | verifier_id = #{userId}, |
| | | verifier = #{userName} |
| | | where order_id = #{id} |
| | | </update> |
| | | |
| | | <update id="reviewProcessById"> |
| | | update `order` set process_review = #{status} where order_id = #{id} |