From be649a182a10a25a834f137576b28c3f7de03c64 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期二, 03 九月 2024 11:08:52 +0800
Subject: [PATCH] 审批企业状态

---
 project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java |  133 +++++++++++++++++++++++++++++++-------------
 1 files changed, 94 insertions(+), 39 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 f5cf852..343266d 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
@@ -1,9 +1,9 @@
 package com.project.enforce.service.impl;
 
 import cn.hutool.core.convert.Convert;
-import com.project.common.core.domain.entity.SysRole;
 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;
@@ -13,6 +13,7 @@
 import com.project.enforce.service.IEnforceOrderService;
 import com.project.system.domain.SysCompany;
 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;
@@ -20,7 +21,6 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * 鍔熻兘鎻忚堪锛�
@@ -35,53 +35,107 @@
 public class CheckServiceImpl implements ICheckService
 {
 
+    private final ISysUserService userService;
     private final ISysCompanyService companyService;
     private final IEnforceOrderService orderService;
     private final IEnforceCheckLogService checkLogService;
-    private final ISysUserService userService;
+    private final YPSmsService smsService;
 
     @Override
     @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("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
-                }
-                if (bo.getCheckStatus()== -1){
-                    company.setCheckStatus(-1);
-                } else {
-                    company.setCheckStatus(2);
-                }
-                addCheckLog(company, bo);
-                company.setCheckReason(bo.getCheckReason());
-                companyService.updateById(company);
-                break;
-            case 2:
-                EnforceOrder order = orderService.getById(bo.getId());
-                if (order==null) {
-                    throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
-                }
-                addCheckLog(order, bo);
-                if (bo.getCheckStatus()==-1){
-                    order.setCheckStatus(-1);
-                } else {
-                    String roleKey = "check_enforce_" + (order.getCheckLevel() + 1);
-                    List<Long> ids = userService.getNumByRoleKey(roleKey, order.getCheckDeptId());
-                    if (StringUtils.isNotEmpty(ids)){
-                        order.setCheckStatus(1);
-                    } else {
-                        order.setCheckStatus(2);
+                for (Long id : bo.getIds()) {
+                    SysCompany company = companyService.getById(id);
+                    if (company==null) {
+                        throw new BaseException("娌℃湁鎵惧埌瀵瑰簲鏁版嵁锛岃妫�鏌ュ鏍哥被鍨嬶紒");
                     }
-                    //瀹℃壒鐧昏鍔�1
-                    order.setCheckLevel(order.getCheckLevel()+1);
+                    SysCompanyBo companyBo = new SysCompanyBo();
+                    companyBo.setCompanyId(company.getCompanyId());
+                    if (company.getCheckStatus()!=0){
+                        throw new BaseException("璇ヤ紒涓氬凡瀹℃壒锛�");
+                    }
+                    if (bo.getCheckStatus()== -1){
+                        company.setCheckStatus(-1);
+                        company.setCompanyStatus(1);
+                        companyBo.setCompanyStatus(1);
+                        smsService.sendCompanyCheckMsg(company.getCompanyPhone(), -1);
+                    } else {
+                        company.setCheckStatus(2);
+                        company.setCompanyStatus(0);
+                        companyBo.setCompanyStatus(0);
+                        smsService.sendCompanyCheckMsg(company.getCompanyPhone(), 2);
+                    }
+                    addCheckLog(company, bo);
+                    company.setCheckReason(bo.getCheckReason());
+                    companyService.updStatus(companyBo);
+                    companyService.updateById(company);
                 }
-                order.setCheckReason(bo.getCheckReason());
-                orderService.updateById(order);
-                break;
+                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());
+                        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);
+                        }
+                    }
+
+                }
+                return true;
         }
         return false;
     }
@@ -96,11 +150,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