廖井涛
2024-08-20 647781b65c46be1a56b6ef36fcd92b800c92c3c0
修改订单发货预览界面产品筛选显示
5个文件已修改
158 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/sd/DeliveryController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/DeliveryDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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" >