package cn.gistack.sm.sjztmd.service.impl;
|
|
import cn.gistack.sm.intelligentCall.entity.Scene;
|
import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
|
import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
|
import cn.gistack.sm.sjztmd.mapper.AttResManagePersonMapper;
|
import cn.gistack.sm.sjztmd.service.IAttResBaseService;
|
import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
|
import cn.gistack.sm.sjztmd.vo.*;
|
import cn.gistack.system.user.entity.User;
|
import cn.gistack.system.user.feign.IUserClient;
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springblade.core.log.exception.ServiceException;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.core.tool.utils.StringUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @ClassName AttResManagePersonServiceImpl
|
* @Description TODO
|
* @Author aix
|
* @Date 2023/4/22 11:10
|
* @Version 1.0
|
*/
|
@Service
|
@DS("zt")
|
public class AttResManagePersonServiceImpl extends ServiceImpl<AttResManagePersonMapper, AttResManagePerson> implements IAttResManagePersonService {
|
|
@Autowired
|
private IUserClient userClient;
|
|
@Autowired
|
private IAttResBaseService attResBaseService;
|
|
@Override
|
public Boolean saveOrUpdateResManagePerson(AttResManagePerson attResManagePerson) {
|
if (StringUtil.isBlank(attResManagePerson.getResGuid()))
|
return false;
|
if (StringUtil.isBlank(attResManagePerson.getSysResource()))
|
return false;
|
if (StringUtil.isBlank(attResManagePerson.getType()))
|
return false;
|
Integer res = StringUtil.isBlank(attResManagePerson.getGuid())? baseMapper.insertResManagePersion(attResManagePerson):baseMapper.updateResManagePersonByGuid(attResManagePerson);
|
return res > 0;
|
}
|
|
@Override
|
@Transactional
|
public R saveOrUpdateResManagePerson(List<AttResManagePerson> attResManagePersons) {
|
Boolean res = false;
|
for (AttResManagePerson attResManagePerson:attResManagePersons) {
|
if (jodd.util.StringUtil.isEmpty(attResManagePerson.getResGuid()))
|
return R.fail("resGuid不能为空");
|
if (jodd.util.StringUtil.isEmpty(attResManagePerson.getType()))
|
return R.fail("type不能为空");
|
if (jodd.util.StringUtil.isEmpty(attResManagePerson.getSysResource()))
|
return R.fail("sysResource不能为空");
|
if (jodd.util.StringUtil.isEmpty(attResManagePerson.getUserPhone()))
|
return R.fail("userPhone不能为空");
|
if (jodd.util.StringUtil.isEmpty(attResManagePerson.getUserName()))
|
return R.fail("userName不能为空");
|
res = saveOrUpdateResManagePerson(attResManagePerson);
|
}
|
return R.data(res);
|
}
|
|
@Override
|
public List<AttResManagePerson> attResManagePersonListByResIds(String resId) {
|
return baseMapper.attResManagePersonListByResId(Func.toLongList(resId));
|
}
|
|
@Override
|
@DS("master")
|
public List<PatrolResponsiblePerson> getPatrolResponsiblePersonAll() {
|
return baseMapper.getPatrolResponsiblePersonAll();
|
}
|
|
/**
|
* 根据水库编号及责任人类型查询相关责任人信息
|
* @param res_cd
|
* @param personList
|
* @return
|
*/
|
@Override
|
public List<PersonVO> getPersonListByResGuid(String res_cd, List<String> personList) {
|
return baseMapper.getPersonListByResGuid(res_cd,personList);
|
}
|
|
@Override
|
public int synchronizationAddUser() {
|
// 同步没有责任人表中没有的用户
|
List<UserPersonVO> userPersonVOS = baseMapper.getPersonByUserNotExists();
|
int i = 0;
|
for (UserPersonVO vo:userPersonVOS) {
|
User user = new User();
|
user.setId(Long.parseLong(vo.getUserPhone()));
|
user.setAccount(vo.getUserPhone());
|
user.setPassword("Zhsk@123456");
|
user.setRoleId(vo.getRoleId());
|
// 如果是巡查责任人,设置为默认部门
|
if (user.getRoleId().equals("1642713427301355522")) {
|
user.setDeptId(String.valueOf(Long.valueOf(vo.getAdCode()) + 1));
|
} else {
|
user.setDeptId(vo.getAdCode());
|
}
|
user.setDeptId(vo.getAdCode());
|
user.setName(vo.getUserName().trim());
|
user.setRealName(vo.getUserName().trim());
|
user.setPhone(vo.getUserPhone());
|
try {
|
R<List<User>> listR = userClient.userInfoByPhoneOrAccount("000000",user.getPhone());
|
// 存在不保存
|
if (listR.getData().size() > 0) {
|
continue;
|
}
|
R<Boolean> ret = userClient.saveUser(user);
|
if (ret.getData()) {
|
i++;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
return i;
|
}
|
|
@Override
|
public int synchronizationUpdateUser() {
|
// 同步没有责任人表中没有的用户
|
int ret = baseMapper.updateUserByPerson();
|
return ret;
|
}
|
|
/**
|
* 通过水库代码获取巡查责任人及技术责任人手机号
|
* @param list
|
* @return
|
*/
|
@Override
|
public Set<String> getPersonListByWaterCodeList(List<String> list) {
|
return baseMapper.getPersonListByWaterCodeList(list);
|
}
|
|
/**
|
* 根据水库编号查询市县水利部人员姓名及联系方式
|
* @param res_cd 水库编号
|
* @return
|
*/
|
@Override
|
public List<PersonVO> getCityCountyPersonListByResGuid(String res_cd) {
|
List<PersonVO> personVOList = new ArrayList<>();
|
// 查询当前水库对应的市级编号和县区编号
|
AttResBaseVO attResBaseVO = attResBaseService.getCityCountyCodeByResGuid(res_cd);
|
if (null!= attResBaseVO) {
|
// 通过编号查询对应的人员 先区县后市州
|
List<PersonVO> countyPerson = baseMapper.getCityCountyPersonListByResGuid(attResBaseVO.getCountyCode(), "qxglywuser", "区县水库管理业务人员");
|
List<PersonVO> cityPerson = baseMapper.getCityCountyPersonListByResGuid(attResBaseVO.getCityCode(), "sdglywuser", "市州水库管理业务人员");
|
|
// 和
|
personVOList.addAll(cityPerson);
|
personVOList.addAll(countyPerson);
|
}
|
// 返回
|
return personVOList;
|
}
|
|
@DS("master")
|
@Override
|
public List<PatrolResponsiblePerson> getPatrolResponsiblePersonByResCdList(List<String> reservoirList) {
|
return baseMapper.getPatrolResponsiblePersonByResCdList(reservoirList);
|
}
|
|
/**
|
* 通过水库代码获取水库及巡查责任人信息
|
* @param stringList
|
* @return
|
*/
|
@Override
|
public Set<Scene> getPatrolPersonListByWaterCodeList(List<String> stringList) {
|
return baseMapper.getPatrolPersonListByWaterCodeList(stringList);
|
}
|
|
@Override
|
public String getCompetentDepart(String resCd) {
|
return baseMapper.getCompetentDepart(resCd);
|
}
|
|
@Override
|
public List<AttResManagePerson> getPersonList(String resCd) {
|
return baseMapper.getPersonList(resCd);
|
}
|
|
@Override
|
@DS("zt")
|
public List<ChargePersonVO> getManagePersonList(String resId, String findType) {
|
List<ChargePersonVO> result = new ArrayList<>();
|
if (StringUtil.isEmpty(resId)){
|
throw new ServiceException("水库id为空");
|
}
|
|
//查四个责任人
|
AttResManagePerson attResManagePerson = new AttResManagePerson();
|
attResManagePerson.setResGuid(resId);
|
List<AttResManagePerson> list = baseMapper.getList(attResManagePerson);
|
|
//过滤数据
|
if (StringUtil.isNotBlank(findType)){
|
list = list.stream().filter(e->findType.indexOf(e.getType())>-1).collect(Collectors.toList());
|
}
|
|
//赋值
|
list.forEach(p->{
|
List<User> userList = userClient.userInfoByPhone("000000", p.getUserPhone()).getData();
|
if (userList.size() > 0) {
|
|
ChargePersonVO chargePersonVO = new ChargePersonVO();
|
chargePersonVO.setUserId(userList.get(0).getId().toString());
|
chargePersonVO.setUserName(userList.get(0).getRealName());
|
chargePersonVO.setType(p.getType());
|
//1.政府行政责任人,2.主管部门责任人,3.管理单位责任人,4.技术责任人,5.巡查责任人,6.行政责任人
|
switch (p.getType()){
|
case "1":
|
chargePersonVO.setRoleName("行政责任人");
|
break;
|
case "2":
|
chargePersonVO.setRoleName("主管部门责任人");
|
break;
|
case "3":
|
chargePersonVO.setRoleName("管理单位责任人");
|
break;
|
case "4":
|
chargePersonVO.setRoleName("技术责任人");
|
break;
|
case "5":
|
chargePersonVO.setRoleName("巡查责任人");
|
break;
|
default:
|
break;
|
}
|
result.add(chargePersonVO);
|
}
|
|
});
|
|
AttResAdVO resAd = attResBaseService.getResAd(resId);
|
|
String cityName = resAd.getCityName();
|
String countyName = resAd.getCountyName();
|
String townName = resAd.getTownName();
|
|
if (StringUtil.isBlank(findType) || findType.indexOf("9")>-1){
|
|
List<ChargePersonVO> deptUser = new ArrayList<>();
|
|
if (cityName != null && cityName.equals("省直管")){
|
//如果是省直管,找省厅管理员
|
String provinceCode = resAd.getProvinceCode();
|
|
deptUser = baseMapper.getPersonByRoleAndAd("stgly",provinceCode);
|
deptUser.forEach(p->{
|
p.setRoleName("省厅管理员");
|
});
|
} else if (countyName != null && countyName.equals("市直管")) {
|
//如果是市直管,找市州管理员
|
String cityCode = resAd.getCityCode();
|
|
deptUser = baseMapper.getPersonByRoleAndAd("dsswjgly",cityCode);
|
deptUser.forEach(p->{
|
p.setRoleName("市州管理员");
|
});
|
}else if (townName != null &&(townName.equals("县直管") || townName.equals("区直管"))){
|
//如果是区直管,找区县管理员
|
String townCode = resAd.getTownCode();
|
|
deptUser = baseMapper.getPersonByRoleAndAd("qxswjgly",townCode);
|
deptUser.forEach(p->{
|
p.setRoleName("区县管理员");
|
});
|
}
|
|
|
else if (StringUtil.isNotBlank(townName)){
|
//镇不是空的,找乡镇管理员
|
String townCode = resAd.getTownCode();
|
deptUser = baseMapper.getPersonByRoleAndAd("xzgly",townCode);
|
deptUser.forEach(p->{
|
p.setRoleName("乡镇管理员");
|
});
|
}else if (StringUtil.isNotBlank(countyName)){
|
//区不是空的找区县管理员
|
String countyCode = resAd.getCountyCode();
|
deptUser = baseMapper.getPersonByRoleAndAd("qxswjgly",countyCode);
|
deptUser.forEach(p->{
|
p.setRoleName("区县管理员");
|
});
|
}else if (StringUtil.isNotBlank(cityName)){
|
//市不是空的找市州管理员
|
String cityCode = resAd.getCityCode();
|
deptUser = baseMapper.getPersonByRoleAndAd("dsswjgly",cityCode);
|
deptUser.forEach(p->{
|
p.setRoleName("市州管理员");
|
});
|
}else{
|
String provinceCode = resAd.getProvinceCode();
|
deptUser = baseMapper.getPersonByRoleAndAd("stgly",provinceCode);
|
deptUser.forEach(p->{
|
p.setRoleName("省厅管理员");
|
});
|
}
|
|
result.addAll(deptUser);
|
}
|
|
return result;
|
}
|
}
|