廖井涛
2025-04-08 d275de3d0c74be202870e90c75fe5a641f8f22c8
Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
15个文件已修改
1个文件已添加
186 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/ar.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/en.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/ru.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/router/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/stockReport/OptimizeOutboundReport.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/entity/mm/MaterialLog.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/index.html
@@ -5,7 +5,7 @@
    <link rel="icon" href="/favicon.ico">
      <link rel="stylesheet" type="text/css" media="print" href="/print-lock.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>北玻</title>
    <title>北玻ERP</title>
  </head>
  <body>
    <div id="app"></div>
north-glass-erp/northglass-erp/src/lang/ar.js
@@ -1116,6 +1116,8 @@
        materialAdditionReport:"物料新增报表",
        materialOutboundReport:"物料出库报表",
        materialReturnReport:"物料返库报表",
        optimizeOutboundReport:"优化出库报表",
        optimizeQuantity:"优化使用数量",
    },
    components:{
        addNewSignature :'أضف اسم جديد',
north-glass-erp/northglass-erp/src/lang/en.js
@@ -1116,6 +1116,8 @@
        materialAdditionReport:"Material addition report",
        materialOutboundReport:"Material delivery report",
        materialReturnReport:"Material return report",
        optimizeOutboundReport:"优化出库报表",
        optimizeQuantity:"优化使用数量",
    },
    components:{
        addNewSignature :'Add label name',
north-glass-erp/northglass-erp/src/lang/ru.js
@@ -1115,6 +1115,8 @@
        materialAdditionReport:"物料新增报表",
        materialOutboundReport:"物料出库报表",
        materialReturnReport:"物料返库报表",
        optimizeOutboundReport:"优化出库报表",
        optimizeQuantity:"优化使用数量",
    },
    components:{
        addNewSignature :'Добавить имя метки',
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -1126,6 +1126,8 @@
        materialAdditionReport:"物料新增报表",
        materialOutboundReport:"物料出库报表",
        materialReturnReport:"物料返库报表",
        optimizeOutboundReport:"优化出库报表",
        optimizeQuantity:"优化使用数量",
    },
    components:{
        addNewSignature :'新增标签名',
north-glass-erp/northglass-erp/src/router/index.js
@@ -1122,6 +1122,11 @@
              component: () => import('../views/mm/stockReport/MaterialOutboundReport.vue'),
            },
            {
              path: 'optimizeOutboundReport',
              name: 'optimizeOutboundReport',
              component: () => import('../views/mm/stockReport/OptimizeOutboundReport.vue'),
            },
            {
              path: 'materialReturnReport',
              name: 'materialReturnReport',
              component: () => import('../views/mm/stockReport/MaterialReturnReport.vue'),
north-glass-erp/northglass-erp/src/views/mm/stockReport/OptimizeOutboundReport.vue
New file
@@ -0,0 +1,43 @@
<script setup>
import BasicTable from "@/components/BasicTable.vue"
import request from "@/utils/request"
import { ref} from "vue"
import { useI18n } from 'vue-i18n'
//语言获取
const { t } = useI18n()
const childrenData = ref({
  columns:[
    {type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' },
    {field: 'operationOrderNumber', width:'150', title: t('productStock.operationOrderNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'projectNo', width: '120',title:t('ingredientsStock.projectNo'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'quantity', width: '140',title: t('ingredientsStock.outboundQuantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'useCount', width: '140',title: t('stockReport.optimizeQuantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'inventoryId',width: '100', title: t('ingredientsStock.id'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'materialName',width: '140', title: t('ingredientsStock.materialName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'width', width: '100',title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'height',width: '100', title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'thickness', width: '100',title: t('order.totalThickness'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'unit', width:'140', title: t('ingredients.unit'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'operator', width: '100',title: t('productStock.creator'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'operateTime', width:'140', title: t('productStock.productionDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
  ],//表格表头字段
  data:[],//表格数据
  url :'/materialInventory/getOptimizeOutboundReport/物料出库',
  exportUrl :'/materialInventory/exportMaterialLogReport/物料出库',
  exportName:t('stockReport.materialOutboundReport'),
  footList:['quantity']
})
</script>
<template>
  <basic-table
      :childrenData="childrenData"/>
</template>
<style scoped>
</style>
north-glass-erp/northglass-erp/src/views/mm/stockReport/StockReport.vue
@@ -65,6 +65,7 @@
                  <el-dropdown-item command="/main/stockReport/materialAdditionReport" >{{$t('stockReport.materialAdditionReport')}}</el-dropdown-item>
                  <el-dropdown-item command="/main/stockReport/materialOutboundReport" >{{ $t('stockReport.materialOutboundReport') }}</el-dropdown-item>
                  <el-dropdown-item command="/main/stockReport/materialReturnReport" >{{ $t('stockReport.materialReturnReport') }}</el-dropdown-item>
                  <el-dropdown-item command="/main/stockReport/optimizeOutboundReport" >{{ $t('stockReport.optimizeOutboundReport') }}</el-dropdown-item>
                </el-dropdown-menu>
              </template>
            </el-dropdown>
north-glass-erp/northglass-erp/src/views/pp/reportingWorks/SelectReportingWorks.vue
@@ -342,7 +342,7 @@
    {title: t('basicData.operate'), width: 140, slots: { default: 'button_slot' },fixed:"left"},
    { type: 'seq',fixed:"left", title: t('basicData.Number'), width: 50 },
    {field: 'reportingWorkId', width: 120, title: t('reportingWorks.reportingWorkId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, },
    {field: 'reportingWorkTime',width: 120, title: t('reportingWorks.reportingWorkTime') ,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'reportingWorkTime',width: 120, title: t('reportingWorks.reportingWorkTime') ,showOverflow:"ellipsis" ,},
    {field: 'orderId', width: 130,title:  t('order.orderId') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'processId', width: 160,title: t('processCard.processId') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'order.project',width: 150, title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, },
north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -139,15 +139,15 @@
      {field: 'goodsQuantity',width:120,  title: t('searchOrder.inventoryNum'), sortable: true},
      {field: 'area',width:120,  title: t('order.computeGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'money',width:120,  title: t('order.money'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'createTime',width:120,   title: t('basicData.reportData'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'updateTime',width:120,   title: t('productStock.approvedDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'createTime',width:120,   title: t('basicData.reportData'), sortable: true},
      {field: 'updateTime',width:120,   title: t('productStock.approvedDate'), sortable: true},
      {field: 'packType',width:120,  title: t('order.packType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'orderType',width:120,  title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'salesman',width:120,  title: t('order.salesman'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'creator',width:120,  title: t('product.creator'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'verifier',width:120,  title: t('basicData.review'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'perimeter',width:120,  title: t('searchOrder.perimeter'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'deliveryDate',width:120,  title: t('order.deliveryDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      {field: 'deliveryDate',width:120,  title: t('order.deliveryDate'), sortable: true},
      {field: 'customerBatch',width:120,  title: t('order.customerBatch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
      //{field: '14',width:120,  title: '备注',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java
@@ -194,7 +194,12 @@
        return Result.seccess(materialInventoryService.cancelMaterialAdditionRecord(object));
    }
    @ApiOperation("优化物料库存记录查询接口")
    @SaCheckPermission("warehouseReport.search")
    @PostMapping("/getOptimizeOutboundReport/{type}/{pageNum}/{pageSize}/{selectDate}")
    public Result getOptimizeOutboundReport(@PathVariable String type,@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List<String> selectDate, @RequestBody MaterialLog materialLog){
        return Result.seccess(materialInventoryService.getOptimizeOutboundReport(type,pageNum,pageSize,selectDate,materialLog));
    }
}
north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -255,13 +255,11 @@
    @ApiOperation("手机扫码玻璃信息")
    @PostMapping("/scannerGlassInfo/{projectNo}")
    public Result scannerGlassInfo(@PathVariable String projectNo)  {
        System.out.println("123123");
        return  Result.seccess(orderService.scannerGlassInfo(projectNo));
    }
    @PostMapping("/test")
    public Result scannerGlassInfo()  {
        System.out.println("123123");
        return  Result.seccess(null);
    }
north-glass-erp/src/main/java/com/example/erp/entity/mm/MaterialLog.java
@@ -50,5 +50,8 @@
    @ExcelProperty("创建时间")
    private LocalDate operateTime;
    @ExcelProperty("优化使用数量")
    private Integer useCount;
}
north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
@@ -266,4 +266,7 @@
    String selectProjectNo(@Param("useId") Integer useId);
    List<MaterialLog> getOptimizeOutboundReport(Integer offset, Integer pageSize, String startDate, String endDate, MaterialLog materialLog, String type);
    Map<String,Integer> getOptimizeOutboundReportTotal(Integer offset, Integer pageSize, String startDate, String endDate, MaterialLog materialLog, String type);
}
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -1082,7 +1082,26 @@
    }
    public Map<String, Object> getOptimizeOutboundReport(String type, Integer pageNum, Integer pageSize, List<String> selectDate, MaterialLog materialLog) {
        Integer offset = (pageNum-1)*pageSize;
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
        if(selectDate !=null && selectDate.size()==2){
            if(!selectDate.get(0).isEmpty()){
                startDate = selectDate.get(0);
            }
            if(!selectDate.get(1).isEmpty()){
                endDate = selectDate.get(1);
            }
        }
        Map<String, Object> map = new HashMap<>();
        map.put("data", materialInventoryMapper.getOptimizeOutboundReport(offset, pageSize,startDate, endDate, materialLog,type));
        map.put("total", materialInventoryMapper.getOptimizeOutboundReportTotal(offset, pageSize,startDate, endDate, materialLog,type));
        List<String> list = new ArrayList<>();
        list.add(startDate);
        list.add(endDate);
        map.put("selectDate",list);
        return map;
    }
}
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -1149,5 +1149,86 @@
        select project_no from pp.optimize_use where id=#{useId};
    </select>
    <select id="getOptimizeOutboundReport">
        SELECT
            ml.operation_order_number,
            ml.project_no,
            ml.inventory_id,
            ml.material_name,
            ml.unit,
            ml.width,
            ml.height,
            ml.thickness,
            ml.quantity,
            round(ml.width*ml.height*ml.quantity/1000000,2) as area,
            ou.use_count,
            ou.not_use_count,
            ml.operator,
            ml.operate_time
        FROM
            mm.material_log AS ml
                LEFT JOIN pp.optimize_use AS ou ON ou.project_no = ml.project_no
                AND ou.raw_stock_code = ml.inventory_id
        WHERE
            ou.project_no IS NOT NULL
                AND date( ml.operate_time )>= #{startDate} and date(ml.operate_time) &lt;= #{endDate}
            and ml.operate_type=#{type}
        <if test="materialLog.operationOrderNumber != null and materialLog.operationOrderNumber != ''">
            and ml.operation_order_number regexp #{materialLog.operationOrderNumber}
        </if>
        <if test="materialLog.useCount != null and materialLog.useCount != ''">
            and ou.use_count regexp #{materialLog.useCount}
        </if>
        <if test="materialLog.quantity != null and materialLog.quantity != ''">
            and ml.quantity regexp #{materialLog.quantity}
        </if>
        <if test="materialLog.width != null and materialLog.width != ''">
            and  ml.width regexp  REGEXP_REPLACE(#{materialLog.width},'\\.0+$','')
        </if>
        <if test="materialLog.height != null and materialLog.height != ''">
            and  ml.height regexp  REGEXP_REPLACE(#{materialLog.height},'\\.0+$','')
        </if>
        <if test="materialLog.thickness != null and materialLog.thickness != ''">
            and  ml.thickness regexp  REGEXP_REPLACE(#{materialLog.thickness},'\\.0+$','')
        </if>
        <if test="materialLog.inventoryId != null and materialLog.inventoryId != ''">
            and  ml.inventory_id regexp  #{materialLog.inventoryId}
        </if>
        <if test="materialLog.materialName != null and materialLog.materialName != ''">
            and  ml.material_name regexp  #{materialLog.materialName}
        </if>
        <if test="materialLog.producer != null and materialLog.producer != ''">
            and  ml.producer regexp  #{materialLog.producer}
        </if>
        <if test="materialLog.unit != null and materialLog.unit != ''">
            and  ml.unit regexp  #{materialLog.unit}
        </if>
        <if test="materialLog.operator != null and materialLog.operator != ''">
            and  ml.operator regexp  #{materialLog.operator}
        </if>
        <if test="materialLog.remarks != null and materialLog.remarks != ''">
            and ml.remarks regexp #{materialLog.remarksr}
        </if>
        order by ml.id desc
        limit #{offset},#{pageSize};
    </select>
    <select id="getOptimizeOutboundReportTotal">
        SELECT
            CEILING(count(ml.id)/#{pageSize}) as 'pageTotal',
                count(ml.id) as 'total'
        FROM
            mm.material_log AS ml
                LEFT JOIN pp.optimize_use AS ou ON ou.project_no = ml.project_no
                AND ou.raw_stock_code = ml.inventory_id
        WHERE
            ou.project_no IS NOT NULL
          AND date( ml.operate_time )>= #{startDate} and date(ml.operate_time) &lt;= #{endDate}
          and ml.operate_type=#{type}
    </select>
</mapper>