From 717be6a41702dc249906346cacdcb9de1ff00fde Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期四, 20 六月 2024 17:34:49 +0800
Subject: [PATCH] 企业来访添加

---
 project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java |  228 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 174 insertions(+), 54 deletions(-)

diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
index addca4d..fce5771 100644
--- a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
+++ b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
@@ -1,21 +1,31 @@
 package com.project.enforce.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
 import cn.hutool.core.convert.Convert;
-import com.project.common.utils.StringUtils;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import org.springframework.transaction.annotation.Transactional;
-import com.project.enforce.domain.vo.EnforceOrderVo;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.project.common.annotation.DataScope;
+import com.project.common.core.domain.entity.SysUser;
+import com.project.common.enums.OrderPre;
+import com.project.common.sms.YPSmsApi;
+import com.project.common.utils.SecurityUtils;
+import com.project.common.utils.StringUtils;
+import com.project.enforce.domain.EnforceOrder;
+import com.project.enforce.domain.EnforcePeer;
 import com.project.enforce.domain.bo.editBo.EnforceOrderBo;
 import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo;
-import com.project.enforce.domain.EnforceOrder;
+import com.project.enforce.domain.vo.EnforceOrderVo;
 import com.project.enforce.mapper.EnforceOrderMapper;
 import com.project.enforce.service.IEnforceOrderService;
+import com.project.enforce.service.IEnforcePeerService;
+import com.project.system.service.ISysDeptService;
+import com.project.system.service.ISysOrderNoService;
+import com.project.system.service.ISysUserService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collection;
 import java.util.List;
@@ -29,14 +39,35 @@
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class EnforceOrderServiceImpl extends ServiceImpl<EnforceOrderMapper, EnforceOrder> implements IEnforceOrderService {
 
-
+    private final ISysUserService userService;
+    private final ISysDeptService deptService;
+    private final ISysOrderNoService orderNoService;
+    private final IEnforcePeerService peerService;
 
     @Override//鍒楄〃鏌ヨ
+    @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_user_id")
     public List<EnforceOrderVo> queryList(EnforceOrderQueryBo bo)
     {
         QueryWrapper<EnforceOrder> qw = getQw(bo);
+        qw.apply(bo.getParams().get("dataScope") != null, bo.getParams().get("dataScope").toString());//鏁版嵁鏉冮檺鎺у埗
         List<EnforceOrder> list = this.list(qw);
         return Convert.toList(EnforceOrderVo.class , list);
+    }
+
+    @Override//寰呭鏍稿垪琛�
+    public List<EnforceOrderVo> queryCheckList(EnforceOrderQueryBo bo)
+    {
+        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
+        bo.setCheckIds(loginUser.getPhonenumber());
+        bo.setApplyDeptIds(deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId()));
+        return this.baseMapper.selectCheckList(bo);
+    }
+
+    @Override//淇℃伅鍏紡鍒楄〃
+    public List<EnforceOrderVo> showList()
+    {
+        List<EnforceOrder> list = this.list(lq().eq(EnforceOrder::getIsShow, 1));
+        return Convert.toList(EnforceOrderVo.class, list);
     }
 
     @Override//id鏌ヨ
@@ -52,8 +83,33 @@
     public Boolean insertByBo(EnforceOrderBo bo)
     {
         EnforceOrder add = Convert.convert(EnforceOrder.class, bo);
+        add.setCheckLevel(0);
         validEntityBeforeSave(add);
-        return this.save(add);
+        List<String> phones = getCheckPhones(add.getCheckLevel(), add.getApplyDeptId());
+        if (StringUtils.isNotEmpty(phones)){
+            String checkPhones = StringUtils.join(phones, ",");
+            add.setCheckIds(checkPhones);
+        }
+        this.save(add);
+        bo.getPeers().add(new EnforcePeer()
+                .setPeerType(1)
+                .setPeerId(add.getApplyId())
+                .setPeerUser(add.getApplyUser())
+                .setPeerPhone(add.getApplyPhone())
+                .setPeerDeptId(add.getApplyDeptId())
+                .setPeerDeptName(add.getApplyDeptName())
+        );
+        //澶勭悊鎵ф硶浜哄憳淇℃伅
+        for (EnforcePeer peer : bo.getPeers())
+        {
+            peer.setOrderId(add.getOrderId());
+            peer.setPeerDeptName(deptService.getDeptAllName(peer.getPeerDeptId()));
+        }
+        boolean savePeers = peerService.saveOrUpdateBatch(bo.getPeers());
+        if (savePeers && StringUtils.isNotEmpty(phones)) {
+            sendApplyMsg(phones, add.getApplyUser());
+        }
+        return savePeers;
     }
 
     @Override//淇敼
