Commit c8570eba authored by 高建强's avatar 高建强

item:完善获取用户单位归属接口

parent 273f0e34
......@@ -26,4 +26,7 @@ public class UserUnitDto {
@ApiModelProperty(value = "公司id")
private String companyId;
@ApiModelProperty(value = "公司名称")
private String companyName;
}
......@@ -84,4 +84,6 @@ public interface DynamicFormInstanceMapper extends BaseMapper<DynamicFormInstanc
@Param("shiftId") String shiftIds,
@Param("fieldCodes") Map<String, Object> fieldCodes,
@Param("groupCode") String groupCode);
List<DynamicFormInstance> getInstanceByCodeAndValue(String code, String value);
}
......@@ -29,4 +29,8 @@ public interface MaintenanceCompanyMapper extends BaseMapper<MaintenanceCompany>
* @return
*/
public Page<OrgUsrDto> selectOrgUsrPageList(Page page, @Param("seq") Long seq);
List<MaintenanceCompany> findByCodeAndType(String code, String type);
List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type);
}
......@@ -4,13 +4,13 @@ package com.yeejoin.amos.boot.module.common.api.service;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import java.util.List;
import java.util.Map;
/**
* 动态表单实例表接口类
*
* @author system_generator
* @date 2021-07-06
*/
* 动态表单实例表接口类
*
* @author system_generator
* @date 2021-07-06
*/
public interface IDynamicFormInstanceService {
List<DynamicFormInstance> getInstanceByCodeAndValue(String code, String value);
}
......@@ -161,4 +161,8 @@ public interface IMaintenanceCompanyService {
* @return
*/
public List<MaintenancePersonExcleDto> exportToMaintenancePersonExcel();
List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type);
List<MaintenanceCompany> findByCodeAndType(String code, String type);
}
......@@ -184,4 +184,18 @@
</if>
order by instanceId desc
</select>
<select id="getInstanceByCodeAndValue" resultType="com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance">
SELECT
f.instance_id
FROM
`cb_dynamic_form_instance` f
<where>
<if test="code != null and code != ''">
f.field_code = #{code}
</if>
<if test="value != null and value != ''">
AND f.field_value = #{value}
</if>
</where>
</select>
</mapper>
......@@ -37,4 +37,42 @@ WHERE
AND biz_org_type = "COMPANY"
AND is_delete = 0
</select>
<select id="findByInstanceIdAndType" resultType="com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany">
SELECT
m.sequence_nbr,
m.`name`,
m.`code`,
m.type,
m.instance_id
FROM
cb_maintenance_company m
<where>
<if test="instanceId != null">
m.instance_id = #{instanceId}
</if>
<if test="type != null and type != ''">
AND m.type = #{type}
</if>
</where>
</select>
<select id="findByCodeAndType" resultType="com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany">
SELECT
m.sequence_nbr,
m.`name`,
m.`code`,
m.type,
m.instance_id
FROM
cb_maintenance_company m
<where>
<if test="code != null and code != ''">
m.code LIKE CONCAT(#{code}, '%')
</if>
<if test="type != null and type != ''">
AND m.type = #{type}
</if>
</where>
ORDER BY
m.sequence_nbr DESC
</select>
</mapper>
......@@ -312,7 +312,7 @@ LEFT JOIN (
u.sequence_nbr AS personSeq,
u.biz_org_name AS personName,
'2' AS identityType,
IFNULL( LEFT ( u.biz_org_code, 6 ), '' ) AS companyId
IFNULL( u.biz_org_code, '' ) AS companyId
FROM
`cb_org_usr` u
<where>
......
......@@ -366,7 +366,7 @@ public class OrgUsrController extends BaseController {
@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 {
public ResponseModel<UserUnitDto> getUserUnit(@RequestParam String id, @RequestParam String type, @RequestParam String code) {
return ResponseHelper.buildResponse(iOrgUsrService.getUserUnit(id, type, code));
}
......
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
......@@ -40,6 +40,9 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
DynamicFormColumnServiceImpl dynamicFormColumnService;
@Autowired
DynamicFormInstanceMapper dynamicFormInstanceMapper;
@Autowired
HttpServletRequest request;
/**
......@@ -65,7 +68,7 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
return this.baseMapper.selectListByCalledId(instanceId);
}
public Long commonSave(String groupCode, Map<String,Object> model){
public Long commonSave(String groupCode, Map<String, Object> model) {
Long instanceId = sequence.nextId();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
List<DynamicFormInstance> instances = columns.stream().map(column -> {
......@@ -76,8 +79,8 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
if (!instances.isEmpty()) {
this.saveBatch(instances);
}
model.put("instanceId",instanceId);
model.put("groupCode",groupCode);
model.put("instanceId", instanceId);
model.put("groupCode", groupCode);
return instanceId;
}
......@@ -94,7 +97,7 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
formInstance.setFieldValue(map.get(column.getFieldCode()) != null ? map.get(column.getFieldCode()).toString() : "");
}
public Map<String, Object> getOneMap(Long instanceId,String groupCode) {
public Map<String, Object> getOneMap(Long instanceId, String groupCode) {
Map<String, Object> optionListMap = new HashMap<>();
List<DynamicFormInstance> list = this.queryByInstanceId(instanceId);
if (!CollectionUtils.isEmpty(list)) {
......@@ -122,20 +125,22 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
return this.baseMapper.selectList(wrapper);
}
public IPage<Map<String, Object>> pageList(int current, int size ,String groupCode){
public IPage<Map<String, Object>> pageList(int current, int size, String groupCode) {
Map<String, String> params = this.getRequestParamMap();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
Page page = new Page(current, size);
return this.getBaseMapper().pageList(page, RequestContext.getAppKey(), fieldCodes, groupCode, params);
}
public IPage<Map<String, Object>> pageList(int current, int size ,String groupCode,Map<String, String> params ){
public IPage<Map<String, Object>> pageList(int current, int size, String groupCode, Map<String, String> params) {
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
Page page = new Page(current, size);
return this.getBaseMapper().pageList(page, RequestContext.getAppKey(), fieldCodes, groupCode, params);
}
public List<Map<String, Object>> listAll(String groupCode){
public List<Map<String, Object>> listAll(String groupCode) {
Map<String, String> params = this.getRequestParamMap();
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
......@@ -159,5 +164,14 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
}
return params;
}
@Override
public List<DynamicFormInstance> getInstanceByCodeAndValue(String code, String value) {
List<DynamicFormInstance> list = dynamicFormInstanceMapper.getInstanceByCodeAndValue(code, value);
if (!CollectionUtils.isEmpty(list)) {
return list;
}
return Lists.newArrayList();
}
}
......@@ -25,6 +25,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
......@@ -286,6 +287,24 @@ public class MaintenanceCompanyServiceImpl
return JSONArray.parseArray(JSONArray.toJSONString(list), MaintenancePersonExcleDto.class);
}
@Override
public List<MaintenanceCompany> findByInstanceIdAndType(Long instanceId, String type) {
List<MaintenanceCompany> list = maintenanceCompanyMapper.findByInstanceIdAndType(instanceId, type);
if (!CollectionUtils.isEmpty(list)) {
return list;
}
return Lists.newArrayList();
}
@Override
public List<MaintenanceCompany> findByCodeAndType(String code, String type) {
List<MaintenanceCompany> list = maintenanceCompanyMapper.findByCodeAndType(code, type);
if (!CollectionUtils.isEmpty(list)) {
return list;
}
return Lists.newArrayList();
}
/**
* 维保单位人员信息分頁信息显示时的字段过滤
*
......
......@@ -9,11 +9,14 @@ import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.*;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.enums.OrgPersonEnum;
import com.yeejoin.amos.boot.module.common.api.enums.UserRolesEnum;
import com.yeejoin.amos.boot.module.common.api.enums.UserUnitTypeEnum;
import com.yeejoin.amos.boot.module.common.api.feign.SupervisionFeign;
import com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrMapper;
import com.yeejoin.amos.boot.module.common.api.service.IMaintenanceCompanyService;
import com.yeejoin.amos.boot.module.common.api.service.IOrgUsrService;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -52,6 +55,8 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
SupervisionFeign supervisionFeign;
@Autowired
ESOrgUsrService eSOrgUsrService;
@Autowired
IMaintenanceCompanyService maintenanceCompanyService;
@Override
public String selectUpUnitByParam(String id) {
......@@ -992,24 +997,65 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@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;
if (StringUtils.isNotBlank(id) && StringUtils.isNotBlank(type) && StringUtils.isNotBlank(code)) {
String[] typeArr = type.split(",");
// 业主单位
List<UserUnitDto> list = orgUsrMapper.getUserUnit(id, typeArr[0], null);
// 维保单位
List<DynamicFormInstance> instanceList = alertFormValueServiceImpl.getInstanceByCodeAndValue(code, id);
if (!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(instanceList)) {
throw new RuntimeException("人员绑定单位重复!");
} else {
if (!CollectionUtils.isEmpty(list)) {
if (list.size() == 1) {
UserUnitDto userUnitDto = list.get(0);
String codeVal = userUnitDto.getCompanyId().substring(0, 5);
if (StringUtils.isNotBlank(codeVal)) {
List<UserUnitDto> dtoList = orgUsrMapper.getUserUnit(null, typeArr[1], codeVal);
if (!CollectionUtils.isEmpty(dtoList)) {
UserUnitDto dto = dtoList.get(0);
userUnitDto.setCompanyId(dto.getPersonSeq());
userUnitDto.setCompanyName(dto.getPersonName());
return userUnitDto;
}
}
throw new RuntimeException("未获取人员业主单位!");
}
throw new RuntimeException("人员绑定业主单位不唯一!");
} else {
if (!CollectionUtils.isEmpty(instanceList)) {
if (instanceList.size() == 1) {
Long instanceId = instanceList.get(0).getInstanceId();
List<MaintenanceCompany> maintenanceCompanyList = maintenanceCompanyService.findByInstanceIdAndType(instanceId, typeArr[0]);
if (!CollectionUtils.isEmpty(maintenanceCompanyList)) {
if (maintenanceCompanyList.size() == 1) {
MaintenanceCompany person = maintenanceCompanyList.get(0);
UserUnitDto unitDto = new UserUnitDto();
unitDto.setIdentityType(UserUnitTypeEnum.MAINTENANCE_COMPANY.getValue());
unitDto.setPersonSeq(String.valueOf(person.getSequenceNbr()));
unitDto.setPersonName(person.getName());
String codeVal = person.getCode().substring(0, 5);
if (StringUtils.isNotBlank(codeVal)) {
List<MaintenanceCompany> companyList = maintenanceCompanyService.findByCodeAndType(codeVal, typeArr[1]);
if (!CollectionUtils.isEmpty(companyList)) {
MaintenanceCompany company = companyList.get(0);
unitDto.setCompanyId(String.valueOf(company.getSequenceNbr()));
unitDto.setCompanyName(company.getName());
return unitDto;
}
}
throw new RuntimeException("未获取人员维保单位!");
}
throw new RuntimeException("人员绑定维保单位不唯一!");
}
}
throw new RuntimeException("人员绑定维保单位不唯一!");
}
throw new RuntimeException("未获取人员业主单位!");
}
}
throw new RuntimeException("人员绑定业主单位不唯一!");
throw new RuntimeException("人员未绑定任何单位!");
}
throw new RuntimeException("人员未绑定任何单位!");
throw new RuntimeException("参数必传且不为空!");
}
public List<OrgUsr> getCompanyDetailTree() {
......
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