From f2530067b6cd16a87b76190cf524d2ed75bf9592 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 11 十月 2025 14:26:54 +0800
Subject: [PATCH] 集成中台及正联功能

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java |  151 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 135 insertions(+), 16 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
index 37cb1d2..fa9edd8 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -5,7 +5,9 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.ErrorTip;
 import com.stylefeng.guns.core.base.tips.SuccessTip;
+import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.log.LogObjectHolder;
 import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.shiro.ShiroUser;
@@ -24,6 +26,13 @@
 import com.stylefeng.guns.modular.system.util.DateUtil;
 import com.stylefeng.guns.modular.system.util.RedisUtil;
 //import com.stylefeng.guns.modular.system.util.bank.BankUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -100,6 +109,15 @@
     private AccountChangeDetailMapper accountChangeDetailMapper;
 
     private Logger log = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private ShiroExtUtil shiroExtUtil;
+
+    @Autowired
+    private IUserService userService;
+
+    @Autowired
+    private ITBranchOfficeService branchOfficeService;
 
     /**
      * 跳转到首页
@@ -528,20 +546,50 @@
     @RequestMapping(value = "/auditSubmit")
     @ResponseBody
     public Object auditSubmit(Integer id,Integer approvalStatus,String approvalNotes) {
+        ShiroUser user1 = shiroExtUtil.getUser();
+        User user2 = userService.selectById(user1.getId());
         TDriver tDriver = tDriverService.selectById(id);
-
-
-
         tDriver.setApprovalStatus(approvalStatus);
         tDriver.setApprovalNotes(approvalNotes);
         // 审核用户id
-        Subject subject = ShiroKit.getSubject();
-        ShiroUser shiroUser = (ShiroUser)subject.getPrincipal();
-        tDriver.setApprovalUserId(shiroUser.getId());
+        tDriver.setApprovalUserId(user1.getId());
         tDriver.setApprovalTime(new Date());
         if (approvalStatus==2){
-//            T21000001Response t21000001Response = BankUtil.addAccount(tDriver);
-//            tDriver.setMerchantNumber(t21000001Response.getDATA().getUSER_ID());
+            //审核通过,在中台添加司机账号
+            Integer objectId = tDriver.getBranchOfficeId();
+            TBranchOffice tBranchOffice = branchOfficeService.selectById(objectId);
+            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDriver.getPhone(), tBranchOffice.getEnterCode());
+            Long empId = null;
+            Integer empnew = null;
+            if(null == userInfoByPhone || userInfoByPhone.size() == 0){
+                SaveStaffNodeRequest request = new SaveStaffNodeRequest();
+                request.setMobile(user2.getPhone());
+                request.setEntercode(tBranchOffice.getEnterCode());
+                request.setEmpName(tDriver.getName());
+                request.setEmpNickname(tDriver.getName());
+                request.setLoginNo(tDriver.getPhone());
+                request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
+                request.setMphone(tDriver.getPhone());
+                request.setEmail(tDriver.getPhone() + "@qyt.com");
+                request.setDeptId(0);
+                request.setPositionId(1);
+                request.setSuperLevel(0);
+                request.setHideMobile(0);
+                ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
+                if(200 != resultUtil.getStatus()){
+                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
+                }
+                SaveStaffNode saveStaffNode = resultUtil.getData();
+                empId = saveStaffNode.getEmpId();
+                empnew = 1;
+            }else{
+                empId = userInfoByPhone.get(0).getEmpId();
+                empnew = 0;
+            }
+            tDriver.setEmpId(empId);
+            tDriver.setEntercode(tBranchOffice.getEnterCode());
+            tDriver.setEnterId(Long.valueOf(tBranchOffice.getEnterCode()));
+            tDriver.setEmpnew(empnew);
         }
         tDriverService.updateById(tDriver);
 
@@ -567,10 +615,6 @@
             accountChangeDetailMapper.insert(accountChangeDetail);
             tDriverService.updateById(tDriver1);
         }
-
-
-
-
         return SUCCESS_TIP;
     }
 
@@ -600,6 +644,13 @@
         if(count>0){
             return new SuccessTip(500,"该司机已存在!");
         }
+        if(ToolUtil.isEmpty(tDriver.getIdcard())){
+            return "身份证号不能为空";
+        }
+        Boolean b = UserUtil.idCardAuth(tDriver.getName(), tDriver.getIdcard());
+        if(!b){
+            return "司机姓名和身份证号不匹配";
+        }
         Object o = tDriverService.addOrUpdate(tDriver);
         if(Objects.nonNull(o)){
             return o;
@@ -611,6 +662,48 @@
         tDriver.setBalance(BigDecimal.ZERO);
         tDriver.setBackgroundBalance(BigDecimal.ZERO);
         tDriver.setCommission(BigDecimal.ZERO);
+        if(2 == tDriver.getApprovalStatus()){
+            ShiroUser user = shiroExtUtil.getUser();
+            User user2 = userService.selectById(user.getId());
+            Integer objectId = user.getObjectId();
+            TBranchOffice tBranchOffice = branchOfficeService.selectById(objectId);
+            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDriver.getPhone(), tBranchOffice.getEnterCode());
+            Long empId = null;
+            Integer empnew = null;
+            if(null == userInfoByPhone || userInfoByPhone.size() == 0){
+                SaveStaffNodeRequest request = new SaveStaffNodeRequest();
+                request.setMobile(user2.getPhone());
+                request.setEntercode(tBranchOffice.getEnterCode());
+                request.setEmpName(tDriver.getName());
+                request.setEmpNickname(tDriver.getName());
+                request.setLoginNo(tDriver.getPhone());
+                request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
+                request.setMphone(tDriver.getPhone());
+                request.setEmail(tDriver.getPhone() + "@qyt.com");
+                request.setDeptId(0);
+                request.setPositionId(1);
+                request.setSuperLevel(0);
+                request.setHideMobile(0);
+                ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
+                if(200 != resultUtil.getStatus()){
+                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
+                }
+                SaveStaffNode saveStaffNode = resultUtil.getData();
+                empId = saveStaffNode.getEmpId();
+                empnew = 1;
+            }else{
+                empId = userInfoByPhone.get(0).getEmpId();
+                empnew = 0;
+            }
+
+            TBranchOffice tBranchOffice1 = branchOfficeService.selectById(tDriver.getBranchOfficeId());
+            tDriver.setEmpId(empId);
+            tDriver.setEntercode(tBranchOffice1.getEnterCode());
+            tDriver.setEnterId(Long.valueOf(tBranchOffice1.getEnterCode()));
+            tDriver.setEmpnew(empnew);
+        }
+
+
         tDriverService.insert(tDriver);
         return SUCCESS_TIP;
     }
@@ -621,6 +714,24 @@
     @RequestMapping(value = "/delete")
     @ResponseBody
     public Object delete(@RequestParam Integer tDriverId) {
+        TDriver driver = tDriverService.selectById(tDriverId);
+
+        ShiroUser user = shiroExtUtil.getUser();
+        TBranchOffice tBranchOffice = branchOfficeService.selectById(user.getObjectId());
+        if (null != driver.getEmpId() && 1 == driver.getEmpnew()) {
+            //中台先删除司机
+            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver.getPhone(), tBranchOffice.getEnterCode());
+            if (null != userInfoByPhone && 0 < userInfoByPhone.size() && 1 == driver.getEmpnew()) {
+                DeleteStafNodeRequest deleteStafNodeRequest = new DeleteStafNodeRequest();
+                deleteStafNodeRequest.setEmpId(driver.getEmpId());
+                deleteStafNodeRequest.setEntercode(tBranchOffice.getEnterCode());
+                deleteStafNodeRequest.setMobile(tBranchOffice.getPrincipalPhone());
+                ResultUtil resultUtil = EmployeeUtil.ecrmDeleteStafNode(deleteStafNodeRequest);
+                if(200 != resultUtil.getStatus()){
+                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
+                }
+            }
+        }
         tDriverService.deleteById(tDriverId);
         return SUCCESS_TIP;
     }
@@ -671,10 +782,10 @@
 
         // 添加充值记录
         TRechargeRecord tRechargeRecord = new TRechargeRecord();
-        Integer roleType = ShiroKit.getUser().getRoleType();
+        Integer roleType = shiroExtUtil.getUser().getRoleType();
         if(roleType == 2){
             tRechargeRecord.setType(UserTypeEnum.BRANCH_OFFICE.getCode());
-            Integer id1 = Objects.requireNonNull(ShiroKit.getUser()).getObjectId();
+            Integer id1 = Objects.requireNonNull(shiroExtUtil.getUser()).getObjectId();
             tRechargeRecord.setBranchOfficeId(id1);
         }
         if(roleType == 3){
@@ -718,8 +829,13 @@
         if(Objects.nonNull(driver) && !tDriver.getId().equals(driver.getId())){
             return new SuccessTip(500,"该司机已存在!");
         }
-//        Object ocr = ocr("E:\\071bf986db0b00355c0ed190bbd3b16.png");
-//        System.err.println(ocr);
+        if(ToolUtil.isEmpty(tDriver.getIdcard())){
+            return "身份证号不能为空";
+        }
+        Boolean b = UserUtil.idCardAuth(tDriver.getName(), tDriver.getIdcard());
+        if(!b){
+            return "司机姓名和身份证号不匹配";
+        }
         Object o = tDriverService.addOrUpdate(tDriver);
         if(Objects.nonNull(o)){
             return o;
@@ -912,6 +1028,9 @@
             e.printStackTrace();
         }
     }
+
+
+
     @ApiOperation(value = "导出司机佣金列表",notes="导出司机佣金列表")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),

--
Gitblit v1.7.1