@@ -75,13 +131,48 @@
         return this.removeByIds(ids);
     }
 
+    @Override
+    public List<String> getCheckPhones(Integer checkLevel, Long applyDeptId)
+    {
+        return getCheckPhones(checkLevel, applyDeptId, 0);
+    }
+
 
 //-------------------------------------------------------------------------------------
+
+
+    /**
+     * 鍙戦�佸鎵圭煭淇�
+     * @param phones    鎵嬫満鍙�
+     * @param applyUser 鐢宠浜�
+     */
+    @Async
+    public void sendApplyMsg(List<String> phones, String applyUser)
+    {
+        String applyMsg = StringUtils.format(StringUtils.format(YPSmsApi.APPLY_TMP, applyUser));
+        phones.forEach(phone->{
+            YPSmsApi.sendSms(phone, applyMsg) ;
+        });
+    }
 
     //淇濆瓨鍓嶆牎楠�
     private void validEntityBeforeSave(EnforceOrder entity)
     {
-        //鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+        if (entity.getOrderId()==null){
+            String orderNo = orderNoService.getOrderNo(OrderPre.ZFD.getIndex());
+            entity.setOrderNo(orderNo);
+            entity.setCheckDeptId(deptService.getCheckDeptIdByLoginDeptId(entity.getApplyDeptId()));
+        }
+        if (StringUtils.isEmpty(entity.getApplyDeptName())){
+            entity.setApplyDeptName(deptService.getDeptAllName(entity.getApplyDeptId()));
+        }
+        if (StringUtils.isEmpty(entity.getExecuteDeptName())){
+            entity.setExecuteDeptName(deptService.getDeptAllName(entity.getExecuteDeptId()));
+        }
+        if (StringUtils.isEmpty(entity.getCheckDeptName())){
+            entity.setCheckDeptName(deptService.getDeptAllName(entity.getCheckDeptId()));
+        }
+
     }
 
     //鑾峰彇鏌ヨ鍙傛暟
