north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue
@@ -11,6 +11,7 @@ let otherMoney = [] let otherMoney1 = [] let money = ref("") let dialogVisible = ref(false) let otherMoneys = 0 let sumMoney = 0 let takeCare = "注意:请妥善保管好我司的玻璃架,如有丢失或损坏,按1500元只赔偿。谢谢配合!" @@ -23,15 +24,18 @@ }) const form = ref({ }) const selectedValues = ref([]) let productIdData = 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) => { request.post(`/Delivery/getSelectOrderPrinting/null`,form.value).then((res) => { if(res.code==200){ productIdData.value=deepClone(res.data.data) produceList.value = deepClone(res.data.data) delivery.value=deepClone(res.data.delivery) money.value=deepClone(res.data.money) @@ -103,9 +107,60 @@ }) } const handleChange = () => { if(selectedValues.value.length===0){ selectedValues.value=null; } request.post(`/Delivery/getSelectOrderPrinting/${selectedValues.value}`,form.value).then((res) => { if(res.code==200){ sumMoney=0 produceList.value = deepClone(res.data.data) delivery.value=deepClone(res.data.delivery) money.value=deepClone(res.data.money) produceList.value.forEach(item => { sumMoney+=item.DeliveryDetail.grossAmount }) otherMoney1=[] otherMoney=deepClone(res.data.otherMoney) for(let i=0;i<otherMoney.length;i++){ if(otherMoney[i].DeliveryDetailOtherMoney.monery!=null){ otherMoneys+=otherMoney[i].DeliveryDetailOtherMoney.monery if(otherMoney1.length===0){ otherMoney1.push(otherMoney[i]) } else{ for(let s=0;s<otherMoney1.length;s++){ if(otherMoney[i].DeliveryDetailOtherMoney.alias===otherMoney1[s].DeliveryDetailOtherMoney.alias){ otherMoney1[s].DeliveryDetailOtherMoney.count=otherMoney[i].DeliveryDetailOtherMoney.count+otherMoney1[s].DeliveryDetailOtherMoney.count otherMoney1[s].DeliveryDetailOtherMoney.monery =otherMoney[i].DeliveryDetailOtherMoney.monery+otherMoney1[s].DeliveryDetailOtherMoney.monery break } if(s+1===otherMoney1.length){ otherMoney1.push(otherMoney[i]) break } } } } } }else{ ElMessage.warning(res.msg) router.push("/login") } }) } onMounted(() => { getData() }) const handleDoubleClick = () => { dialogVisible.value=true } @@ -118,7 +173,7 @@ <template> <div id="sheet"> <div id="sheet" @dblclick="handleDoubleClick"> <table border="1" > <tr class="title-s"> <th colspan="9"> @@ -231,11 +286,24 @@ <el-col :span="24"><div class="bottom">{{remark}}</div></el-col> </el-row> <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.productId+" "+item.productName' :value="item.productId"> </el-option> </el-select> </el-dialog> </div> </template> <style scoped> h1,h3{ left:0; north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java
@@ -110,9 +110,9 @@ @ApiOperation("订单发货订单查询接口") @SaCheckPermission("selectDelivery.search") @PostMapping("/getSelectOrderPrinting") public Result getSelectOrderPrinting( @RequestBody OrderDetail orderDetail){ return Result.seccess(deliveryService.getSelectOrderPrinting(orderDetail)); @PostMapping("/getSelectOrderPrinting/{selectedValues}") public Result getSelectOrderPrinting(@PathVariable List<String> selectedValues, @RequestBody OrderDetail orderDetail){ return Result.seccess(deliveryService.getSelectOrderPrinting(orderDetail,selectedValues)); } @ApiOperation("发货明细报表") north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java
@@ -27,7 +27,7 @@ List<DeliveryDetail> getSelectDeliveryPrinting(@Param("deliveryDetail") DeliveryDetail deliveryDetail); List<OrderDetail> getSelectOrderPrinting(@Param("orderDetail") OrderDetail orderDetail); List<OrderDetail> getSelectOrderPrinting(Object productId, String orderId); List <Map<String, Object>> getSelectDeliveryDetailPrinting(@Param("deliveryId") String deliveryId, @Param("productId") Integer productId,@Param("orderId") String orderId); north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java
@@ -495,42 +495,64 @@ } public Map<String, Object> getSelectOrderPrinting(OrderDetail orderDetail) { public Map<String, Object> getSelectOrderPrinting(OrderDetail orderDetail,List<String> productId) { Map<String, Object> map = new HashMap<>(); List <Map<String, Object>> list=new ArrayList<Map<String, Object>>();//最终结果 List <Map<String, Object>> moneryList=new ArrayList<Map<String, Object>>();//最终结果 List<OrderDetail> orderDetailList=deliveryDetailMapper.getSelectOrderPrinting(orderDetail); for (OrderDetail detail : orderDetailList) { List<Map<String,Object>> orderProductDistinct; if (!Objects.equals(productId.get(0), "null")){ orderProductDistinct = orderDetailMapper.getOrderProductDistinctByIds(orderDetail.getOrderId(),productId); }else{ orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderDetail.getOrderId()); } BigDecimal areSum=new BigDecimal("0"); BigDecimal grossAmount=new BigDecimal("0"); int quantity=0; for (Map<String, Object> maps : orderProductDistinct) { List<OrderDetail> orderDetails = deliveryDetailMapper.getSelectOrderPrinting(maps.get("productId"),orderDetail.getOrderId()); for (OrderDetail detail : orderDetails) { Map<String, Object> itemmap = new HashMap<>(); List<Map<String, Object>> deliveryDetailList2 = deliveryDetailMapper.getSelectOrderDetailPrinting( detail.getProductId(), detail.getOrderId()); for (Map<String, Object> stringObjectMap : deliveryDetailList2) { areSum=areSum.add(BigDecimal.valueOf(detail.getArea())); quantity+=detail.getQuantity(); grossAmount=grossAmount.add(BigDecimal.valueOf(detail.getGrossAmount())); if(stringObjectMap.get("other_columns")!=null){ JSONObject jsonObject = JSON.parseObject(stringObjectMap.get("other_columns").toString()); for(String key : jsonObject.keySet()){ boolean isnull = key.contains("M"); if(isnull){ Map<String, Object> moneryItemmap = new HashMap<>(); Map<String, Object> deliveryDetailOtherMoney = deliveryDetailMapper.getSelectOrderotherMoney(detail.getOrderId(),Integer.parseInt(stringObjectMap.get("order_number").toString()),key,jsonObject.get(key).toString()); moneryItemmap.put("DeliveryDetailOtherMoney", deliveryDetailOtherMoney); moneryList.add(moneryItemmap); Map<String, Object> itemmap = new HashMap<>(); List<Map<String, Object>> deliveryDetailList2 = deliveryDetailMapper.getSelectOrderDetailPrinting( detail.getProductId(), detail.getOrderId()); for (Map<String, Object> stringObjectMap : deliveryDetailList2) { if(stringObjectMap.get("other_columns")!=null){ JSONObject jsonObject = JSON.parseObject(stringObjectMap.get("other_columns").toString()); for(String key : jsonObject.keySet()){ boolean isnull = key.contains("M"); if(isnull){ Map<String, Object> moneryItemmap = new HashMap<>(); Map<String, Object> deliveryDetailOtherMoney = deliveryDetailMapper.getSelectOrderotherMoney(detail.getOrderId(),Integer.parseInt(stringObjectMap.get("order_number").toString()),key,jsonObject.get(key).toString()); grossAmount=grossAmount.add(BigDecimal.valueOf(Double.parseDouble(deliveryDetailOtherMoney.get("monery").toString()))); moneryItemmap.put("DeliveryDetailOtherMoney", deliveryDetailOtherMoney); moneryList.add(moneryItemmap); } } } } } itemmap.put("DeliveryDetail", detail); itemmap.put("DeliveryDetailList", deliveryDetailList2); list.add(itemmap); itemmap.put("productId",maps.get("productId")); itemmap.put("productName",maps.get("productName")); itemmap.put("DeliveryDetail", detail); itemmap.put("DeliveryDetailList", deliveryDetailList2); list.add(itemmap); } } Order order=deliveryMapper.getSelectShippingOrderDetailPrinting(orderDetail); order.setMoney((double) Math.round(grossAmount.doubleValue())); order.setQuantity((long) quantity); order.setArea(areSum.doubleValue()); map.put("data", list); map.put("otherMoney",moneryList); map.put("delivery", deliveryMapper.getSelectShippingOrderDetailPrinting(orderDetail)); map.put("delivery", order); map.put("money", toChinese(order.getMoney().toString(), false)); return map; north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -1006,13 +1006,9 @@ <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 order_detail od left join product p on od.product_id=p.id <where> <if test="orderDetail.orderId != null and orderDetail.orderId != ''"> and od.order_id like concat('%',#{orderDetail.orderId},'%') </if> </where> group by od.product_name,od.product_id where od.order_id = #{orderId} and od.product_id = #{productId} group by od.product_name,od.product_id ; </select> <select id="getSelectDeliveryDetailPrinting" >