Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
# Conflicts:
# north-glass-erp/src/main/java/com/example/erp/mapper/pp/GlassOptimizeMapper.java
# north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
# north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
| New file |
| | |
| | | <script setup> |
| | | import request from "@/utils/request" |
| | | import {ElDatePicker, ElMessage} from "element-plus" |
| | | import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue" |
| | | import {Search} from "@element-plus/icons-vue" |
| | | import {useRouter} from 'vue-router' |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | import {useI18n} from 'vue-i18n' |
| | | import deepClone from "@/utils/deepClone"; |
| | | import QRCode from "qrcode"; |
| | | import companyInfo from "@/stores/sd/companyInfo"; |
| | | import userInfo from "@/stores/userInfo" |
| | | //è¯è¨è·å |
| | | const company = companyInfo() |
| | | const {t} = useI18n() |
| | | let router = useRouter() |
| | | let produceList = ref([]) |
| | | let list = ref() |
| | | const details = ref([]) |
| | | const user=userInfo() |
| | | |
| | | |
| | | const data = ref({ |
| | | printList: [] |
| | | }) |
| | | |
| | | let props = defineProps({ |
| | | printList: null, |
| | | }) |
| | | |
| | | const {currentRoute} = useRouter() |
| | | const route = currentRoute.value |
| | | |
| | | |
| | | data.value.printList = JSON.parse(props.printList) |
| | | |
| | | onMounted(() => { |
| | | selectPrint() |
| | | } |
| | | ) |
| | | const selectPrint = () => { |
| | | request.post(`/finishedGoodsInventory/getSelectPrint`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <div style="width: 100%;height: 100%" v-for="(item,id) in produceList" :key="id"> |
| | | <div style="height: 100%;width: 100%;"> |
| | | <table> |
| | | <thead> |
| | | <tr> |
| | | <td colspan="5" style="text-align: center;font-weight: bolder"> |
| | | <div>éåç¦å天æç»çæéå
¬å¸</div> |
| | | </td> |
| | | </tr> |
| | | <tr style="width: 100%;" v-for="(itemFlow,index) in item.detail" :key="index"> |
| | | <td colspan="5"> |
| | | <div>客æ·åç§°: {{itemFlow.customer_name}}</div> |
| | | <div>项ç®åç§°: {{itemFlow.project}}</div> |
| | | <div>订åå·: {{itemFlow.order_id}} ç®±å·: {{itemFlow.remarks}}</div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td style="width: 170px;">ç¼å·</td> |
| | | <td style="width: 70px;">宽</td> |
| | | <td style="width: 70px;">é«</td> |
| | | <td style="width: 70px;">æ°é</td> |
| | | <td style="width: 70px;">é¢ç§¯</td> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr v-for="(itemDatile,index) in item.detailList" :key="index"> |
| | | <td>{{ itemDatile.building_number }}</td> |
| | | <td>{{ itemDatile.width }}</td> |
| | | <td>{{ itemDatile.height }}</td> |
| | | <td>{{ itemDatile.quantity }}</td> |
| | | <td>{{ itemDatile.area }}</td> |
| | | </tr> |
| | | <tr style="width: 100%;" v-for="(itemFlows,index) in item.detail" :key="index"> |
| | | <td>å计</td> |
| | | <td></td> |
| | | <td></td> |
| | | <td>{{itemFlows.quantity}}</td> |
| | | <td>{{itemFlows.area}}</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <style scoped> |
| | | * { |
| | | margin: 0; |
| | | padding: 0; |
| | | } |
| | | |
| | | #contentTable{ |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | #record{ |
| | | font-size: 20px; |
| | | text-align: left; |
| | | display: flex; |
| | | flex-wrap: wrap |
| | | } |
| | | |
| | | table{ |
| | | width: 100%; |
| | | } |
| | | |
| | | @media print { |
| | | @page { |
| | | size: auto; /* auto is the initial value */ |
| | | margin: 4mm 5mm 0mm 5mm /* this affects the margin in the printer settings */ |
| | | |
| | | } |
| | | |
| | | table { |
| | | page-break-before: always; |
| | | page-break-inside: auto; |
| | | } |
| | | |
| | | thead { |
| | | display: table-header-group; |
| | | page-break-inside: avoid; |
| | | } |
| | | |
| | | } |
| | | |
| | | </style> |
| | |
| | | const details = ref([]) |
| | | const user=userInfo() |
| | | |
| | | let totalQuantity = 0; // ç¨äºè®°å½æ»æ°é |
| | | let totalArea = 0; // ç¨äºè®°å½æ»é¢ç§¯ |
| | | |
| | | const data = ref({ |
| | | printList: [] |
| | |
| | | //å¤çåé
ç½®æå° |
| | | handleGetQRCode() |
| | | handleSummary() |
| | | AreaQuantitySummary() |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | |
| | | } |
| | | } |
| | | |
| | | const AreaQuantitySummary = () => { |
| | | |
| | | |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | // éåå½å项ç®ç detail æ°ç» |
| | | for (let j = 0; j < produceList.value[i].detail.length; j++) { |
| | | // ç´¯å æ°é |
| | | totalQuantity += produceList.value[i].detail[j].quantity; |
| | | // ç´¯å é¢ç§¯ |
| | | totalArea += produceList.value[i].detail[j].gross_area; |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | <div>{{ company.companyName }}</div> |
| | | <div>ç产æµç¨å¡</div> |
| | | <div style="font-weight: bolder;display: flex;justify-content:space-between"> |
| | | <div>æå°äººï¼{{user.user.userName}} æ¶é´ï¼{{formattedTime}}</div> |
| | | <div> |
| | | æå°äººï¼{{user.user.userName}} |
| | | æ¶é´ï¼{{formattedTime}} |
| | | |
| | | <span style="font-weight: bolder;" v-if="name=='éåç¦å天æç»çæéå
¬å¸'"> |
| | | æå°æ»æ°éï¼{{totalQuantity}} |
| | | æå°æ»é¢ç§¯ï¼{{totalArea}} |
| | | </span> |
| | | </div> |
| | | <div> |
| | | <span v-if="name!='éåç¦å天æç»çæéå
¬å¸'" style="font-size: 10px">{{itemFlow.otherRemarks}}</span> |
| | | æµç¨å¡å·ï¼ {{ |
| | |
| | | let otherMoneys = 0 |
| | | let sumMoney = 0 |
| | | let takeCare = "注æ:请妥åä¿ç®¡å¥½æå¸çç»çæ¶ï¼å¦æä¸¢å¤±ææåï¼æ1500å
åªèµå¿ã谢谢é
å!" |
| | | let remark = "夿³¨:æ¬æ¹ç»ç为ä¼çåæ ¼åï¼è¯·å¨å¸è´§æ¶,å½é¢æ¶ç¹éªæ¶ãå¦æè´¨éé®é¢å¨ä¸å¨å
䏿¬å
¬å¸èç³»,å¦åæ¦ä¸è´è´£ï¼" |
| | | let remark = company.deliveryRemark |
| | | |
| | | |
| | | |
| | |
| | | request.post(`/delivery/getSelectDeliveryPrinting`,form.value).then((res) => { |
| | | if(res.code==200){ |
| | | produceList.value = deepClone(res.data.data) |
| | | console.log(produceList.value) |
| | | delivery.value=deepClone(res.data.delivery) |
| | | money.value=deepClone(res.data.money) |
| | | otherMoney.value=deepClone(res.data.otherMoney) |
| | | produceList.value.forEach(item => { |
| | | sumMoney+=item.DeliveryDetail.money |
| | | }) |
| | | console.log(otherMoney.value) |
| | | otherMoney1=[] |
| | | otherMoney=deepClone(res.data.otherMoney) |
| | | for(let i=0;i<otherMoney.length;i++){ |
| | |
| | | </thead> |
| | | <tr style="border-style: none"> |
| | | <td colspan="9" style="border-style: none"> |
| | | <table style="border-style: none;width: 100%;height: 100%"> |
| | | <table style="border-style: none;width: 100%;height: 100%;"> |
| | | <template v-for="(item, index) in produceList" :key="index" > |
| | | <thead> |
| | | <tr v-if="index===0"> |
| | |
| | | <el-col :span="4"><div style="font-size: 12px" class="bottom">æå°äººï¼{{username}}</div></el-col> |
| | | |
| | | </el-row>--> |
| | | <tr class="day-in" style="border: 0;"> |
| | | <td colspan="9" style="border: 0;"> |
| | | <div style="display:flex;;text-align: left" class="bottom"> |
| | | |
| | | <tr class="day-in" style="border: 0;" v-if="company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0"> |
| | | <div style="display:flex;text-align: left" class="bottom"> |
| | | <div style="width: 15%">å¶ååï¼{{ delivery.creator }}</div> |
| | | <div style="width: 25%">å¶åæ¥æï¼{{ delivery.createTime }}</div> |
| | | <div style="width: 10%">åè´§åï¼</div> |
| | |
| | | <div style="width: 15%">客æ·ç¾åï¼</div> |
| | | <div style="width: 15%">ç¾æ¶æ¥æï¼</div> |
| | | </div> |
| | | |
| | | |
| | | </td> |
| | | </tr> |
| | | <tr class="day-in" style="border: 0;"> |
| | | <tr class="day-in" style="border: 0;" v-if="company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0;"> |
| | | <div style="display:flex;" class="bottom"> |
| | | æ¶å åª |
| | | {{takeCare}} |
| | | </div> |
| | | |
| | | </td> |
| | | </tr> |
| | | <tr class="day-in" style="border: 0;"> |
| | | <td colspan="9" style="border: 0;"> |
| | | <div style="display:flex;" class="bottom"> |
| | | {{remark}} |
| | | <div style="display:flex;text-align: left" class="bottom" v-for="item in remark"> |
| | | {{item}} |
| | | </div> |
| | | |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr class="day-in" style="border: 0" v-if="!company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0"> |
| | | <div style="width: 100%;height: 50px"></div> |
| | | </td> |
| | | </tr> |
| | | <tr class="day-in" style="border: 0" v-if="!company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0"> |
| | | <div style="display:flex;text-align: left" class="bottom"> |
| | | <div style="width: 15%">å¶ååï¼{{ delivery.creator }}</div> |
| | | <div style="width: 15%">å¶åæ¥æï¼{{ delivery.createTime1 }}</div> |
| | | <div style="width: 15%">åè´§åï¼</div> |
| | | <div style="width: 15%">叿ºï¼</div> |
| | | <div style="width: 15%">客æ·ç¾åï¼</div> |
| | | <div style="width: 15%">ç¾æ¶æ¥æï¼</div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | |
| | |
| | | margin: 0; |
| | | padding: 0; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | let money = ref("") |
| | | let otherMoneys = 0 |
| | | let takeCare = "注æ:请妥åä¿ç®¡å¥½æå¸çç»çæ¶ï¼å¦æä¸¢å¤±ææåï¼æ1500å
åªèµå¿ã谢谢é
å!" |
| | | let remark = "夿³¨:æ¬æ¹ç»ç为ä¼çåæ ¼åï¼è¯·å¨å¸è´§æ¶,å½é¢æ¶ç¹éªæ¶ãå¦æè´¨éé®é¢å¨ä¸å¨å
䏿¬å
¬å¸èç³»,å¦åæ¦ä¸è´è´£ï¼" |
| | | let remark = company.deliveryRemark |
| | | |
| | | |
| | | |
| | |
| | | <el-col :span="4"><div style="font-size: 12px" class="bottom">æå°äººï¼{{username}}</div></el-col> |
| | | |
| | | </el-row>--> |
| | | <tr class="day-in" style="border: 0;"> |
| | | <tr class="day-in" style="border: 0;" v-if="company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0;"> |
| | | <div style="display:flex;;text-align: left" class="bottom"> |
| | | <div style="width: 15%">å¶ååï¼{{ delivery.creator }}</div> |
| | |
| | | |
| | | </td> |
| | | </tr> |
| | | <tr class="day-in" style="border: 0;"> |
| | | <tr class="day-in" style="border: 0;" v-if="company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0;"> |
| | | <div style="display:flex;" class="bottom"> |
| | | æ¶å åª |
| | |
| | | </tr> |
| | | <tr class="day-in" style="border: 0;"> |
| | | <td colspan="9" style="border: 0;"> |
| | | <div style="display:flex;" class="bottom"> |
| | | {{remark}} |
| | | <div style="display:flex;text-align: left" class="bottom" v-for="item in remark"> |
| | | {{item}} |
| | | </div> |
| | | |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr class="day-in" style="border: 0" v-if="!company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0"> |
| | | <div style="width: 100%;height: 50px"></div> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr class="day-in" style="border: 0;" v-if="!company.showDeliveryCreator"> |
| | | <td colspan="9" style="border: 0;"> |
| | | <div style="display:flex;;text-align: left" class="bottom"> |
| | | <div style="width: 15%">å¶ååï¼{{ delivery.creator }}</div> |
| | | <div style="width: 25%">å¶åæ¥æï¼{{ delivery.createTime }}</div> |
| | | <div style="width: 10%">åè´§åï¼</div> |
| | | <div style="width: 10%">叿ºï¼</div> |
| | | <div style="width: 15%">客æ·ç¾åï¼</div> |
| | | <div style="width: 15%">ç¾æ¶æ¥æï¼</div> |
| | | </div> |
| | | |
| | | |
| | | </td> |
| | | </tr> |
| | | |
| | | </table> |
| | | </td> |
| | | </tr> |
| | |
| | | <tr class="title-s"> |
| | | <th colspan="2"></th> |
| | | <th colspan="5"> |
| | | <h3>éå®åè´§å</h3> |
| | | <h3>éå®ç¡®è®¤å</h3> |
| | | </th> |
| | | <th colspan="2" style="text-align: left;font-weight: bold;">åè´§åå·ï¼<span>{{delivery.deliveryId}}</span></th> |
| | | </tr> |
| | |
| | | </tr> |
| | | <template v-for="(item, index) in produceList" :key="index" > |
| | | <tr> |
| | | <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="4">产ååç§°:<span>{{item.DeliveryDetail.productName}}</span></td> |
| | | <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="4">产ååç§°:<span>{{item.productName}}</span></td> |
| | | <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="2">对æ¹åå·:</td> |
| | | <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="3">订åç¼å·:<span>{{item.DeliveryDetail.orderId}}</span></td> |
| | | </tr> |
| | |
| | | |
| | | </table> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"><div class="bottom">å¶ååï¼<span style="font-size: 10px">{{delivery.creator}}</span></div></el-col> |
| | | <el-col :span="4"><div class="bottom">å¶åæ¥æï¼<span style="font-size: 10px">{{delivery.createTime}}</span></div></el-col> |
| | | <el-col :span="4"><div class="bottom">åè´§åï¼</div></el-col> |
| | | <el-col :span="3"><div class="bottom">叿ºï¼</div></el-col> |
| | | <el-col :span="4"><div class="bottom">客æ·ç¾åï¼</div></el-col> |
| | | <el-col :span="4"><div class="bottom">ç¾æ¶æ¥æï¼</div></el-col> |
| | | <el-col :span="4">å¶ååï¼<span style="font-size: 10px">{{delivery.creator}}</span></el-col> |
| | | <el-col :span="4">å¶åæ¥æï¼<span style="font-size: 10px">{{delivery.createTime}}</span></el-col> |
| | | <el-col v-if="company.showDeliveryCreator" :span="4">åè´§åï¼</el-col> |
| | | <el-col v-if="company.showDeliveryCreator" :span="3">叿ºï¼</el-col> |
| | | <el-col v-if="company.showDeliveryCreator" :span="4">客æ·ç¾åï¼</el-col> |
| | | <el-col v-if="company.showDeliveryCreator" :span="4">ç¾æ¶æ¥æï¼</el-col> |
| | | |
| | | </el-row> |
| | | <el-row :gutter="20" style="margin-top: 20px;"> |
| | | <el-row :gutter="20" style="margin-top: 20px;" v-if="company.showDeliveryCreator"> |
| | | <el-col :span="4"><div class="bottom">æ¶å åª</div></el-col> |
| | | <el-col :span="20"><div class="bottom">{{takeCare}}</div></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20" style="margin-top: 20px;"> |
| | | <el-row :gutter="20" style="margin-top: 20px;" v-if="company.showDeliveryCreator"> |
| | | <el-col :span="24"><div class="bottom">{{remark}}</div></el-col> |
| | | </el-row> |
| | | |
| | |
| | | remarkSwitch:1,//æµç¨å¡ä¸æ¯å¦æ¾ç¤ºå
¶å®å¤æ³¨ï¼1æ¾ç¤ºï¼2䏿¾ç¤º |
| | | icon:"",//åæ åæ° |
| | | longSide:null,//订åå建æé¿è¾¹æç¤ºé¢è² nullä¸æç¤ºé¢è² |
| | | showDeliveryCreator:true,//åè´§åå建人å
æ¾ç¤ºæè
åæ¾ç¤º falseåæ¾ç¤º |
| | | deliveryRemark: ['夿³¨:æ¬æ¹ç»ç为ä¼çåæ ¼åï¼è¯·å¨å¸è´§æ¶,å½é¢æ¶ç¹éªæ¶ãå¦æè´¨éé®é¢å¨ä¸å¨å
䏿¬å
¬å¸èç³»,å¦åæ¦ä¸è´è´£ï¼'], |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | remarkSwitch:2,//æµç¨å¡ä¸æ¯å¦æ¾ç¤ºå
¶å®å¤æ³¨ï¼1æ¾ç¤ºï¼2䏿¾ç¤º |
| | | icon:"奥é£ä¹
é",//åæ åæ° |
| | | longSide:6500,//订åå建æé¿è¾¹æç¤ºé¢è² |
| | | |
| | | showDeliveryCreator:true,//åè´§åå建人å
æ¾ç¤ºæè
åæ¾ç¤º falseåæ¾ç¤º |
| | | deliveryRemark: ['夿³¨:æ¬æ¹ç»ç为ä¼çåæ ¼åï¼è¯·å¨å¸è´§æ¶,å½é¢æ¶ç¹éªæ¶ãå¦æè´¨éé®é¢å¨ä¸å¨å
䏿¬å
¬å¸èç³»,å¦åæ¦ä¸è´è´£ï¼'], |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | remarkSwitch:2,//æµç¨å¡ä¸æ¯å¦æ¾ç¤ºå
¶å®å¤æ³¨ï¼1æ¾ç¤ºï¼2䏿¾ç¤º |
| | | icon:"奥é£ä¹
é",//åæ åæ° |
| | | longSide:null,//订åå建æé¿è¾¹æç¤ºé¢è² |
| | | |
| | | showDeliveryCreator:true,//åè´§åå建人å
æ¾ç¤ºæè
åæ¾ç¤º falseåæ¾ç¤º |
| | | deliveryRemark: ['夿³¨:æ¬æ¹ç»ç为ä¼çåæ ¼åï¼è¯·å¨å¸è´§æ¶,å½é¢æ¶ç¹éªæ¶ãå¦æè´¨éé®é¢å¨ä¸å¨å
䏿¬å
¬å¸èç³»,å¦åæ¦ä¸è´è´£ï¼'], |
| | | |
| | | //天津 |
| | | printLabel: { |
| | |
| | | remarkSwitch:2,//æµç¨å¡ä¸æ¯å¦æ¾ç¤ºå
¶å®å¤æ³¨ï¼1æ¾ç¤ºï¼2䏿¾ç¤º |
| | | icon:"",//åæ åæ° |
| | | longSide:null,//订åå建æé¿è¾¹æç¤ºé¢è² nullä¸æç¤ºé¢è² |
| | | showDeliveryCreator:false,//åè´§åå建人å
æ¾ç¤ºæè
åæ¾ç¤º falseåæ¾ç¤º |
| | | deliveryRemark: ['温馨æç¤ºï¼è´§å°å·¥å°æå·¥ååï¼è¯·äºäºå¤©å
å®è£
宿¯ï¼å¦æªè½åæ¶å®è£
宿¯ï¼è¯·æ¾ç½®äºé´åå¹²ç¥å¤ï¼å¹¶å好鲿鲿·çæªæ½ï¼é²æ¢ç»çåéï¼ææåçéèç»ç请å¿ç¨å¸¦é
¸æ§æç¢±æ§çæ¶²ä½æ¸
æ´èé¢ã', |
| | | '声æï¼è´§å°å·¥å°æå·¥ååï¼å¦è¥è´µå¸ä¸åæ¶çå®è£
ææªå鲿鲿·æªæ½å¯¼è´çç»çåéï¼æå¸æ¦ä¸è´è´£ã', |
| | | 'æ¶è´§æ¶ééªæ¶äº§åæ°éãè§æ ¼åææ ç ´æï¼å¦åç°é®é¢éäºæ¶è´§ä¸æ¥å
ï¼ä»¥ä¹¦é¢éç¥å¹¶éä¸ç°åºè¯æææï¼å¦ç ´æç
§ççï¼ï¼ç¸å
³è¯æèµæä¸è¶³ï¼æå¨ä¸è¿°æ¥æå
æªæåºè´¨éå¼è®®çï¼é¾æè§ä¸ºäº§ååæ ¼ï¼æå¸å°ä¸äºæ¿æ
ä»»ä½è´£ä»»ãæ¬è¯·çæï¼'], |
| | | //天津 |
| | | printLabel: { |
| | | custom: (item1) => { |
| | |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import { useI18n } from 'vue-i18n' |
| | | import footSum from "@/hook/footSum"; |
| | | import {VXETable} from "vxe-table"; |
| | | import PrintPackingList from "@/components/mm/PrintPackingList.vue"; |
| | | import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global"; |
| | | import print from "vue3-print-nb"; |
| | | |
| | | //è¯è¨è·å |
| | | const { t } = useI18n() |
| | | const router = useRouter() |
| | | const route = useRoute() |
| | | const userStore = useUserInfoStore() |
| | | const username = userStore.user.userName |
| | | const userid = userStore.user.userId |
| | | const dialogTableVisible = ref(false) |
| | | let produceList = ref([]) |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | //æå° |
| | | let printRow = ref({ |
| | | list: null |
| | | }) |
| | | |
| | | const printRecord = ref({ |
| | | id: 'record' |
| | | }) |
| | | |
| | | const hasDecimal=(value)=>{ |
| | | const regex=/\./ // å®ä¹æ£å表达å¼ï¼æ¥æ¾å°æ°ç¹ |
| | |
| | | request.post(`/finishedGoodsInventory/getSelectStorageRecordPint/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | console.log(res.data) |
| | | total.dataTotal = res.data.total.total*1 |
| | | total.pageTotal= res.data.total.pageTotal |
| | | selectDate.value = res.data.selectDate |
| | |
| | | if ($grid) { |
| | | switch (code) { |
| | | |
| | | case 'cancel': { |
| | | case 'pint': { |
| | | const $table = xGrid.value |
| | | //gridOptions.columns.unshift(a) |
| | | if ($table) { |
| | |
| | | ElMessage.warning(t('productStock.unselectedData')) |
| | | return |
| | | } |
| | | let flowData = ref({ |
| | | |
| | | userId:userid, |
| | | userName:username, |
| | | orderDetail:selectRecords |
| | | |
| | | }) |
| | | request.post("/finishedGoodsInventory/cancelFinishedGoodsInventoryStorage",flowData.value).then((res) => { |
| | | if(res.code==200 && res.data==="true"){ |
| | | ElMessage.success(t('productStock.invalidSuccessfully')) |
| | | router.push({path:'/main/productStock/storageRecord',query:{random:Math.random(),storageType: type.value}}) |
| | | |
| | | }else if(res.data==="false1"){ |
| | | ElMessage.warning("åè´§åå·²å建") |
| | | }else{ |
| | | ElMessage.warning(t('productStock.cancellationFailed')) |
| | | } |
| | | }).catch((err)=>{ |
| | | ElMessage.error(t('basicData.msg.ServerConnectionError')) |
| | | router.push("/login") |
| | | }) |
| | | printRow.value.list = JSON.stringify(selectRecords) |
| | | dialogTableVisible.value = true |
| | | } |
| | | return; |
| | | |
| | |
| | | |
| | | |
| | | </vxe-grid> |
| | | |
| | | <!-- è£
ç®±åæå°--> |
| | | <el-dialog |
| | | id="sizePrintCalrd" |
| | | v-model="dialogTableVisible" |
| | | title="è£
ç®±åæå°" |
| | | destroy-on-close |
| | | style="width: 75%;height:75% "> |
| | | <template #header="{ close, titleId, titleClass }"> |
| | | <el-button v-print="printRecord" :icon="Printer" circle/> |
| | | </template> |
| | | <print-packing-list |
| | | id="record" |
| | | :printList="printRow.list" |
| | | style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | width: 99%; |
| | | height: 100%; |
| | | } |
| | | :deep(#sizePrintCalrd .el-dialog__body) { |
| | | height: 90%; |
| | | width: 100%; |
| | | overflow-y: auto; |
| | | display: flex; |
| | | flex-wrap: wrap |
| | | } |
| | | </style> |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {onMounted, reactive, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n"; |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import {hiprint} from "vue-plugin-hiprint"; |
| | | const { t } = useI18n() |
| | | |
| | | const xGrid = ref() |
| | |
| | | },*/ |
| | | columns:[ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'id',width: 70, title: 'ID',filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }}, |
| | | {field: 'id',width: 100, title:'å·¥ç¨å·',filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }}, |
| | | {field: 'id',width: 150, title: 'åç§°',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'èç³»',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'å度',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'ç±»å',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'ç¶æ',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'æµç¨æ°é',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'æµç¨å¡å·',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'project_no',width: 150, title: 'å·¥ç¨å·',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'project_name',width: 150, title: '项ç®åç§°',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'glass_type',width: 150, title: 'èç³»',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'glass_thickness',width: 150, title: 'å度',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'type',width: 150, title: 'ç±»å',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'state',width: 150, title: 'ç¶æ',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'glass_total',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'glass_total_area',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'process_qty',width: 150, title: 'æµç¨æ°é',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'process_cards',width: 150, title: 'æµç¨å¡å·',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | |
| | | ],//è¡¨å¤´åæ° |
| | | data:null,//è¡¨æ ¼æ°æ® |
| | | toolbarConfig: { |
| | | buttons: [], |
| | | slots:{ |
| | | buttons: "toolbar_buttons" |
| | | }, |
| | | buttons: [ |
| | | ], |
| | | import: false, |
| | | // export: true, |
| | | // print: true, |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | |
| | | }) |
| | | |
| | | onMounted(async () => { |
| | | getProject(); |
| | | }) |
| | | |
| | | const getProject = ()=>{ |
| | | request.post(`/glassOptimize/getProjectList`).then((res) => { |
| | | if(res.code==200){ |
| | | xGrid.value.loadData(res.data.data) |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | |
| | | |
| | | const printObjectProcess = () => { |
| | | hiprintTemplate.value.print(lastList.value) |
| | | hiprintTemplate.value.print({table:lastList.value}) |
| | | } |
| | | |
| | | </script> |
| | |
| | | <script lang="ts" setup> |
| | | import {onMounted, reactive, ref} from "vue"; |
| | | import {reactive, ref} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import deepClone from "@/utils/deepClone"; |
| | |
| | | import {Printer} from "@element-plus/icons-vue/global"; |
| | | import companyInfo from "@/stores/sd/companyInfo" |
| | | import {remove} from "xe-utils"; |
| | | import PrintCustomLabelProject from "@/components/pp/PrintCustomLabelProject.vue"; |
| | | //è¯è¨è·å |
| | | const {t} = useI18n() |
| | | |
| | | let router = useRouter() |
| | | const dialogTableVisibleLabelXJTwo = ref(false) |
| | | const dialogTableVisibleLabelProject = ref(false) |
| | | let rowClickIndex = ref(null) |
| | | let lastList = ref([]) |
| | | |
| | | const tags = ref([]) |
| | | |
| | | const tagType=ref() |
| | | |
| | | //å®ä¹æ°æ®è¿åç»æ |
| | | let produceList = ref([]) |
| | | let titleStyleVisible = ref(false) |
| | | let print = ref("1") |
| | | |
| | | |
| | | |
| | | //æ ç¾ |
| | | let labelRow = ref({ |
| | |
| | | type: "",//æ ç¾æ¨¡æ¿ |
| | | lableType: null,//æ ç¾ç±»å |
| | | dataType: 0,//æ ç¾ç±»å |
| | | projectNo:null, |
| | | detailType:0//æ¯å¦æ¯å·¥ç¨æç»æå° |
| | | projectNo:null |
| | | }) |
| | | const company = companyInfo() |
| | | let name=company.companyName |
| | | let hidePrintLabels = company.printLabel.hideButton; |
| | | |
| | | const form = reactive({ |
| | |
| | | orderId: '', |
| | | project: '' |
| | | }) |
| | | |
| | | const tag = ref({ |
| | | id:null, |
| | | name:null, |
| | | type:1, |
| | | tagWidth:null, |
| | | tagHeight:null, |
| | | value:null, |
| | | size:null |
| | | |
| | | }) |
| | | |
| | | onMounted(async () => { |
| | | await getTags(); |
| | | await hiprint.init(); |
| | | }) |
| | | let hiprintTemplate = ref() |
| | | const changeTag = () => { |
| | | hiprintTemplate.value = new hiprint.PrintTemplate({}); |
| | | const json = JSON.parse(tag.value.value) |
| | | hiprintTemplate.value.update(json) |
| | | } |
| | | const getTableRow = (row, type) => { |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | if(parseInt(print.value)==1){ |
| | | if (name.indexOf('åå©ç»ç')!=-1){ |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:1 }}) |
| | | } |
| | | else { |
| | | if (tag.value.name==null || tag.value.name==''){ |
| | | ElMessage.warning(t('è¯·éæ©æ ç¾æ¨¡æ¿')) |
| | | return |
| | | } |
| | | let name=company.companyName |
| | | labelRow.value.list = JSON.stringify([row]) |
| | | if (name == 'éåç¦å天æç»çæéå
¬å¸'){ |
| | | labelRow.value.type = tag.value.name |
| | | labelRow.value.dataType=3 |
| | | labelRow.value.lableType = 1 |
| | | labelRow.value.switch=true |
| | | labelRow.value.detailType=1 |
| | | lastList.value = [] |
| | | dialogTableVisibleLabelProject.value = true |
| | | } |
| | | else { |
| | | labelRow.value.type = 'æé«å¸¦æ°é' |
| | | labelRow.value.dataType=3 |
| | | dialogTableVisibleLabelXJTwo.value = true |
| | | } |
| | | } |
| | | |
| | | |
| | | return |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:1 }}) |
| | | }else{ |
| | | router.push({path: '/main/processCard/PrintCustomLabelSemi2', query: { projectNo: row.project_no,type:1 }}) |
| | | } |
| | |
| | | } |
| | | case 'edit1' :{ |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:2 }}) |
| | | break |
| | | } |
| | | case 'edit2' :{ |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:3 }}) |
| | | break |
| | | } |
| | | } |
| | |
| | | let endTime = form.date1[1] |
| | | let orderId=form.orderId |
| | | let project=form.project |
| | | |
| | | const getTags = () => { |
| | | request.get('tagStyle/getTagList').then(res => { |
| | | tags.value = res.data |
| | | }) |
| | | } |
| | | |
| | | //ç¬¬ä¸æ¬¡å è½½æ°æ® |
| | | |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //çéé
置项 |
| | | // remote: true |
| | | // remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | //è¡¨å¤´åæ° |
| | | columns: [ |
| | | {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, |
| | | {title: t('basicData.operate'), width: 120, slots: { default: 'button_slot' },fixed:"left"}, |
| | | {title: t('basicData.operate'), width: 140, slots: { default: 'button_slot' },fixed:"left"}, |
| | | {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50}, |
| | | { |
| | | field: 'project_no', |
| | |
| | | id: 'childLabel', |
| | | }) |
| | | |
| | | const printObjectProcess = () => { |
| | | hiprintTemplate.value.print(lastList.value) |
| | | const hideButton = () => { |
| | | let name=company.companyName |
| | | // æ ¹æ®æ¡ä»¶å¼ hidePrintLabels è¿æ»¤æé®æ°ç» |
| | | gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => { |
| | | // è¿éæ ¹æ® hidePrintLabels çå¼å³å®æ¯å¦éè printLabel å printLabel2 |
| | | if (name == 'éåç¦å天æç»çæéå
¬å¸') { |
| | | return button.code !== 'printLabel'; |
| | | } |
| | | }) |
| | | } |
| | | </script> |
| | | |
| | |
| | | :icon="Search" |
| | | type="primary" @click="getWorkOrder">{{ $t('basicData.search') }} |
| | | </el-button> |
| | | |
| | | |
| | | <el-row v-if="name.indexOf('åå©ç»ç')==-1"> |
| | | æ ç¾æ¨¡æ¿ï¼ |
| | | <el-select v-model="tag" @change="changeTag" placeholder="æ ç¾æ¨¡æ¿å表" style="width: 140px" > |
| | | <el-option |
| | | v-for="(tag,index) in tags" |
| | | :key="index" |
| | | :label="tag.name" |
| | | :value="tag" |
| | | /> |
| | | </el-select> |
| | | </el-row> |
| | | </el-row> |
| | | <el-row> |
| | | |
| | | </el-row> |
| | | <div> |
| | | |
| | | </div> |
| | | </div> |
| | | <vxe-grid |
| | | ref="xGrid" |
| | |
| | | </template> |
| | | <!--左边åºå®æ¾ç¤ºçææ§½--> |
| | | <template #button_slot="{ row }"> |
| | | <el-button v-if="name.indexOf('åå©ç»ç')!=-1" @click="getTableRow(row,'edit')" link type="primary" size="small">{{$t('machine.cutting')}}</el-button> |
| | | <el-button v-else @click="getTableRow(row,'edit')" link type="primary" size="small">{{$t('machine.tempering')}}</el-button> |
| | | <el-button v-if="name.indexOf('åå©ç»ç')!=-1" @click="getTableRow(row,'edit1')" link type="primary" size="small">{{$t('machine.tempering')}}</el-button> |
| | | <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{$t('machine.cutting')}}</el-button> |
| | | <el-button @click="getTableRow(row,'edit1')" link type="primary" size="small">{{$t('machine.tempering')}}</el-button> |
| | | <el-button @click="getTableRow(row,'edit2')" link type="primary" size="small">{{$t('components.finishedProduct')}}</el-button> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | |
| | | :projectNo="labelRow.projectNo" |
| | | style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | |
| | | <!-- æåæ ç¾å·¥ç¨æå°--> |
| | | <el-dialog |
| | | id="sizeCustom" |
| | | v-model="dialogTableVisibleLabelProject" |
| | | :title="$t('processCard.printLabel')" |
| | | destroy-on-close |
| | | style="width: 80%;height:75% "> |
| | | <template #header="{ close, titleId, titleClass }"> |
| | | <el-button @click="printObjectProcess" :icon="Printer" circle/> |
| | | </template> |
| | | <print-custom-label-project id="childLabel" |
| | | |
| | | :lastList = 'lastList' |
| | | :faceOrientation="labelRow.faceOrientation" |
| | | :lableType="labelRow.lableType" |
| | | :list="labelRow.list" |
| | | :type="labelRow.type" |
| | | :titleList="labelRow.titleList" |
| | | :switch="labelRow.switch" |
| | | :detailType="labelRow.detailType" |
| | | |
| | | style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | height: 93%; |
| | | } |
| | | #selectForm { |
| | | width: 50%; |
| | | width: 60%; |
| | | } |
| | | :deep(#titleStyle .el-dialog__body){ |
| | | height: 90%; |
| | |
| | | public Result getSelectStorageRecordPint(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody FinishedOperateLog finishedOperateLog){ |
| | | return Result.seccess(finishedGoodsInventoryService.getSelectStorageRecordPint(pageNum,pageSize,selectDate,finishedOperateLog)); |
| | | } |
| | | |
| | | /*è£
ç®±æå°æ¥è¯¢*/ |
| | | @ApiOperation("è£
ç®±æå°å
容æ¥è¯¢æ¥å£") |
| | | @SaCheckPermission("storageRecordPint.search") |
| | | @PostMapping("/getSelectPrint") |
| | | public Result getSelectPrint( @RequestBody Map<String, Object> object){ |
| | | return Result.seccess(finishedGoodsInventoryService.getSelectPrintSv(object)); |
| | | } |
| | | } |
| | |
| | | return Result.seccess(glassOptimizeService.getFlowCardList(optionVal,radio)); |
| | | } |
| | | |
| | | //å·¥ç¨æ¥è¯¢æµç¨å¡ |
| | | @ApiOperation("å·¥ç¨æ¥è¯¢æµç¨å¡") |
| | | @PostMapping ("/getProjectList") |
| | | public Result getProjectList(){ |
| | | return Result.seccess(glassOptimizeService.getProjectListSv()); |
| | | } |
| | | |
| | | //å·¥ç¨ç®¡çæ¥è¯¢ |
| | | @ApiOperation("å·¥ç¨ç®¡çæ¥è¯¢æ¥å£") |
| | | @PostMapping("/optimizeProjectMange/{startSelectTime}/{endSelectTime}") |
| | |
| | | Map<String,Integer> getSelectStorageRecordPintPageTotal(@Param("offset") Integer offset,@Param("pageSize") Integer pageSize,String startDate, String endDate, |
| | | @Param("finishedOperateLog") FinishedOperateLog finishedOperateLog); |
| | | |
| | | List<Map<String, String>> getPrimaryListLimt(String orderId, String processId, String remarks); |
| | | |
| | | List<Map<String, Object>> getDetailList(String orderId, String processId, String remarks); |
| | | } |
| | |
| | | List<Map<String, Object>> getPrintCustomDataProjectDetail(String projectNo, String stockId); |
| | | |
| | | List<Map<String, Object>> getPrintCustomDataProject(String projectNo); |
| | | |
| | | List<Map<String, String>> getPrintLabel3(String projectNo); |
| | | } |
| | |
| | | |
| | | //ä¿®æ¹å·¥ç¨ç¶æ |
| | | Boolean updateProjectStateMp(String projectNumber,Integer state); |
| | | List<Map<String, Object>> getProjectListMp(); |
| | | |
| | | //å é¤å·¥ç¨ |
| | | int deleteProjectMp(String projectNumber); |
| | |
| | | } |
| | | |
| | | |
| | | public Map<String, Object> getSelectPrintSv(Map<String, Object> object) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//æç»ç»æ |
| | | List<FinishedOperateLog> finishedOperateLogList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FinishedOperateLog.class); |
| | | if (!finishedOperateLogList.isEmpty()) { |
| | | Set<String> processedProcessIds = new HashSet<>(); |
| | | for (FinishedOperateLog finishedOperateLog : finishedOperateLogList) { |
| | | String OrderId = finishedOperateLog.getOrderId(); |
| | | String Remarks = finishedOperateLog.getRemarks(); |
| | | |
| | | // æ£æ¥æ¯å¦å·²ç»å¤çè¿è¯¥ OrderIdï¼å¦æå¤çè¿åè·³è¿ |
| | | if (processedProcessIds.contains(OrderId) && processedProcessIds.contains(Remarks)) { |
| | | continue; |
| | | } |
| | | |
| | | Map<String, Object> itemmap = new HashMap<>(); |
| | | itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimt(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks())); |
| | | |
| | | List<Map<String, Object>> detailList = finishedOperateLogMapper.getDetailList(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks()); |
| | | itemmap.put("detailList", detailList); |
| | | |
| | | list.add(itemmap); |
| | | |
| | | processedProcessIds.add(OrderId); |
| | | processedProcessIds.add(Remarks); |
| | | } |
| | | } |
| | | map.put("data", list); |
| | | return map; |
| | | } |
| | | } |
| | |
| | | map.put("data", flowCardMapper.getPrintLabel(projectNo)); |
| | | } else if (Objects.equals(type, "2")) { |
| | | map.put("data", flowCardMapper.getPrintLabel2(projectNo)); |
| | | } else if (Objects.equals(type, "3")) { |
| | | map.put("data", flowCardMapper.getPrintLabel3(projectNo)); |
| | | } |
| | | |
| | | return map; |
| | |
| | | map.put("data", glassOptimizeMapper.deleteProjectMp(projectNumber)); |
| | | return map; |
| | | } |
| | | } |
| | | |
| | | |
| | | public Map<String, Object> getProjectListSv() { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", glassOptimizeMapper.getProjectListMp()); |
| | | return map; |
| | | }} |
| | |
| | | |
| | | </select> |
| | | |
| | | <select id="getPrimaryListLimt"> |
| | | select o.order_id, |
| | | o.customer_name, |
| | | o.project, |
| | | fol.remarks, |
| | | SUM(fol.quantity) as quantity, |
| | | ROUND( sum(od.width * od.height * fol.quantity) / 1000000, 2 ) as area |
| | | from (select * |
| | | from mm.finished_operate_log aa where aa.operate_type = 'å
¥åº' and aa.status!='å·²ä½åº') fol |
| | | left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number |
| | | left join sd.`order` o on o.order_id=fol.order_id |
| | | where |
| | | o.order_id=#{orderId} and fol.remarks=#{remarks} |
| | | and (fol.remarks is not null and fol.remarks !="") and (fol.process_id !="" and fol.process_id is not null) |
| | | |
| | | group by fol.remarks,od.order_id |
| | | order by fol.operate_time desc |
| | | </select> |
| | | |
| | | <select id="getDetailList"> |
| | | SELECT |
| | | od.building_number, |
| | | od.width, |
| | | od.height, |
| | | fol.quantity, |
| | | ROUND( od.width * od.height * fol.quantity / 1000000, 2 ) as area |
| | | FROM |
| | | ( SELECT * FROM mm.finished_operate_log aa WHERE aa.operate_type = 'å
¥åº' AND aa.STATUS != 'å·²ä½åº' ) fol |
| | | LEFT JOIN sd.order_detail od ON fol.order_id = od.order_id |
| | | AND fol.operation_number = od.order_number |
| | | LEFT JOIN sd.`order` o ON o.order_id = fol.order_id |
| | | WHERE |
| | | o.order_id=#{orderId} and fol.remarks=#{remarks} |
| | | ORDER BY |
| | | fol.operate_time DESC |
| | | |
| | | </select> |
| | | </mapper> |
| | |
| | | order by opt.heat_layout_id, opt.heat_layout_sort desc |
| | | </select> |
| | | |
| | | <select id="getPrintLabel3"> |
| | | select o.order_id, |
| | | c.customer_abbreviation as customer_name, |
| | | o.project, |
| | | od.building_number, |
| | | od.processing_note, |
| | | ogd.child_width as width, |
| | | ogd.child_height as height, |
| | | od.product_name as glass_child, |
| | | ogd.process, |
| | | e.type_name, |
| | | opd.stock_id, |
| | | od.quantity, |
| | | od.other_columns, |
| | | od.bend_radius, |
| | | od.order_number as heat_layout_id, |
| | | a.id as heat_layout_sort |
| | | from pp.optimize_detail opd |
| | | left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id |
| | | left join sd.order_detail od |
| | | on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number |
| | | left join sd.order_glass_detail ogd |
| | | on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and |
| | | opd.layer = ogd.technology_number |
| | | left join sd.product p on od.product_id = p.id |
| | | left join sd.basic_glass_type e on e.type_id = p.type_id |
| | | left join sd.customer c on c.id = o.customer_id |
| | | left join |
| | | (select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a |
| | | on a.process_id=opd.process_id |
| | | where opd.project_no = #{projectNo} |
| | | order by opd.stock_id,opd.polys_id |
| | | </select> |
| | | </mapper> |
| | |
| | | where project_no = #{projectNumber} |
| | | </delete> |
| | | |
| | | <select id="getProjectListMp"> |
| | | SELECT |
| | | p.id, |
| | | p.project_no, |
| | | p.project_name, |
| | | p.glass_type, |
| | | p.glass_thickness, |
| | | p.type, |
| | | p.state, |
| | | p.glass_total, |
| | | p.glass_total_area, |
| | | p.process_qty, |
| | | p.process_cards, |
| | | p.remark, |
| | | a.name, |
| | | p.create_time, |
| | | p.update_time |
| | | FROM |
| | | ( |
| | | pp.optimize_project p |
| | | LEFT JOIN pp.optimize_admin a ON (( |
| | | p.creater = a.Id |
| | | ))) |
| | | WHERE |
| | | ( p.state = 1 ) |
| | | ORDER BY |
| | | p.create_time DESC, |
| | | p.project_no |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | </select> |
| | | |
| | | <select id="getSelectDeliveryPrinting" resultMap="selectDeliveryDetailOrderDetail" > |
| | | select dd.delivery_id,od.order_id,od.product_id,pt.remarks as product_name,sum(dd.area) as area,sum(dd.money) as money,sum(dd.quantity) as quantity from |
| | | select dd.delivery_id,od.order_id,od.product_id,od.product_name,sum(dd.area) as area,sum(dd.money) as money,sum(dd.quantity) as quantity from |
| | | delivery_detail dd left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number |
| | | left join product pt on pt.id=od.product_id |
| | | |
| | |
| | | </select> |
| | | |
| | | <select id="getSelectOrderPrinting" > |
| | | select od.order_id,od.product_id,p.remarks as product_name,sum(od.compute_gross_area) as area,sum(od.gross_amount) as gross_amount ,sum(od.quantity) as quantity from |
| | | select od.order_id,od.product_id,od.product_name,sum(od.compute_gross_area) as area,sum(od.gross_amount) as gross_amount ,sum(od.quantity) as quantity from |
| | | order_detail od left join product p on od.product_id=p.id |
| | | where od.order_id = #{orderId} |
| | | and od.product_id = #{productId} |
| | |
| | | <select id="getSelectDeliveryDetailPrinting" > |
| | | select od.order_id, |
| | | od.order_number, |
| | | p.remarks as product_name, |
| | | od.product_name, |
| | | od.width, |
| | | od.height, |
| | | dd.quantity, |