Commit 31987463 authored by helinlin's avatar helinlin

Merge remote-tracking branch 'origin/developer' into developer

parents 0b9995e5 a550ce2d
......@@ -9,7 +9,8 @@ import java.lang.annotation.Target;
/**
* @author DELL
*
* 注解在mapper方法上
* 注解需要数据权限过滤的mapper。
* interfacePath对应为平台菜单管理中菜单组件(全局唯一)。
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
......@@ -20,6 +21,6 @@ public @interface DataAuth {
* 菜单组件
* @return
*/
String interfacePath() default "";
String interfacePath();
}
......@@ -61,30 +61,39 @@ public class PermissionInterceptor implements Interceptor {
MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
// TODO 处理mybatis plus
String dataAuthRule = PermissionInterceptorContext.getDataAuthRule();
// 被拦截方法
Method method = getTargetDataAuthMethod(mappedStatement);
DataAuth dataAuth = getTargetDataAuthAnnotation(mappedStatement);
// 没有DataAuth定义注解的跳过
if (null == dataAuth) {
// 没有DataAuth定义注解的跳过及没有手动指定使用数据规则的跳过
if (null == dataAuth && ValidationUtil.isEmpty(dataAuthRule)) {
PermissionInterceptorContext.clean();
return invocation.proceed();
}
// 接口地址为空返回空数据
if (ValidationUtil.isEmpty(dataAuth.interfacePath())) {
// 数据权限地址为空返回空数据
if (ValidationUtil.isEmpty(dataAuth.interfacePath()) && ValidationUtil.isEmpty(dataAuthRule)) {
// method.getReturnType().isPrimitive() = true 是count语句
PermissionInterceptorContext.clean();
return method.getReturnType().isPrimitive() ? invocation.proceed() : null;
}
dataAuthRule = ValidationUtil.isEmpty(dataAuth.interfacePath()) ? dataAuthRule : dataAuth.interfacePath();
ReginParams reginParam = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId()
, RequestContext.getToken())).toString(), ReginParams.class);
if (ValidationUtil.isEmpty(reginParam) || ValidationUtil.isEmpty(reginParam.getUserModel())) {
// method.getReturnType().isPrimitive() = true 是count语句
PermissionInterceptorContext.clean();
return method.getReturnType().isPrimitive() ? invocation.proceed() : null;
}
// 用户数据权限配置信息
Map<String, List<PermissionDataruleModel>> dataAuthorization = Privilege.permissionDataruleClient.queryByUser(reginParam.getUserModel().getUserId(),
dataAuth.interfacePath()).getResult();
dataAuthRule).getResult();
// 没有数据权限直接返回空数据
if (ValidationUtil.isEmpty(dataAuthorization)) {
PermissionInterceptorContext.clean();
return method.getReturnType().isPrimitive() ? invocation.proceed() : null;
}
......@@ -93,6 +102,7 @@ public class PermissionInterceptor implements Interceptor {
// 将权限规则拼接到原始sql
sql = processSelectSql(sql, dataAuthorization, reginParam, boundSql);
metaObject.setValue("delegate.boundSql.sql", sql);
PermissionInterceptorContext.clean();
return invocation.proceed();
}
......
package com.yeejoin.amos.boot.biz.common.interceptors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PermissionInterceptorContext {
private static final Logger logger = LoggerFactory.getLogger(PermissionInterceptorContext.class);
private static ThreadLocal<PermissionInterceptorContextModel> requestContext = ThreadLocal.withInitial(PermissionInterceptorContextModel::new);
private static PermissionInterceptorContextModel getPermissionInterceptorContext() {
return requestContext.get();
}
public static String getDataAuthRule() {
return getPermissionInterceptorContext().getDataAuthRule();
}
public static void setDataAuthRule(String dataAuthRule) {
getPermissionInterceptorContext().setDataAuthRule(dataAuthRule);
}
public static void clean() {
if (requestContext != null) {
logger.info("clean RestThreadLocal......Begin");
requestContext.remove();
logger.info("clean RestThreadLocal......Done");
}
}
}
package com.yeejoin.amos.boot.biz.common.interceptors;
import org.typroject.tyboot.core.foundation.context.RequestContextEntityType;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
*
*/
public class PermissionInterceptorContextModel implements Serializable {
private static final long serialVersionUID = 1L;
private String dataAuthRule;
public String getDataAuthRule() {
return dataAuthRule;
}
public void setDataAuthRule(String dataAuthRule) {
this.dataAuthRule = dataAuthRule;
}
public void clean() {
this.dataAuthRule = null;
}
}
......@@ -166,4 +166,8 @@ public interface IMaintenanceCompanyService {
List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type);
List<MaintenanceCompany> findByCodeAndType(String code, String type);
List<MaintenanceCompany> findPersonByAmosOrgId(String code, String userId);
MaintenanceCompany getOne(Long parentId);
}
......@@ -108,8 +108,8 @@ public interface IOrgUsrService {
* @throws Exception
*/
Map<String, Object> selectForShowById(OrgUsr orgUsr, Long id) throws Exception;
Map<String, Object> selectForShowByIduser(OrgUsr orgUsr, Long id) throws Exception;
Map<String, Object> selectForShowByIduser(OrgUsr orgUsr, Long id) throws Exception;
List<OrgUsr> selectCompanyDepartmentMsg();
......@@ -145,7 +145,9 @@ public interface IOrgUsrService {
OrgDepartmentFormDto selectDepartmentById(Long id) throws Exception;
List<Map<String, Object>> selectForShowByListId(List<Long> ids) throws Exception;
List<Map<String, Object>> selectForShowByListIdUser(List<Long> ids) throws Exception;
/**
* * @param null
*
......@@ -185,7 +187,7 @@ public interface IOrgUsrService {
List<Map<String, Object>> getparent();
List<OrgUsrExcelDto> exportToExcel( Map par);
List<OrgUsrExcelDto> exportToExcel(Map par);
UserUnitDto getUserUnit(String userId);
......@@ -226,7 +228,7 @@ public interface IOrgUsrService {
*
* @param orgUserId
* @return
* @exception
* @throws
*/
AgencyUserModel getAmosIdByOrgUserId(String orgUserId) throws Exception;
......@@ -235,12 +237,13 @@ public interface IOrgUsrService {
*
* @param orgUserIds
* @return
* @exception
* @throws
*/
List<String> getAmosIdListByOrgUserId(String orgUserIds) throws Exception;
/**
* 查询目标公司下所有人员的简要信息,数据包含:所在公司id和name ,人员id和name,岗位id和name
*
* @param ids
* @return
*/
......@@ -253,11 +256,11 @@ public interface IOrgUsrService {
OrgUsr selectByAmosOrgId(Long id);
public List<OrgUsr> getPersonListByParentIds(List<String> ids) ;
List<OrgUsrFormDto> getUnSyncOrgCompanyList(List<Long> companyIdList);
List<OrgUsr> getPersonListByParentIds(List<String> ids);
public OrgUsr getDetailById( Long id);
List<OrgUsrFormDto> getUnSyncOrgCompanyList(List<Long> companyIdList);
OrgUsr getDetailById(Long id);
/**
......
......@@ -33,14 +33,7 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.Map.Entry;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -118,7 +111,7 @@ public class MaintenanceCompanyServiceImpl
maintenanceCompany.setType(maintenanceCompany.getType().toUpperCase());
maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()){
if (maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
}
return maintenanceCompany;
......@@ -153,7 +146,7 @@ public class MaintenanceCompanyServiceImpl
maintenanceCompany.setParentId(parentId);
maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()){
if (maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
}
return maintenanceCompany;
......@@ -187,7 +180,7 @@ public class MaintenanceCompanyServiceImpl
maintenanceCompany.setParentId(parentId);
maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()){
if (maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
}
return maintenanceCompany;
......@@ -201,10 +194,10 @@ public class MaintenanceCompanyServiceImpl
}
// 新增删除维保单位逻辑,BUG 2500 单位下有子单位或者人员时应无法直接删除. by litw satrt
LambdaQueryWrapper<MaintenanceCompany> wrapperCompany = new LambdaQueryWrapper<MaintenanceCompany>();
wrapperCompany.eq(MaintenanceCompany::getParentId,sequenceNbr);
wrapperCompany.eq(MaintenanceCompany::getIsDelete,false);
wrapperCompany.eq(MaintenanceCompany::getParentId, sequenceNbr);
wrapperCompany.eq(MaintenanceCompany::getIsDelete, false);
int count = maintenanceCompanyMapper.selectCount(wrapperCompany);
if(count > 0) {
if (count > 0) {
throw new BadRequest("单位下有子单位或者人员,无法删除");
}
......@@ -273,7 +266,7 @@ public class MaintenanceCompanyServiceImpl
dynamicFormList.forEach(r -> {
MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString()));
if (!ObjectUtils.isEmpty(detail)) {
if(detail.getParentId()!=null) {
if (detail.getParentId() != null) {
MaintenanceCompany map = maintenanceCompanyMapper.selectById(detail.getParentId());
r.put("parentName", map.getName());
}
......@@ -282,7 +275,8 @@ public class MaintenanceCompanyServiceImpl
});
return dynamicFormList;
}
public List<Map<String, Object>> getAllMaintenanceEexcleList(String maintenanceType,Map parms) {
public List<Map<String, Object>> getAllMaintenanceEexcleList(String maintenanceType, Map parms) {
String type = null;
switch (maintenanceType.toUpperCase()) {
case PERSON:
......@@ -301,13 +295,13 @@ public class MaintenanceCompanyServiceImpl
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.eq(MaintenanceCompany::getType, maintenanceType.toUpperCase());
wrapper.eq(MaintenanceCompany::getIsDelete, false);
if(parms!=null && parms.size()>0) {
String name =parms.containsKey("name")?parms.get("name").toString():null;
String parentId =parms.containsKey("parentId")?parms.get("parentId").toString():null;
if(name!=null) {
if (parms != null && parms.size() > 0) {
String name = parms.containsKey("name") ? parms.get("name").toString() : null;
String parentId = parms.containsKey("parentId") ? parms.get("parentId").toString() : null;
if (name != null) {
wrapper.like(MaintenanceCompany::getName, name);
}
if(parentId!=null) {
if (parentId != null) {
wrapper.eq(MaintenanceCompany::getParentId, parentId);
}
......@@ -319,18 +313,19 @@ public class MaintenanceCompanyServiceImpl
dynamicFormList.forEach(r -> {
MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString()));
if (!ObjectUtils.isEmpty(detail)) {
if(detail.getParentId()!=null && detail.getName()!=null) {
if (detail.getParentId() != null && detail.getName() != null) {
MaintenanceCompany map = maintenanceCompanyMapper.selectById(detail.getParentId());
r.put("parentName", map.getName());
r.putAll(Bean.BeantoMap(detail));
}
}
});
return dynamicFormList.stream().filter(i-> i.containsKey("name")).collect(Collectors.toList());
return dynamicFormList.stream().filter(i -> i.containsKey("name")).collect(Collectors.toList());
}
@Override
public List<MaintenancePersonExcleDto> exportToMaintenancePersonExcel(Map map) {
List<Map<String, Object>> list = this.getAllMaintenanceEexcleList(PERSON,map);
List<Map<String, Object>> list = this.getAllMaintenanceEexcleList(PERSON, map);
return JSONArray.parseArray(JSONArray.toJSONString(list), MaintenancePersonExcleDto.class);
}
......@@ -352,6 +347,19 @@ public class MaintenanceCompanyServiceImpl
return Lists.newArrayList();
}
@Override
public List<MaintenanceCompany> findPersonByAmosOrgId(String code, String userId) {
LambdaQueryWrapper<MaintenanceCompany> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MaintenanceCompany::getType, code);
queryWrapper.eq(MaintenanceCompany::getAmosId, userId);
return this.baseMapper.selectList(queryWrapper);
}
@Override
public MaintenanceCompany getOne(Long parentId) {
return this.getById(parentId);
}
/**
* 维保单位人员信息分頁信息显示时的字段过滤
*
......@@ -407,7 +415,7 @@ public class MaintenanceCompanyServiceImpl
}
mainTableList = this.checkMaintenanceCompanyList(wrapper, paramsMap);
/*BUG 2503 人员头像存在附件中,获取附件信息返回前端 start*/
for (MaintenanceCompany m:mainTableList
for (MaintenanceCompany m : mainTableList
) {
m.setAttachments(sourceFileService.getAttachments(m.getSequenceNbr()));
}
......@@ -523,7 +531,7 @@ public class MaintenanceCompanyServiceImpl
parentCode = parent.getCode();
}
// 旧父节点的code
if(company.getCode() != null){
if (company.getCode() != null) {
String oldParentCode = company.getCode().substring(0, company.getCode().length() - TreeParser.CODE_LENGTH);
List<MaintenanceCompany> children =
list(new LambdaQueryWrapper<MaintenanceCompany>().eq(MaintenanceCompany::getIsDelete, false).likeRight(MaintenanceCompany::getCode, company.getCode()).ne(MaintenanceCompany::getSequenceNbr, company.getSequenceNbr()));
......@@ -721,9 +729,9 @@ public class MaintenanceCompanyServiceImpl
/**
* 复制map对象
*
* @explain 将paramsMap中的键值对全部拷贝到resultMap中;
* @param paramsMap 被拷贝对象
* @param resultMap 拷贝后的对象
* @explain 将paramsMap中的键值对全部拷贝到resultMap中;
*/
private static void mapCopy(Map paramsMap, Map resultMap) {
if (resultMap == null) {
......
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.CheckObjectDto;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyDto;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyPerson;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.dto.ESOrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.dto.FormValue;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentFormDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgMenuDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonFormDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrFormDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrzhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import com.yeejoin.amos.boot.module.common.api.dto.UserDto;
import com.yeejoin.amos.boot.module.common.api.dto.UserUnitDto;
import com.yeejoin.amos.boot.module.common.api.dto.*;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
......@@ -75,9 +28,26 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import ch.qos.logback.core.joran.conditional.IfAction;
import net.bytebuddy.asm.Advice.This;
import javax.annotation.Resource;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 机构/部门/人员表 服务实现类
......@@ -396,7 +366,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
if (!ObjectUtils.isEmpty(req.get("personNumber"))) {
map.put("personNumber", req.get("personNumber"));
}
if (req.containsKey("company") &&!ObjectUtils.isEmpty(req.get("company"))) {
if (req.containsKey("company") && !ObjectUtils.isEmpty(req.get("company"))) {
req.put("parentId", req.get("company"));
}
/* BUG2680 查询部门人员错误 传递参数类型不正确 修改为string 2021-09-14 陈召 开始 */
......@@ -629,8 +599,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
@Override
public Map<String, Object> selectForShowByIduser(OrgUsr orgUsr, Long id) throws Exception {
QueryWrapper<DynamicFormColumn> queryWrapper = new QueryWrapper<DynamicFormColumn>();
......@@ -645,7 +613,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
result.put(alertForm.getFieldCode(), null);
}
result.put("parenName", orgUsr.getParentId() != null?getByIduser(orgUsr.getParentId()).getBizOrgName():"");
result.put("parenName", orgUsr.getParentId() != null ? getByIduser(orgUsr.getParentId()).getBizOrgName() : "");
for (DynamicFormInstanceDto alertFormValue : list) {
result.put(alertFormValue.getFieldCode(),
......@@ -656,21 +624,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
@Override
public List<OrgUsr> selectCompanyDepartmentMsg() {
List<OrgUsr> list = this.baseMapper.selectCompanyDepartmentMsg();
......@@ -824,7 +777,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgPersonVo.getDynamicFormValue());
if (orgUsr.getBizOrgCode() != null){
if (orgUsr.getBizOrgCode() != null) {
OrgPersonVo.setBizOrgCode(orgUsr.getBizOrgCode());
}
return OrgPersonVo;
......@@ -986,7 +939,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgDepartmentVo.getDynamicFormValue());
OrgDepartmentVo.setBizOrgCode(orgUsr.getBizOrgCode());
return OrgDepartmentVo ;
return OrgDepartmentVo;
}
@Override
......@@ -1009,6 +962,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
return personResult;
}
@Override
public List<Map<String, Object>> selectForShowByListIdUser(List<Long> ids) throws Exception {
List<Map<String, Object>> personResult = new ArrayList<>();
......@@ -1019,6 +973,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
return personResult;
}
@Override
public List<CompanyDto> listContractDto(Integer pageNum, Integer pageSize, RequestData requestData) {
if (null == pageNum || null == pageSize) {
......@@ -1280,15 +1235,14 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@Override
public UserUnitDto getUserUnit(String userId) {
if (StringUtils.isNotBlank(userId)) {
String[] typeArr = TYPE.split(",");
// 业主单位
// 业主单位人员
List<UserUnitDto> list = orgUsrMapper.getUserUnit(userId, typeArr[0], null);
// 维保单位
List<DynamicFormInstance> instanceList = alertFormValueServiceImpl.getInstanceByCodeAndValue(CODE, userId);
if (!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(instanceList)) {
// 维保单位人员
List<MaintenanceCompany> maintenancePersons = maintenanceCompanyService.findPersonByAmosOrgId(CODE, userId);
if (!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(maintenancePersons)) {
throw new RuntimeException("人员绑定单位重复!");
} else {
}
if (!CollectionUtils.isEmpty(list)) {
if (list.size() == 1) {
UserUnitDto userUnitDto = list.get(0);
......@@ -1305,43 +1259,23 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
throw new RuntimeException("未获取人员业主单位!");
}
throw new RuntimeException("人员绑定业主单位不唯一!");
} else {
if (!CollectionUtils.isEmpty(instanceList)) {
if (instanceList.size() == 1) {
Long instanceId = instanceList.get(0).getInstanceId();
List<MaintenanceCompany> maintenanceCompanyList = maintenanceCompanyService
.findByInstanceIdAndType(instanceId, typeArr[0]);
if (!CollectionUtils.isEmpty(maintenanceCompanyList)) {
if (maintenanceCompanyList.size() == 1) {
MaintenanceCompany person = maintenanceCompanyList.get(0);
}
if (!CollectionUtils.isEmpty(maintenancePersons)) {
if (maintenancePersons.size() == 1) {
MaintenanceCompany person = maintenancePersons.get(0);
MaintenanceCompany maintenanceCompany = maintenanceCompanyService.getOne(person.getParentId());
UserUnitDto unitDto = new UserUnitDto();
unitDto.setIdentityType(UserUnitTypeEnum.MAINTENANCE_COMPANY.getValue());
unitDto.setPersonSeq(String.valueOf(person.getSequenceNbr()));
unitDto.setPersonName(person.getName());
String codeVal = person.getCode().substring(0, 5);
if (StringUtils.isNotBlank(codeVal)) {
List<MaintenanceCompany> companyList = maintenanceCompanyService
.findByCodeAndType(codeVal, typeArr[1]);
if (!CollectionUtils.isEmpty(companyList)) {
MaintenanceCompany company = companyList.get(0);
unitDto.setCompanyId(String.valueOf(company.getSequenceNbr()));
unitDto.setCompanyName(company.getName());
unitDto.setCompanyId(String.valueOf(maintenanceCompany.getSequenceNbr()));
unitDto.setCompanyName(maintenanceCompany.getName());
return unitDto;
}
}
throw new RuntimeException("未获取人员维保单位!");
}
throw new RuntimeException("人员绑定维保单位不唯一!");
}
}
throw new RuntimeException("人员绑定维保单位不唯一!");
}
}
}
throw new RuntimeException("人员未绑定任何单位!");
}
throw new RuntimeException("参数必传且不为空!");
}
@Override
public List<UserDto> getUserInfo(String userId) {
......@@ -1630,6 +1564,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
* @param id
* @return
*/
@Override
public List<OrgUsr> getPersonListByParentIds(List<String> ids) {
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getIsDelete, false);
......@@ -1703,7 +1638,6 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
public OrgUsr getByIduser(Serializable id) {
OrgUsr orgUser = this.baseMapper.selectById(id);
return orgUser;
......@@ -1856,6 +1790,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return allUnSyncCompanyList;
}
@Override
public OrgUsr getDetailById(Long id) {
LambdaQueryWrapper<OrgUsr> queryWrapper = new LambdaQueryWrapper<OrgUsr>();
queryWrapper.eq(OrgUsr::getIsDelete, false);
......@@ -1882,25 +1817,25 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return resultMap;
}
public List<Map<String,Object>> queryCompanyId(String bizOrgName,List<String> codes) {
public List<Map<String, Object>> queryCompanyId(String bizOrgName, List<String> codes) {
return orgUsrMapper.queryCompanyId(bizOrgName,codes);
return orgUsrMapper.queryCompanyId(bizOrgName, codes);
}
public List<Map<String,Object>> queryCompanyIdNew(String bizOrgName) {
public List<Map<String, Object>> queryCompanyIdNew(String bizOrgName) {
return orgUsrMapper.queryCompanyIdNew(bizOrgName);
}
public List<Map<String,Object>> getuserDetail(Long departmentId,List<Map<String, Object>> resulLists){
OrgUsr resulList =this.baseMapper.selectById(departmentId);
if(resulList.getParentId()!=null) {
Map<String, Object> resultMap =new HashMap<String, Object>();
public List<Map<String, Object>> getuserDetail(Long departmentId, List<Map<String, Object>> resulLists) {
OrgUsr resulList = this.baseMapper.selectById(departmentId);
if (resulList.getParentId() != null) {
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("departmentId", resulList.getSequenceNbr());
resulLists.add(resultMap);
return getuserDetail(Long.parseLong(resulList.getParentId()),resulLists);
}else {
return getuserDetail(Long.parseLong(resulList.getParentId()), resulLists);
} else {
return resulLists;
}
}
......@@ -2024,7 +1959,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
orgUsr.setBizOrgCode(getOrgCodeStr());
}*/
OrgUsrDto result = new OrgUsrDto();
if(orgUsr.getSequenceNbr() != null) { // 走更新方法
if (orgUsr.getSequenceNbr() != null) { // 走更新方法
this.updateById(orgUsr);
BeanUtils.copyProperties(orgUsr, result);
} else {
......@@ -2065,7 +2000,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return jsonObject;
}
public Object getOrgUserByAmosUserId(String amosUserId) throws Exception{
public Object getOrgUserByAmosUserId(String amosUserId) throws Exception {
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getIsDelete, false);
wrapper.eq(OrgUsr::getBizOrgType, CommonConstant.BIZ_ORG_TYPE_PERSON);
......
......@@ -1312,7 +1312,8 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
return executeSubmitDto;
}
AgencyUserModel checkLeader = jcsFeignClient.getAmosIdByUserId(param.getReformLeaderId()).getResult();
JSONObject reformJson = new JSONObject();
JSONObject reformJson = ValidationUtil.isEmpty(latentDanger.getReformJson()) ? new JSONObject() :
latentDanger.getReformJson();
reformJson.put("reformLeaderId", param.getReformLeaderId());
latentDanger.setReformJson(reformJson);
Object result = workflowExecuteService.setTaskAssign(processInstanceId, checkLeader.getUserName());
......
......@@ -9,6 +9,8 @@ import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
......@@ -25,6 +27,8 @@ import java.util.List;
@Component
public class EnumFillAop {
private static final Logger logger = LoggerFactory.getLogger(EnumFillAop.class);
@Autowired
RedisUtils redisUtils;
......@@ -39,20 +43,28 @@ public class EnumFillAop {
@Before("fillEnum()")
public void doBefore(JoinPoint joinPoint) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
// 获取隐患等级枚举
synchronized (this) {
// 获取隐患等级枚举
if (ValidationUtil.isEmpty(LatentDangerLevelEnum.supervisionDangerLevelEnumMap)) {
try {
List<DictionarieValueModel> dicResult =
Systemctl.dictionarieClient.dictValues(bizType + LatentDangerLevelEnum.dictCode).getResult();
dicResult.forEach(dic -> LatentDangerLevelEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey(),
"", dic.getOrderNum()));
} catch (Exception e) {
logger.debug(e.getMessage());
}
}
// 获取治理方式枚举
try {
if (ValidationUtil.isEmpty(LatentDangerReformTypeEnum.supervisionReformTypeEnumMap)) {
List<DictionarieValueModel> dicResult =
Systemctl.dictionarieClient.dictValues(bizType + LatentDangerReformTypeEnum.dictCode).getResult();
dicResult.forEach(dic -> LatentDangerReformTypeEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey()));
}
} catch (Exception e) {
logger.debug(e.getMessage());
}
}
// 获取治理状态枚举
// if (ValidationUtil.isEmpty(LatentDangerStateEnum.enumMap)) {
......
......@@ -7,7 +7,6 @@ import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.gson.JsonObject;
import com.yeejoin.amos.boot.biz.common.bo.DepartmentBo;
import com.yeejoin.amos.boot.biz.common.bo.RoleBo;
import com.yeejoin.amos.boot.biz.common.service.impl.WorkflowExcuteServiceImpl;
......@@ -328,7 +327,7 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
riskSourceId = Long.parseLong(inputCheckDto.getRiskSourceId());
}
LatentDangerBo latentDangerBo = saveLatentDanger("", param.getRemark(), remark, userId, departmentId,
LatentDangerBo latentDangerBo = saveLatentDanger("", "", remark, userId, departmentId,
businessKey, orgCode, dangerName, levelEnum.getCode(),
null, dangerTypeEnum, photoUrls, inputCheckDto.getCheckInputId(), riskSourceId,
position.get(inputCheckDto.getRiskSourceId())==null?"":position.get(inputCheckDto.getRiskSourceId()).toString(), InstanceKeyEnum.PATROL.getCode());
......@@ -1234,7 +1233,7 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
executeParam.getFlowJson(), executeParam.getDangerId(), role, executeTypeEnum.getName(),executeParam.getRemark());
} else {
if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患评审通过)) {
// 将定的治理人保存在日志记录
// 将定的治理人保存在日志记录
executeParam.getFlowJson().put("governUserId", governUserId);
}
LatentDangerFlowRecordBo flowRecord = saveFlowRecord(executeJson.getString("id"), data.getString("name"), userId, departmentId,
......@@ -1243,9 +1242,16 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
latentDangerBo.setDangerState(executeTypeEnum.getNextState().getCode().toString());
if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患常规治理)) {
latentDangerBo.setReformType(LatentDangerReformTypeEnum.常规整改.getCode().toString());
latentDangerBo.setReformJson(executeParam.getFlowJson().toJSONString());
JSONObject reformJsonObj = JSONObject.parseObject(latentDangerBo.getReformJson());
if (ValidationUtil.isEmpty(reformJsonObj)) {
reformJsonObj = executeParam.getFlowJson();
} else {
reformJsonObj.putAll(executeParam.getFlowJson());
}
latentDangerBo.setReformJson(reformJsonObj.toJSONString());
latentDangerBo.setInferOtherThings(executeParam.getInferOtherThings());
latentDangerBo.setProblemDescription(executeParam.getRemark());
latentDangerBo.setProblemDescription(ValidationUtil.isEmpty(executeParam.getProblemDescription()) ?
executeParam.getRemark() : executeParam.getProblemDescription());
latentDangerBo.setReasonAnalysis(executeParam.getReasonAnalysis());
} else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理)) {
latentDangerBo.setReformType(LatentDangerReformTypeEnum.延期治理.getCode().toString());
......@@ -1258,10 +1264,21 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患评审通过)) {
latentDangerBo.setReformLimitDate(DateUtil.str2Date(executeParam.getReformLimitDate(), DateUtil.DATETIME_DEFAULT_FORMAT));
latentDangerBo.setDangerLevel(executeParam.getDangerLevel().toString());
JSONObject reformJsonObject = JSONObject.parseObject(latentDangerBo.getReformJson());
if (ValidationUtil.isEmpty(reformJsonObject)) {
reformJsonObject = new JSONObject();
}
reformJsonObject.put("governUserId", governUserId);
latentDangerBo.setReformJson(reformJsonObject.toJSONString());
// 消防巡查需求:评审通过后定治理人
// 消防巡查需求:评审通过后定治理人
// 2.指定治理执行人
workflowExecuteService.setTaskAssign(latentDangerBo.getInstanceId(), governUserId);
Object result = workflowExecuteService.setTaskAssign(latentDangerBo.getInstanceId(), governUserId);
if (!(Boolean) result) {
executeSubmitDto.setIsOk(false);
executeSubmitDto.setMsg("设置治理行人失败");
return executeSubmitDto;
}
}
}
if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理车间部门审核通过)) {
......@@ -1269,6 +1286,10 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
if (executeParam.getNeedCompanyVerify() == 0) {
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请.getCode().toString());
latentDangerBo.setReformLimitDate(latentDangerBo.getDelayLimitDate());
if (!assignGovernUser(latentDangerBo, executeSubmitDto)) {
return executeSubmitDto;
}
} else {// 延期治理评审通过且 需要 公司审核
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请待公司审核.getCode().toString());
LatentDangerFlowRecordBo recordBo =
......@@ -1283,15 +1304,16 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
|| LatentDangerExcuteTypeEnum.隐患延期治理公司审核拒绝.equals(executeTypeEnum)
|| LatentDangerExcuteTypeEnum.隐患验证拒绝.equals(executeTypeEnum)) {
latentDangerBo.setDangerState(LatentDangerStateEnum.待治理.getCode().toString());
// 获取第一次评审时选择的治理人
LatentDangerFlowRecordBo record = latentDangerFlowRecordMapper.getByDangerIdAndActionFlag(latentDangerBo.getId(), "隐患评审");
JSONObject recordObj = JSONObject.parseObject(record.getFlowJson());
if (!ValidationUtil.isEmpty(recordObj.get("governUserId"))) {
workflowExecuteService.setTaskAssign(latentDangerBo.getInstanceId(), (String) recordObj.get("governUserId"));
if (!assignGovernUser(latentDangerBo, executeSubmitDto)) {
return executeSubmitDto;
}
} else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理公司审核通过)) {
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请.getCode().toString());
latentDangerBo.setReformLimitDate(latentDangerBo.getDelayLimitDate());
if (!assignGovernUser(latentDangerBo, executeSubmitDto)) {
return executeSubmitDto;
}
} /**else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理公司审核拒绝)) {
// TODO 待需求确认是回到部门审核还是回到隐患治理节点
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请待车间部门审核.getCode().toString());
......@@ -1310,6 +1332,29 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
return executeSubmitDto;
}
/**
* 设置治理人到流程执行节点(平台人员用户名)
*
* @param latentDangerBo
* @param executeSubmitDto
* @return
*/
public boolean assignGovernUser(LatentDangerBo latentDangerBo, DangerExecuteSubmitDto executeSubmitDto) {
// 获取最后一次评审时选择的治理人
LatentDangerFlowRecordBo record = latentDangerFlowRecordMapper.getByDangerIdAndActionFlag(latentDangerBo.getId(), "隐患评审");
JSONObject recordObj = JSONObject.parseObject(record.getFlowJson());
if (!ValidationUtil.isEmpty(recordObj.get("governUserId"))) {
Object result = workflowExecuteService.setTaskAssign(latentDangerBo.getInstanceId(),
(String) recordObj.get("governUserId"));
if (!(Boolean) result) {
executeSubmitDto.setIsOk(false);
executeSubmitDto.setMsg("指定治理人失败");
return false;
}
}
return true;
}
private void sendMessage(LatentDangerBo latentDangerBo, LatentDangerExcuteTypeEnum excuteTypeEnum,
LatentDangerPatrolBo patrolBo, String flowTaskName, String informerList,
String userRealName, String departmentName) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment