From 94b5684557d4987add639a94d1ad41c32b5d00c0 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期二, 03 九月 2024 10:32:29 +0800
Subject: [PATCH] 审批人修改

---
 project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java |  133 +++++++++++++++++++++++++++++---------------
 1 files changed, 88 insertions(+), 45 deletions(-)

diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
index c6b20d5..76a9f8b 100644
--- a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
+++ b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.convert.Convert;
 import com.project.common.core.domain.entity.SysUser;
 import com.project.common.exception.base.BaseException;
+import com.project.common.utils.DateUtils;
 import com.project.common.utils.SecurityUtils;
 import com.project.common.utils.StringUtils;
 import com.project.enforce.domain.EnforceCheckLog;
@@ -14,6 +15,7 @@
 import com.project.system.domain.bo.editBo.CheckBo;
 import com.project.system.domain.bo.editBo.SysCompanyBo;
 import com.project.system.service.ISysCompanyService;
+import com.project.system.service.ISysUserService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -33,6 +35,7 @@
 public class CheckServiceImpl implements ICheckService
 {
 
+    private final ISysUserService userService;
     private final ISysCompanyService companyService;
     private final IEnforceOrderService orderService;
     private final IEnforceCheckLogService checkLogService;
@@ -42,56 +45,95 @@
     @Transactional
     public Boolean checkOrder(CheckBo bo)
     {
+        if (StringUtils.isEmpty(bo.getIds())){
+            throw new BaseException("璇烽�夋嫨瑕佸鎵圭殑鍗曟嵁锛�");
+        }
         switch (bo.getCheckType())
         {
             case 1:
-                SysCompany company = companyService.getById(bo.getId());
-                if (company==null) {
-                    throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
-                }
-                SysCompanyBo companyBo = new SysCompanyBo();
-                companyBo.setCompanyId(company.getCompanyId());
-                if (bo.getCheckStatus()== -1){
-                    company.setCheckStatus(-1);
-                    companyBo.setCompanyStatus(1);
-                } else {
-                    company.setCheckStatus(2);
-                    companyBo.setCompanyStatus(0);
-                }
-                addCheckLog(company, bo);
-                company.setCheckReason(bo.getCheckReason());
-                companyService.updStatus(companyBo);
-                return companyService.updateById(company);
-            case 2:
-                EnforceOrder order = orderService.getById(bo.getId());
-                if (order==null) {
-                    throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
-                }
-                addCheckLog(order, bo);
-                if (bo.getCheckStatus()==-1){
-                    order.setCheckStatus(-1);
-                    //瀹℃壒鎷掔粷锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
-                    smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
-                } else {
-                    List<String> phones = orderService.getCheckPhones(order.getCheckLevel(), order.getApplyDeptId());
-                    if (StringUtils.isNotEmpty(phones)){
-                        order.setCheckStatus(1);
-                        //缁欎笅涓�绾у鎵逛汉鍙戦�佺煭淇�
-                        smsService.sendApplyMsg(phones, order.getApplyUser());
+                for (Long id : bo.getIds()) {
+                    SysCompany company = companyService.getById(id);
+                    if (company==null) {
+                        throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
+                    }
+                    SysCompanyBo companyBo = new SysCompanyBo();
+                    companyBo.setCompanyId(company.getCompanyId());
+                    if (company.getCheckStatus()!=0){
+                        throw new BaseException("璇ヤ紒涓氬凡瀹℃壒锛�");
+                    }
+                    if (bo.getCheckStatus()== -1){
+                        company.setCheckStatus(-1);
+                        companyBo.setCompanyStatus(1);
+                        smsService.sendCompanyCheckMsg(company.getCompanyPhone(), -1);
                     } else {
-                        order.setCheckStatus(2);
-                        order.setOrderStatus(2);
-                        //瀹℃壒閫氳繃锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
+                        company.setCheckStatus(2);
+                        companyBo.setCompanyStatus(0);
+                        smsService.sendCompanyCheckMsg(company.getCompanyPhone(), 2);
+                    }
+                    addCheckLog(company, bo);
+                    company.setCheckReason(bo.getCheckReason());
+                    companyService.updStatus(companyBo);
+                    companyService.updateById(company);
+                }
+                return true;
+            case 2:
+                for (Long id : bo.getIds()) {
+                    EnforceOrder order = orderService.getById(id);
+                    if (order==null) {
+                        throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
+                    }
+                    if (order.getOrderStatus()!=1){
+                        throw new BaseException("璇ユ墽娉曞崟宸插鎵�");
+                    }
+                    addCheckLog(order, bo);
+                    if (bo.getCheckStatus()==-1){
+                        order.setOrderStatus(-1);
+                        order.setCheckStatus(-1);
+                        //瀹℃壒鎷掔粷锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
                         smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
-                        if (order.getIsNoticeCompany()==1){
-                            smsService.sendCompanyMsg(order.getCompanyPhone(), order.getApplyDeptName(), order.getPlanTime());
+                        orderService.updateById(order);
+                    } else {
+                        List<String> phones = orderService.getCheckPhones(order.getCheckLevel()+1, order.getApplyDeptId());
+                        if (StringUtils.isNotEmpty(phones)){
+                            int checkLevel = Integer.parseInt(phones.get(0));
+                            order.setCheckLevel(checkLevel);
+                            phones.remove(0);
+                            order.setCheckStatus(1);
+                            //缁欎笅涓�绾у鎵逛汉鍙戦�佺煭淇�
+                            smsService.sendApplyMsg(phones, order.getApplyUser());
+                            String checkPhones = StringUtils.join(phones, ",");
+                            order.setCheckIds(checkPhones);
+                            order.setCheckReason(bo.getCheckReason());
+
+                            return orderService.updateById(order);
+                        } else {
+                            order.setCheckStatus(2);
+                            order.setOrderStatus(2);
+                            //瀹℃壒閫氳繃锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇�
+                            smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus());
+
+                            if (StringUtils.isEmpty(order.getCompanyCode())){
+                                order.setOrderStatus(3);
+                                order.setInTime(DateUtils.getNowDate());
+                                order.setExecuteDeptId(order.getApplyDeptId());
+                                order.setExecuteDeptName(order.getApplyDeptName());
+                                order.setExecuteUser(order.getApplyUser());
+                                order.setExecutePhone(order.getApplyPhone());
+                                order.setExecuteId(order.getApplyId());
+                            }
+                            if (order.getIsNoticeCompany()==1 && StringUtils.isNotEmpty(order.getCompanyPhone())){
+                                smsService.sendCompanyMsg(order.getCompanyPhone(), order.getApplyDeptName(), order.getPlanTime());
+                            }
+
+                            //瀹℃壒绛夌骇鍔�1
+                            order.setCheckLevel(order.getCheckLevel()+1);
+                            order.setCheckReason(bo.getCheckReason());
+                            return orderService.updateById(order);
                         }
                     }
-                    //瀹℃壒绛夌骇鍔�1
-                    order.setCheckLevel(order.getCheckLevel()+1);
+
                 }
-                order.setCheckReason(bo.getCheckReason());
-                return orderService.updateById(order);
+                return true;
         }
         return false;
     }
@@ -106,11 +148,12 @@
     {
         EnforceCheckLog checkLog = Convert.convert(EnforceCheckLog.class, obj);
         checkLog.setCheckType(bo.getCheckType());
-        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
+        SysUser loginUser = userService.selectUserById(SecurityUtils.getUserId());
         checkLog.setCheckId(loginUser.getUserId());
-        checkLog.setCheckUser(loginUser.getUserName());
+        checkLog.setCheckUser(loginUser.getNickName());
         checkLog.setCheckPhone(loginUser.getPhonenumber());
-        checkLog.setCheckStatus(bo.getCheckStatus());
+        checkLog.setCheckStatus(bo.getCheckStatus()>0?1:-1);
+        checkLog.setCheckTime(DateUtils.getNowDate());
         checkLog.setCheckReason(bo.getCheckReason());
         boolean save = checkLogService.save(checkLog);
         if (!save) {

--
Gitblit v1.9.1