Commit a2995816 authored by suhuiguang's avatar suhuiguang

1.维保公司修改

parent 1cd43584
...@@ -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
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