north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet1.vue
@@ -155,7 +155,7 @@ <th>规格(宽W*高H)</th> <th>片数</th> <th>面积</th> <th>{{company.columnNamePerimeter}}</th> <th>延米</th> <th>楼号</th> <th>加工要求</th> <th>备注</th> north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet2.vue
@@ -137,7 +137,7 @@ <th>规格(宽W*高H)</th> <th>片数</th> <th>面积</th> <th>{{company.columnNamePerimeter}}</th> <th>延米</th> <th>半径</th> <th>楼号</th> <th>加工要求</th> north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -6,15 +6,18 @@ import deepClone from "@/utils/deepClone"; import {ElMessage} from "element-plus"; import useUserInfoStore from "@/stores/userInfo"; import {Food} from "@element-plus/icons-vue"; import {Bottom, Burger, Food} from "@element-plus/icons-vue"; const company = companyInfo() const userStore = useUserInfoStore() const username = userStore.user.userName let dialogVisible = ref(false) let props = defineProps({ orderId:null }) let productId=ref({ }) let data = ref({ order:{ @@ -22,13 +25,39 @@ }, orderProductDetail:[] }) let productIdData = ref([ ]) const selectedValues = ref([]) const grossNum = ref({ quantity: 0, grossArea: 0, perimeter: 0 }) const getData = () => { request.get(`/order/printOrderProductDetail/${props.orderId}`).then(res => { request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => { console.log(res.data) data.value= res.data data.value.orderProductDetail.forEach(item => { productIdData.value.push(item.productId) grossNum.value.quantity += getQuantity(item.productDetail) grossNum.value.grossArea += getArea(item.productDetail) grossNum.value.perimeter += getPerimeter(item.productDetail) stringToJson(item.productDetail) }) console.log(productIdData.value) grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3)) grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3)) grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3)) }) } const handleChange = () => { request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => { console.log(res.data) data.value= res.data data.value.orderProductDetail.forEach(item => { @@ -37,12 +66,17 @@ grossNum.value.perimeter += getPerimeter(item.productDetail) stringToJson(item.productDetail) }) console.log(productIdData) grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3)) grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3)) grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3)) }) } const handleDoubleClick = () => { dialogVisible.value=true } onMounted(() => { @@ -94,7 +128,8 @@ <template> <div id="sheet"> <div id="sheet" @dblclick="handleDoubleClick" > <table style="border-style: none;" > <thead> <tr class="title-s"> @@ -107,10 +142,10 @@ <tr class="title-s"> <th colspan="2"></th> <th colspan="5"> <h3 >生成任务单(成品)</h3> <th colspan="5" > <h3 style="margin-left: 25%">生成任务单(成品)</h3> </th> <th colspan="2" style="text-align: left;font-weight: bold;">订单编号:<span>{{ data.order.orderId }}</span></th> <th colspan="2" style="text-align: center;font-weight: bold;">订单编号:<span>{{ data.order.orderId }}</span></th> </tr> <tr> <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="4"> @@ -215,6 +250,16 @@ </table> <el-dialog v-model="dialogVisible" style="width: 40%;height: 20%;margin-top: 10%" > <el-select v-model="selectedValues" style="width: 100%" @change="handleChange" multiple placeholder="请选择"> <el-option v-for="item in productIdData" :key="item" :label="item" :value="item"> </el-option> </el-select> </el-dialog> </div> north-glass-erp/northglass-erp/src/hook/mouseMove.ts
@@ -134,18 +134,25 @@ if (event.button === 0) {//左键松开 isSelecting.value = false//标记为停止选择操作 } const result = exportData() /*const result = exportData() const activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") const element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") if(result.length===2 && result[0].length===1){ activeElement.innerHTML ='' element.innerHTML ='' return } let sum = 0 result.forEach((item,index) => { if(index>0){ sum+=item.reduce((a, b) => a*1 + b*1, 0); } }) const activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") const element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") sum=isNaN(sum)?0:sum activeElement.innerHTML ="SUM:"+parseFloat(sum.toFixed(2)) element.innerHTML ="SUM:"+parseFloat(sum.toFixed(2)) element.innerHTML ="SUM:"+parseFloat(sum.toFixed(2))*/ } let outevent = ref()//移动事件,不保存,循环定时器内无法监听到新的事件 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
@@ -113,7 +113,8 @@ <span>{{ item.project }}</span> <span>{{ item.buildingNumber }}</span> </div> <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row5"> <span>{{item.remarks}}</span> <span>{{ item.processingNote }}</span> north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
@@ -113,7 +113,8 @@ <span>{{ item.project }}</span> <span>{{ item.buildingNumber }}</span> </div> <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row5"> <span>{{item.remarks}}</span> <span>{{ item.processingNote }}</span> north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -53,6 +53,7 @@ } } console.log(labelList.value) console.log(JSON.parse(labelList.value[0].other_columns).S02) } else { ElMessage.warning(res.msg) router.push("/login") @@ -139,7 +140,8 @@ <div class="row2"> <span>{{ item.order_id }}</span> </div> <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row5"> <span>{{item.project}}</span> <span>{{ item.building_number }}</span> north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue
@@ -112,7 +112,8 @@ <span>{{ item.project }}</span> <span>{{ item.buildingNumber }}</span> </div> <div class="row3">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div> <div class="row5"> <span>{{item.remarks}}</span> <span>{{ item.processingNote }}</span> north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -865,7 +865,8 @@ const updateMoney = () => { const updateData = { order: titleUploadData.value, detail: xGrid.value.getTableData().fullData detail: xGrid.value.getTableData().fullData, otherMoney:otherMoney.value } request.post(`/order/updateOrderMoney`,updateData).then(res => { if (res.code == 200){ north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
@@ -92,7 +92,7 @@ {'code': 'review', 'name': t('basicData.review'),status: 'primary'}, ], // import: false, // export: true, export: true, // print: true, zoom: true, custom: true north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -42,7 +42,7 @@ } } @ApiOperation("订单保存") @ApiOperation("订单表头保存") @PostMapping("/saveOrderTitle") @SaCheckPermission("createOrder.add") public Result saveOrderTitle(@RequestBody Map<String, Object> orderMap) throws Exception { @@ -184,12 +184,11 @@ return Result.seccess(orderService.printOrderProductGlassDetail(orderId)); } @ApiOperation("订单加工单打印-成品2") @GetMapping ("/printOrderProductDetail/{orderId}/{productId}") public Result printOrderProductDetail(@PathVariable String orderId,@PathVariable String productId) { @GetMapping ("/printOrderProductDetail/{orderId}/{selectedValues}") public Result printOrderProductDetail(@PathVariable String orderId,@PathVariable List<String> selectedValues) { return Result.seccess(orderService.printOrderProductDetails(orderId,productId)); return Result.seccess(orderService.printOrderProductDetails(orderId,selectedValues)); } north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
@@ -33,7 +33,7 @@ List<Map<String,Object>> getOrderProductDistinctById(String orderId); List<Map<String,Object>> getOrderProductDistinctByIds(String orderId,String productId); List<Map<String,Object>> getOrderProductDistinctByIds(String orderId,List<String> productId); List<OrderDetail> getOrderProductByProductId(Object productId, String orderId); north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -22,6 +22,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @Service @DS("sd") @@ -48,7 +49,7 @@ Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class); List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("detail")), OrderDetail.class); List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("otherMoney")), OrderOtherMoney.class); orderOtherMoneyList = orderOtherMoneyList.stream().filter(o -> o.getColumn().indexOf("M")==0).collect(Collectors.toList()); boolean saveState = true; //设置回滚点 Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); @@ -165,7 +166,7 @@ for (int i = 0; i < OrderDetails.size(); i++) { OrderDetails.get(i).setOrderNumber(i+1); OrderDetails.get(i).setOrderId(orderId); OrderDetails.get(i).setPerimeter((OrderDetails.get(i).getWidth()+OrderDetails.get(i).getHeight())*2/1000); OrderDetails.get(i).setPerimeter(Double.valueOf(String.format("%.3f",(OrderDetails.get(i).getWidth()+OrderDetails.get(i).getHeight())*2/1000))); OrderDetails.get(i).setWeight(1.0); if(OrderDetails.get(i).getBendRadius()!=null && OrderDetails.get(i).getBendRadius()!=0){ //获取弯钢弧度 @@ -202,7 +203,6 @@ orderDetailMapper.insertBatch(OrderDetails); //往小片表传入产品数据 orderGlassDetailMapper.insertOrderGlassDetail(orderId); //往订单其他金额副表传入数据 orderOtherMoneyList.forEach(orderOtherMoney ->{ orderOtherMoney.setId(null); orderOtherMoney.setOrderId(orderId); @@ -324,12 +324,20 @@ JSONObject jsonObject = new JSONObject(map); Order order = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("order")), Order.class); List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("detail")), OrderDetail.class); List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("otherMoney")), OrderOtherMoney.class); double money = 0; for (OrderDetail orderDetail : OrderDetails) { orderDetail = updateOrderMoneyComputed(orderDetail,order.getCalculateType()); money+= orderDetail.getGrossAmount(); } orderOtherMoneyList.forEach(orderOtherMoney -> { if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){ orderOtherMoney.setMoney((orderOtherMoney.getQuantity()*orderOtherMoney.getPrice())); } orderOtherMoneyMapper.update(orderOtherMoney,new QueryWrapper<OrderOtherMoney>() .eq("order_id",orderOtherMoney.getOrderId()) .eq("`column`",orderOtherMoney.getColumn())); }); order.setMoney(money+orderOtherMoneyMapper.selectGrossAmount(order.getOrderId())); orderMapper.updateMoney(order); orderDetailMapper.updateOrderMoney(OrderDetails); @@ -449,12 +457,12 @@ return returns; } public Object printOrderProductDetails(String orderId,String productId) { public Object printOrderProductDetails(String orderId,List<String> productId) { List<Map<String,Object>> orderProductDistinct; if (productId!=""){ orderProductDistinct = orderDetailMapper.getOrderProductDistinctByIds(orderId,productId); if (productId.size()>0){ orderProductDistinct = orderDetailMapper.getOrderProductDistinctByIds(orderId,productId); }else{ orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderId); orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderId); } List<Map<String,Object>> orderProductDetail = new ArrayList<>(); north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -778,11 +778,14 @@ <select id="getOrderProductDistinctByIds"> select (a.product_id) as 'productId', a.product_name as 'productName', a.order_number as 'orderNumber' (a.product_id) as 'productId', a.product_name as 'productName', a.order_number as 'orderNumber' from order_detail as a where a.order_id = #{orderId} and a.product_id regexp #{productId} where a.order_id = #{orderId} and a.product_id IN <foreach item="item" index="index" collection="productId" open="(" separator="," close=")"> #{item} </foreach> group by a.product_id </select> north-glass-erp/src/main/resources/mapper/sd/OrderOtherMoneyMapper.xml
@@ -13,10 +13,10 @@ a.create_time, b.alias, b.id from order_other_money as a left join basic_other_money as b on a.`column` = b.`column` where a.order_id = #{orderId} from basic_other_money as b left join order_other_money as a on a.`column` = b.`column` and a.order_id = #{orderId} where b.`column` like 'M%' and b.state=1 </select> <select id="selectGrossAmount">