From 2fbd650997a807e5cf93e48350bfcb9aa0c4291b Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 25 四月 2025 18:24:22 +0800
Subject: [PATCH] 工单业务
---
server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java | 80 +++++++++++++++++++++++++++++++--------
1 files changed, 63 insertions(+), 17 deletions(-)
diff --git a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
index 5e57bfb..ea84179 100644
--- a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
@@ -8,8 +8,10 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CompanyMapper;
import com.doumee.dao.business.ManagersMapper;
import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.Managers;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.system.model.SystemUser;
@@ -23,8 +25,10 @@
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -40,29 +44,70 @@
private ManagersMapper managersMapper;
@Autowired
private MemberMapper memberMapper;
+ @Autowired
+ private CompanyMapper companyMapper;
@Override
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
public Integer create(Managers managers) {
- Member member =memberMapper.selectById(managers.getMemberId());
- if(member == null || Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヨ礋璐d汉淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+
+ List<Managers> newList = new ArrayList<>();
+ if( managers.getIsMember() == null || managers.getType() == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- Managers model =managersMapper.selectOne(new LambdaQueryWrapper<Managers>().eq(Managers::getMemberId,managers.getMemberId())
- .eq(Managers::getType,managers.getType())
- .eq(Managers::getIsdeleted,Constants.ZERO)
- );
- if(model !=null){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璇ヤ汉鍛樹俊鎭凡璁剧疆锛屾棤闇�閲嶆柊娣诲姞");
+ List<Member> memberList = new ArrayList<>();
+ List<Integer> memberIdList = new ArrayList<>();
+
+ //璁剧疆鑼冨洿 0鐩村睘閮ㄩ棬鍛樺伐 1閮ㄩ棬鍙婂叾涓嬬骇甯冩仼鍛樺伐 2鎸囧畾浜哄憳
+ if(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO) || Constants.equalsInteger(managers.getIsMember(),Constants.ONE)){
+ //鐩村睘閮ㄩ棬 鎴� 閮ㄩ棬鍙婂叾瀛愰儴闂�
+ if(managers.getCompanyId() ==null ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Company company = companyMapper.selectById(managers.getCompanyId());
+ if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝閮ㄩ棬淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+ }
+ memberList =memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+ .selectAll(Member.class)
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO),"select (cm.id) from company_member cm where cm.company_id='"+company.getId()+"' and cm.member_id=t.id")
+ .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ONE),"select (cm.id) from company_member cm where cm.company_id_path like '"+company.getIdPath()+"%' and cm.member_id=t.id"));
+ }else{
+ if(managers.getMemberIds()==null || managers.getMemberIds().size()==0){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋寜瑕佹眰閫夋嫨鎸囧畾鍛樺伐淇℃伅锛�");
+ }
+ memberList =memberMapper.selectList(new LambdaQueryWrapper<Member>()
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .in(Member::getId,managers.getMemberIds()));
+ }
+ if(memberList.size() ==0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝閫夋嫨鑼冨洿鏈煡璇㈠埌鐩稿叧鍛樺伐淇℃伅锛屾娆¤缃棤鏁堬紒");
}
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
- managers.setCreator(user.getId());
- managers.setCreateDate(new Date());
- managers.setIsdeleted(Constants.ZERO);
- managers.setEditor(managers.getCreator());
- managers.setEditDate(managers.getCreateDate());
- managers.setStatus(Constants.ZERO);
- managersMapper.insert(managers);
- return managers.getId();
+
+ Date date = new Date();
+ for(Member m :memberList){
+ Managers mm = new Managers();
+ mm.setCreator(user.getId());
+ mm.setCreateDate(date);
+ mm.setIsdeleted(Constants.ZERO);
+ mm.setEditor(mm.getCreator());
+ mm.setEditDate(mm.getCreateDate());
+ mm.setStatus(Constants.ZERO);
+ mm.setType(managers.getType());
+ mm.setMemberId(m.getId());
+ mm.setRemark(managers.getRemark());
+ memberIdList.add(m.getId());
+ newList.add(mm);
+ }
+ //娓呯┖鍘熸湁鐨勮缃俊鎭�
+ managersMapper.delete(new UpdateWrapper<Managers>().lambda()
+ .eq(Managers::getType,managers.getType())
+ .in(Managers::getMemberId,memberIdList)
+ );
+ managersMapper.insert(newList);
+ return newList.size();
}
@Override
@@ -166,6 +211,7 @@
queryWrapper.selectAll(Managers.class )
.selectAs(Member::getPhone,Managers::getMemberPhone)
.selectAs(Member::getName,Managers::getMemberName)
+ .selectAs(Member::getQwId,Managers::getMemberQwId)
.selectAs(Member::getEmail,Managers::getMemberEmail)
.selectAs(Member::getCompanyName,Managers::getCompanyName)
.selectAs(SystemUser::getUsername,Managers::getEditorName)
--
Gitblit v1.9.3