From 30f124fbe2c638eecda3d74c6dde053af5d574f0 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 11 十月 2025 14:26:17 +0800
Subject: [PATCH] 提交代码

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java |  203 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 197 insertions(+), 6 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
index 76f4eef..aff3d97 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
@@ -6,13 +6,22 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.ErrorTip;
+import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.SinataUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.ITCompanyCityService;
 import com.stylefeng.guns.modular.system.service.ITRegionService;
 import com.stylefeng.guns.modular.system.service.IUserService;
+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.EnterpriseUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -23,10 +32,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import com.stylefeng.guns.modular.system.service.ITCompanyService;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 分公司管理控制器
@@ -51,6 +57,9 @@
 
     @Autowired
     private ITCompanyCityService tCompanyCityService;
+
+    @Autowired
+    private ShiroExtUtil shiroExtUtil;
 
     /**
      * 跳转到修改平台信息
@@ -294,6 +303,70 @@
         if (count > 0){
             return "error";
         }
+        if(ToolUtil.isEmpty(tCompany.getIdentifier())){
+            return "统一社会信用代码不能为空";
+        }
+        //调用中台接口创建企业
+        CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterExistByEnterIdCardNo(tCompany.getIdentifier());
+        String enterCode = "";
+        Integer enterNew = null;
+        Long empId = null;
+        Integer empnew = null;
+        //企业未注册,进行注册
+        if (null == checkEnterExist || "0".equals(checkEnterExist.getIsReg())) {
+            CreateEnterpriseRequest request = new CreateEnterpriseRequest();
+            request.setName(tCompany.getName());
+            request.setNickName(tCompany.getName());
+            request.setUscc(tCompany.getIdentifier());
+            request.setIndustry_code("292");
+            request.setMobile(account);
+            CreateEnterprise enterprise = EnterpriseUtil.createEnterprise(request);
+            enterCode = enterprise.getIdCode();
+            enterNew = 1;
+            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
+            if(null != userInfoByPhone && userInfoByPhone.size() > 0){
+                empId = userInfoByPhone.get(0).getEmpId();
+                empnew = 0;
+            }else{
+                empId = 0L;
+                empnew = 1;
+            }
+        }
+        //企业已注册
+        if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
+            enterCode = checkEnterExist.getEnterCode();
+            enterNew = 0;
+            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
+            if(null == userInfoByPhone ||userInfoByPhone.size() == 0){
+                //负责人不匹配,则创建新的员工到中台
+                SaveStaffNodeRequest request = new SaveStaffNodeRequest();
+                request.setMobile(checkEnterExist.getMobile());
+                request.setEntercode(enterCode);
+                request.setEmpName(tCompany.getName() + "管理员");
+                request.setEmpNickname(tCompany.getName() + "管理员");
+                request.setLoginNo(account);
+                request.setEmpSex("男");
+                request.setMphone(account);
+                request.setEmail(account + "@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;
+            }
+        }
+
+        tCompany.setEnterCode(enterCode);
+        tCompany.setEnterNew(enterNew);
         tCompany.setType(2);  //2:分公司
         tCompany.setState(0); //0:正常
         tCompany.setInsertTime(new Date());
@@ -312,12 +385,34 @@
         user.setObjectId(tCompany.getId());
         user.setName(tCompany.getName());
         user.setSex(1);
+        user.setEmpId(empId);
+        user.setEntercode(enterCode);
+        user.setEnterId(Long.valueOf(enterCode));
+        user.setEmpnew(empnew);
         userService.insert(user);
-
+        //编写异步延迟处理中台账号延迟创建的问题
+        if(0 == empId){
+            Timer timer = new Timer();
+            String finalEnterCode = enterCode;
+            timer.schedule(new TimerTask() {
+                @Override
+                public void run() {
+                    List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, finalEnterCode);
+                    if(null != userInfoByPhone && userInfoByPhone.size() > 0){
+                        Long empId1 = userInfoByPhone.get(0).getEmpId();
+                        user.setEmpId(empId1);
+                        userService.updateById(user);
+                    }
+                }
+            },120*1000);
+        }
         //添加经营区域
         addSocpe(subArr,tCompany.getId());
         return SUCCESS_TIP;
     }
+
+
+
     //添加经营区域
     public void addSocpe(String subArr,Integer id){
         JSONArray jsonArray = JSON.parseArray(subArr);
@@ -354,6 +449,70 @@
         if (count > 0){
             return "error";
         }
+        if(ToolUtil.isEmpty(tCompany.getIdentifier())){
+            return "统一社会信用代码不能为空";
+        }
+        //调用中台接口创建企业
+        CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterExistByEnterIdCardNo(tCompany.getIdentifier());
+        String enterCode = "";
+        Long empId = null;
+        Integer empnew = null;
+        Integer enterNew = null;
+
+        //企业未注册,进行注册
+        if (null == checkEnterExist || "0".equals(checkEnterExist.getIsReg())) {
+            CreateEnterpriseRequest request = new CreateEnterpriseRequest();
+            request.setName(tCompany.getName());
+            request.setNickName(tCompany.getName());
+            request.setUscc(tCompany.getIdentifier());
+            request.setIndustry_code("292");
+            request.setMobile(account);
+            CreateEnterprise enterprise = EnterpriseUtil.createEnterprise(request);
+            enterCode = enterprise.getIdCode();
+            enterNew = 1;
+            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
+            if(null != userInfoByPhone && userInfoByPhone.size() > 0){
+                empId = userInfoByPhone.get(0).getEmpId();
+                empnew = 0;
+            }else{
+                empId = 0L;
+                empnew = 1;
+            }
+        }
+        //企业已注册
+        if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
+            enterCode = checkEnterExist.getEnterCode();
+            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
+            enterNew = 0;
+            if(null == userInfoByPhone || userInfoByPhone.size() == 0){
+                SaveStaffNodeRequest request = new SaveStaffNodeRequest();
+                request.setMobile(checkEnterExist.getMobile());
+                request.setEntercode(enterCode);
+                request.setEmpName(tCompany.getName() + "管理员");
+                request.setEmpNickname(tCompany.getName() + "管理员");
+                request.setLoginNo(account);
+                request.setEmpSex("女");
+                request.setMphone(account);
+                request.setEmail(account + "@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;
+            }
+        }
+
+        tCompany.setEnterCode(enterCode);
+        tCompany.setEnterNew(enterNew);
         tCompany.setType(3);  //2:分公司
         if (ShiroKit.getUser().getRoleType() == 2){
             tCompany.setSuperiorId(ShiroKit.getUser().getObjectId());
@@ -375,8 +534,27 @@
         user.setObjectId(tCompany.getId());
         user.setName(tCompany.getName());
         user.setSex(1);
+        user.setEmpId(empId);
+        user.setEntercode(enterCode);
+        user.setEnterId(Long.valueOf(enterCode));
+        user.setEmpnew(empnew);
         userService.insert(user);
-
+        //编写异步延迟处理中台账号延迟创建的问题
+        if(0 == empId){
+            Timer timer = new Timer();
+            String finalEnterCode = enterCode;
+            timer.schedule(new TimerTask() {
+                @Override
+                public void run() {
+                    List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, finalEnterCode);
+                    if(null != userInfoByPhone && userInfoByPhone.size() > 0){
+                        Long empId1 = userInfoByPhone.get(0).getEmpId();
+                        user.setEmpId(empId1);
+                        userService.updateById(user);
+                    }
+                }
+            },120*1000);
+        }
         return SUCCESS_TIP;
     }
 
@@ -387,6 +565,19 @@
     @ResponseBody
     public Object delete(@RequestParam Integer tCompanyId) {
         TCompany tCompany = tCompanyService.selectById(tCompanyId);
+        //调用中台接口创建企业
+        if(1 == tCompany.getEnterNew()){
+            CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterExistByEnterIdCardNo(tCompany.getIdentifier());
+            if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
+                ShiroUser user1 = shiroExtUtil.getUser();
+                User user = userService.selectById(user1.getId());
+                ResultUtil resultUtil = EnterpriseUtil.delEnterprise(checkEnterExist.getEnterCode(), user.getPhone());
+                if(resultUtil.getStatus() != 200){
+                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
+                }
+            }
+        }
+
         tCompany.setFlag("3");
         tCompanyService.updateById(tCompany);
         return SUCCESS_TIP;

--
Gitblit v1.7.1