guoyuji
2024-05-28 38f7a5cae3d0daadd2cbc7e18756b0c98c978c26
修改订单导出模板,以及添加行放到最后一行。
添加计算方式类型
6个文件已修改
96 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/public/importTemplate.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/public/importTemplate.xlsx
Binary files differ
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -342,7 +342,8 @@
            ElMessage.error(t('order.msg.tableLengthMax'))
            return
          }
          $grid.insert({})
          $grid.insertAt({}, $grid.getTableData.length || -1).then(() => {
          })
          break
        }
        case 'deleteRow':{
@@ -421,7 +422,6 @@
  },
  cellDblclick (params) {//表格内容双击打开产品界面
    const { row,column } = params
    console.log(column)
    if(column.field==='productName' || column.field==='productId'){
      productVisible.value = true
      rowIndex=row
@@ -576,7 +576,7 @@
    titleUploadData.value.icon = titleSelectJson.value.icon[0].basicName
    titleUploadData.value.packType = titleSelectJson.value.packType[0].basicName
    titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName
    titleUploadData.value.calculateType=1
    titleUploadData.value.calculateType = 2
    const today = new Date
    today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
    titleUploadData.value.deliveryDate = today.getFullYear() +
@@ -659,11 +659,23 @@
}
const area = (row) => {
  return parseFloat((row.width * row.height/1000000).toFixed(2))
}
const countArea = (row) => {
  const area = parseFloat((row.width * row.height/1000000).toFixed(2))
  return parseFloat((area * row.quantity).toFixed(2))
  let areaSum = 0
  switch (titleUploadData.value.calculateType){
    case 1:{
      areaSum = parseFloat((area * row.quantity).toFixed(2))
      break
    }
    case 2:{
      areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(2))
      break
    }
  }
  return areaSum
}
//计算金钱
const countMoney = (list) => {
@@ -700,8 +712,17 @@
      }
      item.area = area(item)
      item.grossArea = countArea(item)
      item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2))
      item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
      if(titleUploadData.value.calculateType===1){
        item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2))
      }else if(titleUploadData.value.calculateType===2){
        item.computeGrossArea = item.grossArea
      }
      if(titleUploadData.value.calculateType===3){
        item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
      }else{
        item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
      }
    })
    //赋值表头数据
    titleUploadData.value.money=countMoney(jsonData).toString()
@@ -736,7 +757,10 @@
      row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
   }else if(column.property === 'computeArea'){
     row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toFixed(2))
     row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
     if(titleUploadData.value.calculateType!==3){
       row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
     }
   }
   // else if(column.property.indexOf('otherColumns.M')>-1){
   //   let quantity = 0
@@ -790,6 +814,28 @@
    done()
    titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString()
  }
}
//改变计算方式
const changeCalculateType = ()=>{
  const fullData = xGrid.value.getTableData().fullData
  if(fullData.length===0){
    return
  }
  fullData.forEach((item) => {
    if( !isNaN(item.computeArea*1) && item.computeArea != null ){
      item.grossArea = countArea(item)
      item.computeGrossArea = item.grossArea
      if(titleUploadData.value.calculateType===3){
        item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
      }else{
        item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
      }
    }
  })
  titleUploadData.value.money=countMoney(fullData).toString()
}
@@ -872,8 +918,9 @@
        <el-col  :span="2"><el-input  v-model="titleUploadData.batch"/></el-col>
        <el-col  :span="2"><el-text>{{$t('order.calculateType')}}:</el-text></el-col>
        <el-col  :span="2">
          <el-select v-model="titleUploadData.calculateType"  clearable placeholder=" " >
          <el-select @change="changeCalculateType" v-model="titleUploadData.calculateType"  clearable placeholder=" " >
            <el-option :value="1" label="面积金额(单片)"/>
            <el-option :value="2" label="面积金额(总面积)"/>
          </el-select>
        </el-col>
        <el-col  :span="2"><el-text>*{{$t('order.salesman')}}:</el-text></el-col>
north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -129,4 +129,12 @@
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, OrderDTO.class, orderService.exportOrderProductSummary(dates),"orderReport");
    }
    @ApiOperation("订单小片标签")
    @PostMapping("/getOrderProductDetailTag/{orderId}")
    public Result getOrderProductDetailTag(@PathVariable String orderId)  {
        return   Result.seccess(orderService.getOrderProductDetailTag(orderId));
    }
}
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
@@ -28,4 +28,6 @@
    Map<String,Integer>  getOrderProductSummaryTotal(Integer offset, Integer pageSize, String startDate, String endDate, OrderDetail orderDetail, String product);
    List<OrderDTO> exportOrderProductSummary(List<LocalDate> dates);
    Map<String, String> getOrderProductDetailTag(String orderId);
}
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -15,6 +15,7 @@
import com.example.erp.exception.ServiceException;
import com.example.erp.mapper.sd.*;
import com.example.erp.service.userInfo.SysErrorService;
import com.sun.org.apache.regexp.internal.RE;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -343,4 +344,8 @@
    public List<OrderDTO> exportOrderProductSummary(List<LocalDate> dates) {
        return orderDetailMapper.exportOrderProductSummary(dates);
    }
    public Map<String,String> getOrderProductDetailTag(String orderId) {
        return orderDetailMapper.getOrderProductDetailTag(orderId);
    }
}
north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -744,5 +744,23 @@
        group by b.order_id,a.product_id
        order by b.order_id desc
    </select>
    <select id="getOrderProductDetailTag">
        select c.customer_name,c.order_id,b.remarks,c.project,
               if(a.child_width &lt; a.child_height,a.child_width,a.child_height ),
               if(a.child_width &lt; a.child_height,a.child_height,a.child_width ),
               sum(b.quantity),
               a.glass_child,
               b.processing_note
        from order_glass_detail as a
        left join order_detail as b
        on a.order_id = b.order_id
        and a.order_number = b.order_number
        left join `order` as c
        on c.order_id = a.order_id
        where a.order_id = #{orderId}
        group by a.glass_child,a.child_width,a.child_height
    </select>
</mapper>