From a6c70be014537e9b5ed48e68edaf3a1a94cb1ac7 Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期二, 23 一月 2024 11:48:58 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml | 42 +++++++ north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java | 20 +++ north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue | 4 north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java | 21 +++ north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java | 9 north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml | 64 ++++++++++ north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java | 2 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue | 184 +++++++++-------------------- 8 files changed, 212 insertions(+), 134 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue index 8a7f575..0063324 100644 --- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue +++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue @@ -61,13 +61,11 @@ // {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"}, {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, {field: 'floorNumber', width: '120',title: '妤煎眰缂栧彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, - {field: 'finishedProductNumber',width: '100', title: '鎴愬搧缂栧彿', sortable: true,showOverflow:"ellipsis"}, - {field: 'finishedProductName', width: '100',title: ' 鎴愬搧鍚嶇О', sortable: true}, + {field: 'finishedProductNumber',width: '100', title: '浜у搧缂栧彿', sortable: true,showOverflow:"ellipsis"}, {field: 'productName',width: '100', title: '浜у搧鍚嶇О', sortable: true}, {field: 'length', width: '100',title: '闀垮害', sortable: true}, {field: 'width',width: '100', title: '瀹藉害', sortable: true}, {field: 'salesperson', width: '100',title: '涓氬姟鍛�', sortable: true}, - {field: 'customerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true}, {field: 'projectName', width: '100',title: '椤圭洰鍚嶇О', sortable: true}, {field: 'orderNumber',width: '140', title: '璁㈠簭', sortable: true}, {field: 'totalOrders',width: '140', title: '璁㈠崟鎬绘暟', sortable: true}, diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue index 8cbee20..0394dfe 100644 --- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue +++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ProductStockList.vue @@ -2,7 +2,11 @@ import {reactive, ref} from "vue"; import {useRouter} from 'vue-router' +import request from "@/utils/request"; +import deepClone from "@/utils/deepClone"; +import {ElMessage} from "element-plus"; let router=useRouter() +let produceList = ref([]) const getTableRow = (row,type) =>{ switch (type) { case 'edit' :{ @@ -21,6 +25,36 @@ } } } + +const hasDecimal=(value)=>{ + const regex=/\./ // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐� + return regex.test(value) //杩斿洖true/false +} + +const hasDecimalhtml=(item,row)=>{ + let aa=item.split('.').length + if (aa===2){ + return row[item.split('.')[0]][item.split('.')[1]] + }else if(aa===3){ + return row[item.split('.')[0]][item.split('.')[1]][item.split('.')[2]] + } + + +} + + +request.get("/FinishedGoodsInventory/getselet/1/100").then((res) => { + if(res.code==200){ + console.log(res.data) + produceList = produceList.value.concat(deepClone(res.data)) + + xGrid.value.reloadData(produceList) + gridOptions.loading=false + }else{ + ElMessage.warning(res.msg) + router.push("/login") + } +}) @@ -59,36 +93,29 @@ // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' }, { type: 'seq',fixed:"left", title: '鑷簭', width: '80' }, // {title: '鎿嶄綔', width: '220', slots: { default: 'button_slot' },fixed:"left"}, - {field: 'OrderNumber', width:'150', title: '璁㈠崟搴忓彿', sortable: true,editRender: { name: 'input', attrs: { placeholder: '' } } }, - {field: 'SalesOrderNumber', width: '150',title: '閿�鍞崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, - {field: 'ProjectName', width: '120',title: '椤圭洰鍚嶇О', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, - {field: 'OrderType', width: '100',title: '璁㈠崟绫诲瀷', sortable: true}, - {field: 'ProcessCardNumber',width: '100', title: '娴佺▼鍗″彿', sortable: true,showOverflow:"ellipsis"}, - {field: 'ProductName', width: '100',title: '浜у搧鍚嶇О', sortable: true}, - {field: 'ProductNumber',width: '100', title: '浜у搧缂栧彿', sortable: true}, - {field: 'CustomerNumber', width: '100',title: '瀹㈡埛缂栧彿', sortable: true}, - {field: 'CustomerName',width: '100', title: '瀹㈡埛鍚嶇О', sortable: true}, - {field: 'Length', width: '100',title: '闀垮害', sortable: true}, - {field: 'Width',width: '100', title: '瀹藉害', sortable: true}, - {field: 'Thickness', width: '100',title: '鍘氬害', sortable: true}, - {field: 'InventoryCount',width: '140', title: '搴撳瓨鏁�', sortable: true}, - {field: 'ActualSingleArea',width: '140', title: '瀹為檯鍗曠墖闈㈢Н', sortable: true}, - {field: 'Area',width: '100', title: '闈㈢Н', sortable: true}, - {field: 'SettlementSingleArea',width: '140', title: '缁撶畻鍗曠墖闈㈢Н', sortable: true}, - {field: 'SettlementTotalArea',width: '140', title: '缁撶畻鎬婚潰绉�', sortable: true}, - {field: 'AvailableQuantity',width: '100', title: '鍙敤鏁伴噺', sortable: true}, - {field: 'FloorNumber',width: '100', title: '妤煎眰缂栧彿', sortable: true}, - {field: 'DeliveryAddress',width: '100', title: '閫佽揣鍦板潃', sortable: true}, - {field: 'Batch',width: '100', title: '鎵规', sortable: true}, - {field: 'Salesman',width: '100', title: '涓氬姟鍛�', sortable: true}, - {field: 'OrdinaryMillimeter',width: '100', title: '骞冲嚒姣背', sortable: true}, - {field: 'Weight',width: '100', title: '閲嶉噺', sortable: true}, - {field: 'LastWarehousingDate',width: '140', title: '鏈�鍚庡叆搴撴棩鏈�', sortable: true}, - {field: 'LocationNumber',width: '100', title: '搴撲綅缂栧彿', sortable: true}, - {field: 'StorageArea',width: '100', title: '瀛樺偍鍖哄煙', sortable: true}, - {field: 'Location',width: '100', title: '搴撲綅', sortable: true}, - {field: 'DocumentStatus',width: '100', title: '鍗曟嵁鐘舵��', sortable: true}, - {field: 'remark',width: '80', title: '澶囨敞', sortable: true}, + {field: 'orderDetail.orderNumber', width:'150', title: '璁㈠崟搴忓彿', filters:[{ data: '' }],editRender: { name: 'input', attrs: { placeholder: '' } } }, + {field: 'order.orderId', width: '150',title: '閿�鍞崟鍙�',showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, + {field: 'order.project', width: '120',title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, + {field: 'order.orderType', width: '100',title: '璁㈠崟绫诲瀷', filters:[{ data: '' }]}, + {field: 'orderDetail.product.productName', width: '100',title: '浜у搧鍚嶇О', filters:[{ data: '' }]}, + {field: 'orderDetail.product.id',width: '100', title: '浜у搧缂栧彿', filters:[{ data: '' }]}, + + {field: 'orderDetail.width', width: '100',title: '瀹藉害',filters:[{ data: '' }]}, + {field: 'orderDetail.height',width: '100', title: '楂樺害', filters:[{ data: '' }]}, + {field: 'inventory',width: '140', title: '搴撳瓨鏁伴噺', filters:[{ data: '' }]}, + {field: 'quantityAvailable',width: '140', title: '鍙敤鏁伴噺', filters:[{ data: '' }]}, + + {field: 'actualSignalArea',width: '140', title: '瀹為檯鍗曠墖闈㈢Н', filters:[{ data: '' }]}, + {field: 'area',width: '100', title: '鎬婚潰绉�', filters:[{ data: '' }]}, + + {field: 'warehouseNumber',width: '100', title: '浠撳簱缂栧彿', filters:[{ data: '' }]}, + {field: 'storageRegion',width: '100', title: '搴撳瓨鍖哄煙', filters:[{ data: '' }]}, + {field: 'status',width: '100', title: '鐘舵��', filters:[{ data: '' }]}, + + {field: 'enterStorageTime',width: '140', title: '鍏ュ簱鏃堕棿', filters:[{ data: '' }]}, + {field: 'updateTime',width: '140', title: '淇敼鏃堕棿', filters:[{ data: '' }]}, + {field: 'endTime',width: '100', title: '鍑哄簱鏃堕棿', filters:[{ data: '' }]}, + {field: 'remark',width: '80', title: '澶囨敞', filters:[{ data: '' }]}, ],//琛ㄥご鎸夐挳 toolbarConfig: { buttons: [ @@ -103,100 +130,6 @@ zoom: true, custom: true }, - data: [ - { - "OrderNumber": "1", - "SalesOrderNumber": "NG23072003", - "ProjectName": "閽㈠寲鐜荤拑", - "OrderType": "鏅�氳鍗�", - "ProcessCardNumber": "NG23072003A01", - "ProductName": '', - "ProductNumber": "06040000022", - "CustomerNumber": "KD0071", - "CustomerName": "浠�", - "Length": "1075.00", - "Width": "440.00", - "Thickness": "3.00", - "InventoryCount": "360", - "ActualSingleArea": "0.473000", - "Area": "170.28", - "SettlementSingleArea": "0.47", - "SettlementTotalArea": "170.28", - "AvailableQuantity": "360", - "FloorNumber": "10927769", - "DeliveryAddress": "涓婃捣", - "Batch": "娴嬭瘯", - "OrdinaryMillimeter": "闄堝畻鍑�", - "Weight": "1915.6500", - "LastWarehousingDate": "2023-09-22 08:31:17", - "LocationNumber": "鎴愬搧搴�", - "StorageArea": "娴嬭瘯", - "Location": "2", - "DocumentStatus": "1", - "Remarks": "娴嬭瘯", - }, - { - "OrderNumber": "1", - "SalesOrderNumber": "NG23072003", - "ProjectName": "閽㈠寲鐜荤拑", - "OrderType": "鏅�氳鍗�", - "ProcessCardNumber": "NG23072003A01", - "ProductName": '', - "ProductNumber": "06040000022", - "CustomerNumber": "KD0071", - "CustomerName": "浠�", - "Length": "1075.00", - "Width": "440.00", - "Thickness": "3.00", - "InventoryCount": "360", - "ActualSingleArea": "0.473000", - "Area": "170.28", - "SettlementSingleArea": "0.47", - "SettlementTotalArea": "170.28", - "AvailableQuantity": "360", - "FloorNumber": "10927769", - "DeliveryAddress": "涓婃捣", - "Batch": "娴嬭瘯", - "OrdinaryMillimeter": "闄堝畻鍑�", - "Weight": "1915.6500", - "LastWarehousingDate": "2023-09-22 08:31:17", - "LocationNumber": "鎴愬搧搴�", - "StorageArea": "娴嬭瘯", - "Location": "2", - "DocumentStatus": "1", - "Remarks": "娴嬭瘯", - },{ - "OrderNumber": "1", - "SalesOrderNumber": "NG23072003", - "ProjectName": "閽㈠寲鐜荤拑", - "OrderType": "鏅�氳鍗�", - "ProcessCardNumber": "NG23072003A01", - "ProductName": '', - "ProductNumber": "06040000022", - "CustomerNumber": "KD0071", - "CustomerName": "浠�", - "Length": "1075.00", - "Width": "440.00", - "Thickness": "3.00", - "InventoryCount": "360", - "ActualSingleArea": "0.473000", - "Area": "170.28", - "SettlementSingleArea": "0.47", - "SettlementTotalArea": "170.28", - "AvailableQuantity": "360", - "FloorNumber": "10927769", - "DeliveryAddress": "涓婃捣", - "Batch": "娴嬭瘯", - "OrdinaryMillimeter": "闄堝畻鍑�", - "Weight": "1915.6500", - "LastWarehousingDate": "2023-09-22 08:31:17", - "LocationNumber": "鎴愬搧搴�", - "StorageArea": "娴嬭瘯", - "Location": "2", - "DocumentStatus": "1", - "Remarks": "娴嬭瘯", - }, - ],//table body瀹為檯鏁版嵁 footerMethod ({ columns, data }) {//椤佃剼鍑芥暟 return[ columns.map((column, columnIndex) => { @@ -259,7 +192,8 @@ <ul class="expand-wrapper"> <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined "> <span style="font-weight: bold">{{item.title+': '}}</span> - <span>{{ row[item.field] }}</span> + <span v-if="hasDecimal(item.field)">{{ hasDecimalhtml(item.field,row) }}</span> + <span v-else>{{ row[item.field] }}</span> </li> </ul> </template> diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java new file mode 100644 index 0000000..a5ad67d --- /dev/null +++ b/north-glass-erp/src/main/java/com/example/erp/controller/mm/FinishedGoodsInventoryController.java @@ -0,0 +1,21 @@ +package com.example.erp.controller.mm; + +import com.example.erp.common.Result; +import com.example.erp.service.mm.FinishedGoodsInventoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/FinishedGoodsInventory") +public class FinishedGoodsInventoryController { + @Autowired + FinishedGoodsInventoryService finishedGoodsInventoryService; + + @GetMapping("/getselet/{pageNum}/{pageSize}") + public Result defaultDateFinishedGoodsInventory(@PathVariable Integer pageNum, @PathVariable Integer pageSize){ + return Result.seccess(finishedGoodsInventoryService.defaultDateFinishedGoodsInventory(pageNum,pageSize)); + } +} diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java index a6eab00..40f2159 100644 --- a/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java +++ b/north-glass-erp/src/main/java/com/example/erp/entity/mm/FinishedGoodsInventory.java @@ -2,8 +2,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; -import com.example.erp.entity.sd.Customer; -import com.example.erp.entity.sd.Order; +import com.example.erp.entity.sd.*; import lombok.Data; import java.time.LocalDate; @@ -13,14 +12,14 @@ @TableId(type = IdType.AUTO) private Long id; - private String orderId; - private Integer orderNumber; + private Order order; + private OrderDetail orderDetail; private Integer inventory ; private Double actualSignalArea; private Double area; private Integer quantityAvailable; private String warehouseNumber; - private LocalDate storageRegion; + private String storageRegion; private Integer status; private LocalDate enterStorageTime; private String remark; diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java index 7c499b9..cbebc62 100644 --- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java +++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java @@ -8,5 +8,5 @@ @Mapper public interface FinishedGoodsInventoryMapper { - List<FinishedGoodsInventory> defaultProduct(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize); + List<FinishedGoodsInventory> defaultfinishedGoodsInventory(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize); } diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java new file mode 100644 index 0000000..57b57a6 --- /dev/null +++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java @@ -0,0 +1,20 @@ +package com.example.erp.service.mm; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.example.erp.entity.mm.FinishedGoodsInventory; +import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@DS("mm") +public class FinishedGoodsInventoryService { + @Autowired + FinishedGoodsInventoryMapper finishedGoodsInventoryMapper; + public List<FinishedGoodsInventory> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize) { + Integer offset = (pageNum-1)*pageSize; + return finishedGoodsInventoryMapper.defaultfinishedGoodsInventory(offset,pageSize); + } +} diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml new file mode 100644 index 0000000..192e9fe --- /dev/null +++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + +<mapper namespace="com.example.erp.mapper.mm.FinishedGoodsInventoryMapper" > + + <resultMap id="selectFinishedGoodsInventory" type="com.example.erp.entity.mm.FinishedGoodsInventory" > + <id column="id" property="id"/> + <result column="inventory" property="inventory"/> + <result column="area" property="area"/> + <result column="actual_signal_area" property="actualSignalArea"/> + <result column="quantity_available" property="quantityAvailable"/> + <result column="warehouse_number" property="warehouseNumber"/> + <result column="storage_region" property="storageRegion"/> + <result column="status" property="status"/> + <result column="enter_storage_time" property="enterStorageTime"/> + <result column="remark" property="remark"/> + <result column="update_time" property="updateTime"/> + <result column="end_time" property="endTime"/> + + + <result column="order_id" property="order.orderId"/> + <result column="project" property="order.project"/> + <result column="order_type" property="order.orderType"/> + + + <result column="order_number" property="orderDetail.orderNumber"/> + <result column="width" property="orderDetail.width"/> + <result column="height" property="orderDetail.height"/> + <result column="product_name" property="orderDetail.product.productName"/> + <result column="product_id" property="orderDetail.product.id"/> + + + + </resultMap> + <select id="defaultfinishedGoodsInventory" resultMap="selectFinishedGoodsInventory"> + select od.order_number, + o.order_id, + o.project, + o.order_type, + od.product_name, + od.product_id, + od.width, + od.height, + fgi.inventory, + fgi.quantity_available, + fgi.actual_signal_area, + fgi.area, + fgi.warehouse_number, + fgi.storage_region, + fgi.`status`, + fgi.update_time, + fgi.enter_storage_time, + fgi.end_time + from finished_goods_inventory fgi + left join sd.order_detail od on fgi.order_number = od.order_number + inner join sd.`order` o on fgi.order_id = o.order_id + + order by fgi.id + limit #{offset},#{pageSize} + ; + </select> +</mapper> \ No newline at end of file diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml new file mode 100644 index 0000000..f51db16 --- /dev/null +++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.example.erp.mapper.mm.FinishedOperateLogMapper"> + <resultMap id="selectFinishedGoodsInventory" type="com.example.erp.entity.mm.FinishedOperateLog" > + <id column="id" property="id"/> + <result column="operation_order_number" property="operationOrderNumber"/> + <result column="product_number" property="productNumber"/> + <result column="operation_number" property="operationNumber"/> + <result column="operate_type" property="operateType"/> + <result column="operator" property="operator"/> + <result column="operate_time" property="operateTime"/> + + <!--<result column="g_typeId" property="glassTypes.typeId"/> + <result column="g_type" property="glassTypes.type"/>--> + + </resultMap> + <select id="defaultFinishedGoodsInventory" resultMap="selectFinishedGoodsInventory"> + select + a.id, + prodID, + product, + glassType, + typeName, + totalThickness, + thickness, + Query, + remarks, + state, + creator, + date(a.createTime) as 'createTime', + updateTime + from + product as a + left join basic_glass_type bgt on bgt.typeID = a.glassType + + order by id desc + limit #{offset},#{pageSize} + ; + </select> +</mapper> \ No newline at end of file -- Gitblit v1.8.0