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; ...@@ -9,7 +9,8 @@ import java.lang.annotation.Target;
/** /**
* @author DELL * @author DELL
* *
* 注解在mapper方法上 * 注解需要数据权限过滤的mapper。
* interfacePath对应为平台菜单管理中菜单组件(全局唯一)。
*/ */
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
...@@ -20,6 +21,6 @@ public @interface DataAuth { ...@@ -20,6 +21,6 @@ public @interface DataAuth {
* 菜单组件 * 菜单组件
* @return * @return
*/ */
String interfacePath() default ""; String interfacePath();
} }
...@@ -61,30 +61,39 @@ public class PermissionInterceptor implements Interceptor { ...@@ -61,30 +61,39 @@ public class PermissionInterceptor implements Interceptor {
MetaObject metaObject = SystemMetaObject.forObject(statementHandler); MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement"); MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
// TODO 处理mybatis plus
String dataAuthRule = PermissionInterceptorContext.getDataAuthRule();
// 被拦截方法 // 被拦截方法
Method method = getTargetDataAuthMethod(mappedStatement); Method method = getTargetDataAuthMethod(mappedStatement);
DataAuth dataAuth = getTargetDataAuthAnnotation(mappedStatement); DataAuth dataAuth = getTargetDataAuthAnnotation(mappedStatement);
// 没有DataAuth定义注解的跳过 // 没有DataAuth定义注解的跳过及没有手动指定使用数据规则的跳过
if (null == dataAuth) { if (null == dataAuth && ValidationUtil.isEmpty(dataAuthRule)) {
PermissionInterceptorContext.clean();
return invocation.proceed(); return invocation.proceed();
} }
// 接口地址为空返回空数据 // 数据权限地址为空返回空数据
if (ValidationUtil.isEmpty(dataAuth.interfacePath())) { if (ValidationUtil.isEmpty(dataAuth.interfacePath()) && ValidationUtil.isEmpty(dataAuthRule)) {
// method.getReturnType().isPrimitive() = true 是count语句 // method.getReturnType().isPrimitive() = true 是count语句
PermissionInterceptorContext.clean();
return method.getReturnType().isPrimitive() ? invocation.proceed() : null; 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() ReginParams reginParam = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId()
, RequestContext.getToken())).toString(), ReginParams.class); , RequestContext.getToken())).toString(), ReginParams.class);
if (ValidationUtil.isEmpty(reginParam) || ValidationUtil.isEmpty(reginParam.getUserModel())) { if (ValidationUtil.isEmpty(reginParam) || ValidationUtil.isEmpty(reginParam.getUserModel())) {
// method.getReturnType().isPrimitive() = true 是count语句 // method.getReturnType().isPrimitive() = true 是count语句
PermissionInterceptorContext.clean();
return method.getReturnType().isPrimitive() ? invocation.proceed() : null; return method.getReturnType().isPrimitive() ? invocation.proceed() : null;
} }
// 用户数据权限配置信息 // 用户数据权限配置信息
Map<String, List<PermissionDataruleModel>> dataAuthorization = Privilege.permissionDataruleClient.queryByUser(reginParam.getUserModel().getUserId(), Map<String, List<PermissionDataruleModel>> dataAuthorization = Privilege.permissionDataruleClient.queryByUser(reginParam.getUserModel().getUserId(),
dataAuth.interfacePath()).getResult(); dataAuthRule).getResult();
// 没有数据权限直接返回空数据 // 没有数据权限直接返回空数据
if (ValidationUtil.isEmpty(dataAuthorization)) { if (ValidationUtil.isEmpty(dataAuthorization)) {
PermissionInterceptorContext.clean();
return method.getReturnType().isPrimitive() ? invocation.proceed() : null; return method.getReturnType().isPrimitive() ? invocation.proceed() : null;
} }
...@@ -93,6 +102,7 @@ public class PermissionInterceptor implements Interceptor { ...@@ -93,6 +102,7 @@ public class PermissionInterceptor implements Interceptor {
// 将权限规则拼接到原始sql // 将权限规则拼接到原始sql
sql = processSelectSql(sql, dataAuthorization, reginParam, boundSql); sql = processSelectSql(sql, dataAuthorization, reginParam, boundSql);
metaObject.setValue("delegate.boundSql.sql", sql); metaObject.setValue("delegate.boundSql.sql", sql);
PermissionInterceptorContext.clean();
return invocation.proceed(); 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 { ...@@ -166,4 +166,8 @@ public interface IMaintenanceCompanyService {
List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type); List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type);
List<MaintenanceCompany> findByCodeAndType(String code, 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 { ...@@ -108,8 +108,8 @@ public interface IOrgUsrService {
* @throws Exception * @throws Exception
*/ */
Map<String, Object> selectForShowById(OrgUsr orgUsr, Long id) 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(); List<OrgUsr> selectCompanyDepartmentMsg();
...@@ -145,7 +145,9 @@ public interface IOrgUsrService { ...@@ -145,7 +145,9 @@ public interface IOrgUsrService {
OrgDepartmentFormDto selectDepartmentById(Long id) throws Exception; OrgDepartmentFormDto selectDepartmentById(Long id) throws Exception;
List<Map<String, Object>> selectForShowByListId(List<Long> ids) throws Exception; List<Map<String, Object>> selectForShowByListId(List<Long> ids) throws Exception;
List<Map<String, Object>> selectForShowByListIdUser(List<Long> ids) throws Exception; List<Map<String, Object>> selectForShowByListIdUser(List<Long> ids) throws Exception;
/** /**
* * @param null * * @param null
* *
...@@ -185,7 +187,7 @@ public interface IOrgUsrService { ...@@ -185,7 +187,7 @@ public interface IOrgUsrService {
List<Map<String, Object>> getparent(); List<Map<String, Object>> getparent();
List<OrgUsrExcelDto> exportToExcel( Map par); List<OrgUsrExcelDto> exportToExcel(Map par);
UserUnitDto getUserUnit(String userId); UserUnitDto getUserUnit(String userId);
...@@ -226,7 +228,7 @@ public interface IOrgUsrService { ...@@ -226,7 +228,7 @@ public interface IOrgUsrService {
* *
* @param orgUserId * @param orgUserId
* @return * @return
* @exception * @throws
*/ */
AgencyUserModel getAmosIdByOrgUserId(String orgUserId) throws Exception; AgencyUserModel getAmosIdByOrgUserId(String orgUserId) throws Exception;
...@@ -235,12 +237,13 @@ public interface IOrgUsrService { ...@@ -235,12 +237,13 @@ public interface IOrgUsrService {
* *
* @param orgUserIds * @param orgUserIds
* @return * @return
* @exception * @throws
*/ */
List<String> getAmosIdListByOrgUserId(String orgUserIds) throws Exception; List<String> getAmosIdListByOrgUserId(String orgUserIds) throws Exception;
/** /**
* 查询目标公司下所有人员的简要信息,数据包含:所在公司id和name ,人员id和name,岗位id和name * 查询目标公司下所有人员的简要信息,数据包含:所在公司id和name ,人员id和name,岗位id和name
*
* @param ids * @param ids
* @return * @return
*/ */
...@@ -252,12 +255,12 @@ public interface IOrgUsrService { ...@@ -252,12 +255,12 @@ public interface IOrgUsrService {
OrgUsr selectByAmosOrgId(Long id); OrgUsr selectByAmosOrgId(Long id);
public List<OrgUsr> getPersonListByParentIds(List<String> ids) ; List<OrgUsr> getPersonListByParentIds(List<String> ids);
List<OrgUsrFormDto> getUnSyncOrgCompanyList(List<Long> companyIdList); List<OrgUsrFormDto> getUnSyncOrgCompanyList(List<Long> companyIdList);
public OrgUsr getDetailById( Long id);
OrgUsr getDetailById(Long id);
/** /**
...@@ -275,7 +278,7 @@ public interface IOrgUsrService { ...@@ -275,7 +278,7 @@ public interface IOrgUsrService {
* @throws Exception * @throws Exception
*/ */
List<OrgMenuDto> getTreeFlc(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy, List<OrgMenuDto> getTreeFlc(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy,
String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception; String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception;
OrgUsrDto saveOrgPersonFlc(OrgPersonDto OrgPersonDto) throws Exception; OrgUsrDto saveOrgPersonFlc(OrgPersonDto OrgPersonDto) throws Exception;
......
...@@ -33,14 +33,7 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil; ...@@ -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.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.ArrayList; import java.util.*;
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.Map.Entry; import java.util.Map.Entry;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -53,627 +46,642 @@ import java.util.stream.Collectors; ...@@ -53,627 +46,642 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
public class MaintenanceCompanyServiceImpl public class MaintenanceCompanyServiceImpl
extends BaseService<MaintenanceCompanyDto, MaintenanceCompany, MaintenanceCompanyMapper> extends BaseService<MaintenanceCompanyDto, MaintenanceCompany, MaintenanceCompanyMapper>
implements IMaintenanceCompanyService { implements IMaintenanceCompanyService {
private static final String MAINTENANCE_COMPANY = "maintenanceCompany"; private static final String MAINTENANCE_COMPANY = "maintenanceCompany";
private static final String MAINTENANCE_PERSON = "maintenancePerson"; private static final String MAINTENANCE_PERSON = "maintenancePerson";
private static final String MAINTENANCE_DEPARTMENT = "maintenanceDepartment"; private static final String MAINTENANCE_DEPARTMENT = "maintenanceDepartment";
private static final String PERSON = "PERSON"; private static final String PERSON = "PERSON";
private static final String COMPANY = "COMPANY"; private static final String COMPANY = "COMPANY";
private static final String DEPARTMENT = "DEPARTMENT"; private static final String DEPARTMENT = "DEPARTMENT";
@Autowired @Autowired
DynamicFormInstanceServiceImpl dynamicFormInstanceService; DynamicFormInstanceServiceImpl dynamicFormInstanceService;
@Autowired @Autowired
DynamicFormColumnServiceImpl dynamicFormColumnServiceImpl; DynamicFormColumnServiceImpl dynamicFormColumnServiceImpl;
@Autowired @Autowired
Sequence sequence; Sequence sequence;
@Autowired @Autowired
MaintenanceCompanyMapper maintenanceCompanyMapper; MaintenanceCompanyMapper maintenanceCompanyMapper;
@Autowired @Autowired
IOrgUsrService iOrgUsrService; IOrgUsrService iOrgUsrService;
@Autowired @Autowired
DynamicFormInstanceMapper dynamicFormInstanceMapper; DynamicFormInstanceMapper dynamicFormInstanceMapper;
@Autowired @Autowired
SourceFileServiceImpl sourceFileService; SourceFileServiceImpl sourceFileService;
/** /**
* 分页查询 * 分页查询
*/ */
public Page<MaintenanceCompanyDto> queryForMaintenanceCompanyPage(Page<MaintenanceCompanyDto> page) { public Page<MaintenanceCompanyDto> queryForMaintenanceCompanyPage(Page<MaintenanceCompanyDto> page) {
return this.queryForPage(page, null, false); return this.queryForPage(page, null, false);
} }
/** /**
* 列表查询 示例 * 列表查询 示例
*/ */
public List<MaintenanceCompanyDto> queryForMaintenanceCompanyList() { public List<MaintenanceCompanyDto> queryForMaintenanceCompanyList() {
return this.queryForList("", false); return this.queryForList("", false);
} }
/** /**
* 添加维保单位基本信息 * 添加维保单位基本信息
* *
* @param maintenanceCompany * @param maintenanceCompany
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public MaintenanceCompany saveCompanyDetail(MaintenanceCompany maintenanceCompany) { public MaintenanceCompany saveCompanyDetail(MaintenanceCompany maintenanceCompany) {
Long instanceId = saveDynamicFormList(maintenanceCompany); Long instanceId = saveDynamicFormList(maintenanceCompany);
// 设置单位code // 设置单位code
setTargetObjCode(maintenanceCompany); setTargetObjCode(maintenanceCompany);
maintenanceCompany.setOrgCode(null); maintenanceCompany.setOrgCode(null);
maintenanceCompany.setBizCode(sequence.nextId() + ""); maintenanceCompany.setBizCode(sequence.nextId() + "");
maintenanceCompany.setInstanceId(instanceId); maintenanceCompany.setInstanceId(instanceId);
maintenanceCompany.setType(maintenanceCompany.getType().toUpperCase()); maintenanceCompany.setType(maintenanceCompany.getType().toUpperCase());
maintenanceCompany.setIsDelete(false); maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany); this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()){ if (maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments()); sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
} }
return maintenanceCompany; return maintenanceCompany;
} }
/** /**
* 设置单位code * 设置单位code
* *
* @param targetObj * @param targetObj
*/ */
private void setTargetObjCode(MaintenanceCompany targetObj) { private void setTargetObjCode(MaintenanceCompany targetObj) {
MaintenanceCompany parent = getById(targetObj.getParentId()); MaintenanceCompany parent = getById(targetObj.getParentId());
if (!ValidationUtil.isEmpty(parent)) { if (!ValidationUtil.isEmpty(parent)) {
// 当前的code为上级单位code+6位随机数 // 当前的code为上级单位code+6位随机数
targetObj.setCode(parent.getCode() + TreeParser.genTreeCode()); targetObj.setCode(parent.getCode() + TreeParser.genTreeCode());
} else { } else {
targetObj.setCode(TreeParser.genTreeCode()); targetObj.setCode(TreeParser.genTreeCode());
} }
} }
@Override @Override
public MaintenanceCompany savePersonDetail(MaintenanceCompany maintenanceCompany) { public MaintenanceCompany savePersonDetail(MaintenanceCompany maintenanceCompany) {
Long instanceId = saveDynamicFormList(maintenanceCompany); Long instanceId = saveDynamicFormList(maintenanceCompany);
Long parentId = maintenanceCompany.getParentId(); Long parentId = maintenanceCompany.getParentId();
// 设置人员code // 设置人员code
setTargetObjCode(maintenanceCompany); setTargetObjCode(maintenanceCompany);
maintenanceCompany.setOrgCode(null); maintenanceCompany.setOrgCode(null);
if (ValidationUtil.isEmpty(maintenanceCompany.getBizCode())) { if (ValidationUtil.isEmpty(maintenanceCompany.getBizCode())) {
maintenanceCompany.setBizCode(sequence.nextId() + ""); maintenanceCompany.setBizCode(sequence.nextId() + "");
} }
maintenanceCompany.setInstanceId(instanceId); maintenanceCompany.setInstanceId(instanceId);
maintenanceCompany.setParentId(parentId); maintenanceCompany.setParentId(parentId);
maintenanceCompany.setIsDelete(false); maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany); this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()){ if (maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments()); sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
} }
return maintenanceCompany; return maintenanceCompany;
} }
/** /**
* 添加动态表单信息 * 添加动态表单信息
* *
* @param maintenanceCompany * @param maintenanceCompany
* @return * @return
*/ */
public Long saveDynamicFormList(MaintenanceCompany maintenanceCompany) { public Long saveDynamicFormList(MaintenanceCompany maintenanceCompany) {
Long instanceId = sequence.nextId(); Long instanceId = sequence.nextId();
List<DynamicFormInstance> dynamicFormInstanceList = maintenanceCompany.getDynamicFormValue(); List<DynamicFormInstance> dynamicFormInstanceList = maintenanceCompany.getDynamicFormValue();
for (DynamicFormInstance dynamicFormInstance : dynamicFormInstanceList) { for (DynamicFormInstance dynamicFormInstance : dynamicFormInstanceList) {
dynamicFormInstance.setInstanceId(instanceId); dynamicFormInstance.setInstanceId(instanceId);
dynamicFormInstanceService.save(dynamicFormInstance); dynamicFormInstanceService.save(dynamicFormInstance);
} }
return instanceId; return instanceId;
} }
@Override @Override
public MaintenanceCompany saveDepartmentDetail(MaintenanceCompany maintenanceCompany) { public MaintenanceCompany saveDepartmentDetail(MaintenanceCompany maintenanceCompany) {
Long instanceId = saveDynamicFormList(maintenanceCompany); Long instanceId = saveDynamicFormList(maintenanceCompany);
Long parentId = maintenanceCompany.getParentId(); Long parentId = maintenanceCompany.getParentId();
setTargetObjCode(maintenanceCompany); setTargetObjCode(maintenanceCompany);
maintenanceCompany.setOrgCode(null); maintenanceCompany.setOrgCode(null);
maintenanceCompany.setBizCode(sequence.nextId() + ""); maintenanceCompany.setBizCode(sequence.nextId() + "");
maintenanceCompany.setInstanceId(instanceId); maintenanceCompany.setInstanceId(instanceId);
maintenanceCompany.setType(maintenanceCompany.getType().toUpperCase()); maintenanceCompany.setType(maintenanceCompany.getType().toUpperCase());
maintenanceCompany.setParentId(parentId); maintenanceCompany.setParentId(parentId);
maintenanceCompany.setIsDelete(false); maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany); this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()){ if (maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments()); sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
} }
return maintenanceCompany; return maintenanceCompany;
} }
@Override
public boolean deleteById(Long sequenceNbr) {
MaintenanceCompany maintenanceCompany = maintenanceCompanyMapper.selectById(sequenceNbr);
if (ObjectUtils.isEmpty(maintenanceCompany)) {
return false;
}
// 新增删除维保单位逻辑,BUG 2500 单位下有子单位或者人员时应无法直接删除. by litw satrt
LambdaQueryWrapper<MaintenanceCompany> wrapperCompany = new LambdaQueryWrapper<MaintenanceCompany>();
wrapperCompany.eq(MaintenanceCompany::getParentId,sequenceNbr);
wrapperCompany.eq(MaintenanceCompany::getIsDelete,false);
int count = maintenanceCompanyMapper.selectCount(wrapperCompany);
if(count > 0) {
throw new BadRequest("单位下有子单位或者人员,无法删除");
}
// 新增删除维保单位逻辑,BUG 2500 单位下有子单位或者人员时应无法直接删除. by litw end
maintenanceCompany.setIsDelete(true);
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.eq(MaintenanceCompany::getSequenceNbr, sequenceNbr);
int number = maintenanceCompanyMapper.update(maintenanceCompany, wrapper);
if (number > 0) {
// 更新动态表单字段为删除状态
List<DynamicFormInstance> dyInstance = dynamicFormInstanceService
.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId,
maintenanceCompany.getInstanceId()));
dyInstance.forEach(i -> i.setIsDelete(true));
dynamicFormInstanceService.updateBatchById(dyInstance);
return true;
}
return false;
}
@Override
public List<Map<String, Object>> getMaintenanceCompanyDropDownList() {
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.select(MaintenanceCompany::getCode, MaintenanceCompany::getName, MaintenanceCompany::getSequenceNbr);
wrapper.eq(MaintenanceCompany::getType, COMPANY);
wrapper.eq(MaintenanceCompany::getIsDelete, false);
return maintenanceCompanyMapper.selectMaps(wrapper);
}
@Override
public boolean checkPersonCodeExists(String code) {
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.eq(MaintenanceCompany::getBizCode, code);
MaintenanceCompany detail = maintenanceCompanyMapper.selectOne(wrapper);
if (ObjectUtils.isEmpty(detail)) {
return true;
}
return false;
}
@Override @Override
public List<Map<String, Object>> getAllMaintenanceList(String maintenanceType) { public boolean deleteById(Long sequenceNbr) {
String type = null; MaintenanceCompany maintenanceCompany = maintenanceCompanyMapper.selectById(sequenceNbr);
switch (maintenanceType.toUpperCase()) { if (ObjectUtils.isEmpty(maintenanceCompany)) {
case PERSON: return false;
type = MAINTENANCE_PERSON; }
break; // 新增删除维保单位逻辑,BUG 2500 单位下有子单位或者人员时应无法直接删除. by litw satrt
case DEPARTMENT: LambdaQueryWrapper<MaintenanceCompany> wrapperCompany = new LambdaQueryWrapper<MaintenanceCompany>();
type = MAINTENANCE_DEPARTMENT; wrapperCompany.eq(MaintenanceCompany::getParentId, sequenceNbr);
break; wrapperCompany.eq(MaintenanceCompany::getIsDelete, false);
default: int count = maintenanceCompanyMapper.selectCount(wrapperCompany);
type = MAINTENANCE_COMPANY; if (count > 0) {
} throw new BadRequest("单位下有子单位或者人员,无法删除");
if (StringUtils.isBlank(type)) { }
return null;
}
List<Map<String, Object>> dynamicFormList = dynamicFormInstanceService.listAll(type);
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.eq(MaintenanceCompany::getType, maintenanceType.toUpperCase());
wrapper.eq(MaintenanceCompany::getIsDelete, false);
List<MaintenanceCompany> maintenanceCompany = this.list(wrapper);
Map<Long, MaintenanceCompany> maintenanceCompanyMap = maintenanceCompany.stream()
.collect(Collectors.toMap(MaintenanceCompany::getInstanceId, Function.identity()));
dynamicFormList.forEach(r -> {
MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString()));
if (!ObjectUtils.isEmpty(detail)) {
if(detail.getParentId()!=null) {
MaintenanceCompany map = maintenanceCompanyMapper.selectById(detail.getParentId());
r.put("parentName", map.getName());
}
r.putAll(Bean.BeantoMap(detail));
}
});
return dynamicFormList;
}
public List<Map<String, Object>> getAllMaintenanceEexcleList(String maintenanceType,Map parms) {
String type = null;
switch (maintenanceType.toUpperCase()) {
case PERSON:
type = MAINTENANCE_PERSON;
break;
case DEPARTMENT:
type = MAINTENANCE_DEPARTMENT;
break;
default:
type = MAINTENANCE_COMPANY;
}
if (StringUtils.isBlank(type)) {
return null;
}
List<Map<String, Object>> dynamicFormList = dynamicFormInstanceService.listAll(type);
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) {
wrapper.like(MaintenanceCompany::getName, name);
}
if(parentId!=null) {
wrapper.eq(MaintenanceCompany::getParentId, parentId);
}
}
List<MaintenanceCompany> maintenanceCompany = this.list(wrapper);
Map<Long, MaintenanceCompany> maintenanceCompanyMap = maintenanceCompany.stream()
.collect(Collectors.toMap(MaintenanceCompany::getInstanceId, Function.identity()));
dynamicFormList.forEach(r -> {
MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString()));
if (!ObjectUtils.isEmpty(detail)) {
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());
}
@Override
public List<MaintenancePersonExcleDto> exportToMaintenancePersonExcel(Map map) {
List<Map<String, Object>> list = this.getAllMaintenanceEexcleList(PERSON,map);
return JSONArray.parseArray(JSONArray.toJSONString(list), MaintenancePersonExcleDto.class);
}
@Override
public List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type) {
List<MaintenanceCompany> list = maintenanceCompanyMapper.findByInstanceIdAndType(instanceId, type);
if (!CollectionUtils.isEmpty(list)) {
return list;
}
return Lists.newArrayList();
}
@Override
public List<MaintenanceCompany> findByCodeAndType(String code, String type) {
List<MaintenanceCompany> list = maintenanceCompanyMapper.findByCodeAndType(code, type);
if (!CollectionUtils.isEmpty(list)) {
return list;
}
return Lists.newArrayList();
}
/**
* 维保单位人员信息分頁信息显示时的字段过滤
*
* @param current
* @param size
* @param list
* @param arrayType
* @return
*/
public IPage<Map<String, Object>> getLegalList(int current, int size, IPage<Map<String, Object>> list,
String[] arrayType) {
List<Map<String, Object>> returnlist = new ArrayList<Map<String, Object>>();
Map<String, Object> legalMap = null;
for (Map<String, Object> map : list.getRecords()) {
legalMap = new HashMap<String, Object>();
for (Entry<String, Object> m : map.entrySet()) {
if (Arrays.asList(arrayType).contains(m.getKey())) {
legalMap.putAll(map);
}
}
returnlist.add(legalMap);
}
Page<Map<String, Object>> pegaIPage = new Page<Map<String, Object>>();
pegaIPage.setCurrent(current);
pegaIPage.setSize(size);
pegaIPage.setRecords(returnlist);
return pegaIPage;
}
@Override // 新增删除维保单位逻辑,BUG 2500 单位下有子单位或者人员时应无法直接删除. by litw end
public IPage<Map<String, Object>> getPageMaintenanceList(Map<String, Object> paramsMap) { maintenanceCompany.setIsDelete(true);
if (!paramsMap.containsKey("current") && !paramsMap.containsKey("size")) { LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
return null; wrapper.eq(MaintenanceCompany::getSequenceNbr, sequenceNbr);
}
if (!paramsMap.containsKey("maintenanceType")) { int number = maintenanceCompanyMapper.update(maintenanceCompany, wrapper);
return null; if (number > 0) {
} // 更新动态表单字段为删除状态
int current = Integer.parseInt(paramsMap.get("current").toString()); List<DynamicFormInstance> dyInstance = dynamicFormInstanceService
int size = Integer.parseInt(paramsMap.get("size").toString()); .list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getInstanceId,
String maintenanceType = paramsMap.get("maintenanceType").toString().toUpperCase(); maintenanceCompany.getInstanceId()));
Map<String, String> filedParamsMap = Maps.newHashMap(); dyInstance.forEach(i -> i.setIsDelete(true));
dynamicFormInstanceService.updateBatchById(dyInstance);
List<MaintenanceCompany> mainTableList; return true;
String type; }
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<>(); return false;
wrapper.eq(MaintenanceCompany::getIsDelete, false); }
switch (maintenanceType) {
case PERSON: @Override
type = MAINTENANCE_PERSON; public List<Map<String, Object>> getMaintenanceCompanyDropDownList() {
filedParamsMap = new HashMap<>(); LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
if (paramsMap.containsKey("status")) { wrapper.select(MaintenanceCompany::getCode, MaintenanceCompany::getName, MaintenanceCompany::getSequenceNbr);
filedParamsMap.put("status", paramsMap.get("status").toString()); wrapper.eq(MaintenanceCompany::getType, COMPANY);
} wrapper.eq(MaintenanceCompany::getIsDelete, false);
mainTableList = this.checkMaintenanceCompanyList(wrapper, paramsMap); return maintenanceCompanyMapper.selectMaps(wrapper);
/*BUG 2503 人员头像存在附件中,获取附件信息返回前端 start*/ }
for (MaintenanceCompany m:mainTableList
) { @Override
m.setAttachments(sourceFileService.getAttachments(m.getSequenceNbr())); public boolean checkPersonCodeExists(String code) {
} LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
/* *BUG 2503 end*/ wrapper.eq(MaintenanceCompany::getBizCode, code);
List<Long> instanceIds = Lists.transform(mainTableList, MaintenanceCompany::getInstanceId); MaintenanceCompany detail = maintenanceCompanyMapper.selectOne(wrapper);
filedParamsMap.put("instanceIds", Joiner.on(",").join(instanceIds)); if (ObjectUtils.isEmpty(detail)) {
break; return true;
case COMPANY: }
type = MAINTENANCE_COMPANY; return false;
wrapper.eq(MaintenanceCompany::getType, maintenanceType.toUpperCase()); }
mainTableList = this.list(wrapper);
break; @Override
case DEPARTMENT: public List<Map<String, Object>> getAllMaintenanceList(String maintenanceType) {
type = MAINTENANCE_DEPARTMENT; String type = null;
wrapper.eq(MaintenanceCompany::getType, maintenanceType.toUpperCase()); switch (maintenanceType.toUpperCase()) {
mainTableList = this.list(wrapper); case PERSON:
break; type = MAINTENANCE_PERSON;
default: break;
throw new IllegalStateException("Unexpected maintenanceType: " + maintenanceType); case DEPARTMENT:
} type = MAINTENANCE_DEPARTMENT;
if (StringUtils.isBlank(type)) { break;
return null; default:
} type = MAINTENANCE_COMPANY;
IPage<Map<String, Object>> page = dynamicFormInstanceService.pageList(current, size, type, filedParamsMap); }
if (StringUtils.isBlank(type)) {
Map<Long, MaintenanceCompany> maintenanceCompanyMap = mainTableList.stream() return null;
.collect(Collectors.toMap(MaintenanceCompany::getInstanceId, Function.identity())); }
List<Map<String, Object>> dynamicFormList = dynamicFormInstanceService.listAll(type);
page.getRecords().forEach(r -> { LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString())); wrapper.eq(MaintenanceCompany::getType, maintenanceType.toUpperCase());
if (!ObjectUtils.isEmpty(detail)) { wrapper.eq(MaintenanceCompany::getIsDelete, false);
r.putAll(Bean.BeantoMap(detail)); List<MaintenanceCompany> maintenanceCompany = this.list(wrapper);
}
Map<Long, MaintenanceCompany> maintenanceCompanyMap = maintenanceCompany.stream()
}); .collect(Collectors.toMap(MaintenanceCompany::getInstanceId, Function.identity()));
return page; dynamicFormList.forEach(r -> {
} MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString()));
if (!ObjectUtils.isEmpty(detail)) {
if (detail.getParentId() != null) {
MaintenanceCompany map = maintenanceCompanyMapper.selectById(detail.getParentId());
r.put("parentName", map.getName());
}
r.putAll(Bean.BeantoMap(detail));
}
});
return dynamicFormList;
}
public List<Map<String, Object>> getAllMaintenanceEexcleList(String maintenanceType, Map parms) {
String type = null;
switch (maintenanceType.toUpperCase()) {
case PERSON:
type = MAINTENANCE_PERSON;
break;
case DEPARTMENT:
type = MAINTENANCE_DEPARTMENT;
break;
default:
type = MAINTENANCE_COMPANY;
}
if (StringUtils.isBlank(type)) {
return null;
}
List<Map<String, Object>> dynamicFormList = dynamicFormInstanceService.listAll(type);
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) {
wrapper.like(MaintenanceCompany::getName, name);
}
if (parentId != null) {
wrapper.eq(MaintenanceCompany::getParentId, parentId);
}
public List<MaintenanceCompany> checkMaintenanceCompanyList(LambdaQueryWrapper<MaintenanceCompany> wrapper, }
Map<String, Object> paramsMap) { List<MaintenanceCompany> maintenanceCompany = this.list(wrapper);
if (paramsMap.containsKey("name")) {
wrapper.like(MaintenanceCompany::getName, paramsMap.get("name").toString()); Map<Long, MaintenanceCompany> maintenanceCompanyMap = maintenanceCompany.stream()
} .collect(Collectors.toMap(MaintenanceCompany::getInstanceId, Function.identity()));
if (paramsMap.containsKey("parentId") && !"-1".equals(paramsMap.get("parentId"))) { dynamicFormList.forEach(r -> {
Long parentId = Long.parseLong(paramsMap.get("parentId").toString()); MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString()));
MaintenanceCompany company = getOne( if (!ObjectUtils.isEmpty(detail)) {
new LambdaQueryWrapper<MaintenanceCompany>().eq(MaintenanceCompany::getSequenceNbr, parentId)); if (detail.getParentId() != null && detail.getName() != null) {
wrapper.likeRight(MaintenanceCompany::getCode, company.getCode()); MaintenanceCompany map = maintenanceCompanyMapper.selectById(detail.getParentId());
} r.put("parentName", map.getName());
wrapper.eq(MaintenanceCompany::getType, PERSON); r.putAll(Bean.BeantoMap(detail));
}
return maintenanceCompanyMapper.selectList(wrapper); }
} });
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);
return JSONArray.parseArray(JSONArray.toJSONString(list), MaintenancePersonExcleDto.class);
}
@Override
public List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type) {
List<MaintenanceCompany> list = maintenanceCompanyMapper.findByInstanceIdAndType(instanceId, type);
if (!CollectionUtils.isEmpty(list)) {
return list;
}
return Lists.newArrayList();
}
@Override
public List<MaintenanceCompany> findByCodeAndType(String code, String type) {
List<MaintenanceCompany> list = maintenanceCompanyMapper.findByCodeAndType(code, type);
if (!CollectionUtils.isEmpty(list)) {
return list;
}
return Lists.newArrayList();
}
@Override @Override
public Map<String, Object> findBySequenceNbr(Long sequenceNbr) { public List<MaintenanceCompany> findPersonByAmosOrgId(String code, String userId) {
MaintenanceCompany maintenanceCompany = maintenanceCompanyMapper.selectById(sequenceNbr); LambdaQueryWrapper<MaintenanceCompany> queryWrapper = new LambdaQueryWrapper<>();
String type; queryWrapper.eq(MaintenanceCompany::getType, code);
switch (maintenanceCompany.getType()) { queryWrapper.eq(MaintenanceCompany::getAmosId, userId);
case PERSON: return this.baseMapper.selectList(queryWrapper);
type = MAINTENANCE_PERSON; }
break;
case DEPARTMENT:
type = MAINTENANCE_DEPARTMENT;
break;
default:
type = MAINTENANCE_COMPANY;
}
Map<String, Object> mainMap = Bean.BeantoMap(maintenanceCompany);
Map<String, Object> dynamicMap = dynamicFormInstanceService.getOneMap(maintenanceCompany.getInstanceId(), type);
mainMap.put("attachments", sourceFileService.getAttachments(maintenanceCompany.getSequenceNbr()));
mainMap.put("dynamicFormValue", dynamicMap);
return mainMap;
}
@Override @Override
@Transactional(rollbackFor = Exception.class) public MaintenanceCompany getOne(Long parentId) {
public boolean updateMaintenanceCompanyDetail(MaintenanceCompany model) throws Exception { return this.getById(parentId);
return updateMaintenanceDetail(model, COMPANY);
}
public boolean updateMaintenanceDetail(MaintenanceCompany model, String type) throws Exception {
return updateDetail(model, type);
}
public boolean updateDetail(MaintenanceCompany model, String type) throws Exception {
// 1、更新动态表单数据
iOrgUsrService.updateDynamicFormInstance(model.getInstanceId(), model.getDynamicFormValue());
// 2、更新单位及子单位code
updateCode(model);
// 3、更新主表数据
model.setType(type);
this.updateById(model);
if (ValidationUtil.isEmpty(model.getParentId())) {
update(new LambdaUpdateWrapper<MaintenanceCompany>().set(MaintenanceCompany::getParentId, null).eq(MaintenanceCompany::getSequenceNbr, model.getSequenceNbr()));
}
// 4、更新附件
sourceFileService.saveAttachments(model.getSequenceNbr(), model.getAttachments());
return true;
} }
/** /**
* 更新单位及子单位code * 维保单位人员信息分頁信息显示时的字段过滤
* *
* @return company 维保单位/部门/人员 * @param current
*/ * @param size
public void updateCode(MaintenanceCompany company) { * @param list
MaintenanceCompany parent = getById(company.getParentId()); * @param arrayType
// 新父节点的code * @return
String parentCode = ""; */
// 父节点不为空 public IPage<Map<String, Object>> getLegalList(int current, int size, IPage<Map<String, Object>> list,
if (!ValidationUtil.isEmpty(parent)) { String[] arrayType) {
parentCode = parent.getCode(); List<Map<String, Object>> returnlist = new ArrayList<Map<String, Object>>();
} Map<String, Object> legalMap = null;
// 旧父节点的code for (Map<String, Object> map : list.getRecords()) {
if(company.getCode() != null){ legalMap = new HashMap<String, Object>();
String oldParentCode = company.getCode().substring(0, company.getCode().length() - TreeParser.CODE_LENGTH); for (Entry<String, Object> m : map.entrySet()) {
List<MaintenanceCompany> children = if (Arrays.asList(arrayType).contains(m.getKey())) {
list(new LambdaQueryWrapper<MaintenanceCompany>().eq(MaintenanceCompany::getIsDelete, false).likeRight(MaintenanceCompany::getCode, company.getCode()).ne(MaintenanceCompany::getSequenceNbr, company.getSequenceNbr())); legalMap.putAll(map);
if (!ValidationUtil.isEmpty(children)) { }
String finalParentCode = parentCode; }
children.forEach(i -> { returnlist.add(legalMap);
i.setCode(i.getCode().replaceFirst(oldParentCode, finalParentCode)); }
}); Page<Map<String, Object>> pegaIPage = new Page<Map<String, Object>>();
updateBatchById(children); pegaIPage.setCurrent(current);
} pegaIPage.setSize(size);
company.setCode(company.getCode().replaceFirst(oldParentCode, parentCode)); pegaIPage.setRecords(returnlist);
} return pegaIPage;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) public IPage<Map<String, Object>> getPageMaintenanceList(Map<String, Object> paramsMap) {
public boolean updateMaintenancePersonDetail(MaintenanceCompany model) throws Exception { if (!paramsMap.containsKey("current") && !paramsMap.containsKey("size")) {
return updateMaintenanceDetail(model, PERSON); return null;
} }
if (!paramsMap.containsKey("maintenanceType")) {
@Override return null;
@Transactional(rollbackFor = Exception.class) }
public boolean updateMaintenanceDepartmentDetail(MaintenanceCompany model) throws Exception { int current = Integer.parseInt(paramsMap.get("current").toString());
return updateMaintenanceDetail(model, DEPARTMENT); int size = Integer.parseInt(paramsMap.get("size").toString());
} String maintenanceType = paramsMap.get("maintenanceType").toString().toUpperCase();
Map<String, String> filedParamsMap = Maps.newHashMap();
@Override
public List<MaintenanceCompany> getCompanyAndDepartmentTree() { List<MaintenanceCompany> mainTableList;
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>(); String type;
wrapper.select(MaintenanceCompany::getSequenceNbr, MaintenanceCompany::getName, MaintenanceCompany::getCode, LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<>();
MaintenanceCompany::getType, MaintenanceCompany::getBizCode, MaintenanceCompany::getParentId); wrapper.eq(MaintenanceCompany::getIsDelete, false);
wrapper.eq(MaintenanceCompany::getIsDelete, 0); switch (maintenanceType) {
wrapper.in(MaintenanceCompany::getType, Arrays.asList(COMPANY, DEPARTMENT)); case PERSON:
List<MaintenanceCompany> list = maintenanceCompanyMapper.selectList(wrapper); type = MAINTENANCE_PERSON;
if (list == null) { filedParamsMap = new HashMap<>();
return new ArrayList<>(); if (paramsMap.containsKey("status")) {
} filedParamsMap.put("status", paramsMap.get("status").toString());
list = list.stream().filter(o -> !ObjectUtils.isEmpty(o)).collect(Collectors.toList()); }
return list; mainTableList = this.checkMaintenanceCompanyList(wrapper, paramsMap);
} /*BUG 2503 人员头像存在附件中,获取附件信息返回前端 start*/
for (MaintenanceCompany m : mainTableList
@Override ) {
public List<MaintenanceCompany> getDepartmentAndPersonTree(long sequenceNbr) { m.setAttachments(sourceFileService.getAttachments(m.getSequenceNbr()));
List<MaintenanceCompany> departmentList = getDepartmentList(sequenceNbr); }
if (departmentList == null) { /* *BUG 2503 end*/
return new ArrayList<>(); List<Long> instanceIds = Lists.transform(mainTableList, MaintenanceCompany::getInstanceId);
} filedParamsMap.put("instanceIds", Joiner.on(",").join(instanceIds));
return departmentList.stream().filter(o -> !ObjectUtils.isEmpty(o)).collect(Collectors.toList()); break;
} case COMPANY:
type = MAINTENANCE_COMPANY;
@Override wrapper.eq(MaintenanceCompany::getType, maintenanceType.toUpperCase());
public List<MaintenanceCompany> getDepartmentList(long sequenceNbr) { mainTableList = this.list(wrapper);
MaintenanceCompany companyDetail = maintenanceCompanyMapper.selectById(sequenceNbr); break;
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>(); case DEPARTMENT:
wrapper.select(MaintenanceCompany::getSequenceNbr, MaintenanceCompany::getName, MaintenanceCompany::getCode, type = MAINTENANCE_DEPARTMENT;
MaintenanceCompany::getType, MaintenanceCompany::getBizCode, MaintenanceCompany::getParentId); wrapper.eq(MaintenanceCompany::getType, maintenanceType.toUpperCase());
wrapper.eq(MaintenanceCompany::getIsDelete, false); mainTableList = this.list(wrapper);
wrapper.in(MaintenanceCompany::getType, Arrays.asList(PERSON, DEPARTMENT)); break;
wrapper.likeRight(MaintenanceCompany::getCode, companyDetail.getCode()); default:
List<MaintenanceCompany> maintenanceCompanyList = maintenanceCompanyMapper.selectList(wrapper); throw new IllegalStateException("Unexpected maintenanceType: " + maintenanceType);
return maintenanceCompanyList; }
} if (StringUtils.isBlank(type)) {
return null;
}
IPage<Map<String, Object>> page = dynamicFormInstanceService.pageList(current, size, type, filedParamsMap);
public List<MaintenanceCompany> getPersonList(long sequenceNbr) { Map<Long, MaintenanceCompany> maintenanceCompanyMap = mainTableList.stream()
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>(); .collect(Collectors.toMap(MaintenanceCompany::getInstanceId, Function.identity()));
wrapper.select(MaintenanceCompany::getSequenceNbr, MaintenanceCompany::getName, MaintenanceCompany::getCode,
MaintenanceCompany::getType, MaintenanceCompany::getBizCode, MaintenanceCompany::getParentId);
wrapper.eq(MaintenanceCompany::getIsDelete, false);
wrapper.eq(MaintenanceCompany::getType, PERSON);
wrapper.eq(MaintenanceCompany::getParentId, sequenceNbr);
return maintenanceCompanyMapper.selectList(wrapper);
}
/** page.getRecords().forEach(r -> {
* 根据维保单位查询所有机场单位(返回List<Map>类型) 不带分页 MaintenanceCompany detail = maintenanceCompanyMap.get(Long.parseLong(r.get("instanceId").toString()));
* if (!ObjectUtils.isEmpty(detail)) {
* @param seq r.putAll(Bean.BeantoMap(detail));
* @return }
*/
public List<Map<String, Object>> queryOrgUsrMsg(Long seq) {
if (ValidationUtil.isEmpty(this.queryBySeq(seq))) {
throw new BadRequest("参数校验失败.");
} else {
List<Map<String, Object>> companys = new ArrayList<>();
// 机场单位列表基本信息
List<OrgUsrDto> orgUsrDtos = this.baseMapper.selectOrgUsrList(seq);
// 机场组装单位动态表单数据
orgUsrDtos.forEach(orgUsrDto -> {
Map<String, Object> map = Bean.BeantoMap(orgUsrDto);
mapCopy(dynamicFormInstanceService.getOneMap(orgUsrDto.getSequenceNbr(), OrgPersonEnum.公司.getKey()),
map);
companys.add(map);
});
return companys;
}
}
/** });
* 根据维保单位查询所有机场单位(返回List<Map>类型) 带分页 return page;
* }
* @param pageNum
* @param pageSize
* @param seq
* @param amosUserId
* @return
*/
public Page<Map<String, Object>> queryOrgUsrMsgPage(int pageNum, int pageSize, Long seq, String amosUserId) {
MaintenanceCompany maintenanceCompany = new MaintenanceCompany();
if (ValidationUtil.isEmpty(seq)) {
maintenanceCompany = getMaintenanceCompany(amosUserId);
seq = maintenanceCompany.getSequenceNbr();
}
// 机场单位列表基本信息
if (pageNum == -1 || pageSize == -1) {
pageSize = Integer.MAX_VALUE;
}
Page page = new Page(pageNum, pageSize);
Page<Map<String, Object>> companys = new Page<>(pageNum, pageSize);
Page<OrgUsrDto> pageResult = this.baseMapper.selectOrgUsrPageList(page, seq);
List<Map<String, Object>> finalResultMap = Lists.newArrayList();
// 机场组装单位动态表单数据
pageResult.getRecords().forEach(orgUsrDto -> {
Map<String, Object> map = Bean.BeantoMap(orgUsrDto);
mapCopy(dynamicFormInstanceService.getOneMap(orgUsrDto.getSequenceNbr(), OrgPersonEnum.公司.getKey()), map);
finalResultMap.add(map);
});
companys.setRecords(finalResultMap);
companys.setTotal(pageResult.getTotal());
companys.setPages(pageResult.getPages());
return companys;
}
/** public List<MaintenanceCompany> checkMaintenanceCompanyList(LambdaQueryWrapper<MaintenanceCompany> wrapper,
* 根据平台用户id查询登陆人所属维保单位 Map<String, Object> paramsMap) {
* if (paramsMap.containsKey("name")) {
* @param amosUserId wrapper.like(MaintenanceCompany::getName, paramsMap.get("name").toString());
* @return }
*/ if (paramsMap.containsKey("parentId") && !"-1".equals(paramsMap.get("parentId"))) {
public MaintenanceCompany getMaintenanceCompany(String amosUserId) { Long parentId = Long.parseLong(paramsMap.get("parentId").toString());
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>(); MaintenanceCompany company = getOne(
wrapper.eq(MaintenanceCompany::getIsDelete, false); new LambdaQueryWrapper<MaintenanceCompany>().eq(MaintenanceCompany::getSequenceNbr, parentId));
wrapper.eq(MaintenanceCompany::getAmosId, amosUserId); wrapper.likeRight(MaintenanceCompany::getCode, company.getCode());
MaintenanceCompany maintenanceCompany = this.baseMapper.selectOne(wrapper); }
wrapper.eq(MaintenanceCompany::getType, PERSON);
return maintenanceCompanyMapper.selectList(wrapper);
}
@Override
public Map<String, Object> findBySequenceNbr(Long sequenceNbr) {
MaintenanceCompany maintenanceCompany = maintenanceCompanyMapper.selectById(sequenceNbr);
String type;
switch (maintenanceCompany.getType()) {
case PERSON:
type = MAINTENANCE_PERSON;
break;
case DEPARTMENT:
type = MAINTENANCE_DEPARTMENT;
break;
default:
type = MAINTENANCE_COMPANY;
}
Map<String, Object> mainMap = Bean.BeantoMap(maintenanceCompany);
Map<String, Object> dynamicMap = dynamicFormInstanceService.getOneMap(maintenanceCompany.getInstanceId(), type);
mainMap.put("attachments", sourceFileService.getAttachments(maintenanceCompany.getSequenceNbr()));
mainMap.put("dynamicFormValue", dynamicMap);
return mainMap;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateMaintenanceCompanyDetail(MaintenanceCompany model) throws Exception {
return updateMaintenanceDetail(model, COMPANY);
}
public boolean updateMaintenanceDetail(MaintenanceCompany model, String type) throws Exception {
return updateDetail(model, type);
}
public boolean updateDetail(MaintenanceCompany model, String type) throws Exception {
// 1、更新动态表单数据
iOrgUsrService.updateDynamicFormInstance(model.getInstanceId(), model.getDynamicFormValue());
// 2、更新单位及子单位code
updateCode(model);
// 3、更新主表数据
model.setType(type);
this.updateById(model);
if (ValidationUtil.isEmpty(model.getParentId())) {
update(new LambdaUpdateWrapper<MaintenanceCompany>().set(MaintenanceCompany::getParentId, null).eq(MaintenanceCompany::getSequenceNbr, model.getSequenceNbr()));
}
// 4、更新附件
sourceFileService.saveAttachments(model.getSequenceNbr(), model.getAttachments());
return true;
}
/**
* 更新单位及子单位code
*
* @return company 维保单位/部门/人员
*/
public void updateCode(MaintenanceCompany company) {
MaintenanceCompany parent = getById(company.getParentId());
// 新父节点的code
String parentCode = "";
// 父节点不为空
if (!ValidationUtil.isEmpty(parent)) {
parentCode = parent.getCode();
}
// 旧父节点的code
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()));
if (!ValidationUtil.isEmpty(children)) {
String finalParentCode = parentCode;
children.forEach(i -> {
i.setCode(i.getCode().replaceFirst(oldParentCode, finalParentCode));
});
updateBatchById(children);
}
company.setCode(company.getCode().replaceFirst(oldParentCode, parentCode));
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateMaintenancePersonDetail(MaintenanceCompany model) throws Exception {
return updateMaintenanceDetail(model, PERSON);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateMaintenanceDepartmentDetail(MaintenanceCompany model) throws Exception {
return updateMaintenanceDetail(model, DEPARTMENT);
}
@Override
public List<MaintenanceCompany> getCompanyAndDepartmentTree() {
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.select(MaintenanceCompany::getSequenceNbr, MaintenanceCompany::getName, MaintenanceCompany::getCode,
MaintenanceCompany::getType, MaintenanceCompany::getBizCode, MaintenanceCompany::getParentId);
wrapper.eq(MaintenanceCompany::getIsDelete, 0);
wrapper.in(MaintenanceCompany::getType, Arrays.asList(COMPANY, DEPARTMENT));
List<MaintenanceCompany> list = maintenanceCompanyMapper.selectList(wrapper);
if (list == null) {
return new ArrayList<>();
}
list = list.stream().filter(o -> !ObjectUtils.isEmpty(o)).collect(Collectors.toList());
return list;
}
@Override
public List<MaintenanceCompany> getDepartmentAndPersonTree(long sequenceNbr) {
List<MaintenanceCompany> departmentList = getDepartmentList(sequenceNbr);
if (departmentList == null) {
return new ArrayList<>();
}
return departmentList.stream().filter(o -> !ObjectUtils.isEmpty(o)).collect(Collectors.toList());
}
@Override
public List<MaintenanceCompany> getDepartmentList(long sequenceNbr) {
MaintenanceCompany companyDetail = maintenanceCompanyMapper.selectById(sequenceNbr);
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.select(MaintenanceCompany::getSequenceNbr, MaintenanceCompany::getName, MaintenanceCompany::getCode,
MaintenanceCompany::getType, MaintenanceCompany::getBizCode, MaintenanceCompany::getParentId);
wrapper.eq(MaintenanceCompany::getIsDelete, false);
wrapper.in(MaintenanceCompany::getType, Arrays.asList(PERSON, DEPARTMENT));
wrapper.likeRight(MaintenanceCompany::getCode, companyDetail.getCode());
List<MaintenanceCompany> maintenanceCompanyList = maintenanceCompanyMapper.selectList(wrapper);
return maintenanceCompanyList;
}
public List<MaintenanceCompany> getPersonList(long sequenceNbr) {
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.select(MaintenanceCompany::getSequenceNbr, MaintenanceCompany::getName, MaintenanceCompany::getCode,
MaintenanceCompany::getType, MaintenanceCompany::getBizCode, MaintenanceCompany::getParentId);
wrapper.eq(MaintenanceCompany::getIsDelete, false);
wrapper.eq(MaintenanceCompany::getType, PERSON);
wrapper.eq(MaintenanceCompany::getParentId, sequenceNbr);
return maintenanceCompanyMapper.selectList(wrapper);
}
/**
* 根据维保单位查询所有机场单位(返回List<Map>类型) 不带分页
*
* @param seq
* @return
*/
public List<Map<String, Object>> queryOrgUsrMsg(Long seq) {
if (ValidationUtil.isEmpty(this.queryBySeq(seq))) {
throw new BadRequest("参数校验失败.");
} else {
List<Map<String, Object>> companys = new ArrayList<>();
// 机场单位列表基本信息
List<OrgUsrDto> orgUsrDtos = this.baseMapper.selectOrgUsrList(seq);
// 机场组装单位动态表单数据
orgUsrDtos.forEach(orgUsrDto -> {
Map<String, Object> map = Bean.BeantoMap(orgUsrDto);
mapCopy(dynamicFormInstanceService.getOneMap(orgUsrDto.getSequenceNbr(), OrgPersonEnum.公司.getKey()),
map);
companys.add(map);
});
return companys;
}
}
/**
* 根据维保单位查询所有机场单位(返回List<Map>类型) 带分页
*
* @param pageNum
* @param pageSize
* @param seq
* @param amosUserId
* @return
*/
public Page<Map<String, Object>> queryOrgUsrMsgPage(int pageNum, int pageSize, Long seq, String amosUserId) {
MaintenanceCompany maintenanceCompany = new MaintenanceCompany();
if (ValidationUtil.isEmpty(seq)) {
maintenanceCompany = getMaintenanceCompany(amosUserId);
seq = maintenanceCompany.getSequenceNbr();
}
// 机场单位列表基本信息
if (pageNum == -1 || pageSize == -1) {
pageSize = Integer.MAX_VALUE;
}
Page page = new Page(pageNum, pageSize);
Page<Map<String, Object>> companys = new Page<>(pageNum, pageSize);
Page<OrgUsrDto> pageResult = this.baseMapper.selectOrgUsrPageList(page, seq);
List<Map<String, Object>> finalResultMap = Lists.newArrayList();
// 机场组装单位动态表单数据
pageResult.getRecords().forEach(orgUsrDto -> {
Map<String, Object> map = Bean.BeantoMap(orgUsrDto);
mapCopy(dynamicFormInstanceService.getOneMap(orgUsrDto.getSequenceNbr(), OrgPersonEnum.公司.getKey()), map);
finalResultMap.add(map);
});
companys.setRecords(finalResultMap);
companys.setTotal(pageResult.getTotal());
companys.setPages(pageResult.getPages());
return companys;
}
/**
* 根据平台用户id查询登陆人所属维保单位
*
* @param amosUserId
* @return
*/
public MaintenanceCompany getMaintenanceCompany(String amosUserId) {
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.eq(MaintenanceCompany::getIsDelete, false);
wrapper.eq(MaintenanceCompany::getAmosId, amosUserId);
MaintenanceCompany maintenanceCompany = this.baseMapper.selectOne(wrapper);
// DynamicFormInstance dyFormInstance = dynamicFormInstanceService.getOne( // DynamicFormInstance dyFormInstance = dynamicFormInstanceService.getOne(
// new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getFieldCode, "amosAccount") // new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getFieldCode, "amosAccount")
// .eq(DynamicFormInstance::getFieldValue, amosUserId)); // .eq(DynamicFormInstance::getFieldValue, amosUserId));
if (ValidationUtil.isEmpty(maintenanceCompany)) { if (ValidationUtil.isEmpty(maintenanceCompany)) {
throw new BadRequest("维保账号不存在或未关联系统账号."); throw new BadRequest("维保账号不存在或未关联系统账号.");
} }
// MaintenanceCompany person = this.getOne(new LambdaQueryWrapper<MaintenanceCompany>() // MaintenanceCompany person = this.getOne(new LambdaQueryWrapper<MaintenanceCompany>()
// .eq(MaintenanceCompany::getInstanceId, dyFormInstance.getInstanceId())); // .eq(MaintenanceCompany::getInstanceId, dyFormInstance.getInstanceId()));
// if (ValidationUtil.isEmpty(person)) { // if (ValidationUtil.isEmpty(person)) {
...@@ -684,148 +692,148 @@ public class MaintenanceCompanyServiceImpl ...@@ -684,148 +692,148 @@ public class MaintenanceCompanyServiceImpl
// if (ValidationUtil.isEmpty(maintenanceCompany)) { // if (ValidationUtil.isEmpty(maintenanceCompany)) {
// throw new BadRequest("维保账号不存在或未关联系统账号."); // throw new BadRequest("维保账号不存在或未关联系统账号.");
// } // }
return maintenanceCompany; return maintenanceCompany;
} }
public List<Map<String, Object>> queryCompanyMsg() { public List<Map<String, Object>> queryCompanyMsg() {
List<Map<String, Object>> companysMsg = new ArrayList<>(); List<Map<String, Object>> companysMsg = new ArrayList<>();
LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>(); LambdaQueryWrapper<MaintenanceCompany> wrapper = new LambdaQueryWrapper<MaintenanceCompany>();
wrapper.eq(MaintenanceCompany::getIsDelete, false); wrapper.eq(MaintenanceCompany::getIsDelete, false);
wrapper.eq(MaintenanceCompany::getType, COMPANY); wrapper.eq(MaintenanceCompany::getType, COMPANY);
// 查询所有维保单位信息 // 查询所有维保单位信息
List<MaintenanceCompany> lists = maintenanceCompanyMapper.selectList(wrapper); List<MaintenanceCompany> lists = maintenanceCompanyMapper.selectList(wrapper);
//List<MaintenanceCompany> lists = this.list(); //List<MaintenanceCompany> lists = this.list();
lists.forEach(list -> { lists.forEach(list -> {
Map<String, Object> maintenanceCompany = new HashMap<>(); Map<String, Object> maintenanceCompany = new HashMap<>();
maintenanceCompany.put("id", list.getSequenceNbr()); maintenanceCompany.put("id", list.getSequenceNbr());
maintenanceCompany.put("code", list.getCode()); maintenanceCompany.put("code", list.getCode());
maintenanceCompany.put("name", list.getName()); maintenanceCompany.put("name", list.getName());
maintenanceCompany.put("type", 1); maintenanceCompany.put("type", 1);
maintenanceCompany.put("parentId", 0); maintenanceCompany.put("parentId", 0);
// 查询该维保单位下的业主信息 // 查询该维保单位下的业主信息
List<OrgUsrDto> orgUsrDtos = this.baseMapper.selectOrgUsrList(list.getSequenceNbr()); List<OrgUsrDto> orgUsrDtos = this.baseMapper.selectOrgUsrList(list.getSequenceNbr());
orgUsrDtos.forEach(orgUsrDto -> { orgUsrDtos.forEach(orgUsrDto -> {
Map<String, Object> airCompany = new HashMap<>(); Map<String, Object> airCompany = new HashMap<>();
airCompany.put("id", orgUsrDto.getSequenceNbr()); airCompany.put("id", orgUsrDto.getSequenceNbr());
airCompany.put("code", orgUsrDto.getBizOrgCode()); airCompany.put("code", orgUsrDto.getBizOrgCode());
airCompany.put("name", orgUsrDto.getBizOrgName()); airCompany.put("name", orgUsrDto.getBizOrgName());
airCompany.put("type", 2); airCompany.put("type", 2);
airCompany.put("parentId", list.getSequenceNbr()); airCompany.put("parentId", list.getSequenceNbr());
companysMsg.add(airCompany); companysMsg.add(airCompany);
}); });
companysMsg.add(maintenanceCompany); companysMsg.add(maintenanceCompany);
}); });
return companysMsg; return companysMsg;
} }
/** /**
* 复制map对象 * 复制map对象
* *
* @explain 将paramsMap中的键值对全部拷贝到resultMap中; * @param paramsMap 被拷贝对象
* @param paramsMap 被拷贝对象 * @param resultMap 拷贝后的对象
* @param resultMap 拷贝后的对象 * @explain 将paramsMap中的键值对全部拷贝到resultMap中;
*/ */
private static void mapCopy(Map paramsMap, Map resultMap) { private static void mapCopy(Map paramsMap, Map resultMap) {
if (resultMap == null) { if (resultMap == null) {
return; return;
} }
if (paramsMap == null) { if (paramsMap == null) {
return; return;
} }
Iterator it = paramsMap.entrySet().iterator(); Iterator it = paramsMap.entrySet().iterator();
while (it.hasNext()) { while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next(); Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey(); Object key = entry.getKey();
resultMap.put(key, paramsMap.get(key) != null ? paramsMap.get(key) : ""); resultMap.put(key, paramsMap.get(key) != null ? paramsMap.get(key) : "");
} }
} }
@Override @Override
public List<DynamicFormInstance> maintenancePersonExcleDtoToDynamicFormInstanceList(List<DynamicFormColumn> columns, public List<DynamicFormInstance> maintenancePersonExcleDtoToDynamicFormInstanceList(List<DynamicFormColumn> columns,
MaintenancePersonExcleDto maintenancePersonExcleDto, long instanceId, List<DynamicFormInstance> list) { MaintenancePersonExcleDto maintenancePersonExcleDto, long instanceId, List<DynamicFormInstance> list) {
Map<String, Object> maintenancePersonExcleDtoMap = Bean.BeantoMap(maintenancePersonExcleDto); Map<String, Object> maintenancePersonExcleDtoMap = Bean.BeantoMap(maintenancePersonExcleDto);
// 填充动态表单的属性 // 填充动态表单的属性
columns.stream().forEach(item -> { columns.stream().forEach(item -> {
if (maintenancePersonExcleDtoMap.containsKey(item.getFieldCode())) { if (maintenancePersonExcleDtoMap.containsKey(item.getFieldCode())) {
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance(); DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
String valueString = maintenancePersonExcleDtoMap.get(item.getFieldCode()).toString(); String valueString = maintenancePersonExcleDtoMap.get(item.getFieldCode()).toString();
Bean.copyExistPropertis(item, dynamicFormInstance); Bean.copyExistPropertis(item, dynamicFormInstance);
dynamicFormInstance.setAppKey(RequestContext.getAppKey()); dynamicFormInstance.setAppKey(RequestContext.getAppKey());
dynamicFormInstance.setInstanceId(instanceId); dynamicFormInstance.setInstanceId(instanceId);
dynamicFormInstance.setSequenceNbr(sequence.nextId()); dynamicFormInstance.setSequenceNbr(sequence.nextId());
dynamicFormInstance.setFormColumnId(item.getSequenceNbr()); dynamicFormInstance.setFormColumnId(item.getSequenceNbr());
dynamicFormInstance.setFieldValue(maintenancePersonExcleDtoMap.get(item.getFieldCode()) != null dynamicFormInstance.setFieldValue(maintenancePersonExcleDtoMap.get(item.getFieldCode()) != null
? maintenancePersonExcleDtoMap.get(item.getFieldCode()).toString() ? maintenancePersonExcleDtoMap.get(item.getFieldCode()).toString()
: ""); : "");
if (valueString.contains("@")) { if (valueString.contains("@")) {
String[] mapDetailArray = valueString.split("@"); String[] mapDetailArray = valueString.split("@");
dynamicFormInstance.setFieldValue(mapDetailArray[0]); dynamicFormInstance.setFieldValue(mapDetailArray[0]);
if (mapDetailArray.length > 1) { if (mapDetailArray.length > 1) {
dynamicFormInstance.setFieldValueLabel(mapDetailArray[1]); dynamicFormInstance.setFieldValueLabel(mapDetailArray[1]);
} }
} }
if (dynamicFormInstance != null && dynamicFormInstance.getSequenceNbr().longValue() > 0) { if (dynamicFormInstance != null && dynamicFormInstance.getSequenceNbr().longValue() > 0) {
list.add(dynamicFormInstance); list.add(dynamicFormInstance);
} }
} }
}); });
return list; return list;
} }
public boolean saveDynamicFormInstanceBatch(List<DynamicFormInstance> list) { public boolean saveDynamicFormInstanceBatch(List<DynamicFormInstance> list) {
dynamicFormInstanceService.saveBatch(list); dynamicFormInstanceService.saveBatch(list);
return false; return false;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean saveMaintenanceCompanyBatch(List<MaintenanceCompany> companyList, List<DynamicFormInstance> list) { public boolean saveMaintenanceCompanyBatch(List<MaintenanceCompany> companyList, List<DynamicFormInstance> list) {
saveDynamicFormInstanceBatch(list); saveDynamicFormInstanceBatch(list);
this.saveBatch(companyList); this.saveBatch(companyList);
return false; return false;
} }
/** /**
* 查询当前登陆用户所在维保单位下的维保人员列表部门列表,不分页 * 查询当前登陆用户所在维保单位下的维保人员列表部门列表,不分页
* *
* @param companyId * @param companyId
* @param userId * @param userId
* @return * @return
*/ */
public List<Map<String, Object>> getPersonListByCompanyId(Long companyId, String userId) { public List<Map<String, Object>> getPersonListByCompanyId(Long companyId, String userId) {
MaintenanceCompany company; MaintenanceCompany company;
if (ValidationUtil.isEmpty(companyId)) { if (ValidationUtil.isEmpty(companyId)) {
company = getMaintenanceCompany(userId); company = getMaintenanceCompany(userId);
if (ValidationUtil.isEmpty(company)) { if (ValidationUtil.isEmpty(company)) {
throw new BadRequest("用户不存在"); throw new BadRequest("用户不存在");
} }
} else { } else {
company = this.getById(companyId); company = this.getById(companyId);
} }
// 查询公司下人列表 // 查询公司下人列表
List<MaintenanceCompany> personList = list(new LambdaQueryWrapper<MaintenanceCompany>() List<MaintenanceCompany> personList = list(new LambdaQueryWrapper<MaintenanceCompany>()
.eq(MaintenanceCompany::getIsDelete, false).eq(MaintenanceCompany::getType, PERSON) .eq(MaintenanceCompany::getIsDelete, false).eq(MaintenanceCompany::getType, PERSON)
.likeRight(MaintenanceCompany::getCode, company.getCode())); .likeRight(MaintenanceCompany::getCode, company.getCode()));
List<Long> instanceIdList = Lists.transform(personList, MaintenanceCompany::getInstanceId); List<Long> instanceIdList = Lists.transform(personList, MaintenanceCompany::getInstanceId);
// 查询手机号 // 查询手机号
List<DynamicFormInstance> dynamicFormInstanceList = dynamicFormInstanceService List<DynamicFormInstance> dynamicFormInstanceList = dynamicFormInstanceService
.list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getFieldCode, "tel") .list(new LambdaQueryWrapper<DynamicFormInstance>().eq(DynamicFormInstance::getFieldCode, "tel")
.in(DynamicFormInstance::getInstanceId, instanceIdList)); .in(DynamicFormInstance::getInstanceId, instanceIdList));
Map<Long, List<DynamicFormInstance>> dyMap = dynamicFormInstanceList.stream() Map<Long, List<DynamicFormInstance>> dyMap = dynamicFormInstanceList.stream()
.collect(Collectors.groupingBy(DynamicFormInstance::getInstanceId)); .collect(Collectors.groupingBy(DynamicFormInstance::getInstanceId));
List<Map<String, Object>> resultList = Lists.newArrayList(); List<Map<String, Object>> resultList = Lists.newArrayList();
personList.forEach(person -> { personList.forEach(person -> {
Map<String, Object> map = Maps.newHashMap(); Map<String, Object> map = Maps.newHashMap();
map.put("sequenceNbr", person.getSequenceNbr()); map.put("sequenceNbr", person.getSequenceNbr());
map.put("name", person.getName()); map.put("name", person.getName());
map.put("tel", dyMap.get(person.getInstanceId()).get(0).getFieldValue()); map.put("tel", dyMap.get(person.getInstanceId()).get(0).getFieldValue());
resultList.add(map); resultList.add(map);
}); });
return resultList; return resultList;
} }
} }
\ No newline at end of file
...@@ -1312,7 +1312,8 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD ...@@ -1312,7 +1312,8 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
return executeSubmitDto; return executeSubmitDto;
} }
AgencyUserModel checkLeader = jcsFeignClient.getAmosIdByUserId(param.getReformLeaderId()).getResult(); 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()); reformJson.put("reformLeaderId", param.getReformLeaderId());
latentDanger.setReformJson(reformJson); latentDanger.setReformJson(reformJson);
Object result = workflowExecuteService.setTaskAssign(processInstanceId, checkLeader.getUserName()); Object result = workflowExecuteService.setTaskAssign(processInstanceId, checkLeader.getUserName());
......
...@@ -9,6 +9,8 @@ import org.aspectj.lang.JoinPoint; ...@@ -9,6 +9,8 @@ import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut; 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.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -25,6 +27,8 @@ import java.util.List; ...@@ -25,6 +27,8 @@ import java.util.List;
@Component @Component
public class EnumFillAop { public class EnumFillAop {
private static final Logger logger = LoggerFactory.getLogger(EnumFillAop.class);
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
...@@ -39,19 +43,27 @@ public class EnumFillAop { ...@@ -39,19 +43,27 @@ public class EnumFillAop {
@Before("fillEnum()") @Before("fillEnum()")
public void doBefore(JoinPoint joinPoint) { public void doBefore(JoinPoint joinPoint) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
// 获取隐患等级枚举
synchronized (this) { synchronized (this) {
// 获取隐患等级枚举
if (ValidationUtil.isEmpty(LatentDangerLevelEnum.supervisionDangerLevelEnumMap)) { if (ValidationUtil.isEmpty(LatentDangerLevelEnum.supervisionDangerLevelEnumMap)) {
List<DictionarieValueModel> dicResult = try {
Systemctl.dictionarieClient.dictValues(bizType + LatentDangerLevelEnum.dictCode).getResult(); List<DictionarieValueModel> dicResult =
dicResult.forEach(dic -> LatentDangerLevelEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey(), Systemctl.dictionarieClient.dictValues(bizType + LatentDangerLevelEnum.dictCode).getResult();
"", dic.getOrderNum())); dicResult.forEach(dic -> LatentDangerLevelEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey(),
"", dic.getOrderNum()));
} catch (Exception e) {
logger.debug(e.getMessage());
}
} }
// 获取治理方式枚举 // 获取治理方式枚举
if (ValidationUtil.isEmpty(LatentDangerReformTypeEnum.supervisionReformTypeEnumMap)) { try {
List<DictionarieValueModel> dicResult = if (ValidationUtil.isEmpty(LatentDangerReformTypeEnum.supervisionReformTypeEnumMap)) {
Systemctl.dictionarieClient.dictValues(bizType + LatentDangerReformTypeEnum.dictCode).getResult(); List<DictionarieValueModel> dicResult =
dicResult.forEach(dic -> LatentDangerReformTypeEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey())); 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());
} }
} }
// 获取治理状态枚举 // 获取治理状态枚举
......
...@@ -7,7 +7,6 @@ import com.google.common.base.Joiner; ...@@ -7,7 +7,6 @@ import com.google.common.base.Joiner;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; 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.DepartmentBo;
import com.yeejoin.amos.boot.biz.common.bo.RoleBo; import com.yeejoin.amos.boot.biz.common.bo.RoleBo;
import com.yeejoin.amos.boot.biz.common.service.impl.WorkflowExcuteServiceImpl; import com.yeejoin.amos.boot.biz.common.service.impl.WorkflowExcuteServiceImpl;
...@@ -328,7 +327,7 @@ public class LatentDangerServiceImpl implements ILatentDangerService { ...@@ -328,7 +327,7 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
riskSourceId = Long.parseLong(inputCheckDto.getRiskSourceId()); riskSourceId = Long.parseLong(inputCheckDto.getRiskSourceId());
} }
LatentDangerBo latentDangerBo = saveLatentDanger("", param.getRemark(), remark, userId, departmentId, LatentDangerBo latentDangerBo = saveLatentDanger("", "", remark, userId, departmentId,
businessKey, orgCode, dangerName, levelEnum.getCode(), businessKey, orgCode, dangerName, levelEnum.getCode(),
null, dangerTypeEnum, photoUrls, inputCheckDto.getCheckInputId(), riskSourceId, null, dangerTypeEnum, photoUrls, inputCheckDto.getCheckInputId(), riskSourceId,
position.get(inputCheckDto.getRiskSourceId())==null?"":position.get(inputCheckDto.getRiskSourceId()).toString(), InstanceKeyEnum.PATROL.getCode()); position.get(inputCheckDto.getRiskSourceId())==null?"":position.get(inputCheckDto.getRiskSourceId()).toString(), InstanceKeyEnum.PATROL.getCode());
...@@ -1234,7 +1233,7 @@ public class LatentDangerServiceImpl implements ILatentDangerService { ...@@ -1234,7 +1233,7 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
executeParam.getFlowJson(), executeParam.getDangerId(), role, executeTypeEnum.getName(),executeParam.getRemark()); executeParam.getFlowJson(), executeParam.getDangerId(), role, executeTypeEnum.getName(),executeParam.getRemark());
} else { } else {
if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患评审通过)) { if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患评审通过)) {
// 将定的治理人保存在日志记录 // 将定的治理人保存在日志记录
executeParam.getFlowJson().put("governUserId", governUserId); executeParam.getFlowJson().put("governUserId", governUserId);
} }
LatentDangerFlowRecordBo flowRecord = saveFlowRecord(executeJson.getString("id"), data.getString("name"), userId, departmentId, LatentDangerFlowRecordBo flowRecord = saveFlowRecord(executeJson.getString("id"), data.getString("name"), userId, departmentId,
...@@ -1243,9 +1242,16 @@ public class LatentDangerServiceImpl implements ILatentDangerService { ...@@ -1243,9 +1242,16 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
latentDangerBo.setDangerState(executeTypeEnum.getNextState().getCode().toString()); latentDangerBo.setDangerState(executeTypeEnum.getNextState().getCode().toString());
if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患常规治理)) { if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患常规治理)) {
latentDangerBo.setReformType(LatentDangerReformTypeEnum.常规整改.getCode().toString()); 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.setInferOtherThings(executeParam.getInferOtherThings());
latentDangerBo.setProblemDescription(executeParam.getRemark()); latentDangerBo.setProblemDescription(ValidationUtil.isEmpty(executeParam.getProblemDescription()) ?
executeParam.getRemark() : executeParam.getProblemDescription());
latentDangerBo.setReasonAnalysis(executeParam.getReasonAnalysis()); latentDangerBo.setReasonAnalysis(executeParam.getReasonAnalysis());
} else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理)) { } else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理)) {
latentDangerBo.setReformType(LatentDangerReformTypeEnum.延期治理.getCode().toString()); latentDangerBo.setReformType(LatentDangerReformTypeEnum.延期治理.getCode().toString());
...@@ -1258,10 +1264,21 @@ public class LatentDangerServiceImpl implements ILatentDangerService { ...@@ -1258,10 +1264,21 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患评审通过)) { if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患评审通过)) {
latentDangerBo.setReformLimitDate(DateUtil.str2Date(executeParam.getReformLimitDate(), DateUtil.DATETIME_DEFAULT_FORMAT)); latentDangerBo.setReformLimitDate(DateUtil.str2Date(executeParam.getReformLimitDate(), DateUtil.DATETIME_DEFAULT_FORMAT));
latentDangerBo.setDangerLevel(executeParam.getDangerLevel().toString()); 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.指定治理执行人 // 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.隐患延期治理车间部门审核通过)) { if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理车间部门审核通过)) {
...@@ -1269,6 +1286,10 @@ public class LatentDangerServiceImpl implements ILatentDangerService { ...@@ -1269,6 +1286,10 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
if (executeParam.getNeedCompanyVerify() == 0) { if (executeParam.getNeedCompanyVerify() == 0) {
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请.getCode().toString()); latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请.getCode().toString());
latentDangerBo.setReformLimitDate(latentDangerBo.getDelayLimitDate()); latentDangerBo.setReformLimitDate(latentDangerBo.getDelayLimitDate());
if (!assignGovernUser(latentDangerBo, executeSubmitDto)) {
return executeSubmitDto;
}
} else {// 延期治理评审通过且 需要 公司审核 } else {// 延期治理评审通过且 需要 公司审核
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请待公司审核.getCode().toString()); latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请待公司审核.getCode().toString());
LatentDangerFlowRecordBo recordBo = LatentDangerFlowRecordBo recordBo =
...@@ -1283,15 +1304,16 @@ public class LatentDangerServiceImpl implements ILatentDangerService { ...@@ -1283,15 +1304,16 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
|| LatentDangerExcuteTypeEnum.隐患延期治理公司审核拒绝.equals(executeTypeEnum) || LatentDangerExcuteTypeEnum.隐患延期治理公司审核拒绝.equals(executeTypeEnum)
|| LatentDangerExcuteTypeEnum.隐患验证拒绝.equals(executeTypeEnum)) { || LatentDangerExcuteTypeEnum.隐患验证拒绝.equals(executeTypeEnum)) {
latentDangerBo.setDangerState(LatentDangerStateEnum.待治理.getCode().toString()); latentDangerBo.setDangerState(LatentDangerStateEnum.待治理.getCode().toString());
// 获取第一次评审时选择的治理人 if (!assignGovernUser(latentDangerBo, executeSubmitDto)) {
LatentDangerFlowRecordBo record = latentDangerFlowRecordMapper.getByDangerIdAndActionFlag(latentDangerBo.getId(), "隐患评审"); return executeSubmitDto;
JSONObject recordObj = JSONObject.parseObject(record.getFlowJson());
if (!ValidationUtil.isEmpty(recordObj.get("governUserId"))) {
workflowExecuteService.setTaskAssign(latentDangerBo.getInstanceId(), (String) recordObj.get("governUserId"));
} }
} else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理公司审核通过)) { } else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理公司审核通过)) {
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请.getCode().toString()); latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请.getCode().toString());
latentDangerBo.setReformLimitDate(latentDangerBo.getDelayLimitDate()); latentDangerBo.setReformLimitDate(latentDangerBo.getDelayLimitDate());
if (!assignGovernUser(latentDangerBo, executeSubmitDto)) {
return executeSubmitDto;
}
} /**else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理公司审核拒绝)) { } /**else if (executeTypeEnum.equals(LatentDangerExcuteTypeEnum.隐患延期治理公司审核拒绝)) {
// TODO 待需求确认是回到部门审核还是回到隐患治理节点 // TODO 待需求确认是回到部门审核还是回到隐患治理节点
latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请待车间部门审核.getCode().toString()); latentDangerBo.setDangerState(LatentDangerStateEnum.延期治理申请待车间部门审核.getCode().toString());
...@@ -1310,6 +1332,29 @@ public class LatentDangerServiceImpl implements ILatentDangerService { ...@@ -1310,6 +1332,29 @@ public class LatentDangerServiceImpl implements ILatentDangerService {
return executeSubmitDto; 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, private void sendMessage(LatentDangerBo latentDangerBo, LatentDangerExcuteTypeEnum excuteTypeEnum,
LatentDangerPatrolBo patrolBo, String flowTaskName, String informerList, LatentDangerPatrolBo patrolBo, String flowTaskName, String informerList,
String userRealName, String departmentName) { 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