@@ -89,47 +180,48 @@
     {
         QueryWrapper<EnforceOrder> qw = Wrappers.query();
 
-            qw.eq(StringUtils.isNotEmpty(bo.getOrderNo()), "order_no", bo.getOrderNo());
-            qw.eq(bo.getCompanyId() != null, "company_id", bo.getCompanyId());
-            qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName());
-            qw.eq(StringUtils.isNotEmpty(bo.getCompanyCode()), "company_code", bo.getCompanyCode());
-            qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser());
-            qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone());
-            qw.eq(StringUtils.isNotEmpty(bo.getCompanyAddress()), "company_address", bo.getCompanyAddress());
-            qw.eq(StringUtils.isNotEmpty(bo.getRegionCode()), "region_code", bo.getRegionCode());
-            qw.like(StringUtils.isNotEmpty(bo.getRegionName()), "region_name", bo.getRegionName());
-            qw.eq(StringUtils.isNotEmpty(bo.getEnforceReason()), "enforce_reason", bo.getEnforceReason());
-            qw.eq(bo.getApplyId() != null, "apply_id", bo.getApplyId());
-            qw.eq(bo.getApplyUser() != null, "apply_user", bo.getApplyUser());
-            qw.eq(bo.getApplyPhone() != null, "apply_phone", bo.getApplyPhone());
-            qw.eq(bo.getApplyDeptId() != null, "apply_dept_id", bo.getApplyDeptId());
-            qw.like(bo.getApplyDeptName() != null, "apply_dept_name", bo.getApplyDeptName());
-            qw.eq(bo.getApplyTime() != null, "apply_time", bo.getApplyTime());
-            qw.eq(bo.getWarnStatus() != null, "warn_status", bo.getWarnStatus());
-            qw.eq(StringUtils.isNotEmpty(bo.getWarnReason()), "warn_reason", bo.getWarnReason());
-            qw.eq(bo.getOrderStatus() != null, "order_status", bo.getOrderStatus());
-            qw.eq(bo.getCheckId() != null, "check_id", bo.getCheckId());
-            qw.eq(bo.getCheckUser() != null, "check_user", bo.getCheckUser());
-            qw.eq(bo.getCheckPhone() != null, "check_phone", bo.getCheckPhone());
-            qw.eq(bo.getCheckDeptId() != null, "check_dept_id", bo.getCheckDeptId());
-            qw.like(bo.getCheckDeptName() != null, "check_dept_name", bo.getCheckDeptName());
-            qw.eq(bo.getCheckTime() != null, "check_time", bo.getCheckTime());
-            qw.eq(bo.getCheckStatus() != null, "check_status", bo.getCheckStatus());
-            qw.eq(StringUtils.isNotEmpty(bo.getCheckReason()), "check_reason", bo.getCheckReason());
-            qw.eq(bo.getExecuteId() != null, "execute_id", bo.getExecuteId());
-            qw.eq(bo.getExecuteUser() != null, "execute_user", bo.getExecuteUser());
-            qw.eq(bo.getExecutePhone() != null, "execute_phone", bo.getExecutePhone());
-            qw.eq(bo.getExecuteDeptId() != null, "execute_dept_id", bo.getExecuteDeptId());
-            qw.like(bo.getExecuteDeptName() != null, "execute_dept_name", bo.getExecuteDeptName());
-            qw.eq(bo.getExecuteTime() != null, "execute_time", bo.getExecuteTime());
-            qw.eq(bo.getRegionStatus() != null, "region_status", bo.getRegionStatus());
-            qw.eq(StringUtils.isNotEmpty(bo.getRegionReason()), "region_reason", bo.getRegionReason());
-            qw.eq(StringUtils.isNotEmpty(bo.getRegionImgs()), "region_imgs", bo.getRegionImgs());
-            qw.eq(StringUtils.isNotEmpty(bo.getRegionVideos()), "region_videos", bo.getRegionVideos());
-            qw.eq(bo.getIsNoticeCompany() != null, "is_notice_company", bo.getIsNoticeCompany());
-            qw.eq(bo.getIsShow() != null, "is_show", bo.getIsShow());
-            qw.eq(bo.getIsEva() != null, "is_eva", bo.getIsEva());
-            qw.eq(bo.getTotalScore() != null, "total_score", bo.getTotalScore());
+        qw.eq(StringUtils.isNotEmpty(bo.getOrderNo()), "order_no", bo.getOrderNo());
+        qw.eq(bo.getCompanyId() != null, "company_id", bo.getCompanyId());
+        qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName());
+        qw.eq(StringUtils.isNotEmpty(bo.getCompanyCode()), "company_code", bo.getCompanyCode());
+        qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser());
+        qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone());
+        qw.eq(StringUtils.isNotEmpty(bo.getCompanyAddress()), "company_address", bo.getCompanyAddress());
+        qw.eq(StringUtils.isNotEmpty(bo.getRegionCode()), "region_code", bo.getRegionCode());
+        qw.like(StringUtils.isNotEmpty(bo.getRegionName()), "region_name", bo.getRegionName());
+        qw.eq(StringUtils.isNotEmpty(bo.getEnforceReason()), "enforce_reason", bo.getEnforceReason());
+        qw.eq(StringUtils.isNotEmpty(bo.getEnforceType()), "enforce_type", bo.getEnforceType());
+        qw.eq(bo.getApplyId() != null, "apply_id", bo.getApplyId());
+        qw.eq(StringUtils.isNotEmpty(bo.getApplyUser()), "apply_user", bo.getApplyUser());
+        qw.eq(StringUtils.isNotEmpty(bo.getApplyPhone()), "apply_phone", bo.getApplyPhone());
+        qw.eq(bo.getApplyDeptId() != null, "apply_dept_id", bo.getApplyDeptId());
+        qw.like(StringUtils.isNotEmpty(bo.getApplyDeptName()), "apply_dept_name", bo.getApplyDeptName());
+        qw.eq(bo.getApplyTime() != null, "apply_time", bo.getApplyTime());
+        qw.eq(bo.getPlanTime() != null, "plan_time", bo.getPlanTime());
+        qw.eq(bo.getInTime() != null, "in_time", bo.getInTime());
+        qw.eq(bo.getUserNum() != null, "user_num", bo.getUserNum());
+        qw.eq(bo.getWarnStatus() != null, "warn_status", bo.getWarnStatus());
+        qw.eq(StringUtils.isNotEmpty(bo.getWarnReason()), "warn_reason", bo.getWarnReason());
+        qw.eq(bo.getOrderStatus() != null, "order_status", bo.getOrderStatus());
+        qw.eq(bo.getCheckDeptId() != null, "check_dept_id", bo.getCheckDeptId());
+        qw.like(StringUtils.isNotEmpty(bo.getCheckDeptName()), "check_dept_name", bo.getCheckDeptName());
+        qw.eq(bo.getCheckStatus() != null, "check_status", bo.getCheckStatus());
+        qw.eq(StringUtils.isNotEmpty(bo.getCheckReason()), "check_reason", bo.getCheckReason());
+        qw.eq(bo.getCheckLevel() != null, "check_level", bo.getCheckLevel());
+        qw.eq(bo.getExecuteId() != null, "execute_id", bo.getExecuteId());
+        qw.eq(StringUtils.isNotEmpty(bo.getExecuteUser()), "execute_user", bo.getExecuteUser());
+        qw.eq(StringUtils.isNotEmpty(bo.getExecutePhone()), "execute_phone", bo.getExecutePhone());
+        qw.eq(bo.getExecuteDeptId() != null, "execute_dept_id", bo.getExecuteDeptId());
+        qw.like(StringUtils.isNotEmpty(bo.getExecuteDeptName()), "execute_dept_name", bo.getExecuteDeptName());
+        qw.eq(bo.getExecuteTime() != null, "execute_time", bo.getExecuteTime());
+        qw.eq(bo.getRegionStatus() != null, "region_status", bo.getRegionStatus());
+        qw.eq(StringUtils.isNotEmpty(bo.getRegionReason()), "region_reason", bo.getRegionReason());
+        qw.eq(StringUtils.isNotEmpty(bo.getRegionImgs()), "region_imgs", bo.getRegionImgs());
+        qw.eq(StringUtils.isNotEmpty(bo.getRegionVideos()), "region_videos", bo.getRegionVideos());
+        qw.eq(bo.getIsNoticeCompany() != null, "is_notice_company", bo.getIsNoticeCompany());
+        qw.eq(bo.getIsShow() != null, "is_show", bo.getIsShow());
+        qw.eq(bo.getIsEva() != null, "is_eva", bo.getIsEva());
+        qw.eq(bo.getTotalScore() != null, "total_score", bo.getTotalScore());
         if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){
             if ("acs".equals(bo.getIsAsc())) {
                 qw.orderByAsc(bo.getOrderByColumn());
@@ -139,4 +231,32 @@
         }
         return qw;
     }
+
+
+    /**
+     * 鑾峰彇瀹℃壒浜篿d
+     * @param checkLevel  瀹℃壒绾у埆锛氶粯璁�0
+     * @param deptId  鐢宠閮ㄩ棬id
+     */
+    private List<String> getCheckPhones(Integer checkLevel, Long deptId, int current)
+    {
+        if (checkLevel==3){
+            if (current==1){
+                return null;
+            }
+            checkLevel = 0;
+            deptId = deptService.getById(deptId).getParentId();
+            current++;
+            getCheckPhones(checkLevel, deptId, current);
+        }
+        checkLevel++;
+        String checkKey = "check_enforce_";
+        List<String> phones = userService.getPhonesByRoleKey(checkKey + checkLevel, deptId);
+        if (StringUtils.isNotEmpty(phones)){
+            return phones;
+        }
+        return getCheckPhones(checkLevel, deptId, current);
+    }
+
+
 }

--
Gitblit v1.9.1