north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
@@ -86,146 +86,149 @@ }); </script> <template> <div id="sheet"> <table border="1" > <tr class="title-s"> <th colspan="13"> <h1> {{company.companyName}} </h1> </th> </tr> <div> <tr class="title-s"> <th colspan="2"></th> <th colspan="5"> <h3>销售发货单</h3> </th> <th colspan="2" style="text-align: left;font-weight: bold;">发货单号:<span>{{delivery.deliveryId}}</span></th> </tr> <tr> <th style="text-align: left;border:none;font-weight: bold;" colspan="4">客户名称:<span>{{delivery.customerName}}</span></th> <th style="text-align: left;border:none;font-weight: bold;" colspan="3">项目名称:<span>{{delivery.project}}</span></th> <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系人:<span>{{delivery.contacts}}</span></th> </tr> <tr> <th style="text-align: left;border:none;font-weight: bold;" colspan="7">送货地址:<span>{{delivery.deliveryAddress}}</span></th> <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系电话:<span>{{delivery.contactNumber}}</span></th> </tr> <tr> <th style="width: 6%;font-weight: bold;">序号</th> <th style="width: 20%;font-weight: bold;">楼层编号</th> <th style="width: 20%;font-weight: bold;" colspan="2">宽(弧度)*高</th> <th style="width: 10%;font-weight: bold;">数量</th> <th style="width: 10%;font-weight: bold;">面积</th> <th style="width: 10%;font-weight: bold;">单价</th> <th style="width: 12%;font-weight: bold;">金额</th> <th style="width: 12%;font-weight: bold;" colspan="2">加工要求</th> </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="3">对方单号:</td> <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="3">订单编号:<span>{{item.DeliveryDetail.orderId}}</span></td> </tr> <div id="sheet" style="width: 100%;height: 100%"> <div style="font-size: 30px;text-align: center;font-weight: bold;">{{company.companyName}}</div> <el-row :gutter="20"> <el-col :span="7"><div></div></el-col> <el-col :span="10"><div style="font-size: 25px;text-align: center;font-weight: bold;">销售发货单</div></el-col> <el-col :span="7"> <div style="display: flex;margin-top: 10px;"> <div style="font-weight: bold;font-size: 15px">发货单号:</div> <div style="font-weight: bold;font-size: 15px">{{delivery.deliveryId}}</div> <tr class="day-in" v-for="(items, index1) in item.DeliveryDetailList" :key="index1"> <td>{{items.order_number}}</td> <td>{{items.buildingNumber}}</td> <td colspan="2" style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td> <td>{{items.quantity}}</td> <td>{{items.area}}</td> <td>{{items.price}}</td> <td>{{items.money}}</td> <td colspan="2">{{items.processingNote}}</td> </tr> <tr class="day-in" > <td style="font-size: 15px;font-weight: bold;" colspan="4">小计:</td> <td>{{item.DeliveryDetail.quantity}}</td> <td>{{item.DeliveryDetail.area}}</td> <td></td> <td>{{item.DeliveryDetail.money}}</td> <td></td> </tr> </template> <tr class="day-in"> <td style="font-size: 15px;font-weight: bold;" colspan="4">合计:</td> <td>{{delivery.quantity}}</td> <td>{{delivery.area}}</td> <td></td> <td>{{delivery.money}}</td> <td></td> </tr> <tr class="day-in"> <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6" colspan="4"> <div style="display: flex;font-size: 10px;"> <div>加工费用</div> <div style="margin-left: 20%">单价</div> <div style="margin-left: 20%">数量</div> <div style="margin-left: 20%">金额</div> </div> </el-col> </el-row> <div style="border: 1px solid #d3dce6;border-collapse: collapse;width: 100%;height: 100%;"> <table id="table1" style="border: 1px solid #d3dce6;border-collapse: collapse;width: 100%;height: 100%;"> <tr> <th style="text-align: left;border:none;" colspan="3">客户名称:<span>{{delivery.customerName}}</span></th> <th style="text-align: left;border:none;" colspan="3">项目名称:<span>{{delivery.project}}</span></th> <th style="text-align: left;border:none;" colspan="2">联系人:<span>{{delivery.contacts}}</span></th> </tr> <tr> <th style="text-align: left;border:none;" colspan="6">送货地址:<span>{{delivery.deliveryAddress}}</span></th> <th style="text-align: left;border:none;" colspan="2">联系电话:<span>{{delivery.contactNumber}}</span></th> </td> <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">总金额: {{delivery.money}}</td> </tr> <tr class="day-in"> <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6;" colspan="4"></td> <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">大写金额: {{money}}</td> </tr> </tr> <tr> <th style="width: 6%;">序号</th> <th style="width: 20%;">楼层编号</th> <th style="width: 20%;">宽(弧度)*高</th> <th style="width: 10%;">数量</th> <th style="width: 10%;">面积</th> <th style="width: 10%;">单价</th> <th style="width: 12%;">金额</th> <th style="width: 12%;">加工要求</th> </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> <template v-for="(item, index) in produceList" :key="index" > <tr> <td style="font-size: 15px;font-weight: bold;" colspan="3">产品名称:<span>{{item.DeliveryDetail.orderDetail.productName}}</span></td> <td style="font-size: 15px;font-weight: bold;" colspan="3">对方单号:</td> <td style="font-size: 15px;font-weight: bold;" colspan="2">订单编号:<span>{{item.DeliveryDetail.orderDetail.orderId}}</span></td> </tr> </el-row> <el-row :gutter="20" style="margin-top: 20px;"> <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-col :span="24"><div class="bottom">{{remark}}</div></el-col> </el-row> <tr class="day-in" v-for="(items, index1) in item.DeliveryDetailList" :key="index1"> <td>{{items.order_number}}</td> <td>{{items.buildingNumber}}</td> <td style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td> <td>{{items.quantity}}</td> <td>{{items.area}}</td> <td>{{items.price}}</td> <td>{{items.money}}</td> <td>{{items.processingNote}}</td> </tr> <tr class="day-in" > <td style="font-size: 15px;font-weight: bold;" colspan="3">小计:</td> <td>{{item.DeliveryDetail.quantity}}</td> <td>{{item.DeliveryDetail.area}}</td> <td></td> <td>{{item.DeliveryDetail.money}}</td> <td></td> </tr> </template> <tr class="day-in"> <td style="font-size: 15px;font-weight: bold;" colspan="3">合计:</td> <td>{{delivery.quantity}}</td> <td>{{delivery.area}}</td> <td></td> <td>{{delivery.money}}</td> <td></td> </tr> <tr class="day-in"> <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6" colspan="3"> <div style="display: flex;font-size: 10px;"> <div>加工费用</div> <div style="margin-left: 20%">单价</div> <div style="margin-left: 20%">数量</div> <div style="margin-left: 20%">金额</div> </div> </td> <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">总金额: {{delivery.money}}</td> </tr> <tr class="day-in"> <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6;" colspan="3"></td> <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">大写金额: {{money}}</td> </tr> </table> </div> <el-row :gutter="20"> <el-col :span="3"><div class="bottom">制单员:<span style="font-size: 10px">{{delivery.creator}}</span></div></el-col> <el-col :span="5"><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="4"><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-row> <el-row :gutter="20" style="margin-top: 20px;"> <el-col :span="3"><div class="bottom">架子 只</div></el-col> <el-col :span="21"><div class="bottom">{{takeCare}}</div></el-col> </el-row> <el-row :gutter="20" style="margin-top: 20px;"> <el-col :span="24"><div class="bottom">{{remark}}</div></el-col> </el-row> </div> </div> </template> <style scoped> #sheet{ h1,h3{ left:0; right:0; top:0; bottom:0; margin:auto; } #table1 tr{ height: 30px; h1{ font-size: 1.5rem; } #table1 th{ height: 30px; border: 1px solid #d3dce6; h3{ font-size: 1.2rem; font-weight: bolder; } table{ border-collapse: collapse; font-size: 15px; font-weight: bold; } .day-in td{ width: 100%; text-align: center; } #table1 td{ border: 1px solid #d3dce6; border-collapse: collapse; tr,td,th{ border: 1px solid black; } #deliveryPrinting .el-dialog__header{ visibility:hidden th,.no-change-row { white-space: nowrap; } .title-1{ north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue
New file @@ -0,0 +1,213 @@ <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" import deepClone from "@/utils/deepClone"; import {ElMessage} from "element-plus"; const company = companyInfo() let produceList = ref([]) let delivery = ref([]) let money = ref("") let takeCare = "注意:请妥善保管好我司的玻璃架,如有丢失或损坏,按1500元只赔偿。谢谢配合!" let remark = "备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!" let props = defineProps({ orderId:null }) const form = ref({ }) const getData = () => { if(props.orderId===null || props.orderId===undefined || props.orderId===''){ return } form.value.orderId=props.orderId request.post(`/Delivery/getSelectOrderPrinting`,form.value).then((res) => { if(res.code==200){ produceList.value = deepClone(res.data.data) delivery.value=deepClone(res.data.delivery) money.value=deepClone(res.data.money) }else{ ElMessage.warning(res.msg) router.push("/login") } }) } onMounted(() => { getData() }) </script> <template> <div id="sheet"> <table border="1" > <tr class="title-s"> <th colspan="13"> <h1> {{company.companyName}} </h1> </th> </tr> <tr class="title-s"> <th colspan="2"></th> <th colspan="5"> <h3>销售发货单</h3> </th> <th colspan="2" style="text-align: left;font-weight: bold;">发货单号:<span>{{delivery.deliveryId}}</span></th> </tr> <tr> <th style="text-align: left;border:none;font-weight: bold;" colspan="4">客户名称:<span>{{delivery.customerName}}</span></th> <th style="text-align: left;border:none;font-weight: bold;" colspan="3">项目名称:<span>{{delivery.project}}</span></th> <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系人:<span>{{delivery.contacts}}</span></th> </tr> <tr> <th style="text-align: left;border:none;font-weight: bold;" colspan="7">送货地址:<span>{{delivery.deliveryAddress}}</span></th> <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系电话:<span>{{delivery.contactNumber}}</span></th> </tr> <tr> <th style="width: 6%;font-weight: bold;">序号</th> <th style="width: 20%;font-weight: bold;">楼层编号</th> <th style="width: 20%;font-weight: bold;" colspan="2">宽(弧度)*高</th> <th style="width: 10%;font-weight: bold;">数量</th> <th style="width: 10%;font-weight: bold;">面积</th> <th style="width: 10%;font-weight: bold;">单价</th> <th style="width: 12%;font-weight: bold;">金额</th> <th style="width: 12%;font-weight: bold;" colspan="2">加工要求</th> </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="3">对方单号:</td> <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="3">订单编号:<span>{{item.DeliveryDetail.orderId}}</span></td> </tr> <tr class="day-in" v-for="(items, index1) in item.DeliveryDetailList" :key="index1"> <td>{{items.order_number}}</td> <td>{{items.buildingNumber}}</td> <td colspan="2" style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td> <td>{{items.quantity}}</td> <td>{{items.compute_gross_area}}</td> <td>{{items.price}}</td> <td>{{items.gross_amount}}</td> <td colspan="2">{{items.processingNote}}</td> </tr> <tr class="day-in" > <td style="font-size: 15px;font-weight: bold;" colspan="4">小计:</td> <td>{{item.DeliveryDetail.quantity}}</td> <td>{{item.DeliveryDetail.area}}</td> <td></td> <td>{{item.DeliveryDetail.money}}</td> <td></td> </tr> </template> <tr class="day-in"> <td style="font-size: 15px;font-weight: bold;" colspan="4">合计:</td> <td>{{delivery.quantity}}</td> <td>{{delivery.area}}</td> <td></td> <td>{{delivery.money}}</td> <td></td> </tr> <tr class="day-in"> <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6" colspan="4"> <div style="display: flex;font-size: 10px;"> <div>加工费用</div> <div style="margin-left: 20%">单价</div> <div style="margin-left: 20%">数量</div> <div style="margin-left: 20%">金额</div> </div> </td> <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">总金额: {{delivery.money}}</td> </tr> <tr class="day-in"> <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6;" colspan="4"></td> <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">大写金额: {{money}}</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-row> <el-row :gutter="20" style="margin-top: 20px;"> <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-col :span="24"><div class="bottom">{{remark}}</div></el-col> </el-row> </div> </template> <style scoped> h1,h3{ left:0; right:0; top:0; bottom:0; margin:auto; } h1{ font-size: 1.5rem; } h3{ font-size: 1.2rem; font-weight: bolder; } table{ border-collapse: collapse; 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{ height: 2px; width: 100%; background-color: black; color: black; } </style> north-glass-erp/northglass-erp/src/views/sd/basicData/CreateBasicData.vue
@@ -135,6 +135,13 @@ const emit = defineEmits(['gaveParent']) const saveBasicData = () =>{ console.log(basic.value.basicType[1]) if(basic.value.basicType[1]==="hollowThickness"||basic.value.basicType[1]==="stuffThickness"||basic.value.basicType[1]==="InterlayerThickness"){ if(!basic.value.input.includes("mm")){ basic.value.input=basic.value.input+"mm" } } console.log(basic.value.input) request.post(`/basicData/addBasicData`, basic.value).then(res => { if (res.data) { ElMessage.success(t('basicData.msg.saveSuccess')) @@ -143,6 +150,11 @@ }) } const updateBasicData = () =>{ if(basic.value.basicType[1]==="hollowThickness"||basic.value.basicType[1]==="stuffThickness"||basic.value.basicType[1]==="InterlayerThickness"){ if(!basic.value.input.includes("mm")){ basic.value.input=basic.value.input+"mm" } } let submitArr = props.rowIndex submitArr.basicType = basic.value.basicType[0] submitArr.basicCategory = basic.value.basicType[1] north-glass-erp/northglass-erp/src/views/sd/delivery/SelectDelivery.vue
@@ -345,7 +345,7 @@ <el-button @click="getTableRow(row,'edit')" v-if="userStore.user.permissions.indexOf('selectDelivery.edit') > -1" link type="primary" size="small">{{$t('basicData.edit')}}</el-button> <!-- <el-button @click="getTableRow(row,'printing')" :disabled="row.deliveryState!==2" link type="primary" size="small">打印</el-button>--> <el-button @click="getTableRow(row,'printing')" :disabled="row.deliveryState!==2" link type="primary" size="small">打印</el-button> <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('searchOrder.deleteConfirm')"> <template #reference> <el-button :disabled="row.deliveryState===2" link type="primary" size="small">{{ $t('basicData.delete') }}</el-button> north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -17,6 +17,7 @@ import {useI18n} from "vue-i18n" import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global" import { saveAs } from "file-saver" import PrintSheet3 from "@/components/sd/order/PrintSheet3.vue"; const { t } = useI18n() const userStore = useUserInfoStore() const company = companyInfo() @@ -79,7 +80,8 @@ name: '加工单', children: [ { code: 'sheet1', name: '横版-普通' }, { code: 'sheet2', name: '横版-多层明细' } { code: 'sheet2', name: '横版-多层明细' }, { code: 'sheet3', name: '浏览发货信息' } ] } // { code: 'getProcessList', name: t('searchOrder.processFlows'), prefixIcon: 'vxe-icon-file-txt', visible: true} @@ -193,6 +195,18 @@ } dialogTableVisible.value = true sheetIndex.value=2 if(rowClickIndex.value.processReview===2 && rowClickIndex.value.orderReview===0){ reviewDisabled.value=false } break } case 'sheet3': { if(rowClickIndex.value===null){ ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } dialogTableVisible.value = true sheetIndex.value=3 if(rowClickIndex.value.processReview===2 && rowClickIndex.value.orderReview===0){ reviewDisabled.value=false } @@ -521,6 +535,7 @@ <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-if="sheetIndex===3" :orderId="rowClickIndex.orderId" /> </el-dialog> north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -237,8 +237,8 @@ //对循环明细的数据进行累加 quantity += orderDetail.getDeliveryDetail().getQuantity(); area += orderDetail.getFinishedGoodsInventory().getActualSignalArea() * orderDetail.getDeliveryDetail().getQuantity(); money += orderDetail.getPrice() * orderDetail.getDeliveryDetail().getQuantity(); area += orderDetail.getComputeArea() * orderDetail.getDeliveryDetail().getQuantity(); money += deliveryDetailMoney; Integer deliveryDetailmaximum = deliveryDetailMapper.getdeliveryDetailmaximum(oddNumber); //额外金额修改 north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -150,7 +150,7 @@ insert into sd.delivery_detail (delivery_id,delivery_number,order_number, area,order_id,quantity,money,delivery_detail_remakes,delivery_detail_state,other_columns,create_time) values ( #{number} ,#{deliveryNumber},#{orderDetail.orderNumber},#{orderDetail.computeGrossArea}, #{number} ,#{deliveryNumber},#{orderDetail.orderNumber},#{orderDetail.computeArea}*#{orderDetail.deliveryDetail.quantity}, #{orderDetail.orderId},#{orderDetail.deliveryDetail.quantity}, #{deliveryDetailMoney},'',1,#{orderDetail.otherColumns},now() ) @@ -888,7 +888,7 @@ </select> <select id="getSelectOrderPrinting" > select od.order_id,od.product_id,od.product_name,sum(od.area) as area,sum(od.gross_amount) as money,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 money,sum(od.quantity) as quantity from order_detail od <where> <if test="orderDetail.orderId != null and orderDetail.orderId != ''"> @@ -925,7 +925,7 @@ od.height, od.quantity, od.gross_amount, od.area, od.compute_gross_area, ifnull(od.processing_note,"") as processingNote, ifnull(od.remarks,"") as buildingNumber, od.price