Commit 04ddc68d authored by chenzhao's avatar chenzhao

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents b195444c 42e451f6
......@@ -37,10 +37,13 @@ public class DynamicFormInitDto implements Serializable{
@ApiModelProperty(value = "提交表单附加字段")
private DynamicFormInstanceDto formItemDescr;
@ApiModelProperty(value = "接口地址")
@ApiModelProperty(value = "配置")
private String columnConfig;
private int sort;
@ApiModelProperty(value = "接口地址")
private String url;
public DynamicFormInitDto() {
......
package com.yeejoin.amos.boot.module.common.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 单位归属
*
* @author gaojianqiang
* @date 2021-08-19
*/
@Data
@ApiModel(value = "UserUnitDto", description = "用户单位归属")
public class UserUnitDto {
@ApiModelProperty(value = "人员类型1-维保公司;2-业主单位")
private String identityType;
@ApiModelProperty(value = "人员id")
private String personSeq;
@ApiModelProperty(value = "人员名称")
private String personName;
@ApiModelProperty(value = "公司id")
private String companyId;
}
package com.yeejoin.amos.boot.module.common.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum UserUnitTypeEnum {
MAINTENANCE_COMPANY("1", "维保公司"),
OWNER_UNIT("2", "业主单位");
private String value;
private String name;
}
......@@ -68,4 +68,6 @@ public interface OrgUsrMapper extends BaseMapper<OrgUsr> {
* 查询单位基本信息列表和单位下所有的重点部位数量。
*/
List<OrgUsrTreeDto> getCompanyAndKeySite(Long companyId);
List<UserUnitDto> getUserUnit(String id, String type, String code);
}
package com.yeejoin.amos.boot.module.common.api.service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.*;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 机构/部门/人员表 服务类
......@@ -18,163 +16,172 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
* @date 2021-06-18
*/
public interface IOrgUsrService {
/**
* 查询上级单位
* @param parent_id
* @return
*/
/**
* 查询上级单位
*
* @param parent_id
* @return
*/
String selectUpUnitByParam(String parent_id);
/**
* 获取父级
* @param topId
* @param entityList
* @param packageURL
* @param IDMethodName
* @param IDHierarchy
* @param NAMEMethodName
* @param PARENTIDMethodName
* @param OrgTypeMethodName
* @return
* @throws Exception
*/
List<OrgMenuDto> getTree(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy,
String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception;
/**
* 获取父级
*
* @param topId
* @param entityList
* @param packageURL
* @param IDMethodName
* @param IDHierarchy
* @param NAMEMethodName
* @param PARENTIDMethodName
* @param OrgTypeMethodName
* @return
* @throws Exception
*/
List<OrgMenuDto> getTree(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy,
String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception;
/**
* 获取子数据集合
*
* @param topId
* @param entityList
* @param packageURL
* @param IDMethodName
* @param IDHierarchy
* @param NAMEMethodName
* @param PARENTIDMethodName
* @param OrgTypeMethodName
* @return
* @throws Exception
*/
List<OrgMenuDto> getSub(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy,
String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception;
/**
* 组装融合调度单位人员信息
*
* @param ids
* @return
* @throws Exception
*/
List<Map<String, Object>> returnCompanyPersonMsg(List<Long> ids) throws Exception;
/**
* 获取动态表单数据
*
* @param id
* @return
* @throws Exception
*/
List<FormValue> getFormValue(Long id) throws Exception;
/**
* 保存 机构/部门/人员基本信息
*
* @param
* @throws Exception
*/
void saveOrgUsr(OrgUsr orgUsr, OrgUsr oriOrgUsr) throws Exception;
/**
* 新增机构/部门/人员基本信息和动态表单数据
*
* @param orgUsr
* @param alertFromValuelist
*/
void saveOrgUsrDynamicFormInstance(OrgUsr orgUsr, List<DynamicFormInstance> alertFromValuelist) throws Exception;
/**
* 更新机构/部门/人员基本信息和动态表单数据
*
* @param instanceId 实例id
* @param fromValueList 动态表单数据列表
* @throws Exception
*/
void updateDynamicFormInstance(Long instanceId, List<DynamicFormInstance> fromValueList) throws Exception;
/**
* @param id
* @throws Exception
*/
Map<String, Object> selectForShowById(OrgUsr orgUsr, Long id) throws Exception;
List<OrgUsr> selectCompanyDepartmentMsg();
void saveOrgUsr(OrgUsrDto OrgUsrDto) throws Exception;
void saveOrgPerson(OrgPersonDto OrgPersonDto) throws Exception;
void updateByIdOrgUsr(OrgUsrDto OrgUsrDto, Long id) throws Exception;
void updateByIdOrgPerson(OrgPersonDto OrgPersonDto, Long id) throws Exception;
OrgUsrFormDto selectCompanyById(Long id) throws Exception;
IPage bizOrgTypeListPage(String pageNum, String pageSize, String bizOrgType) throws Exception;
void saveDepartment(List<OrgDepartmentDto> OrgDepartmentDto, Long id) throws Exception;
void saveCompany(List<OrgUsrDto> OrgUsrDto) throws Exception;
OrgPersonFormDto selectPersonById(Long id) throws Exception;
OrgPersonFormDto selectPersonByIdDetail(Long id) throws Exception;
List<OrgMenuDto> selectPersonTree() throws Exception;
void savePersonList(List<OrgPersonDto> OrgPersonDto) throws Exception;
void saveOrgDepartment(OrgDepartmentDto OrgDepartmentDto) throws Exception;
void updateByIdOrgDepartment(OrgDepartmentDto OrgDepartmentDto, Long id) throws Exception;
OrgDepartmentFormDto selectDepartmentById(Long id) throws Exception;
List<Map<String, Object>> selectForShowByListId(List<Long> ids) throws Exception;
/**
* * @param null
*
* @return <PRE>
* author tw
* date 2021/7/20
* </PRE>
* 列表
*/
List<CompanyDto> listContractDto(Integer pageNum, Integer pageSize, RequestData requestData);
/**
* 获取子数据集合
* @param topId
* @param entityList
* @param packageURL
* @param IDMethodName
* @param IDHierarchy
* @param NAMEMethodName
* @param PARENTIDMethodName
* @param OrgTypeMethodName
* @return
* @throws Exception
*/
List<OrgMenuDto> getSub(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy,
String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception;
/**
* * @param null
*
* @return <PRE>
* author tw
* date 2021/7/20
* </PRE>
* 统计
*/
Integer listContractDtoCount(RequestData par);
/**
* 组装融合调度单位人员信息
* @param ids
* @return
* @throws Exception
*/
List<Map<String, Object>> returnCompanyPersonMsg(List<Long> ids) throws Exception;
/**
* * @param null
*
* @return <PRE>
* author tw
* date 2021/7/26
* </PRE>
*/
/**
* 获取动态表单数据
* @param id
* @return
* @throws Exception
*/
List<FormValue> getFormValue(Long id) throws Exception;
List<OrgUsrzhDto> getOrgUsrzhDto(String name);
/**
* 保存 机构/部门/人员基本信息
* @param
* @throws Exception
*/
void saveOrgUsr (OrgUsr orgUsr, OrgUsr oriOrgUsr) throws Exception;
List<ESOrgUsrDto> selectByIddata(String name);
/**
* 新增机构/部门/人员基本信息和动态表单数据
* @param orgUsr
* @param alertFromValuelist
*/
void saveOrgUsrDynamicFormInstance (OrgUsr orgUsr,List<DynamicFormInstance> alertFromValuelist)throws Exception;
List<Map<String, Object>> getparent();
/**
* 更新机构/部门/人员基本信息和动态表单数据
*
* @param instanceId 实例id
* @param fromValueList 动态表单数据列表
* @throws Exception
*/
void updateDynamicFormInstance(Long instanceId, List<DynamicFormInstance> fromValueList)throws Exception;
List<OrgUsrExcelDto> exportToExcel();
/**
*
* @param id
* @throws Exception
*/
Map<String, Object> selectForShowById (OrgUsr orgUsr,Long id) throws Exception;
List<OrgUsr> selectCompanyDepartmentMsg();
void saveOrgUsr( OrgUsrDto OrgUsrDto) throws Exception;
void saveOrgPerson( OrgPersonDto OrgPersonDto) throws Exception;
void updateByIdOrgUsr(OrgUsrDto OrgUsrDto,Long id) throws Exception;
void updateByIdOrgPerson(OrgPersonDto OrgPersonDto,Long id) throws Exception;
OrgUsrFormDto selectCompanyById(Long id) throws Exception;
IPage bizOrgTypeListPage(String pageNum, String pageSize, String bizOrgType) throws Exception;
void saveDepartment(List<OrgDepartmentDto> OrgDepartmentDto, Long id)throws Exception;
void saveCompany(List<OrgUsrDto> OrgUsrDto)throws Exception;
OrgPersonFormDto selectPersonById(Long id) throws Exception;
OrgPersonFormDto selectPersonByIdDetail(Long id) throws Exception;
List<OrgMenuDto> selectPersonTree() throws Exception;
void savePersonList (List <OrgPersonDto> OrgPersonDto)throws Exception;
void saveOrgDepartment(OrgDepartmentDto OrgDepartmentDto) throws Exception;
void updateByIdOrgDepartment ( OrgDepartmentDto OrgDepartmentDto,Long id) throws Exception;
OrgDepartmentFormDto selectDepartmentById(Long id) throws Exception;
List<Map<String, Object>> selectForShowByListId(List<Long> ids) throws Exception;
/**
* * @param null
* @return
* <PRE>
* author tw
* date 2021/7/20
* </PRE>
* 列表
*/
List<CompanyDto> listContractDto(Integer pageNum, Integer pageSize, RequestData requestData);
/**
* * @param null
* @return
* <PRE>
* author tw
* date 2021/7/20
* </PRE>
* 统计
*/
Integer listContractDtoCount(RequestData par);
/**
* * @param null
* @return
* <PRE>
* author tw
* date 2021/7/26
* </PRE>
*/
List<OrgUsrzhDto> getOrgUsrzhDto(String name);
List<ESOrgUsrDto> selectByIddata(String name);
List< Map<String,Object>> getparent();
List< OrgUsrExcelDto> exportToExcel();
UserUnitDto getUserUnit(String id, String type, String code);
/**
* 根据登陆人获取公司部门人员树
......
......@@ -307,8 +307,28 @@ LEFT JOIN (
FROM important_companys
</select>
<select id="getUserUnit" resultType="com.yeejoin.amos.boot.module.common.api.dto.UserUnitDto">
SELECT
u.sequence_nbr AS personSeq,
u.biz_org_name AS personName,
'2' AS identityType,
IFNULL( LEFT ( u.biz_org_code, 6 ), '' ) AS companyId
FROM
`cb_org_usr` u
<where>
<if test="id != null and id != ''">
u.amos_org_id = #{id}
</if>
<if test="type != null and type != ''">
AND u.biz_org_type = #{type}
</if>
<if test="code != null and code != ''">
AND u.biz_org_code LIKE CONCAT(#{code}, '%')
</if>
</where>
ORDER BY
u.sequence_nbr DESC
</select>
<select id="exportToExcel" resultType="com.yeejoin.amos.boot.module.common.api.dto.OrgUsrExcelDto">
select
a.biz_org_name bizOrgName,
......
package com.yeejoin.amos.boot.module.common.biz.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.yeejoin.amos.boot.module.common.api.dto.*;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -29,18 +8,25 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.common.api.dto.CompanyPerson;
import com.yeejoin.amos.boot.module.common.api.dto.ESOrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgDepartmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgMenuDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrFormDto;
import com.yeejoin.amos.boot.module.common.api.dto.*;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.biz.service.impl.ESOrgUsrService;
import com.yeejoin.amos.boot.module.common.biz.service.impl.OrgUsrServiceImpl;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
......@@ -52,14 +38,14 @@ import io.swagger.annotations.ApiOperation;
@RestController
@Api(tags = "单位Api")
@RequestMapping(value = "/org-usr")
public class OrgUsrController extends BaseController {
public class OrgUsrController extends BaseController {
@Autowired
OrgUsrServiceImpl iOrgUsrService;
@Autowired
ESOrgUsrService eSOrgUsrService;
/**
* 新增单位信息
*
......@@ -69,8 +55,8 @@ public class OrgUsrController extends BaseController {
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增单位信息", notes = "新增单位信息")
public ResponseModel<?> saveOrgUsr(HttpServletRequest request, @RequestBody OrgUsrDto OrgUsrVo) throws Exception {
OrgUsrVo.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
iOrgUsrService.saveOrgUsr(OrgUsrVo);
OrgUsrVo.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
iOrgUsrService.saveOrgUsr(OrgUsrVo);
return ResponseHelper.buildResponse(null);
}
......@@ -87,13 +73,13 @@ public class OrgUsrController extends BaseController {
// 删除时,只作逻辑删除
iOrgUsrService.update(new UpdateWrapper<OrgUsr>().eq("sequence_nbr", id).set("is_delete", CommonConstant.IS_DELETE_01));
try {
eSOrgUsrService.deleteById(id);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
eSOrgUsrService.deleteById(id);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
return ResponseHelper.buildResponse(null);
}
......@@ -107,8 +93,8 @@ public class OrgUsrController extends BaseController {
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "更新单位数据", notes = "更新单位数据")
public ResponseModel<?> updateByIdOrgUsr(HttpServletRequest request, @RequestBody OrgUsrDto OrgUsrVo, @PathVariable Long id) throws Exception {
OrgUsrVo.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
iOrgUsrService.updateByIdOrgUsr(OrgUsrVo,id);
OrgUsrVo.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
iOrgUsrService.updateByIdOrgUsr(OrgUsrVo, id);
return ResponseHelper.buildResponse(null);
}
......@@ -123,7 +109,7 @@ public class OrgUsrController extends BaseController {
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取单位详情", notes = "获取单位详情")
public ResponseModel<OrgUsrFormDto> selectById(HttpServletRequest request, @PathVariable Long id) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.selectCompanyById(id));
return ResponseHelper.buildResponse(iOrgUsrService.selectCompanyById(id));
}
......@@ -137,48 +123,48 @@ public class OrgUsrController extends BaseController {
@RequestMapping(value = "/selectByBizOrgType/{bizOrgType}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据bizOrgType分页查询", notes = "根据bizOrgType分页查询")
public ResponseModel<IPage<OrgUsr>> bizOrgTypeListPage(String pageNum, String pageSize, @PathVariable String bizOrgType) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.page( iOrgUsrService.bizOrgTypeListPage(pageNum,pageSize,bizOrgType)));
return ResponseHelper.buildResponse(iOrgUsrService.page(iOrgUsrService.bizOrgTypeListPage(pageNum, pageSize, bizOrgType)));
}
/**
*
* 获取单位部门树
*
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyTree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取单位部门树(key为物理主键)", notes = "获取单位部门树(key为物理主键)\"")
public ResponseModel< List<OrgMenuDto>>selectCompanyTree() throws Exception {
public ResponseModel<List<OrgMenuDto>> selectCompanyTree() throws Exception {
List<OrgMenuDto> menus = iOrgUsrService.getTree(null, iOrgUsrService.selectCompanyDepartmentMsg(), OrgUsr.class.getName(), "getSequenceNbr", 2, "getBizOrgName", "getParentId", "getBizOrgType");
return ResponseHelper.buildResponse(menus);
}
/**
*
* 获取单位部门树
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/orgTree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取单位部门树(bizOrgCode为物理主键)", notes = "获取单位部门树(bizOrgCode为物理主键)\"")
public ResponseModel< List<OrgMenuDto>>selectCompanyTreeCode() throws Exception {
List<OrgMenuDto> menus = OrgUsrServiceImpl.buildTreeParallel(iOrgUsrService.selectCompanyDepartmentMsg());
return ResponseHelper.buildResponse(menus);
}
/**
* 获取单位部门树
*
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/orgTree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取单位部门树(bizOrgCode为物理主键)", notes = "获取单位部门树(bizOrgCode为物理主键)\"")
public ResponseModel<List<OrgMenuDto>> selectCompanyTreeCode() throws Exception {
List<OrgMenuDto> menus = OrgUsrServiceImpl.buildTreeParallel(iOrgUsrService.selectCompanyDepartmentMsg());
return ResponseHelper.buildResponse(menus);
}
/**
* 获取单位部门树
*
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/org/company/tree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取单位树(bizOrgCode为物理主键)", notes = "获取单位树(bizOrgCode为物理主键)")
public ResponseModel< List<OrgMenuDto>> getCompanyTree() {
public ResponseModel<List<OrgMenuDto>> getCompanyTree() {
List<OrgMenuDto> menus = OrgUsrServiceImpl.buildTreeParallel(iOrgUsrService.selectCompanyList());
return ResponseHelper.buildResponse(menus);
}
......@@ -239,7 +225,7 @@ public class OrgUsrController extends BaseController {
@RequestMapping(value = "/saveDepartment", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "导入部门信息", notes = "导入部门信息")
public ResponseModel<?> saveDepartment(HttpServletRequest request, @RequestBody List<OrgDepartmentDto> OrgDepartmentVo, @PathVariable Long id) throws Exception {
iOrgUsrService.saveDepartment(OrgDepartmentVo,id);
iOrgUsrService.saveDepartment(OrgDepartmentVo, id);
return ResponseHelper.buildResponse(null);
}
......@@ -252,8 +238,8 @@ public class OrgUsrController extends BaseController {
@RequestMapping(value = "/saveCompany", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "导入单位信息", notes = "导入单位信息")
public ResponseModel<?> saveCompany(HttpServletRequest request, @RequestBody List<OrgUsrDto> OrgUsrVo) throws Exception {
iOrgUsrService.saveCompany(OrgUsrVo);
return ResponseHelper.buildResponse(null);
iOrgUsrService.saveCompany(OrgUsrVo);
return ResponseHelper.buildResponse(null);
}
/**
......@@ -265,10 +251,10 @@ public class OrgUsrController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{ids}/users", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id获取单位人员列表", notes = "根据id获取单位人员列表")
public ResponseModel<List<Map<String, Object>> > selectUsersByOrgCode(HttpServletRequest request, @PathVariable List<Long> ids) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.returnCompanyPersonMsg(ids)) ;
public ResponseModel<List<Map<String, Object>>> selectUsersByOrgCode(HttpServletRequest request, @PathVariable List<Long> ids) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.returnCompanyPersonMsg(ids));
}
/**
* 根据id获取单位人员列表
*
......@@ -279,13 +265,13 @@ public class OrgUsrController extends BaseController {
@RequestMapping(value = "/company/{ids}/person", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id获取单位人员列表", notes = "根据id获取单位人员列表")
public ResponseModel<List<CompanyPerson>> selectCompanyPerson(@PathVariable List<Long> ids) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.returnCompanyPerson(ids)) ;
return ResponseHelper.buildResponse(iOrgUsrService.returnCompanyPerson(ids));
}
/**
* 根据id获取单位人员列表
*
* @param ids
* @param amosUserId
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
......@@ -294,44 +280,44 @@ public class OrgUsrController extends BaseController {
public ResponseModel<OrgUsrDto> selectCompany(@PathVariable String amosUserId) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.getOrg(amosUserId));
}
/**
* 根据名称模糊匹配
*
* @param id
* @param name
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/getList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据名称模糊匹配", notes = "根据名称模糊匹配")
public ResponseModel<List<ESOrgUsrDto>> selectById(HttpServletRequest request, String name) throws Exception {
return ResponseHelper.buildResponse(eSOrgUsrService.queryByKeys(name));
return ResponseHelper.buildResponse(eSOrgUsrService.queryByKeys(name));
}
/**
* 根据名称模糊匹配
*
* @param id
* @param name
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/getListdata", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据名称模糊匹配单位", notes = "根据名称模糊匹配单位")
public ResponseModel<List<ESOrgUsrDto>> selectByIddata(HttpServletRequest request, String name) throws Exception {
return ResponseHelper.buildResponse(eSOrgUsrService.queryByKeys(name));
return ResponseHelper.buildResponse(eSOrgUsrService.queryByKeys(name));
}
/**
*
* 获取单位部门树
*
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyTreeByUser", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据登陆人获取单位部门树", notes = "根据登陆人获取单位部门树")
public ResponseModel< List<OrgMenuDto>>selectCompanyTreeByUser() throws Exception {
public ResponseModel<List<OrgMenuDto>> selectCompanyTreeByUser() throws Exception {
// 获取登陆人角色
AgencyUserModel user = getUserInfo();
List<OrgMenuDto> menus = iOrgUsrService.companyTreeByUser(user);
......@@ -339,15 +325,15 @@ public class OrgUsrController extends BaseController {
}
/**
*
* 获取单位部门树
*
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyUserTreeByUser", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据登陆人获取单位部门用户树", notes = "根据登陆人获取单位部门用户树")
public ResponseModel< List<OrgMenuDto>>companyUserTreeByUser() {
public ResponseModel<List<OrgMenuDto>> companyUserTreeByUser() {
// 获取登陆人角色
AgencyUserModel user = getUserInfo();
List<OrgMenuDto> menus = iOrgUsrService.companyUserTreeByUser(user);
......@@ -355,19 +341,33 @@ public class OrgUsrController extends BaseController {
}
/**
*
* 获取单位列表
*
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyListByUser", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据登陆人获取单位列表", notes = "根据登陆人获取单位列表")
public ResponseModel< List<OrgUsrTreeDto>> companyListByUser() {
public ResponseModel<List<OrgUsrTreeDto>> companyListByUser() {
// 获取登陆人角色
AgencyUserModel user = getUserInfo();
List<OrgUsrTreeDto> menus = iOrgUsrService.companyListByUser(user);
return ResponseHelper.buildResponse(menus);
}
/**
* 获取用户单位归属
*
* @param id
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/getUserUnit", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取用户单位归属", notes = "获取用户单位归属")
public ResponseModel<UserUnitDto> getUserUnit(@RequestParam String id, @RequestParam String type, @RequestParam String code) throws Exception {
return ResponseHelper.buildResponse(iOrgUsrService.getUserUnit(id, type, code));
}
}
\ No newline at end of file
......@@ -66,6 +66,7 @@ public class DynamicFormColumnServiceImpl extends BaseService<DynamicFormColumnD
QueryWrapper<DynamicFormColumn> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("group_code", code);
queryWrapper.eq("is_delete", false);
queryWrapper.orderByAsc("sort");
List<DynamicFormColumn> dynamicFormColumn = this.list(queryWrapper);
List<DynamicFormInitDto> listForm = new ArrayList<DynamicFormInitDto>();
......@@ -76,9 +77,9 @@ public class DynamicFormColumnServiceImpl extends BaseService<DynamicFormColumnD
dynamicForm.getFieldType().equals("string") ||
dynamicForm.getFieldType().equals("datetime") ||
dynamicForm.getFieldType().equals("textarea") ||
dynamicForm.getFieldType().equals("upload") ||
dynamicForm.getFieldType().equals("tagging") ||
dynamicForm.getFieldType().equals("inputBitmap")) {
dynamicForm.getFieldType().equals("upload") ||
dynamicForm.getFieldType().equals("tagging") ||
dynamicForm.getFieldType().equals("inputBitmap")) {
DynamicFormInitDto vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(), null);
......@@ -161,6 +162,20 @@ public class DynamicFormColumnServiceImpl extends BaseService<DynamicFormColumnD
vo.setSort(dynamicFormValue.getSort());
listForm.add(vo);
break;
case "url":
vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(new ArrayList<>()), columnConfigJson.toJSONString());
vo.setUrl(columnConfigJson.getString("url"));
dynamicFormValue = new DynamicFormInstanceDto();
BeanUtils.copyProperties(dynamicForm, dynamicFormValue);
dynamicFormValue.setSequenceNbr(null);
dynamicFormValue.setFormColumnId(dynamicForm.getSequenceNbr());
dynamicFormValue.setAppKey(appKey);
vo.setFormItemDescr(dynamicFormValue);
vo.setSort(dynamicFormValue.getSort());
listForm.add(vo);
break;
default:
vo = new DynamicFormInitDto(dynamicForm.getFieldCode(), dynamicForm.getFieldName(),
dynamicForm.getFieldType(), new SelectItems(new ArrayList<>()), null);
......
......@@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -41,468 +42,468 @@ import java.util.stream.Collectors;
@Service
public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapper> implements IOrgUsrService {
@Autowired
DynamicFormInstanceServiceImpl alertFormValueServiceImpl;
@Autowired
DynamicFormColumnServiceImpl alertFormServiceImpl;
@Resource
OrgUsrMapper orgUsrMapper;
@Autowired
SupervisionFeign supervisionFeign;
@Autowired
ESOrgUsrService eSOrgUsrService;
@Override
public String selectUpUnitByParam(String id) {
return this.baseMapper.selectUpUnitByParam(id);
}
public static List<OrgMenuDto> buildTreeParallel(List<OrgUsr> list) {
List<OrgMenuDto> menuList = list.stream().map(o -> {
OrgMenuDto menu = new OrgMenuDto(o.getSequenceNbr(), o.getBizOrgName(),
ObjectUtils.isEmpty(o.getParentId()) ? 0L : Long.valueOf(o.getParentId()), o.getBizOrgType(), false,
o.getBizOrgCode());
return menu;
}).collect(Collectors.toList());
List<OrgMenuDto> result = new ArrayList<>();
Map<Long, OrgMenuDto> map = new HashMap<>(menuList.size());
menuList.forEach(e -> map.put(e.getKey(), e));
Set<? extends Map.Entry<Long, ? extends OrgMenuDto>> entries = map.entrySet();
entries.parallelStream().forEach(entry -> {
OrgMenuDto value = entry.getValue();
if (value != null) {
OrgMenuDto treeDto = map.get(value.getParentId());
if (treeDto != null) {
List<OrgMenuDto> children = treeDto.getChildren();
if (children == null) {
children = new ArrayList<>();
treeDto.setChildren(children);
}
children.add(value);
} else {
result.add(value);
}
}
});
return result;
}
@Override
public List<OrgMenuDto> getTree(Long topId, Collection entityList, String packageURL, String IDMethodName,
int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName)
throws Exception {
List<OrgMenuDto> resultList = new ArrayList<>();
Class<?> clazz = Class.forName(packageURL);
Method IDMethodNameme = null;
switch (IDHierarchy) {
case 1:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
case 2:
IDMethodNameme = clazz.getSuperclass().getDeclaredMethod(IDMethodName);
break;
case 3:
IDMethodNameme = clazz.getSuperclass().getSuperclass().getDeclaredMethod(IDMethodName);
break;
default:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
}
Method NAMEMethodNameme = clazz.getDeclaredMethod(NAMEMethodName);
Method PARENTIDMethodNameme = clazz.getDeclaredMethod(PARENTIDMethodName);
Method OrgTypeMethodNameme = clazz.getDeclaredMethod(OrgTypeMethodName);
// 获取顶层元素集合
Long parentId;
for (Object ob : entityList) {
Object entity = clazz.cast(ob);
parentId = !ObjectUtils.isEmpty(PARENTIDMethodNameme.invoke(entity))
? Long.valueOf(String.valueOf(PARENTIDMethodNameme.invoke(entity)))
: null;
@Autowired
DynamicFormInstanceServiceImpl alertFormValueServiceImpl;
@Autowired
DynamicFormColumnServiceImpl alertFormServiceImpl;
@Resource
OrgUsrMapper orgUsrMapper;
@Autowired
SupervisionFeign supervisionFeign;
@Autowired
ESOrgUsrService eSOrgUsrService;
@Override
public String selectUpUnitByParam(String id) {
return this.baseMapper.selectUpUnitByParam(id);
}
public static List<OrgMenuDto> buildTreeParallel(List<OrgUsr> list) {
List<OrgMenuDto> menuList = list.stream().map(o -> {
OrgMenuDto menu = new OrgMenuDto(o.getSequenceNbr(), o.getBizOrgName(),
ObjectUtils.isEmpty(o.getParentId()) ? 0L : Long.valueOf(o.getParentId()), o.getBizOrgType(), false,
o.getBizOrgCode());
return menu;
}).collect(Collectors.toList());
List<OrgMenuDto> result = new ArrayList<>();
Map<Long, OrgMenuDto> map = new HashMap<>(menuList.size());
menuList.forEach(e -> map.put(e.getKey(), e));
Set<? extends Map.Entry<Long, ? extends OrgMenuDto>> entries = map.entrySet();
entries.parallelStream().forEach(entry -> {
OrgMenuDto value = entry.getValue();
if (value != null) {
OrgMenuDto treeDto = map.get(value.getParentId());
if (treeDto != null) {
List<OrgMenuDto> children = treeDto.getChildren();
if (children == null) {
children = new ArrayList<>();
treeDto.setChildren(children);
}
children.add(value);
} else {
result.add(value);
}
}
});
return result;
}
@Override
public List<OrgMenuDto> getTree(Long topId, Collection entityList, String packageURL, String IDMethodName,
int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName)
throws Exception {
List<OrgMenuDto> resultList = new ArrayList<>();
Class<?> clazz = Class.forName(packageURL);
Method IDMethodNameme = null;
switch (IDHierarchy) {
case 1:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
case 2:
IDMethodNameme = clazz.getSuperclass().getDeclaredMethod(IDMethodName);
break;
case 3:
IDMethodNameme = clazz.getSuperclass().getSuperclass().getDeclaredMethod(IDMethodName);
break;
default:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
}
Method NAMEMethodNameme = clazz.getDeclaredMethod(NAMEMethodName);
Method PARENTIDMethodNameme = clazz.getDeclaredMethod(PARENTIDMethodName);
Method OrgTypeMethodNameme = clazz.getDeclaredMethod(OrgTypeMethodName);
// 获取顶层元素集合
Long parentId;
for (Object ob : entityList) {
Object entity = clazz.cast(ob);
parentId = !ObjectUtils.isEmpty(PARENTIDMethodNameme.invoke(entity))
? Long.valueOf(String.valueOf(PARENTIDMethodNameme.invoke(entity)))
: null;
// if (parentId == null || topId ==parentId ) {
// OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
// String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
// String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
// resultList.add(menu);
// }
/* *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---start******************************/
if (parentId == null ) {//topId与parentId的等值判断,修改人陈浩 on 2021/07/21
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
resultList.add(menu);
} else if(topId !=null && topId.longValue() ==parentId.longValue())
{
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
resultList.add(menu);
}
/* *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---end******************************/
}
// 获取每个顶层元素的子数据集合
for (OrgMenuDto entity : resultList) {
entity.setChildren(getSub(entity.getKey(), entityList, packageURL, IDMethodName, IDHierarchy,
NAMEMethodName, PARENTIDMethodName, OrgTypeMethodName));
}
return resultList;
}
@SuppressWarnings("unchecked")
@Override
public List<OrgMenuDto> getSub(Long topId, @SuppressWarnings("rawtypes") Collection entityList, String packageURL,
String IDMethodName, int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName,
String OrgTypeMethodName) throws Exception {
List<OrgMenuDto> childList = new ArrayList<>();
@SuppressWarnings("rawtypes")
Class clazz = Class.forName(packageURL);
Method IDMethodNameme = null;
switch (IDHierarchy) {
case 1:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
case 2:
IDMethodNameme = clazz.getSuperclass().getDeclaredMethod(IDMethodName);
break;
case 3:
IDMethodNameme = clazz.getSuperclass().getSuperclass().getDeclaredMethod(IDMethodName);
break;
default:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
}
Method OrgTypeMethodNameme = clazz.getDeclaredMethod(OrgTypeMethodName);
Method NAMEMethodNameme = clazz.getDeclaredMethod(NAMEMethodName);
Method PARENTIDMethodNameme = clazz.getDeclaredMethod(PARENTIDMethodName);
Long parentId;
// 子集的直接子对象
for (Object ob : entityList) {
Object entity = clazz.cast(ob);
parentId = !ObjectUtils.isEmpty(PARENTIDMethodNameme.invoke(entity))
? Long.valueOf(String.valueOf(PARENTIDMethodNameme.invoke(entity)))
: null;
if (parentId == null) {
if (topId == parentId) {
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)));
childList.add(menu);
}
} else {
if (topId.longValue() == parentId.longValue()) {
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)));
childList.add(menu);
}
}
}
// 子集的间接子对象
for (OrgMenuDto entity : childList) {
entity.setChildren(getSub(entity.getKey(), entityList, packageURL, IDMethodName, IDHierarchy,
NAMEMethodName, PARENTIDMethodName, OrgTypeMethodName));
if (entity.getChildren() != null) {
entity.setLeaf(false);
}
}
// 递归退出条件
if (childList.size() == 0) {
return null;
}
return childList;
}
@Override
public List<Map<String, Object>> returnCompanyPersonMsg(List<Long> ids) throws Exception {
List<Map<String, Object>> companyPersonMsg = new ArrayList<>();
for (int i = 0; i < ids.size(); i++) {
Map<String, Object> resultMap = new HashMap<>();
// 查询出单位基本信息
OrgUsr company = getById(ids.get(i));
resultMap.put("id", company.getSequenceNbr());
// 上级单位
resultMap.put("upUnit", selectUpUnitByParam(company.getSequenceNbr() + ""));
// 当前单位
resultMap.put("currentUnit", company.getBizOrgName());
// 下级单位
Map<String, Object> downUnitColumnMap = new HashMap<>();
downUnitColumnMap.put("is_delete", CommonConstant.IS_DELETE_00);
downUnitColumnMap.put("biz_org_type", CommonConstant.BIZ_ORG_TYPE_COMPANY);
downUnitColumnMap.put("parent_id", company.getSequenceNbr());
QueryWrapper<OrgUsr> downUnitWrapper = new QueryWrapper<OrgUsr>();
downUnitWrapper.allEq(downUnitColumnMap);
List<OrgUsr> downList = list(downUnitWrapper);
if (downList.size() == 0) {
resultMap.put("downUnit", false);
} else {
resultMap.put("downUnit", true);
}
// 人员数量
Map<String, Object> countPerson = new HashMap<>();
countPerson.put("parent_id", company.getSequenceNbr());
countPerson.put("biz_org_type", CommonConstant.BIZ_ORG_TYPE_PERSON);
QueryWrapper<OrgUsr> personNumWrapper = new QueryWrapper<OrgUsr>();
personNumWrapper.allEq(countPerson);
int personNum = count(personNumWrapper);
resultMap.put("personNum", personNum);
if (0 == personNum) {
continue;
}
List<Map<String, Object>> personList = new ArrayList<>();
// 查询动态表单Phone
Map<String, Object> phone = new HashMap<>();
phone.put("instance_id", company.getSequenceNbr());
phone.put("field_code", "companyPhone");
QueryWrapper<DynamicFormInstance> phoneWrapper = new QueryWrapper<DynamicFormInstance>();
phoneWrapper.allEq(phone);
DynamicFormInstance phoneValue = alertFormValueServiceImpl.getOne(phoneWrapper);
if (phoneValue == null) {
resultMap.put("tel", "");
} else {
resultMap.put("tel", phoneValue.getFieldValue());
}
// 获取单位人员列表信息
personList = listPerson(company.getSequenceNbr() + "").stream().map(p -> {
Map<String, Object> person = new HashMap<>();
person.put("tel", getValue(p.get("telephone"), null));
person.put("img", getValue(p.get("personImg"), null));
person.put("id", getValue(p.get("sequenceNbr"), null));
person.put("name", getValue(p.get("bizOrgName"), null));
person.put("zhiwei", getValue(p.get("administrativePositionCode"), null));
person.put("unit", getValue(p.get("fireManagementPostCode"), null));
return person;
}).collect(Collectors.toList());
resultMap.put("children", personList);
companyPersonMsg.add(resultMap);
}
return companyPersonMsg;
}
private Object getValue(Object obj, Object defaultValue) {
return ObjectUtils.isEmpty(obj) ? defaultValue : obj;
}
public List<Map<String, Object>> listPerson(String parentId) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("fields", alertFormServiceImpl.queryListByFormId(OrgPersonEnum.人员.getCode()));
map.put("bizOrgType", OrgPersonEnum.人员.getKey());
map.put("parentId", parentId);
List<Map<String, Object>> list = this.baseMapper.selectPersonAllList(map);
return list == null ? new ArrayList<Map<String, Object>>() : list;
}
public IPage<Map<String, Object>> pagePerson(String pageNum, String pageSize, Map<String, Object> req) {
IPage<Map<String, Object>> pageBean = null;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
Map<String, Object> map = new HashMap<>();
map.put("bizOrgType", OrgPersonEnum.人员.getKey());
if (!ObjectUtils.isEmpty(req.get("bizOrgName"))) {
map.put("bizOrgName", req.get("bizOrgName"));
}
OrgUsr parent = this.getById(Long.valueOf(req.get("parentId").toString()));
map.put("bizOrgCode", ObjectUtils.isEmpty(parent) ? null : parent.getBizOrgCode());
req.remove("bizOrgName");
req.remove("pageSize");
req.remove("pageNum");
req.remove("parentId");
map.put("fieldsValue", req);
map.put("fields", alertFormServiceImpl.queryListByFormId(OrgPersonEnum.人员.getCode()));
pageBean.setTotal(this.baseMapper.selectPersonListCount(map));
map.put("pageNum", (pageBean.getCurrent() - 1) * pageBean.getSize());
map.put("pageSize", pageBean.getSize());
List<Map<String, Object>> list = this.baseMapper.selectPersonList(map);
pageBean.setRecords(list);
return pageBean;
}
@Override
public List<FormValue> getFormValue(Long id) throws Exception {
// 动态表单数据
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
List<FormValue> formValue = new ArrayList<>();
for (DynamicFormInstanceDto alertFormValue : list) {
if (alertFormValue.getFieldValue() != null) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value);
} else {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValueLabel(), alertFormValue.getBlock());
formValue.add(value);
}
}
return formValue;
}
public List<FormValue> getFormValueDetail(Long id) throws Exception {
// 动态表单数据
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
List<FormValue> formValue = new ArrayList<>();
for (DynamicFormInstanceDto alertFormValue : list) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value);
}
return formValue;
}
@Override
public void saveOrgUsr(OrgUsr orgUsr, OrgUsr oriOrgUsr) throws Exception {
if (oriOrgUsr.getParentId() != oriOrgUsr.getParentId()) {
OrgUsr parent = getById(orgUsr.getParentId());
if (parent != null && !ObjectUtils.isEmpty(parent.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
updateChildOrgCode(oriOrgUsr.getBizOrgCode(), orgUsr.getBizOrgCode());
orgUsr.setParentId(oriOrgUsr.getParentId());
}
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecDate(new Date());
orgUsr.setRecUserId(me.getUserId());
orgUsr.setRecUserName(me.getRealName());
updateById(orgUsr);
}
private void updateChildOrgCode(String oriOrgCode, String targetOrgCode) {
List<OrgUsr> list = queryOrgUsrList(oriOrgCode);
if (ObjectUtils.isEmpty(list)) {
return;
}
list.forEach(action -> {
action.setBizOrgCode(action.getBizOrgCode().replace(oriOrgCode, targetOrgCode));
updateById(action);
});
}
public List<OrgUsr> queryOrgUsrList(String bizOrgCode) {
return this.baseMapper.queryOrgUsrListByBizOrgCode(bizOrgCode);
}
@Override
public void saveOrgUsrDynamicFormInstance(OrgUsr orgUsr, List<DynamicFormInstance> alertFromValuelist) throws Exception {
orgUsr.setRecDate(new Date());
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecUserName(user.getRealName());
orgUsr.setRecUserId(user.getUserId());
// 单位新增情况
save(orgUsr);
// 填充主键
alertFromValuelist.stream().forEach(alertFromValue -> {
if (OrgPersonEnum.公司.getKey().equals(orgUsr.getBizOrgType())) {
alertFromValue.setGroupCode(OrgPersonEnum.公司.getCode());
} else if (OrgPersonEnum.部门.getKey().equals(orgUsr.getBizOrgType())) {
alertFromValue.setGroupCode(OrgPersonEnum.部门.getCode());
}
alertFromValue.setInstanceId(orgUsr.getSequenceNbr());
});
// 保存动态表单数据
alertFormValueServiceImpl.saveBatch(alertFromValuelist);
OrgUsrFormDto formDto = this.selectCompanyById(orgUsr.getSequenceNbr());
if (OrgPersonEnum.公司.getKey().equals(orgUsr.getBizOrgType())) {
supervisionFeign.asyncOwner(formDto);
}
}
@Override
public void updateDynamicFormInstance(Long instanceId, List<DynamicFormInstance> fromValueList) {
// 填充主键
fromValueList.forEach(alertFromValue -> {
alertFromValue.setInstanceId(instanceId);
});
List<DynamicFormInstanceDto> formList = alertFormValueServiceImpl.queryByCalledId(instanceId);
Map<Long, DynamicFormInstanceDto> resourceMap = new HashMap<>();
Map<Long, DynamicFormInstance> newResourceMap = new HashMap<>();
formList.parallelStream().forEach(form -> {
resourceMap.put(form.getFormColumnId(), form);
});
List<DynamicFormInstance> updateList = new ArrayList<>();
List<DynamicFormInstance> addList = new ArrayList<>();
List<Long> deleteList = new ArrayList<>();
fromValueList.parallelStream().forEach(submitFormItem -> {
if ( resourceMap.containsKey(submitFormItem.getFormColumnId())) {
DynamicFormInstanceDto oldForm = resourceMap.get(submitFormItem.getFormColumnId());
submitFormItem.setSequenceNbr(oldForm.getSequenceNbr());
updateList.add(submitFormItem);
}else {
addList.add(submitFormItem);
}
newResourceMap.put(submitFormItem.getFormColumnId(), submitFormItem);
});
newResourceMap.keySet().parallelStream().forEach(form -> {
resourceMap.remove(form);
});
resourceMap.keySet().parallelStream().forEach(action -> {
deleteList.add(resourceMap.get(action).getSequenceNbr());
});
if (deleteList.size() > 0) {
alertFormValueServiceImpl.deleteBatchSeq(deleteList);
}
if (updateList.size() > 0) {
alertFormValueServiceImpl.updateBatchById(updateList);
}
if (addList.size() > 0) {
alertFormValueServiceImpl.saveBatch(addList);
}
}
@Override
public Map<String, Object> selectForShowById(OrgUsr orgUsr, Long id) throws Exception {
QueryWrapper<DynamicFormColumn> queryWrapper = new QueryWrapper<DynamicFormColumn>();
queryWrapper.eq("group_code", OrgPersonEnum.人员.getCode());
List<DynamicFormColumn> alertForms = alertFormServiceImpl.list(queryWrapper);
// 动态表单数据
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
Map<String, Object> result = new HashMap<>();
result = Bean.BeantoMap(orgUsr);
result.put("parenName", getById(orgUsr.getParentId()).getBizOrgName());
// 放入所有动态表单数据
for (DynamicFormColumn alertForm : alertForms) {
result.put(alertForm.getFieldCode(), null);
}
for (DynamicFormInstanceDto alertFormValue : list) {
result.put(alertFormValue.getFieldCode(),
ObjectUtils.isEmpty(alertFormValue.getFieldValueLabel()) ? alertFormValue.getFieldValue()
: alertFormValue.getFieldValueLabel());
}
return result;
}
@Override
public List<OrgUsr> selectCompanyDepartmentMsg() {
List<OrgUsr> list = this.baseMapper.selectCompanyDepartmentMsg();
if (list == null) {
return new ArrayList<>();
}
list = list.stream().filter(o -> !ObjectUtils.isEmpty(o)).collect(Collectors.toList());
return list;
}
/* *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---start******************************/
if (parentId == null) {//topId与parentId的等值判断,修改人陈浩 on 2021/07/21
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
resultList.add(menu);
} else if (topId != null && topId.longValue() == parentId.longValue()) {
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)), false);
resultList.add(menu);
}
/* *******************topId与parentId的等值判断,修改人陈浩 on 2021/07/21---end******************************/
}
// 获取每个顶层元素的子数据集合
for (OrgMenuDto entity : resultList) {
entity.setChildren(getSub(entity.getKey(), entityList, packageURL, IDMethodName, IDHierarchy,
NAMEMethodName, PARENTIDMethodName, OrgTypeMethodName));
}
return resultList;
}
@SuppressWarnings("unchecked")
@Override
public List<OrgMenuDto> getSub(Long topId, @SuppressWarnings("rawtypes") Collection entityList, String packageURL,
String IDMethodName, int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName,
String OrgTypeMethodName) throws Exception {
List<OrgMenuDto> childList = new ArrayList<>();
@SuppressWarnings("rawtypes")
Class clazz = Class.forName(packageURL);
Method IDMethodNameme = null;
switch (IDHierarchy) {
case 1:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
case 2:
IDMethodNameme = clazz.getSuperclass().getDeclaredMethod(IDMethodName);
break;
case 3:
IDMethodNameme = clazz.getSuperclass().getSuperclass().getDeclaredMethod(IDMethodName);
break;
default:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
}
Method OrgTypeMethodNameme = clazz.getDeclaredMethod(OrgTypeMethodName);
Method NAMEMethodNameme = clazz.getDeclaredMethod(NAMEMethodName);
Method PARENTIDMethodNameme = clazz.getDeclaredMethod(PARENTIDMethodName);
Long parentId;
// 子集的直接子对象
for (Object ob : entityList) {
Object entity = clazz.cast(ob);
parentId = !ObjectUtils.isEmpty(PARENTIDMethodNameme.invoke(entity))
? Long.valueOf(String.valueOf(PARENTIDMethodNameme.invoke(entity)))
: null;
if (parentId == null) {
if (topId == parentId) {
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)));
childList.add(menu);
}
} else {
if (topId.longValue() == parentId.longValue()) {
OrgMenuDto menu = new OrgMenuDto(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))),
String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,
String.valueOf(OrgTypeMethodNameme.invoke(entity)));
childList.add(menu);
}
}
}
// 子集的间接子对象
for (OrgMenuDto entity : childList) {
entity.setChildren(getSub(entity.getKey(), entityList, packageURL, IDMethodName, IDHierarchy,
NAMEMethodName, PARENTIDMethodName, OrgTypeMethodName));
if (entity.getChildren() != null) {
entity.setLeaf(false);
}
}
// 递归退出条件
if (childList.size() == 0) {
return null;
}
return childList;
}
@Override
public List<Map<String, Object>> returnCompanyPersonMsg(List<Long> ids) throws Exception {
List<Map<String, Object>> companyPersonMsg = new ArrayList<>();
for (int i = 0; i < ids.size(); i++) {
Map<String, Object> resultMap = new HashMap<>();
// 查询出单位基本信息
OrgUsr company = getById(ids.get(i));
resultMap.put("id", company.getSequenceNbr());
// 上级单位
resultMap.put("upUnit", selectUpUnitByParam(company.getSequenceNbr() + ""));
// 当前单位
resultMap.put("currentUnit", company.getBizOrgName());
// 下级单位
Map<String, Object> downUnitColumnMap = new HashMap<>();
downUnitColumnMap.put("is_delete", CommonConstant.IS_DELETE_00);
downUnitColumnMap.put("biz_org_type", CommonConstant.BIZ_ORG_TYPE_COMPANY);
downUnitColumnMap.put("parent_id", company.getSequenceNbr());
QueryWrapper<OrgUsr> downUnitWrapper = new QueryWrapper<OrgUsr>();
downUnitWrapper.allEq(downUnitColumnMap);
List<OrgUsr> downList = list(downUnitWrapper);
if (downList.size() == 0) {
resultMap.put("downUnit", false);
} else {
resultMap.put("downUnit", true);
}
// 人员数量
Map<String, Object> countPerson = new HashMap<>();
countPerson.put("parent_id", company.getSequenceNbr());
countPerson.put("biz_org_type", CommonConstant.BIZ_ORG_TYPE_PERSON);
QueryWrapper<OrgUsr> personNumWrapper = new QueryWrapper<OrgUsr>();
personNumWrapper.allEq(countPerson);
int personNum = count(personNumWrapper);
resultMap.put("personNum", personNum);
if (0 == personNum) {
continue;
}
List<Map<String, Object>> personList = new ArrayList<>();
// 查询动态表单Phone
Map<String, Object> phone = new HashMap<>();
phone.put("instance_id", company.getSequenceNbr());
phone.put("field_code", "companyPhone");
QueryWrapper<DynamicFormInstance> phoneWrapper = new QueryWrapper<DynamicFormInstance>();
phoneWrapper.allEq(phone);
DynamicFormInstance phoneValue = alertFormValueServiceImpl.getOne(phoneWrapper);
if (phoneValue == null) {
resultMap.put("tel", "");
} else {
resultMap.put("tel", phoneValue.getFieldValue());
}
// 获取单位人员列表信息
personList = listPerson(company.getSequenceNbr() + "").stream().map(p -> {
Map<String, Object> person = new HashMap<>();
person.put("tel", getValue(p.get("telephone"), null));
person.put("img", getValue(p.get("personImg"), null));
person.put("id", getValue(p.get("sequenceNbr"), null));
person.put("name", getValue(p.get("bizOrgName"), null));
person.put("zhiwei", getValue(p.get("administrativePositionCode"), null));
person.put("unit", getValue(p.get("fireManagementPostCode"), null));
return person;
}).collect(Collectors.toList());
resultMap.put("children", personList);
companyPersonMsg.add(resultMap);
}
return companyPersonMsg;
}
private Object getValue(Object obj, Object defaultValue) {
return ObjectUtils.isEmpty(obj) ? defaultValue : obj;
}
public List<Map<String, Object>> listPerson(String parentId) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("fields", alertFormServiceImpl.queryListByFormId(OrgPersonEnum.人员.getCode()));
map.put("bizOrgType", OrgPersonEnum.人员.getKey());
map.put("parentId", parentId);
List<Map<String, Object>> list = this.baseMapper.selectPersonAllList(map);
return list == null ? new ArrayList<Map<String, Object>>() : list;
}
public IPage<Map<String, Object>> pagePerson(String pageNum, String pageSize, Map<String, Object> req) {
IPage<Map<String, Object>> pageBean = null;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
Map<String, Object> map = new HashMap<>();
map.put("bizOrgType", OrgPersonEnum.人员.getKey());
if (!ObjectUtils.isEmpty(req.get("bizOrgName"))) {
map.put("bizOrgName", req.get("bizOrgName"));
}
OrgUsr parent = this.getById(Long.valueOf(req.get("parentId").toString()));
map.put("bizOrgCode", ObjectUtils.isEmpty(parent) ? null : parent.getBizOrgCode());
req.remove("bizOrgName");
req.remove("pageSize");
req.remove("pageNum");
req.remove("parentId");
map.put("fieldsValue", req);
map.put("fields", alertFormServiceImpl.queryListByFormId(OrgPersonEnum.人员.getCode()));
pageBean.setTotal(this.baseMapper.selectPersonListCount(map));
map.put("pageNum", (pageBean.getCurrent() - 1) * pageBean.getSize());
map.put("pageSize", pageBean.getSize());
List<Map<String, Object>> list = this.baseMapper.selectPersonList(map);
pageBean.setRecords(list);
return pageBean;
}
@Override
public List<FormValue> getFormValue(Long id) throws Exception {
// 动态表单数据
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
List<FormValue> formValue = new ArrayList<>();
for (DynamicFormInstanceDto alertFormValue : list) {
if (alertFormValue.getFieldValue() != null) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value);
} else {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValueLabel(), alertFormValue.getBlock());
formValue.add(value);
}
}
return formValue;
}
public List<FormValue> getFormValueDetail(Long id) throws Exception {
// 动态表单数据
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
List<FormValue> formValue = new ArrayList<>();
for (DynamicFormInstanceDto alertFormValue : list) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(),
alertFormValue.getFieldType(), alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value);
}
return formValue;
}
@Override
public void saveOrgUsr(OrgUsr orgUsr, OrgUsr oriOrgUsr) throws Exception {
if (oriOrgUsr.getParentId() != oriOrgUsr.getParentId()) {
OrgUsr parent = getById(orgUsr.getParentId());
if (parent != null && !ObjectUtils.isEmpty(parent.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
updateChildOrgCode(oriOrgUsr.getBizOrgCode(), orgUsr.getBizOrgCode());
orgUsr.setParentId(oriOrgUsr.getParentId());
}
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecDate(new Date());
orgUsr.setRecUserId(me.getUserId());
orgUsr.setRecUserName(me.getRealName());
updateById(orgUsr);
}
private void updateChildOrgCode(String oriOrgCode, String targetOrgCode) {
List<OrgUsr> list = queryOrgUsrList(oriOrgCode);
if (ObjectUtils.isEmpty(list)) {
return;
}
list.forEach(action -> {
action.setBizOrgCode(action.getBizOrgCode().replace(oriOrgCode, targetOrgCode));
updateById(action);
});
}
public List<OrgUsr> queryOrgUsrList(String bizOrgCode) {
return this.baseMapper.queryOrgUsrListByBizOrgCode(bizOrgCode);
}
@Override
public void saveOrgUsrDynamicFormInstance(OrgUsr orgUsr, List<DynamicFormInstance> alertFromValuelist) throws Exception {
orgUsr.setRecDate(new Date());
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecUserName(user.getRealName());
orgUsr.setRecUserId(user.getUserId());
// 单位新增情况
save(orgUsr);
// 填充主键
alertFromValuelist.stream().forEach(alertFromValue -> {
if (OrgPersonEnum.公司.getKey().equals(orgUsr.getBizOrgType())) {
alertFromValue.setGroupCode(OrgPersonEnum.公司.getCode());
} else if (OrgPersonEnum.部门.getKey().equals(orgUsr.getBizOrgType())) {
alertFromValue.setGroupCode(OrgPersonEnum.部门.getCode());
}
alertFromValue.setInstanceId(orgUsr.getSequenceNbr());
});
// 保存动态表单数据
alertFormValueServiceImpl.saveBatch(alertFromValuelist);
OrgUsrFormDto formDto = this.selectCompanyById(orgUsr.getSequenceNbr());
if (OrgPersonEnum.公司.getKey().equals(orgUsr.getBizOrgType())) {
supervisionFeign.asyncOwner(formDto);
}
}
@Override
public void updateDynamicFormInstance(Long instanceId, List<DynamicFormInstance> fromValueList) {
// 填充主键
fromValueList.forEach(alertFromValue -> {
alertFromValue.setInstanceId(instanceId);
});
List<DynamicFormInstanceDto> formList = alertFormValueServiceImpl.queryByCalledId(instanceId);
Map<Long, DynamicFormInstanceDto> resourceMap = new HashMap<>();
Map<Long, DynamicFormInstance> newResourceMap = new HashMap<>();
formList.parallelStream().forEach(form -> {
resourceMap.put(form.getFormColumnId(), form);
});
List<DynamicFormInstance> updateList = new ArrayList<>();
List<DynamicFormInstance> addList = new ArrayList<>();
List<Long> deleteList = new ArrayList<>();
fromValueList.parallelStream().forEach(submitFormItem -> {
if (resourceMap.containsKey(submitFormItem.getFormColumnId())) {
DynamicFormInstanceDto oldForm = resourceMap.get(submitFormItem.getFormColumnId());
submitFormItem.setSequenceNbr(oldForm.getSequenceNbr());
updateList.add(submitFormItem);
} else {
addList.add(submitFormItem);
}
newResourceMap.put(submitFormItem.getFormColumnId(), submitFormItem);
});
newResourceMap.keySet().parallelStream().forEach(form -> {
resourceMap.remove(form);
});
resourceMap.keySet().parallelStream().forEach(action -> {
deleteList.add(resourceMap.get(action).getSequenceNbr());
});
if (deleteList.size() > 0) {
alertFormValueServiceImpl.deleteBatchSeq(deleteList);
}
if (updateList.size() > 0) {
alertFormValueServiceImpl.updateBatchById(updateList);
}
if (addList.size() > 0) {
alertFormValueServiceImpl.saveBatch(addList);
}
}
@Override
public Map<String, Object> selectForShowById(OrgUsr orgUsr, Long id) throws Exception {
QueryWrapper<DynamicFormColumn> queryWrapper = new QueryWrapper<DynamicFormColumn>();
queryWrapper.eq("group_code", OrgPersonEnum.人员.getCode());
List<DynamicFormColumn> alertForms = alertFormServiceImpl.list(queryWrapper);
// 动态表单数据
List<DynamicFormInstanceDto> list = alertFormValueServiceImpl.listByCalledId(id);
Map<String, Object> result = new HashMap<>();
result = Bean.BeantoMap(orgUsr);
result.put("parenName", getById(orgUsr.getParentId()).getBizOrgName());
// 放入所有动态表单数据
for (DynamicFormColumn alertForm : alertForms) {
result.put(alertForm.getFieldCode(), null);
}
for (DynamicFormInstanceDto alertFormValue : list) {
result.put(alertFormValue.getFieldCode(),
ObjectUtils.isEmpty(alertFormValue.getFieldValueLabel()) ? alertFormValue.getFieldValue()
: alertFormValue.getFieldValueLabel());
}
return result;
}
@Override
public List<OrgUsr> selectCompanyDepartmentMsg() {
List<OrgUsr> list = this.baseMapper.selectCompanyDepartmentMsg();
if (list == null) {
return new ArrayList<>();
}
list = list.stream().filter(o -> !ObjectUtils.isEmpty(o)).collect(Collectors.toList());
return list;
}
public List<OrgUsr> selectCompanyList() {
List<OrgUsr> list =
......@@ -515,713 +516,726 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return list;
}
@Override
public void saveOrgUsr(OrgUsrDto OrgUsrVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgUsrVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
if (OrgUsrVo.getParentId() != null) {
OrgUsr parent = getById(OrgUsrVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgUsrVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgUsrVo.getDynamicFormValue());
/**
@Override
public void saveOrgUsr(OrgUsrDto OrgUsrVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgUsrVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
if (OrgUsrVo.getParentId() != null) {
OrgUsr parent = getById(OrgUsrVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgUsrVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgUsrVo.getDynamicFormValue());
/**
* 同步保存ES
*/
eSOrgUsrService.saveAlertCalledToES(orgUsr);
}
@Override
public void saveOrgPerson(OrgPersonDto OrgPersonVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
if (OrgPersonVo.getParentId() != null) {
OrgUsr parent = getById(OrgPersonVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgPersonVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
OrgPersonVo.setAmosOrgCode(user.getRealName());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
}
public void saveOrgPersonExcel(OrgUsrExcelDto OrgPersonVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
if (OrgPersonVo.getParentId() != null) {
OrgUsr parent = getById(OrgPersonVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgPersonVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
OrgPersonVo.setAmosOrgCode(user.getRealName());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
}
@Override
public void updateByIdOrgUsr(OrgUsrDto OrgUsrVo, Long id) throws Exception {
// 修改单位信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgUsrVo, orgUsr);
saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgUsrVo.getDynamicFormValue());
/**
eSOrgUsrService.saveAlertCalledToES(orgUsr);
}
@Override
public void saveOrgPerson(OrgPersonDto OrgPersonVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
if (OrgPersonVo.getParentId() != null) {
OrgUsr parent = getById(OrgPersonVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgPersonVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
OrgPersonVo.setAmosOrgCode(user.getRealName());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
}
public void saveOrgPersonExcel(OrgUsrExcelDto OrgPersonVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
if (OrgPersonVo.getParentId() != null) {
OrgUsr parent = getById(OrgPersonVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgPersonVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
OrgPersonVo.setAmosOrgCode(user.getRealName());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
}
@Override
public void updateByIdOrgUsr(OrgUsrDto OrgUsrVo, Long id) throws Exception {
// 修改单位信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgUsrVo, orgUsr);
saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgUsrVo.getDynamicFormValue());
/**
* 同步保存ES
*/
eSOrgUsrService.saveAlertCalledToES(orgUsr);
}
@Override
public void updateByIdOrgPerson(OrgPersonDto OrgPersonVo, Long id) throws Exception {
// 修改人员信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
orgUsr.setSequenceNbr(id);
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
oriOrgUsr.setAmosOrgCode(user.getRealName());
oriOrgUsr.setAmosOrgId(user.getUserId());
orgUsr.setAmosOrgCode(user.getRealName());
orgUsr.setAmosOrgId(user.getUserId());
}
saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgPersonVo.getDynamicFormValue());
}
@Override
public OrgUsrFormDto selectCompanyById(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValue(id);
OrgUsrFormDto orgUsrFormVo = new OrgUsrFormDto();
orgUsrFormVo.setDynamicFormAlert(formValue);
BeanUtils.copyProperties(orgUsr, orgUsrFormVo);
return orgUsrFormVo;
}
@Override
public IPage<OrgUsr> bizOrgTypeListPage(String pageNum, String pageSize, String bizOrgType) throws Exception {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("is_delete", CommonConstant.IS_DELETE_00);
columnMap.put("biz_org_type", bizOrgType);
Page<OrgUsr> pageBean = new Page<OrgUsr>();
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
QueryWrapper<OrgUsr> queryWrapper = new QueryWrapper<OrgUsr>();
queryWrapper.allEq(columnMap);
queryWrapper.orderByAsc("sequence_nbr");
return page(pageBean, queryWrapper);
}
@Override
public void saveDepartment(List<OrgDepartmentDto> OrgDepartmentVo, Long id) throws Exception {
for (int i = 0; i < OrgDepartmentVo.size(); i++) {
// 导入部门信息的前提条件:单位信息已经存在
if (getById(id) != null) {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgDepartmentVo.get(i), orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_DEPARTMENT);
saveOrgUsrDynamicFormInstance(orgUsr, OrgDepartmentVo.get(i).getDynamicFormValue());
}
}
}
@Override
public void saveCompany(List<OrgUsrDto> OrgUsrVo) throws Exception {
for (int i = 0; i < OrgUsrVo.size(); i++) {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgUsrVo.get(i), orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
saveOrgUsrDynamicFormInstance(orgUsr, OrgUsrVo.get(i).getDynamicFormValue());
}
}
@Override
public OrgPersonFormDto selectPersonById(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValue(id);
OrgPersonFormDto orgPersonFormVo = new OrgPersonFormDto(formValue);
BeanUtils.copyProperties(orgUsr, orgPersonFormVo);
OrgUsr parent = getById(orgUsr.getParentId());
if (!ObjectUtils.isEmpty(parent)) {
orgPersonFormVo.setParentName(parent.getBizOrgName());
}
return orgPersonFormVo;
}
@Override
public OrgPersonFormDto selectPersonByIdDetail(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValueDetail(id);
OrgPersonFormDto orgPersonFormVo = new OrgPersonFormDto(formValue);
BeanUtils.copyProperties(orgUsr, orgPersonFormVo);
orgPersonFormVo.setParentName(getById(orgUsr.getParentId()).getBizOrgName());
return orgPersonFormVo;
}
@Override
public List<OrgMenuDto> selectPersonTree() throws Exception {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("is_delete", CommonConstant.IS_DELETE_00);
columnMap.put("biz_org_type", CommonConstant.BIZ_ORG_TYPE_PERSON);
Collection<OrgUsr> list = listByMap(columnMap);
return getTree(null, list, OrgUsr.class.getName(), "getSequenceNbr", 2, "getBizOrgName", "getParentId",
"getBizOrgType");
}
@Override
public void savePersonList(List<OrgPersonDto> OrgPersonVo) throws Exception {
for (int i = 0; i < OrgPersonVo.size(); i++) {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo.get(i), orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.get(i).getDynamicFormValue());
}
}
@Override
public void saveOrgDepartment(OrgDepartmentDto OrgDepartmentVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgDepartmentVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_DEPARTMENT);
if (OrgDepartmentVo.getParentId() != null) {
OrgUsr parent = getById(OrgDepartmentVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgDepartmentVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgDepartmentVo.getDynamicFormValue());
}
@Override
public void updateByIdOrgDepartment(OrgDepartmentDto OrgDepartmentVo, Long id) throws Exception {
// 修改部门信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgDepartmentVo, orgUsr);
saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgDepartmentVo.getDynamicFormValue());
}
@Override
public OrgDepartmentFormDto selectDepartmentById(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValue(id);
OrgDepartmentFormDto orgDepartmentFormVo = new OrgDepartmentFormDto(formValue);
BeanUtils.copyProperties(orgUsr, orgDepartmentFormVo);
return orgDepartmentFormVo;
}
@Override
public List<Map<String, Object>> selectForShowByListId(List<Long> ids) throws Exception {
List<Map<String, Object>> personResult = new ArrayList<>();
for (int i = 0; i < ids.size(); i++) {
OrgUsr orgUsr = getById(ids.get(i));
Map<String, Object> result = selectForShowById(orgUsr, ids.get(i));
personResult.add(result);
}
return personResult;
}
@Override
public List<CompanyDto> listContractDto(Integer pageNum, Integer pageSize, RequestData requestData) {
if (null == pageNum || null == pageSize) {
pageNum = 1;
pageSize = Integer.MAX_VALUE;
} else {
pageNum = (pageNum - 1) * pageSize;
}
return orgUsrMapper.listContractDto(pageNum, pageSize, requestData);
}
@Override
public Integer listContractDtoCount(RequestData par) {
return orgUsrMapper.listContractDtoCount( par);
}
public static String getOrgCodeStr() {
return TreeParser.genTreeCode();
}
public void importByExcel(List<OrgPersonExcelDto> list) {
list.forEach(item -> {
OrgPersonDto orgPersonDto = new OrgPersonDto();
orgPersonDto = Bean.toPo(item, orgPersonDto);
List<DynamicFormInstance> alertFormValueList = new ArrayList<>();
if (item.getPersonNumber() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(102L, OrgPersonEnum.人员.getCode(), "员工编号",
"personNumber", item.getPersonNumber(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificatesType() != null) {
String certificatesType = item.getCertificatesType();
String[] split = certificatesType.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(23L, OrgPersonEnum.人员.getCode(), "证件类型",
"certificatesTypeCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getGender() != null) {
String gender = item.getGender();
String[] split = gender.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(22L, OrgPersonEnum.人员.getCode(), "性别",
"gender", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificatesNumber() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(100L, OrgPersonEnum.人员.getCode(), "证件号码",
"certificatesNumber", item.getCertificatesNumber(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getTelephone() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(24L, OrgPersonEnum.人员.getCode(), "联系电话",
"telephone", item.getTelephone(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getState() != null) {
String state = item.getState();
String[] split = state.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(25L, OrgPersonEnum.人员.getCode(), "人员状态",
"stateCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getSafetyTraining() != null) {
String safetyTraining = item.getSafetyTraining();
String[] split = safetyTraining.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(29L, OrgPersonEnum.人员.getCode(),
"是否进行安全培训", "safetyTraining", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getAdministrativePosition() != null) {
String administrativePosition = item.getAdministrativePosition();
String[] split = administrativePosition.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(28L, OrgPersonEnum.人员.getCode(), "行政职务",
"administrativePositionCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getInternalPosition() != null) {
String internalPosition = item.getInternalPosition();
String[] split = internalPosition.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(26L, OrgPersonEnum.人员.getCode(),
"消防管理组织机构内部职务", "internalPositionCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getFireManagementPost() != null) {
String fireManagementPost = item.getFireManagementPost();
String[] split = fireManagementPost.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(27L, OrgPersonEnum.人员.getCode(), "消防管理岗位",
"fireManagementPostCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getPositionType() != null) {
String positionType = item.getPositionType();
String[] split = positionType.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(30L, OrgPersonEnum.人员.getCode(), "岗位类型",
"positionType", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificateType() != null) {
String certificateType = item.getCertificateType();
String[] split = certificateType.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(31L, OrgPersonEnum.人员.getCode(), "持证类别",
"certificateType", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getHoldingTime() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(32L, OrgPersonEnum.人员.getCode(), "持证时间",
"holdingTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(item.getHoldingTime()), null,
false);
alertFormValueList.add(alertFormValue);
}
if (item.getAuditCycle() != null) {
String auditCycle = item.getAuditCycle();
String[] split = auditCycle.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(33L, OrgPersonEnum.人员.getCode(), "审核周期",
"auditCycle", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getPersonImg() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(34L, OrgPersonEnum.人员.getCode(), "人员照片",
"personImg", item.getPersonImg(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificateImg() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(101L, OrgPersonEnum.人员.getCode(),
"重点工种资质证书", "certificateImg", item.getCertificateImg(), null, false);
alertFormValueList.add(alertFormValue);
}
try {
orgPersonDto.setDynamicFormValue(alertFormValueList);
this.saveOrgPerson(orgPersonDto);
} catch (Exception e) {
e.printStackTrace();
}
});
}
public List<OrgPersonExcelDto> queryOrgPersonDtoList(boolean isDelete) {
List<OrgPersonExcelDto> excelOrgPersonDtoList = orgUsrMapper.queryOrgPersonDtoList(isDelete);
return excelOrgPersonDtoList;
}
/**
* 根据id查询当前单位下的所有子单位、部门
*
* @param orgUserId
* @return
*/
public List<OrgUsr> listOrgUserById(Long orgUserId) {
return this.baseMapper.listOrgUserById(orgUserId);
}
public List<CompanyPerson> returnCompanyPerson(List<Long> ids) {
if (ObjectUtils.isEmpty(ids)) {
return null;
}
return ids.stream().map(m -> {
OrgUsr org = getById(m);
if (ObjectUtils.isEmpty(org)) {
return null;
}
CompanyPerson company = new CompanyPerson();
BeanUtils.copyProperties(org, company);
company.setPersons(this.queryForListByParentIdAndOrgType(org.getSequenceNbr(), OrgPersonEnum.人员.getKey()));
return company;
}).filter(c -> {
return c != null;
}).collect(Collectors.toList());
}
public List<OrgUsrDto> queryForListByParentIdAndOrgType( Long parentId, String bizOrgType) {
return this.queryForList(null, false, parentId, bizOrgType);
}
public OrgUsrDto getOrg(String amosUserId) {
OrgUsrDto person = queryForListByParentIdAndOrgType(amosUserId);
if (ObjectUtils.isEmpty(person)) {
return null;
}
return this.queryBySeq(Long.valueOf(person.getParentId()));
}
public OrgUsrDto queryForListByParentIdAndOrgType( String amosOrgId) {
return this.queryModelByParams( amosOrgId );
}
@Override
public List<OrgUsrzhDto> getOrgUsrzhDto(String name) {
// TODO Auto-generated method stub
List<OrgUsrzhDto> list=orgUsrMapper.getOrgUsrzhDto(name);
return list;
}
@Override
public List<ESOrgUsrDto> selectByIddata(String name) {
//获取所有单位
QueryWrapper<OrgUsr> wrapper = new QueryWrapper<>();
wrapper.in("biz_org_type", "DEPARTMENT","COMPANY");
wrapper.eq("is_delete", 0);
if(name!=null&&!"".equals(name)) {
wrapper.like("biz_org_name", name);
}
List<OrgUsr> list = this.list(wrapper);
List<ESOrgUsrDto> lidataDtos=new ArrayList();
list.forEach(orgUsr->{
ESOrgUsrDto data=new ESOrgUsrDto();
data.setSequenceNbr(orgUsr.getSequenceNbr());
data.setBizOrgName(orgUsr.getBizOrgName());
lidataDtos.add(data);
});
return lidataDtos;
}
@Override
public List<Map<String, Object>> getparent() {
return orgUsrMapper.getparent();
}
@Override
public List<OrgUsrExcelDto> exportToExcel() {
return orgUsrMapper.exportToExcel();
}
public List<OrgUsr> getCompanyDetailTree() {
LambdaQueryWrapper<OrgUsr> wrapper= new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getBizOrgType, "COMPANY");
wrapper.eq(OrgUsr::getIsDelete, false);
return this.baseMapper.selectList(wrapper);
}
@Override
public List<OrgMenuDto> companyUserTreeByUser (AgencyUserModel user) {
LambdaQueryWrapper<OrgUsr> wrapper= new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getIsDelete, false);
List<OrgUsr> companyDepartmentMsgList = this.baseMapper.selectList(wrapper);
return gettTreeByUser(user, companyDepartmentMsgList);
}
@Override
public List<OrgMenuDto> companyTreeByUser(AgencyUserModel user) {
List<OrgUsr> companyDepartmentMsgList = selectCompanyDepartmentMsg();
return gettTreeByUser(user, companyDepartmentMsgList);
};
@Override
public List<OrgUsrTreeDto> companyListByUser(AgencyUserModel user) {
List<OrgUsrTreeDto> list = new ArrayList<>();
// 需要角色为机场单位或管理员,其余角色返回空
String code = UserRolesEnum.AIRPORTUNIT.getCode();
String codeAdmin = UserRolesEnum.ADMIN.getCode();
String roles = getRoles(user, code);
if (!StringUtils.isEmpty(roles)) {
List<OrgUsrTreeDto> companyList = this.baseMapper.getCompanyAndKeySite(null);
if (roles.equals(codeAdmin)) {
// 返回全部单位列表
return companyAndKeySiteList(companyList);
} else if (roles.equals(code)) {
eSOrgUsrService.saveAlertCalledToES(orgUsr);
}
@Override
public void updateByIdOrgPerson(OrgPersonDto OrgPersonVo, Long id) throws Exception {
// 修改人员信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
orgUsr.setSequenceNbr(id);
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
oriOrgUsr.setAmosOrgCode(user.getRealName());
oriOrgUsr.setAmosOrgId(user.getUserId());
orgUsr.setAmosOrgCode(user.getRealName());
orgUsr.setAmosOrgId(user.getUserId());
}
saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgPersonVo.getDynamicFormValue());
}
@Override
public OrgUsrFormDto selectCompanyById(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValue(id);
OrgUsrFormDto orgUsrFormVo = new OrgUsrFormDto();
orgUsrFormVo.setDynamicFormAlert(formValue);
BeanUtils.copyProperties(orgUsr, orgUsrFormVo);
return orgUsrFormVo;
}
@Override
public IPage<OrgUsr> bizOrgTypeListPage(String pageNum, String pageSize, String bizOrgType) throws Exception {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("is_delete", CommonConstant.IS_DELETE_00);
columnMap.put("biz_org_type", bizOrgType);
Page<OrgUsr> pageBean = new Page<OrgUsr>();
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
QueryWrapper<OrgUsr> queryWrapper = new QueryWrapper<OrgUsr>();
queryWrapper.allEq(columnMap);
queryWrapper.orderByAsc("sequence_nbr");
return page(pageBean, queryWrapper);
}
@Override
public void saveDepartment(List<OrgDepartmentDto> OrgDepartmentVo, Long id) throws Exception {
for (int i = 0; i < OrgDepartmentVo.size(); i++) {
// 导入部门信息的前提条件:单位信息已经存在
if (getById(id) != null) {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgDepartmentVo.get(i), orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_DEPARTMENT);
saveOrgUsrDynamicFormInstance(orgUsr, OrgDepartmentVo.get(i).getDynamicFormValue());
}
}
}
@Override
public void saveCompany(List<OrgUsrDto> OrgUsrVo) throws Exception {
for (int i = 0; i < OrgUsrVo.size(); i++) {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgUsrVo.get(i), orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
saveOrgUsrDynamicFormInstance(orgUsr, OrgUsrVo.get(i).getDynamicFormValue());
}
}
@Override
public OrgPersonFormDto selectPersonById(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValue(id);
OrgPersonFormDto orgPersonFormVo = new OrgPersonFormDto(formValue);
BeanUtils.copyProperties(orgUsr, orgPersonFormVo);
OrgUsr parent = getById(orgUsr.getParentId());
if (!ObjectUtils.isEmpty(parent)) {
orgPersonFormVo.setParentName(parent.getBizOrgName());
}
return orgPersonFormVo;
}
@Override
public OrgPersonFormDto selectPersonByIdDetail(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValueDetail(id);
OrgPersonFormDto orgPersonFormVo = new OrgPersonFormDto(formValue);
BeanUtils.copyProperties(orgUsr, orgPersonFormVo);
orgPersonFormVo.setParentName(getById(orgUsr.getParentId()).getBizOrgName());
return orgPersonFormVo;
}
@Override
public List<OrgMenuDto> selectPersonTree() throws Exception {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("is_delete", CommonConstant.IS_DELETE_00);
columnMap.put("biz_org_type", CommonConstant.BIZ_ORG_TYPE_PERSON);
Collection<OrgUsr> list = listByMap(columnMap);
return getTree(null, list, OrgUsr.class.getName(), "getSequenceNbr", 2, "getBizOrgName", "getParentId",
"getBizOrgType");
}
@Override
public void savePersonList(List<OrgPersonDto> OrgPersonVo) throws Exception {
for (int i = 0; i < OrgPersonVo.size(); i++) {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo.get(i), orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.get(i).getDynamicFormValue());
}
}
@Override
public void saveOrgDepartment(OrgDepartmentDto OrgDepartmentVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgDepartmentVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_DEPARTMENT);
if (OrgDepartmentVo.getParentId() != null) {
OrgUsr parent = getById(OrgDepartmentVo.getParentId());
if (parent != null && ObjectUtils.isEmpty(OrgDepartmentVo.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
} else {
orgUsr.setBizOrgCode(getOrgCodeStr());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgDepartmentVo.getDynamicFormValue());
}
@Override
public void updateByIdOrgDepartment(OrgDepartmentDto OrgDepartmentVo, Long id) throws Exception {
// 修改部门信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgDepartmentVo, orgUsr);
saveOrgUsr(orgUsr, oriOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgDepartmentVo.getDynamicFormValue());
}
@Override
public OrgDepartmentFormDto selectDepartmentById(Long id) throws Exception {
OrgUsr orgUsr = getById(id);
// 动态表单数据
List<FormValue> formValue = getFormValue(id);
OrgDepartmentFormDto orgDepartmentFormVo = new OrgDepartmentFormDto(formValue);
BeanUtils.copyProperties(orgUsr, orgDepartmentFormVo);
return orgDepartmentFormVo;
}
@Override
public List<Map<String, Object>> selectForShowByListId(List<Long> ids) throws Exception {
List<Map<String, Object>> personResult = new ArrayList<>();
for (int i = 0; i < ids.size(); i++) {
OrgUsr orgUsr = getById(ids.get(i));
Map<String, Object> result = selectForShowById(orgUsr, ids.get(i));
personResult.add(result);
}
return personResult;
}
@Override
public List<CompanyDto> listContractDto(Integer pageNum, Integer pageSize, RequestData requestData) {
if (null == pageNum || null == pageSize) {
pageNum = 1;
pageSize = Integer.MAX_VALUE;
} else {
pageNum = (pageNum - 1) * pageSize;
}
return orgUsrMapper.listContractDto(pageNum, pageSize, requestData);
}
@Override
public Integer listContractDtoCount(RequestData par) {
return orgUsrMapper.listContractDtoCount(par);
}
public static String getOrgCodeStr() {
return TreeParser.genTreeCode();
}
public void importByExcel(List<OrgPersonExcelDto> list) {
list.forEach(item -> {
OrgPersonDto orgPersonDto = new OrgPersonDto();
orgPersonDto = Bean.toPo(item, orgPersonDto);
List<DynamicFormInstance> alertFormValueList = new ArrayList<>();
if (item.getPersonNumber() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(102L, OrgPersonEnum.人员.getCode(), "员工编号",
"personNumber", item.getPersonNumber(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificatesType() != null) {
String certificatesType = item.getCertificatesType();
String[] split = certificatesType.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(23L, OrgPersonEnum.人员.getCode(), "证件类型",
"certificatesTypeCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getGender() != null) {
String gender = item.getGender();
String[] split = gender.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(22L, OrgPersonEnum.人员.getCode(), "性别",
"gender", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificatesNumber() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(100L, OrgPersonEnum.人员.getCode(), "证件号码",
"certificatesNumber", item.getCertificatesNumber(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getTelephone() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(24L, OrgPersonEnum.人员.getCode(), "联系电话",
"telephone", item.getTelephone(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getState() != null) {
String state = item.getState();
String[] split = state.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(25L, OrgPersonEnum.人员.getCode(), "人员状态",
"stateCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getSafetyTraining() != null) {
String safetyTraining = item.getSafetyTraining();
String[] split = safetyTraining.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(29L, OrgPersonEnum.人员.getCode(),
"是否进行安全培训", "safetyTraining", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getAdministrativePosition() != null) {
String administrativePosition = item.getAdministrativePosition();
String[] split = administrativePosition.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(28L, OrgPersonEnum.人员.getCode(), "行政职务",
"administrativePositionCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getInternalPosition() != null) {
String internalPosition = item.getInternalPosition();
String[] split = internalPosition.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(26L, OrgPersonEnum.人员.getCode(),
"消防管理组织机构内部职务", "internalPositionCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getFireManagementPost() != null) {
String fireManagementPost = item.getFireManagementPost();
String[] split = fireManagementPost.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(27L, OrgPersonEnum.人员.getCode(), "消防管理岗位",
"fireManagementPostCode", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getPositionType() != null) {
String positionType = item.getPositionType();
String[] split = positionType.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(30L, OrgPersonEnum.人员.getCode(), "岗位类型",
"positionType", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificateType() != null) {
String certificateType = item.getCertificateType();
String[] split = certificateType.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(31L, OrgPersonEnum.人员.getCode(), "持证类别",
"certificateType", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getHoldingTime() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(32L, OrgPersonEnum.人员.getCode(), "持证时间",
"holdingTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(item.getHoldingTime()), null,
false);
alertFormValueList.add(alertFormValue);
}
if (item.getAuditCycle() != null) {
String auditCycle = item.getAuditCycle();
String[] split = auditCycle.split("@");
DynamicFormInstance alertFormValue = new DynamicFormInstance(33L, OrgPersonEnum.人员.getCode(), "审核周期",
"auditCycle", split[0], split[1], false);
alertFormValueList.add(alertFormValue);
}
if (item.getPersonImg() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(34L, OrgPersonEnum.人员.getCode(), "人员照片",
"personImg", item.getPersonImg(), null, false);
alertFormValueList.add(alertFormValue);
}
if (item.getCertificateImg() != null) {
DynamicFormInstance alertFormValue = new DynamicFormInstance(101L, OrgPersonEnum.人员.getCode(),
"重点工种资质证书", "certificateImg", item.getCertificateImg(), null, false);
alertFormValueList.add(alertFormValue);
}
try {
orgPersonDto.setDynamicFormValue(alertFormValueList);
this.saveOrgPerson(orgPersonDto);
} catch (Exception e) {
e.printStackTrace();
}
});
}
public List<OrgPersonExcelDto> queryOrgPersonDtoList(boolean isDelete) {
List<OrgPersonExcelDto> excelOrgPersonDtoList = orgUsrMapper.queryOrgPersonDtoList(isDelete);
return excelOrgPersonDtoList;
}
/**
* 根据id查询当前单位下的所有子单位、部门
*
* @param orgUserId
* @return
*/
public List<OrgUsr> listOrgUserById(Long orgUserId) {
return this.baseMapper.listOrgUserById(orgUserId);
}
public List<CompanyPerson> returnCompanyPerson(List<Long> ids) {
if (ObjectUtils.isEmpty(ids)) {
return null;
}
return ids.stream().map(m -> {
OrgUsr org = getById(m);
if (ObjectUtils.isEmpty(org)) {
return null;
}
CompanyPerson company = new CompanyPerson();
BeanUtils.copyProperties(org, company);
company.setPersons(this.queryForListByParentIdAndOrgType(org.getSequenceNbr(), OrgPersonEnum.人员.getKey()));
return company;
}).filter(c -> {
return c != null;
}).collect(Collectors.toList());
}
public List<OrgUsrDto> queryForListByParentIdAndOrgType(Long parentId, String bizOrgType) {
return this.queryForList(null, false, parentId, bizOrgType);
}
public OrgUsrDto getOrg(String amosUserId) {
OrgUsrDto person = queryForListByParentIdAndOrgType(amosUserId);
if (ObjectUtils.isEmpty(person)) {
return null;
}
return this.queryBySeq(Long.valueOf(person.getParentId()));
}
public OrgUsrDto queryForListByParentIdAndOrgType(String amosOrgId) {
return this.queryModelByParams(amosOrgId);
}
@Override
public List<OrgUsrzhDto> getOrgUsrzhDto(String name) {
// TODO Auto-generated method stub
List<OrgUsrzhDto> list = orgUsrMapper.getOrgUsrzhDto(name);
return list;
}
@Override
public List<ESOrgUsrDto> selectByIddata(String name) {
//获取所有单位
QueryWrapper<OrgUsr> wrapper = new QueryWrapper<>();
wrapper.in("biz_org_type", "DEPARTMENT", "COMPANY");
wrapper.eq("is_delete", 0);
if (name != null && !"".equals(name)) {
wrapper.like("biz_org_name", name);
}
List<OrgUsr> list = this.list(wrapper);
List<ESOrgUsrDto> lidataDtos = new ArrayList();
list.forEach(orgUsr -> {
ESOrgUsrDto data = new ESOrgUsrDto();
data.setSequenceNbr(orgUsr.getSequenceNbr());
data.setBizOrgName(orgUsr.getBizOrgName());
lidataDtos.add(data);
});
return lidataDtos;
}
@Override
public List<Map<String, Object>> getparent() {
return orgUsrMapper.getparent();
}
@Override
public List<OrgUsrExcelDto> exportToExcel() {
return orgUsrMapper.exportToExcel();
}
@Override
public UserUnitDto getUserUnit(String id, String type, String code) {
// 业主单位
List<UserUnitDto> list = orgUsrMapper.getUserUnit(id, type, null);
if (!CollectionUtils.isEmpty(list)) {
if (list.size() == 1) {
UserUnitDto userUnitDto = list.get(0);
String companyId = userUnitDto.getCompanyId();
if (StringUtils.isNotBlank(companyId) && StringUtils.isNotBlank(code)) {
List<UserUnitDto> dtoList = orgUsrMapper.getUserUnit(null, code, companyId);
if (!CollectionUtils.isEmpty(dtoList)) {
userUnitDto.setCompanyId(dtoList.get(0).getPersonSeq());
return userUnitDto;
}
throw new RuntimeException("未获取人员业主单位!");
}
}
throw new RuntimeException("人员绑定业主单位不唯一!");
}
throw new RuntimeException("人员未绑定任何单位!");
}
public List<OrgUsr> getCompanyDetailTree() {
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getBizOrgType, "COMPANY");
wrapper.eq(OrgUsr::getIsDelete, false);
return this.baseMapper.selectList(wrapper);
}
@Override
public List<OrgMenuDto> companyUserTreeByUser(AgencyUserModel user) {
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<OrgUsr>();
wrapper.eq(OrgUsr::getIsDelete, false);
List<OrgUsr> companyDepartmentMsgList = this.baseMapper.selectList(wrapper);
return gettTreeByUser(user, companyDepartmentMsgList);
}
@Override
public List<OrgMenuDto> companyTreeByUser(AgencyUserModel user) {
List<OrgUsr> companyDepartmentMsgList = selectCompanyDepartmentMsg();
return gettTreeByUser(user, companyDepartmentMsgList);
}
;
@Override
public List<OrgUsrTreeDto> companyListByUser(AgencyUserModel user) {
List<OrgUsrTreeDto> list = new ArrayList<>();
// 需要角色为机场单位或管理员,其余角色返回空
String code = UserRolesEnum.AIRPORTUNIT.getCode();
String codeAdmin = UserRolesEnum.ADMIN.getCode();
String roles = getRoles(user, code);
if (!StringUtils.isEmpty(roles)) {
List<OrgUsrTreeDto> companyList = this.baseMapper.getCompanyAndKeySite(null);
if (roles.equals(codeAdmin)) {
// 返回全部单位列表
return companyAndKeySiteList(companyList);
} else if (roles.equals(code)) {
// } else {
// 人员与多个部门/公司关联
List<OrgUsr> orgUsrList = orgUsrList(user);
if (ObjectUtils.isEmpty(orgUsrList)) {
return list;
}
Set<Long> set = new HashSet<>();
orgUsrList.forEach(orgUsr -> {
Long parent = ObjectUtils.isEmpty(orgUsr.getParentId()) ? 0L : Long.parseLong(orgUsr.getParentId());
if (set.add(parent)) {
Long companyIdByDto = getCompanyIdByDto(parent, companyList);
List<OrgUsrTreeDto> orgUsrTreeDtoList = this.baseMapper.getCompanyAndKeySite(companyIdByDto);
list.addAll(companyAndKeySiteList(orgUsrTreeDtoList));
}
});
// 返回所在用户单位列表
return list.stream().distinct().collect(Collectors.toList());
}
}
return list;
}
/**
* 获取登陆人所在公司
*/
private Long getCompanyIdByDto (Long parentId, List<OrgUsrTreeDto> companyDepartmentMsgList) {
Long pid = null;
for (OrgUsrTreeDto orgUsr : companyDepartmentMsgList) {
if (orgUsr.getSequenceNbr().equals(parentId)) {
if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) {
return orgUsr.getSequenceNbr();
} else {
pid = getCompanyIdByDto(Long.parseLong(orgUsr.getParentId()),companyDepartmentMsgList);
}
}
}
return pid;
}
/**
* 查询单位列表
*/
private List<OrgUsrTreeDto> companyAndKeySiteList (List<OrgUsrTreeDto> companyList) {
List<OrgUsrTreeDto> list = new ArrayList<>();
if (ObjectUtils.isEmpty(companyList)) {
return list;
}
Map<Long, OrgUsrTreeDto> map = new HashMap<>(companyList.size());
companyList.forEach(e -> map.put(e.getSequenceNbr(), e));
Set<? extends Map.Entry<Long, ? extends OrgUsrTreeDto>> entries = map.entrySet();
entries.parallelStream().forEach(entry -> {
OrgUsrTreeDto value = entry.getValue();
if (!ObjectUtils.isEmpty(value)) {
Long parent = ObjectUtils.isEmpty(value.getParentId()) ? 0L : Long.parseLong(value.getParentId());
OrgUsrTreeDto orgUsrTreeDto = map.get(parent);
if (!ObjectUtils.isEmpty(orgUsrTreeDto)) {
int num = orgUsrTreeDto.getNum() + value.getNum();
orgUsrTreeDto.setNum(num);
} else {
if (value.getBizOrgType().equals(OrgPersonEnum.公司.getKey())) {
list.add(value);
}
}
}
});
return list;
}
/**
* 获取树
*/
private List<OrgMenuDto> gettTreeByUser (AgencyUserModel user, List<OrgUsr> list) {
List<OrgMenuDto> treeList = new ArrayList<>();
// 需要角色为机场单位或管理员,其余角色返回空
String code = UserRolesEnum.AIRPORTUNIT.getCode();
String codeAdmin = UserRolesEnum.ADMIN.getCode();
String roles = getRoles(user, code);
if (!StringUtils.isEmpty(roles)) {
// 人员与多个部门/公司关联
List<OrgUsr> orgUsrList = orgUsrList(user);
if (ObjectUtils.isEmpty(orgUsrList)) {
return list;
}
Set<Long> set = new HashSet<>();
orgUsrList.forEach(orgUsr -> {
Long parent = ObjectUtils.isEmpty(orgUsr.getParentId()) ? 0L : Long.parseLong(orgUsr.getParentId());
if (set.add(parent)) {
Long companyIdByDto = getCompanyIdByDto(parent, companyList);
List<OrgUsrTreeDto> orgUsrTreeDtoList = this.baseMapper.getCompanyAndKeySite(companyIdByDto);
list.addAll(companyAndKeySiteList(orgUsrTreeDtoList));
}
});
// 返回所在用户单位列表
return list.stream().distinct().collect(Collectors.toList());
}
}
return list;
}
/**
* 获取登陆人所在公司
*/
private Long getCompanyIdByDto(Long parentId, List<OrgUsrTreeDto> companyDepartmentMsgList) {
Long pid = null;
for (OrgUsrTreeDto orgUsr : companyDepartmentMsgList) {
if (orgUsr.getSequenceNbr().equals(parentId)) {
if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) {
return orgUsr.getSequenceNbr();
} else {
pid = getCompanyIdByDto(Long.parseLong(orgUsr.getParentId()), companyDepartmentMsgList);
}
}
}
return pid;
}
/**
* 查询单位列表
*/
private List<OrgUsrTreeDto> companyAndKeySiteList(List<OrgUsrTreeDto> companyList) {
List<OrgUsrTreeDto> list = new ArrayList<>();
if (ObjectUtils.isEmpty(companyList)) {
return list;
}
Map<Long, OrgUsrTreeDto> map = new HashMap<>(companyList.size());
companyList.forEach(e -> map.put(e.getSequenceNbr(), e));
Set<? extends Map.Entry<Long, ? extends OrgUsrTreeDto>> entries = map.entrySet();
entries.parallelStream().forEach(entry -> {
OrgUsrTreeDto value = entry.getValue();
if (!ObjectUtils.isEmpty(value)) {
Long parent = ObjectUtils.isEmpty(value.getParentId()) ? 0L : Long.parseLong(value.getParentId());
OrgUsrTreeDto orgUsrTreeDto = map.get(parent);
if (!ObjectUtils.isEmpty(orgUsrTreeDto)) {
int num = orgUsrTreeDto.getNum() + value.getNum();
orgUsrTreeDto.setNum(num);
} else {
if (value.getBizOrgType().equals(OrgPersonEnum.公司.getKey())) {
list.add(value);
}
}
}
});
return list;
}
/**
* 获取树
*/
private List<OrgMenuDto> gettTreeByUser(AgencyUserModel user, List<OrgUsr> list) {
List<OrgMenuDto> treeList = new ArrayList<>();
// 需要角色为机场单位或管理员,其余角色返回空
String code = UserRolesEnum.AIRPORTUNIT.getCode();
String codeAdmin = UserRolesEnum.ADMIN.getCode();
String roles = getRoles(user, code);
if (!StringUtils.isEmpty(roles)) {
// treeList = getDepartmentTreeByUser(user,list);
if (roles.equals(codeAdmin)) {
// 返回全量树
treeList = buildTreeParallel(list);
} else if (roles.equals(code)) {
// 获取当前用户所在部门树
treeList = getDepartmentTreeByUser(user,list);
}
}
return treeList;
}
/**
* 根基登陆人获取指定角色/最高角色,默认最高角色
*/
private String getRoles(AgencyUserModel user, String code) {
String type = null;
Map<Long, List<RoleModel>> orgRolesMap = user.getOrgRoles();
if (ObjectUtils.isEmpty(orgRolesMap)) {
return null;
}
for (Long key : orgRolesMap.keySet()) {
if (!ObjectUtils.isEmpty(orgRolesMap.get(key))) {
for (RoleModel roleModel: orgRolesMap.get(key)) {
String roleType = roleModel.getRoleType();
if (roleType.equals(code)) {
type = code;
}
if (roleType.equals(UserRolesEnum.ADMIN.getCode())) {
return roleType;
}
}
}
}
return type;
}
/**
* 获取当前用户所在部门/用户树
*/
private List<OrgMenuDto> getDepartmentTreeByUser (AgencyUserModel user,List<OrgUsr> companyDepartmentMsgList) {
List<OrgMenuDto> list = new ArrayList<>();
if (ObjectUtils.isEmpty(companyDepartmentMsgList)) {
return list;
}
// 1.获取当前登陆用户关联人员
List<OrgUsr> orgUsrList = orgUsrList(user);
if (ObjectUtils.isEmpty(orgUsrList)) {
return list;
}
// 2.查询人员所属部门
List<OrgMenuDto> treeList = buildTreeParallel(companyDepartmentMsgList);
Set<Long> set = new HashSet<>();
orgUsrList.forEach(orgUsr -> {
Long parentId = Long.parseLong(orgUsr.getParentId());
getTreeChildre(list, treeList, parentId, set, companyDepartmentMsgList);
});
return list;
}
/**
* 获取登陆人关联账号
*/
private List<OrgUsr> orgUsrList (AgencyUserModel user) {
String userId = user.getUserId();
LambdaQueryWrapper<OrgUsr> wrapper= new LambdaQueryWrapper<>();
wrapper.eq(OrgUsr::getIsDelete,false);
wrapper.eq(OrgUsr::getAmosOrgId,userId);
wrapper.eq(OrgUsr::getBizOrgType,OrgPersonEnum.人员.getKey());
List<OrgUsr> orgUsrList = this.baseMapper.selectList(wrapper);
return orgUsrList;
}
/**
* 组装树
*/
private void getTreeChildre (List<OrgMenuDto> list, List<OrgMenuDto> treeList, Long parentId, Set<Long> set, List<OrgUsr> companyDepartmentMsgList) {
if (ObjectUtils.isEmpty(treeList) && ObjectUtils.isEmpty(companyDepartmentMsgList)) {
return;
}
// 获取登陆人所在公司
Long pid = getCompanyId(parentId, companyDepartmentMsgList);
if (set.add(pid)) {
List<OrgMenuDto> list1 = treeList.stream().filter(orgMenuDto -> orgMenuDto.getKey().equals(pid)).collect(Collectors.toList());
list.addAll(list1);
}
}
/**
* 获取登陆人所在公司
*/
private Long getCompanyId (Long parentId, List<OrgUsr> companyDepartmentMsgList) {
Long pid = null;
for (OrgUsr orgUsr : companyDepartmentMsgList) {
if (orgUsr.getSequenceNbr().equals(parentId)) {
if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) {
return orgUsr.getSequenceNbr();
} else {
pid = getCompanyId(Long.parseLong(orgUsr.getParentId()),companyDepartmentMsgList);
}
}
}
return pid;
}
if (roles.equals(codeAdmin)) {
// 返回全量树
treeList = buildTreeParallel(list);
} else if (roles.equals(code)) {
// 获取当前用户所在部门树
treeList = getDepartmentTreeByUser(user, list);
}
}
return treeList;
}
/**
* 根基登陆人获取指定角色/最高角色,默认最高角色
*/
private String getRoles(AgencyUserModel user, String code) {
String type = null;
Map<Long, List<RoleModel>> orgRolesMap = user.getOrgRoles();
if (ObjectUtils.isEmpty(orgRolesMap)) {
return null;
}
for (Long key : orgRolesMap.keySet()) {
if (!ObjectUtils.isEmpty(orgRolesMap.get(key))) {
for (RoleModel roleModel : orgRolesMap.get(key)) {
String roleType = roleModel.getRoleType();
if (roleType.equals(code)) {
type = code;
}
if (roleType.equals(UserRolesEnum.ADMIN.getCode())) {
return roleType;
}
}
}
}
return type;
}
/**
* 获取当前用户所在部门/用户树
*/
private List<OrgMenuDto> getDepartmentTreeByUser(AgencyUserModel user, List<OrgUsr> companyDepartmentMsgList) {
List<OrgMenuDto> list = new ArrayList<>();
if (ObjectUtils.isEmpty(companyDepartmentMsgList)) {
return list;
}
// 1.获取当前登陆用户关联人员
List<OrgUsr> orgUsrList = orgUsrList(user);
if (ObjectUtils.isEmpty(orgUsrList)) {
return list;
}
// 2.查询人员所属部门
List<OrgMenuDto> treeList = buildTreeParallel(companyDepartmentMsgList);
Set<Long> set = new HashSet<>();
orgUsrList.forEach(orgUsr -> {
Long parentId = Long.parseLong(orgUsr.getParentId());
getTreeChildre(list, treeList, parentId, set, companyDepartmentMsgList);
});
return list;
}
/**
* 获取登陆人关联账号
*/
private List<OrgUsr> orgUsrList(AgencyUserModel user) {
String userId = user.getUserId();
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OrgUsr::getIsDelete, false);
wrapper.eq(OrgUsr::getAmosOrgId, userId);
wrapper.eq(OrgUsr::getBizOrgType, OrgPersonEnum.人员.getKey());
List<OrgUsr> orgUsrList = this.baseMapper.selectList(wrapper);
return orgUsrList;
}
/**
* 组装树
*/
private void getTreeChildre(List<OrgMenuDto> list, List<OrgMenuDto> treeList, Long parentId, Set<Long> set, List<OrgUsr> companyDepartmentMsgList) {
if (ObjectUtils.isEmpty(treeList) && ObjectUtils.isEmpty(companyDepartmentMsgList)) {
return;
}
// 获取登陆人所在公司
Long pid = getCompanyId(parentId, companyDepartmentMsgList);
if (set.add(pid)) {
List<OrgMenuDto> list1 = treeList.stream().filter(orgMenuDto -> orgMenuDto.getKey().equals(pid)).collect(Collectors.toList());
list.addAll(list1);
}
}
/**
* 获取登陆人所在公司
*/
private Long getCompanyId(Long parentId, List<OrgUsr> companyDepartmentMsgList) {
Long pid = null;
for (OrgUsr orgUsr : companyDepartmentMsgList) {
if (orgUsr.getSequenceNbr().equals(parentId)) {
if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) {
return orgUsr.getSequenceNbr();
} else {
pid = getCompanyId(Long.parseLong(orgUsr.getParentId()), companyDepartmentMsgList);
}
}
}
return pid;
}
}
......@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.component.event.RestEventTrigger;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
......@@ -27,7 +28,6 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -294,6 +294,7 @@ public class AlertCalledController extends BaseController {
@PostMapping(value = "/billsend")
@ApiOperation(httpMethod = "POST", value = "设备联动紧急响应", notes = "启动所有消防队伍的警铃、广播,并自动开启所有车库门")
@Transactional
@RestEventTrigger(value = "opreateLogEventHandler")
public ResponseModel<Boolean> controlEquip() throws Exception{
return ResponseHelper.buildResponse(iAlertCalledService.controlEquip());
......
package com.yeejoin.amos.boot.module.jcs.biz.controller.event;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.OperateLogModel;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.event.RestEvent;
import org.typroject.tyboot.component.event.RestEventHandler;
import org.typroject.tyboot.core.foundation.context.RequestContext;
/**
*
* <pre>
* controller层操作日志事件监听
* </pre>
*
* @author gwb
* @version $Id: OpreateLogEventHandler.java, v 0.1 2021年8月19日 下午6:38:36 gwb Exp $
*/
@Component("opreateLogEventHandler")
public class OpreateLogEventHandler extends RestEventHandler {
static ObjectMapper objectMapper = new ObjectMapper();
@Override
protected void handleEvent(RestEvent restEvent) throws Exception {
OperateLogModel operateLogModel =new OperateLogModel();
operateLogModel.setMethodLabel(restEvent.getMethodLabel());
operateLogModel.setMethodName(restEvent.getMethodName());
operateLogModel.setParams(objectMapper.writeValueAsString(restEvent.getParams()));
operateLogModel.setResult(objectMapper.writeValueAsString(restEvent.getSource()));
operateLogModel.setUserId(restEvent.getRequestContextModel().getExcutedUserId());
operateLogModel.setRemoteIp(restEvent.getRequestContextModel().getRequestIP());
operateLogModel.setToken(restEvent.getRequestContextModel().getToken());
operateLogModel.setTraceId(restEvent.getRequestContextModel().getTraceId());
operateLogModel.setAgencyCode(restEvent.getRequestContextModel().getAgencyCode());
operateLogModel.setAppCode(restEvent.getRequestContextModel().getAppKey());
RequestContext.setAppKey(restEvent.getRequestContextModel().getAppKey());
RequestContext.setProduct(restEvent.getRequestContextModel().getProduct());
RequestContext.setToken(restEvent.getRequestContextModel().getToken());
Systemctl.operateLogClient.create(operateLogModel);
}
}
......@@ -13,7 +13,21 @@
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.typroject</groupId>
<artifactId>tyboot-component-event</artifactId>
<version>${tyboot-version}</version>
<exclusions>
<exclusion>
<groupId>org.typroject</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<modules>
......
......@@ -24,6 +24,12 @@
end if;
END
</createProcedure>
</changeSet>
<changeSet author="suhuiguang" id="1629352951339-1" runOnChange="true">
<sql>
DROP TRIGGER IF EXISTS `addPointConfig`;
DROP TRIGGER IF EXISTS `updatePointConfig`;
DROP TRIGGER IF EXISTS `updatePointConfig`;
</sql>
</changeSet>
</databaseChangeLog>
\ 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