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