From cb966ac5c02835eab5a99b7b93a5a9a063cf3201 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 25 六月 2025 15:55:08 +0800
Subject: [PATCH] 人员优化

---
 main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql |    2 
 main-business/src/main/java/com/ruoyi/business/service/impl/TreeServiceImpl.java                             |    1 
 main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java                 |   24 ++++++++++++
 main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java                                  |    2 +
 main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java                          |    3 +
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                              |   16 +++++++
 main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java                 |    7 +--
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                                        |    2 +
 main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java                                  |    4 +
 main-business/src/main/java/com/ruoyi/business/entity/Production.java                                        |    2 
 main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql        |    2 
 11 files changed, 56 insertions(+), 9 deletions(-)

diff --git a/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java b/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java
index 663d58c..e81edb6 100644
--- a/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java
+++ b/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java
@@ -43,4 +43,6 @@
      * 鐓ょ
      */
     private String coal;
+
+    private String registrant;
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
index ec91e00..1b4c928 100644
--- a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
+++ b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.MyBaseEntity;
 import lombok.Data;
 
@@ -81,10 +82,11 @@
      * 鐧昏浜�
      */
     @TableField(value = "registrant_id")
-    private String registrantId;
+    private Long registrantId;
     /**
      * 鐧昏鏃ユ湡
      */
     @TableField(value = "registration_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate registrationDate;
 }
\ No newline at end of file
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/Production.java b/main-business/src/main/java/com/ruoyi/business/entity/Production.java
index d760a80..a01fbb6 100644
--- a/main-business/src/main/java/com/ruoyi/business/entity/Production.java
+++ b/main-business/src/main/java/com/ruoyi/business/entity/Production.java
@@ -76,7 +76,7 @@
      * 鐢熶骇浜篒D
      */
     @TableField(value = "producer_id")
-    private String producerId;
+    private Long producerId;
     /**
      * 鐢熶骇鏃ユ湡
      */
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java
index 9075267..09c460c 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java
@@ -57,6 +57,9 @@
         // 1. 鍒嗛〉鏌ヨ涓绘暟鎹�
         LambdaQueryWrapper<Archive> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.orderByDesc(Archive::getCreateTime);
+        if (archiveDto.getTreeId() != null) {
+            queryWrapper.eq(Archive::getTreeId, archiveDto.getTreeId());
+        }
         IPage<Archive> archivePage = archiveMapper.selectPage(page, queryWrapper);
 
         // 2. 鏃犳暟鎹彁鍓嶈繑鍥�
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
index a38e13b..5e340eb 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
@@ -20,8 +20,10 @@
 import com.ruoyi.business.service.InputInventoryRecordService;
 import com.ruoyi.business.service.InventorySummaryService;
 import com.ruoyi.business.service.PendingInventoryService;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.system.mapper.SysUserMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -52,6 +54,8 @@
     private final CoalFieldMapper coalFieldMapper;
 
     private final CoalInfoMapper coalInfoMapper;
+
+    private final SysUserMapper sysUserMapper;
 
     private final InputInventoryRecordService inputInventoryRecordService;
 
@@ -91,6 +95,20 @@
             coalInfoMap = new HashMap<>();
         }
 
+        // 5. 鎵归噺鏌ヨ鐧昏浜篿d
+        List<Long> registrantIds = pendingInventoryPage.getRecords().stream()
+                .map(PendingInventory::getRegistrantId)
+                .distinct()
+                .toList();
+        // 鎵归噺鏌ヨ鐧昏浜�
+        Map<Long, SysUser> sysUserMap;
+        if (!registrantIds.isEmpty()) {
+            List<SysUser> sysUsers = sysUserMapper.selectList(registrantIds);
+            sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
+        } else {
+            sysUserMap = new HashMap<>();
+        }
+
         // 鎵归噺鏌ヨ姝e紡搴撳瓨淇℃伅
         Map<Long, Long> pendingToOfficialMap = getOfficialInventoryMap(pendingIds);
 
@@ -105,6 +123,12 @@
                 dto.setCoal(coalInfo.getCoal());
             }
 
+            // 璁剧疆鐧昏浜�
+            SysUser sysUser = sysUserMap.get(record.getRegistrantId());
+            if (sysUser != null) {
+                dto.setRegistrant(sysUser.getNickName());
+            }
+
             // 浠庨鍔犺浇鐨凪ap涓幏鍙杘fficialId
             dto.setOfficialId(pendingToOfficialMap.getOrDefault(record.getId(), null));
 
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
index bb958f0..3d006fd 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
@@ -5,7 +5,6 @@
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.entity.CoalInfo;
 import com.ruoyi.basic.mapper.CoalInfoMapper;
 import com.ruoyi.business.dto.ProductionMasterDto;
 import com.ruoyi.business.entity.*;
