Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | <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> |
| | |
| | | materialAdditionReport:"物料新增报表", |
| | | materialOutboundReport:"物料出库报表", |
| | | materialReturnReport:"物料返库报表", |
| | | optimizeOutboundReport:"优化出库报表", |
| | | optimizeQuantity:"优化使用数量", |
| | | }, |
| | | components:{ |
| | | addNewSignature :'أضف اسم جديد', |
| | |
| | | materialAdditionReport:"Material addition report", |
| | | materialOutboundReport:"Material delivery report", |
| | | materialReturnReport:"Material return report", |
| | | optimizeOutboundReport:"优化出库报表", |
| | | optimizeQuantity:"优化使用数量", |
| | | }, |
| | | components:{ |
| | | addNewSignature :'Add label name', |
| | |
| | | materialAdditionReport:"物料新增报表", |
| | | materialOutboundReport:"物料出库报表", |
| | | materialReturnReport:"物料返库报表", |
| | | optimizeOutboundReport:"优化出库报表", |
| | | optimizeQuantity:"优化使用数量", |
| | | }, |
| | | components:{ |
| | | addNewSignature :'Добавить имя метки', |
| | |
| | | materialAdditionReport:"物料新增报表", |
| | | materialOutboundReport:"物料出库报表", |
| | | materialReturnReport:"物料返库报表", |
| | | optimizeOutboundReport:"优化出库报表", |
| | | optimizeQuantity:"优化使用数量", |
| | | }, |
| | | components:{ |
| | | addNewSignature :'新增标签名', |
| | |
| | | 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'), |
New file |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | {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' }, }, |
| | |
| | | {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}, |
| | |
| | | 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)); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | @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); |
| | | } |
| | | |
| | |
| | | @ExcelProperty("创建时间") |
| | | private LocalDate operateTime; |
| | | |
| | | @ExcelProperty("优化使用数量") |
| | | private Integer useCount; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | 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) <= #{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) <= #{endDate} |
| | | and ml.operate_type=#{type} |
| | | </select> |
| | | </mapper> |