Browse Source

场景协作针对公司

lyhzzz 1 year ago
parent
commit
fa5f99e064

+ 4 - 0
src/main/java/com/fdkankan/manage_jp/common/ResultCode.java

@@ -32,6 +32,10 @@ public enum ResultCode  {
     CONTRACTOR_USER_ERROR(5015, "承包商不存在"),
     RESTORE_ERROR(5016, "还原的相机类型不同"),
     LASER_ERROR(5017, "激光系统出错"),
+    SCENE_CONTRACTOR_ERROR2(5018, "场景协作失败,请勿同个公司内进行协作"),
+    SCENE_COMPANY_ERROR(5019, "场景所属公司不存在,或者公司管理员不存在"),
+
+    MAIN_CONTRACTOR_USER_ERROR(5020, "总承包商不存在"),
 
 
     ;

+ 8 - 0
src/main/java/com/fdkankan/manage_jp/entity/TmContractor.java

@@ -40,6 +40,8 @@ public class TmContractor implements Serializable {
     @TableField("main_contractor_account")
     private String mainContractorAccount;
 
+    @TableField("main_contractor_company_id")
+    private Long mainContractorCompanyId;
     /**
      * 承包商
      */
@@ -52,6 +54,12 @@ public class TmContractor implements Serializable {
     @TableField("contractor_account")
     private String contractorAccount;
 
+    @TableField("contractor_company_id")
+    private Long contractorCompanyId;
+
+    @TableField("sys_user_id")
+    private Long sysUserId;
+
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")
     private String recStatus;

+ 2 - 0
src/main/java/com/fdkankan/manage_jp/service/ICompanyService.java

@@ -39,4 +39,6 @@ public interface ICompanyService extends IService<Company> {
     Company getByChildName(String childName);
 
     List<Company> getLikeCompanyName(String companyName);
+
+    Company getBySceneNum(String num);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage_jp/service/ITmContractorNumService.java

@@ -20,4 +20,6 @@ public interface ITmContractorNumService extends IService<TmContractorNum> {
     List<String> getNumListByUserId(Long userId);
 
     List<TmContractorNum> getByContractorIds(List<Integer> ids);
+
+    List<String> getNumListByCompanyId(Long companyId);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage_jp/service/ITmContractorService.java

@@ -24,4 +24,6 @@ public interface ITmContractorService extends IService<TmContractor> {
     void collaborate(SceneParam param, User user);
 
     List<TmContractor> getByContractorId(Long userId);
+
+    List<TmContractor> getByCompanyId(Long companyId);
 }

+ 25 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/CompanyServiceImpl.java

@@ -51,6 +51,8 @@ public class CompanyServiceImpl extends ServiceImpl<ICompanyMapper, Company> imp
     @Autowired
     ISceneProService sceneProService;
     @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
     IMailTemplateService mailTemplateService;
 
     @Override
@@ -350,4 +352,27 @@ public class CompanyServiceImpl extends ServiceImpl<ICompanyMapper, Company> imp
         wrapper.like(Company::getCompanyName,companyName);
         return this.list(wrapper);
     }
+
+    @Override
+    public Company getBySceneNum(String num) {
+        ScenePro scenePro = sceneProService.getByNum(num);
+        Long userId = null;
+        if(scenePro!= null){
+            userId= scenePro.getUserId();
+        }else {
+            ScenePlus scenePlus = scenePlusService.getByNum(num);
+            if(scenePlus!= null){
+                userId = scenePlus.getUserId();
+            }
+        }
+
+        if(userId == null){
+            return null;
+        }
+        User user = userService.getById(userId);
+        if(user != null){
+            return this.getById(user.getCompanyId());
+        }
+        return null;
+    }
 }

+ 4 - 2
src/main/java/com/fdkankan/manage_jp/service/impl/SceneProServiceImpl.java

@@ -114,8 +114,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 param.setIsDel(false);
             }
         }
-        List<String> numList = tmContractorNumService.getNumListByUserId(user.getId());
-        param.setCooperateSceneCodes(numList);
+        if(user.getCompanyId() != null){
+            List<String> numList = tmContractorNumService.getNumListByCompanyId(user.getCompanyId());
+            param.setCooperateSceneCodes(numList);
+        }
         if(param.getType() == 2 || param.getType() == 6){  //深时
             return laserService.pageList(param);
         }

+ 11 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/TmContractorNumServiceImpl.java

@@ -55,4 +55,15 @@ public class TmContractorNumServiceImpl extends ServiceImpl<ITmContractorNumMapp
         wrapper.in(TmContractorNum::getContractorId,ids);
         return this.list(wrapper);
     }