@@ -18,6 +17,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -211,8 +211,6 @@
             coalIds.add(p.getCoalId());
         }
 
-        List<CoalInfo> coalInfos = coalInfoMapper.selectList(new LambdaQueryWrapper<CoalInfo>().in(CoalInfo::getId, coalIds));
-
         ProductionMaster master = new ProductionMaster();
         master.setProductionQuantity(totalQuantity);
         master.setTotalCost(totalCost);
@@ -263,7 +261,8 @@
             pending.setSupplierName("鐢熶骇鍔犲伐鍏ュ簱");
             pending.setTotalPriceIncludingTax(p.getTotalCost());
             pending.setPriceIncludingTax(p.getPurchasePrice());
-            pending.setPriceIncludingTax(p.getPurchasePrice());
+            pending.setRegistrantId(p.getProducerId());
+            pending.setRegistrationDate(LocalDate.now());
             pendingInventoryMapper.insert(pending);
         }
     }
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/TreeServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/TreeServiceImpl.java
index c549d74..191b172 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/TreeServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/TreeServiceImpl.java
@@ -33,6 +33,7 @@
     public List<TreeVo> selectTreeList(TreeDto treeDto) {
         // 鏌ヨ鏍硅妭鐐癸紙parentId 涓� null锛�
         LambdaQueryWrapper<Tree> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.orderByAsc(Tree::getCreateTime);
         queryWrapper.isNull(Tree::getParentId);
 
         // 濡傛灉鏈変骇鍝佸悕绉版潯浠讹紝娣诲姞鍒版煡璇腑
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql b/main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql
index c1e6c28..a733470 100644
--- a/main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql
+++ b/main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql
@@ -10,7 +10,7 @@
     equipment_depreciation  DECIMAL(10, 2) NOT NULL,           -- 璁惧鎶樻棫
     purchase_price          DECIMAL(10, 2) NOT NULL,           -- 閲囪喘鍗曚环
     total_cost              DECIMAL(10, 2) NOT NULL,           -- 鎬绘垚鏈�
-    producer_id             VARCHAR(50),                       -- 鐢熶骇浜篿d
+    producer_id             BIGINT,                       -- 鐢熶骇浜篿d
     producer                VARCHAR(50),                       -- 鐢熶骇浜�
     production_date         DATE,                              -- 鐢熶骇鏃ユ湡
 
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql b/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql
index f686498..d51c775 100644
--- a/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql
+++ b/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql
@@ -12,7 +12,7 @@
     registration_time         TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP, -- 鐧昏鏃堕棿
     price_excluding_tax       VARCHAR(255),                           -- 鍗曚环锛堜笉鍚◣锛�
     total_price_excluding_tax VARCHAR(255),                           -- 鎬讳环锛堜笉鍚◣锛�
-    registrant_id             VARCHAR(32),                            -- 鐧昏浜篒D
+    registrant_id             BIGINT,                                 -- 鐧昏浜篒D
     registration_date         DATE,                                   -- 鐧昏鏃ユ湡
     supplier_id               BIGINT,                                 -- 渚涜揣鍟咺D
     coal_id                   BIGINT,                                 -- 鐓ょID
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 72d0c91..a5063ac 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -129,4 +129,6 @@
      * 鏌ヨ鎵�鏈夌敤鎴�
      */
     List<SysUser> selectUserListAll();
+
+    List<SysUser> selectList(List<Long> registrantIds);
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index a41723f..8cbe2d3 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -144,8 +144,22 @@
 	<select id="selectUserListAll" resultType="com.ruoyi.common.core.domain.entity.SysUser">
 		select user_id, nick_name from sys_user where del_flag = '0'
 	</select>
+    <select id="selectList" resultType="com.ruoyi.common.core.domain.entity.SysUser">
+		SELECT user_id, nick_name FROM sys_user
+		<where>
+			<if test="list != null and list.size() > 0">
+				user_id IN
+				<foreach item="id" collection="list" open="(" separator="," close=")">
+					#{id}
+				</foreach>
+			</if>
+			<if test="list == null or list.size() == 0">
+				1=0  <!-- 绌哄垪琛ㄦ椂杩斿洖绌虹粨鏋� -->
+			</if>
+		</where>
+	</select>
 
-	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
+    <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
  		insert into sys_user(
  			<if test="userId != null and userId != 0">user_id,</if>
  			<if test="deptId != null and deptId != 0">dept_id,</if>

--
Gitblit v1.9.3