From 0ad8e58952b396bd689433a0b29e4a66f9bc0817 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 22 五月 2025 17:33:39 +0800
Subject: [PATCH] 导出用户信息,主要导出用户二维码

---
 pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 6 deletions(-)

diff --git a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java
index a0ca41c..a9d8e20 100644
--- a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java
+++ b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java
@@ -1,16 +1,25 @@
 package com.dy.pmsBase.user;
 
+import cn.hutool.core.codec.Base64;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pmsGlobal.daoBa.BaUserMapper;
 import com.dy.pmsGlobal.daoBa.BaUserRoleMapper;
+import com.dy.pmsGlobal.daoSta.StaAssemblyWorkLastMapper;
 import com.dy.pmsGlobal.pojoBa.BaUser;
 import com.dy.pmsGlobal.pojoBa.BaUserRole;
+import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast;
+import com.dy.pmsGlobal.util.QrCodeConstant;
+import com.dy.pmsGlobal.util.QrCodeUtil;
+import com.google.zxing.WriterException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
@@ -22,7 +31,8 @@
     private BaUserMapper dao;
     @Autowired
     private BaUserRoleMapper urDao;
-
+    @Autowired
+    private StaAssemblyWorkLastMapper assemblyWorkLastDao;
     /**
      * 鐢熸垚鎸囧畾浣嶆暟闅忔満鏁板瓧瀵嗙爜
      *
@@ -70,10 +80,22 @@
 
         //鏌ヨ绗﹀悎鏉′欢鐨勮褰�
         rsVo.obj = this.dao.selectSome(params) ;
+        rsVo.obj.parallelStream().forEach(item->{
+            try {
+                byte[] codes = QrCodeUtil.genQrCode(QrCodeConstant.TypeWorker + item.id);
+                item.qrCode = "data:image/jpeg;base64," + Base64.encode(codes);
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (WriterException e) {
+                e.printStackTrace();
+            }
+        });
         return rsVo ;
     }
 
-
+    public List<BaUser> selectAll() {
+        return dao.selectAll();
+    }
     /**
      * 淇濆瓨瀹炰綋
      * @param po 瀹炰綋
@@ -81,7 +103,12 @@
      */
     @Transactional
     public Long save(BaUser po){
-        this.dao.insertSelective(po) ;
+        try{
+            dao.insertSelective(po) ;
+        }catch(DuplicateKeyException e){
+            log.error(e.getMessage());
+            throw new RuntimeException("鎵嬫満鍙风爜閲嶅");
+        }
         Long id = po.getId();
         this.saveUserRoles(id, po.roleIds) ;
         return id ;
@@ -94,7 +121,13 @@
      */
     @Transactional
     public int update(BaUser po) {
-        int count = this.dao.updateByPrimaryKeySelective(po);
+        int count=0;
+        try{
+            count = this.dao.updateByPrimaryKeySelective(po);
+        }catch(DuplicateKeyException e){
+            log.error(e.getMessage());
+            throw new RuntimeException("鎵嬫満鍙风爜閲嶅");
+        }
         this.saveUserRoles(po.id, po.roleIds) ;
         return count ;
     }
@@ -105,7 +138,9 @@
      * @param disabled
      * @return
      */
+    @Transactional
     public int disabled(Long id,Boolean disabled) {
+        checkStationLogin(id);
         BaUser user=new BaUser();
         user.id=id;
         user.disabled=disabled;
@@ -150,8 +185,21 @@
      */
     @Transactional
     public int delete(Long id) {
+        checkStationLogin(id);
         return this.dao.deleteLogicById(id);
     }
 
-
-}
+    public void  checkStationLogin(Long id){
+        //濡傛灉鏈夊伐绔欑櫥褰曚俊鎭�,鍒欐彁绀哄厛鍒拌Е灞忕鐧诲綍椤甸潰logout
+        Map<String, Object> params = new HashMap<>();
+        params.put("userId", id);
+        List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectSome(params);
+        if (workLasts.size() > 0) {
+            String stationStr = "(";
+            for (StaAssemblyWorkLast workLast:workLasts) {
+                stationStr += workLast.getStationName() +",";
+            }
+            throw new RuntimeException("璇ョ敤鎴峰湪"+ stationStr +")宸ョ珯瀛樺湪鐧诲綍淇℃伅,璇峰厛鍒拌Е灞忕鐧诲綍椤甸潰logout,鎴栬仈绯荤鐞嗗憳鍒犻櫎");
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0