+
+    @Override
+    public List<String> getNumListByCompanyId(Long companyId) {
+        List<TmContractor> tmContractors = tmContractorService.getByCompanyId(companyId);
+        if(!tmContractors.isEmpty()){
+            List<Integer> ids = tmContractors.stream().map(TmContractor::getId).collect(Collectors.toList());
+            List<TmContractorNum> list = this.getByContractorIds(ids);
+            return list.stream().map(TmContractorNum::getNum).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
 }

+ 27 - 10
src/main/java/com/fdkankan/manage_jp/service/impl/TmContractorServiceImpl.java

@@ -3,15 +3,11 @@ package com.fdkankan.manage_jp.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage_jp.common.ResultCode;
-import com.fdkankan.manage_jp.entity.TmContractor;
-import com.fdkankan.manage_jp.entity.TmContractorNum;
-import com.fdkankan.manage_jp.entity.User;
+import com.fdkankan.manage_jp.entity.*;
 import com.fdkankan.manage_jp.exception.BusinessException;
 import com.fdkankan.manage_jp.mapper.ITmContractorMapper;
-import com.fdkankan.manage_jp.service.ITmContractorNumService;
-import com.fdkankan.manage_jp.service.ITmContractorService;
+import com.fdkankan.manage_jp.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fdkankan.manage_jp.service.IUserService;
 import com.fdkankan.manage_jp.vo.request.ContractorParam;
 import com.fdkankan.manage_jp.vo.request.SceneParam;
 import lombok.extern.slf4j.Slf4j;
@@ -39,6 +35,8 @@ public class TmContractorServiceImpl extends ServiceImpl<ITmContractorMapper, Tm
     ITmContractorNumService tmContractorNumService;
     @Autowired
     IUserService userService;
+    @Autowired
+    ICompanyService companyService;
 
     @Override
     public Page<TmContractor> pageList(ContractorParam param) {
@@ -56,21 +54,33 @@ public class TmContractorServiceImpl extends ServiceImpl<ITmContractorMapper, Tm
             if(!numList.isEmpty()){
                 throw new BusinessException(ResultCode.SCENE_CONTRACTOR_ERROR);
             }
+            Company company = companyService.getBySceneNum(param.getNum());
+            if(company == null || company.getManagerId() == null){
+                throw new BusinessException(ResultCode.SCENE_COMPANY_ERROR);
+            }
+            User mainContractorUser = userService.getById(company.getManagerId());
+            if(mainContractorUser == null){
+                throw new BusinessException(ResultCode.MAIN_CONTRACTOR_USER_ERROR);
+            }
+
             User contractorUser = userService.getByUserName(param.getUserName());
             if(contractorUser == null){
                 throw new BusinessException(ResultCode.CONTRACTOR_USER_ERROR);
             }
 
-            TmContractor tmContractor = this.getByMainContractor(user.getId(),contractorUser.getId());
+            TmContractor tmContractor = this.getByMainContractor(mainContractorUser.getId(),contractorUser.getId());
             if(tmContractor == null){
                 tmContractor = new TmContractor();
             }
-            tmContractor.setMainContractorUserId(user.getId());
-            tmContractor.setMainContractorName(user.getNickName());
-            tmContractor.setMainContractorAccount(user.getUserName());
+            tmContractor.setMainContractorUserId(mainContractorUser.getId());
+            tmContractor.setMainContractorName(mainContractorUser.getNickName());
+            tmContractor.setMainContractorAccount(mainContractorUser.getUserName());
+            tmContractor.setMainContractorCompanyId(mainContractorUser.getCompanyId());
             tmContractor.setContractorUserId(contractorUser.getId());
             tmContractor.setContractorName(contractorUser.getNickName());
             tmContractor.setContractorAccount(contractorUser.getUserName());
+            tmContractor.setContractorCompanyId(contractorUser.getCompanyId());
+            tmContractor.setSysUserId(user.getId());
             this.saveOrUpdate(tmContractor);
 
             TmContractorNum tmContractorNum = new TmContractorNum();
@@ -94,4 +104,11 @@ public class TmContractorServiceImpl extends ServiceImpl<ITmContractorMapper, Tm
         wrapper.eq(TmContractor::getContractorUserId,userId);
         return this.list(wrapper);
     }
+
+    @Override
+    public List<TmContractor> getByCompanyId(Long companyId) {
+        LambdaQueryWrapper<TmContractor> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TmContractor::getContractorCompanyId,companyId);
+        return this.list(wrapper);
+    }
 }