新增属地调整功能

This commit is contained in:
zhouxy 2026-01-10 21:19:07 +08:00
parent 36fce097ae
commit 4d7ebacfd2
11 changed files with 319 additions and 69 deletions

View File

@ -13,18 +13,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaweal.aiccs.aiccs.abnormal.entity.EBaseinfo;
import com.chinaweal.aiccs.aiccs.abnormal.entity.Gzaiccode;
import com.chinaweal.aiccs.aiccs.abnormal.entity.TREntBaseInfo;
import com.chinaweal.aiccs.aiccs.abnormal.entity.XrSuperviseDeptLog;
import com.chinaweal.aiccs.aiccs.abnormal.entity.dto.ComprehensiveStat;
import com.chinaweal.aiccs.aiccs.abnormal.entity.dto.ToIncludeAbnDto;
import com.chinaweal.aiccs.aiccs.abnormal.entity.vo.QzzxEntDto;
import com.chinaweal.aiccs.aiccs.abnormal.entity.vo.RegulatoryVO;
import com.chinaweal.aiccs.aiccs.abnormal.entity.vo.XyxfCqDto;
import com.chinaweal.aiccs.aiccs.abnormal.mapper.RegulatoryMapper;
import com.chinaweal.aiccs.aiccs.abnormal.mapper.ToincludeabnMapper;
import com.chinaweal.aiccs.aiccs.abnormal.service.EAlterRecoderTempService;
import com.chinaweal.aiccs.aiccs.abnormal.service.EBaseinfoService;
import com.chinaweal.aiccs.aiccs.abnormal.service.IGzaiccodeService;
import com.chinaweal.aiccs.aiccs.abnormal.service.TREntBaseInfoService;
import com.chinaweal.aiccs.aiccs.abnormal.service.*;
import com.chinaweal.aiccs.aiccs.entbase.entity.TREntPriseType;
import com.chinaweal.aiccs.aiccs.entbase.service.TREntPriseTypeService;
import com.chinaweal.aiccs.aiccs.market.service.AreaSliceService;
@ -64,16 +60,19 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.solr.core.query.Criteria;
import org.springframework.data.solr.core.query.Query;
import org.springframework.data.solr.core.query.SimpleQuery;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import static com.baomidou.mybatisplus.core.toolkit.Wrappers.lambdaQuery;
@ -225,46 +224,9 @@ public class EBaseinfoController extends BaseController {
}
IPage<ToIncludeAbnDto> page = null;
String searchtype = StringUtils.tranObject(customParamMap.get("searchtype"));
if ("2".equals(searchtype)) { // 个案
String suporg = aicorgService.getRegionCodeByOrgLevel(curUser);
customParamMap.put("suporg", suporg);
page = toincludeabnMapper.listByEb(new Page<>(pageRequestDto.getCurPage(), pageRequestDto.getPageSize()), customParamMap);
} else {
//获取当前用户的机构判断是区局还是所级获取对应的机构单位ID列表
LambdaQueryWrapper<Gzaiccode> lqw = lambdaQuery();
List<String> orgunitids = new ArrayList<>();
if ("001".equals(curUser.getOrgID())) {
//市局的账号
//判断是不是登记注册二处
if ("f7b2117a-ee80-4470-930e-03f106f3e031".equals(curUser.getUnitID()) || "001029".equals(curUser.getUnitID())) {
//customParamMap.put("regOrg", "440129");//查询登记机关
customParamMap.put("acceptOrg", "440129");
} else {
customParamMap.put("regOrg", "440101");//查询登记机关
customParamMap.put("acceptOrg", "440101");
}
} else if ("001029".equals(curUser.getOrgID())) {
//customParamMap.put("regOrg", "440129");//查询登记机关
customParamMap.put("acceptOrg", "440129");
} else {
OrgUnits orgModel = tUsersService.byOrgUnitId(curUser.getOrgID());
if (orgModel.getOrgLevel().equals(3)) { // 区局
customParamMap.put("regOrg", orgModel.getOrgNumber());//查询登记机关
} else {
customParamMap.put("regOrg", orgModel.getOrgNumber().substring(0, 6));//查询登记机关
customParamMap.put("scountrycodes", orgModel.getOrgNumber());//监管机关
// 查看本所同事列入的线索
//customParamMap.put("tbm", orgModel.getOrgNumber());
}
}
List<ToIncludeAbnDto> listedByOrg = toincludeabnMapper.listByOrg(customParamMap, pageRequestDto.getCurPage(), pageRequestDto.getPageSize());
if (listedByOrg == null) {
listedByOrg = new ArrayList<>();
}
long total = toincludeabnMapper.listByOrgCount(customParamMap);
page = new Page<>();
page.setRecords(listedByOrg).setCurrent(pageRequestDto.getCurPage()).setSize(page.getSize()).setTotal(total);
}
String suporg = aicorgService.getRegionCodeByOrgLevel(curUser);
customParamMap.put("suporg", suporg);
page = toincludeabnMapper.listByEb(new Page<>(pageRequestDto.getCurPage(), pageRequestDto.getPageSize()), customParamMap);
if (CollectionUtils.isNotEmpty(page.getRecords())) {
for (ToIncludeAbnDto record : page.getRecords()) {
@ -1256,10 +1218,25 @@ public class EBaseinfoController extends BaseController {
}
}
@ApiOperation(value = "5.分页查询市场主体基本信息", position = 5)
@PostMapping("/listEBaseinfo")
public RestResult<IPage<EBaseinfo>> listEBaseinfo(@RequestBody BaseQuery<EBaseinfo> query) {
@ApiOperation(value = "分页查询市场主体基本信息", position = 5)
@PostMapping("/pageBaseinfo")
public RestResult<IPage<EBaseinfo>> pageBaseinfo(@RequestBody BaseQuery<EBaseinfo> query) {
IPage<EBaseinfo> data = eBaseinfoService.listEBaseinfo(query);
return RestResult.ok(data);
}
@ApiOperation(value = "6.修改单个主体的属地机关", position = 6)
@PostMapping("/updateBaseinfoSuperviseDept")
public RestResult<String> updateBaseinfoSuperviseDept(@RequestBody @Valid EBaseinfo eBaseinfo, HttpServletRequest request) {
AICUser user = getLoginUser(request);
if (user == null) {
return RestResult.error(ResultCode.USER_NOT_LOGGED_IN);
}
String afterDeptid = eBaseinfo.getAfterDeptid();
if (StringUtils.isEmpty(afterDeptid)){
return RestResult.error(ResultCode.PARAM_IS_BLANK);
}
eBaseinfoService.updateBaseinfoSuperviseDept(eBaseinfo, afterDeptid, user);
return RestResult.ok();
}
}

View File

@ -267,10 +267,12 @@ public class EBaseinfo extends Model<EBaseinfo> {
/**
* 数据汇总时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")
@TableField("s_Ext_Datatime")
@ApiModelProperty(value = "数据汇总时间")
private LocalDateTime sExtDatatime;
/**
* 国民行业经济名称(名称)
*/
@ -566,6 +568,13 @@ public class EBaseinfo extends Model<EBaseinfo> {
@TableField(exist = false)
private String searchUscc;
/**
* 修改后的属地机关编号
*/
@ApiModelProperty(value = "修改后的属地机关编号")
@TableField(exist = false)
private String afterDeptid;
/**
* 退认领id
*/

View File

@ -0,0 +1,99 @@
package com.chinaweal.aiccs.aiccs.abnormal.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 主体的属地机关调整日志表
*
* @author zhouxy
* @since 2025-07-08
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "xr_supervise_dept_log")
@ApiModel(value = "XrSuperviseDeptLog对象", description = "主体的属地机关调整日志表")
public class XrSuperviseDeptLog implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 表id
*/
@ApiModelProperty(value = "表id")
@TableId(value = "supervise_log_id", type = IdType.ASSIGN_UUID)
private String superviseLogId;
/**
* 主体身份代码
*/
@ApiModelProperty(value = "主体身份代码")
@TableField("prip_id")
private String pripId;
/**
* 统一社会信用代码
*/
@ApiModelProperty(value = "统一社会信用代码")
@TableField("unisc_id")
private String uniscId;
/**
* 名称
*/
@ApiModelProperty(value = "主体名称")
@TableField("ent_name")
private String entName;
/**
* 调整前的属地机关编号
*/
@ApiModelProperty(value = "调整前的属地机关编号")
@TableField("dept_before")
private String deptBefore;
/**
* 调整后的属地机关编号
*/
@ApiModelProperty(value = "调整后的属地机关编号")
@TableField("dept_after")
private String deptAfter;
/**
* 操作人
*/
@ApiModelProperty(value = "操作人")
@TableField("operater")
private String operater;
/**
* 操作人id
*/
@ApiModelProperty(value = "操作人id")
@TableField("oper_id")
private String operId;
/**
* 操作时间
*/
@ApiModelProperty(value = "操作时间")
@TableField("oper_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime operTime;
}

View File

@ -0,0 +1,8 @@
package com.chinaweal.aiccs.aiccs.abnormal.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chinaweal.aiccs.aiccs.abnormal.entity.XrSuperviseDeptLog;
public interface XrSuperviseDeptLogMapper extends BaseMapper<XrSuperviseDeptLog> {
}

View File

@ -213,4 +213,6 @@ public interface EBaseinfoService extends BaseService<EBaseinfo> {
IPage<EBaseinfo> listEBaseinfo(BaseQuery<EBaseinfo> query);
EBaseinfo updateBaseinfoSuperviseDept(EBaseinfo eBaseinfo, String afterDeptid, AICUser user);
}

View File

@ -0,0 +1,8 @@
package com.chinaweal.aiccs.aiccs.abnormal.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chinaweal.aiccs.aiccs.abnormal.entity.XrSuperviseDeptLog;
public interface IXrSuperviseDeptLogService extends IService<XrSuperviseDeptLog> {
}

View File

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -48,6 +49,8 @@ import com.chinaweal.aiccs.crgs.moveinDetails.entity.EAlterRecoder;
import com.chinaweal.aiccs.crgs.service.EContactCrgsService;
import com.chinaweal.aiccs.crgs.service.EPriPersonCrgsService;
import com.chinaweal.aiccs.org.entity.OrgAreas;
import com.chinaweal.aiccs.org.entity.OrgUnits;
import com.chinaweal.aiccs.org.service.AicorgService;
import com.chinaweal.aiccs.org.service.OrgAreasService;
import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.aicorg.services.OrgUM;
@ -141,6 +144,10 @@ public class EBaseinfoServiceImpl extends BaseServiceImpl<EBaseinfoMapper, EBase
private OrgAreasService orgAreasService;
@Autowired
private SolrExGongan128XdzkdyServiceImpl solrExGongan128XdzkdyService;
@Autowired
private AicorgService aicorgService;
@Resource
private IXrSuperviseDeptLogService iXrSuperviseDeptLogService;
@Override
public String getLevelFromCrgs(String pripid) {
@ -1599,37 +1606,77 @@ public class EBaseinfoServiceImpl extends BaseServiceImpl<EBaseinfoMapper, EBase
String uniscId = entity.getUniscid();
String entName = entity.getEntname();
String searchUscc = entity.getSearchUscc();
//输入了条件才会查询
// 输入了条件才会查询
if(com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(uniscId)
|| com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(entName)
|| com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(searchUscc)){
LambdaQueryWrapper<EBaseinfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
// 添加所有适用的查询条件
if(com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(uniscId))
lambdaQueryWrapper.eq(EBaseinfo::getUniscid, uniscId);
if(com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(entName))
lambdaQueryWrapper.eq(EBaseinfo::getEntname, entName);
page = page(page, lambdaQueryWrapper);
if(com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(searchUscc))
lambdaQueryWrapper.eq(EBaseinfo::getUniscid, searchUscc)
.or().eq(EBaseinfo::getRegno, searchUscc);
lambdaQueryWrapper.and(wrapper ->
wrapper.eq(EBaseinfo::getUniscid, searchUscc)
.or().eq(EBaseinfo::getRegno, searchUscc));
page = page(page, lambdaQueryWrapper);
// page.getRecords().forEach(record -> {
// QueryWrapper<TOrgUnits> queryWrapper = new QueryWrapper<>();
// //查属地机关中文
// String supervisedeptid = record.getSupervisedeptid();
// if(com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(supervisedeptid)){
// queryWrapper.lambda().eq(TOrgUnits::getOrgNumber, supervisedeptid.length() == 6 ? supervisedeptid + "000" : supervisedeptid)
// .eq(TOrgUnits::getDeleted, '0');
// List<TOrgUnits> list = tOrgUnitsService.list(queryWrapper);
// if (list.size() > 0) {
// TOrgUnits tOrgunits = list.get(0);
// record.setLocaladmCn(tOrgunits.getOrgUnitName());
// }
// }
// });
// 更新监管机构名称
page.getRecords().forEach(record -> {
String suporgCn = record.getSuporgCn();
if(com.chinaweal.aiccs.common.util.StringUtils.isNotEmpty(suporgCn)){
String suporg = record.getSuporg();
QueryWrapper<OrgUnits> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(OrgUnits::getOrgNumber, suporg)
.eq(OrgUnits::getDeleted, '0')
.eq(OrgUnits::getUnitType, "1");
List<OrgUnits> list = aicorgService.list(queryWrapper);
if (list.size() > 0) {
OrgUnits tOrgunits = list.get(0);
record.setSuporgCn(tOrgunits.getOrgUnitName());
}
}
});
}
return page;
}
@Override
public EBaseinfo updateBaseinfoSuperviseDept(EBaseinfo eBaseinfo, String afterDeptid, AICUser user) {
OrgUnits org = aicorgService.getOne(new LambdaQueryWrapper<OrgUnits>()
.eq(OrgUnits::getOrgNumber, afterDeptid)
.eq(OrgUnits::getDeleted, "0")
.eq(OrgUnits::getUnitType, "1"));
// 使用 LambdaUpdateWrapper 只更新指定字段
LambdaUpdateWrapper<EBaseinfo> updateWrapper = Wrappers.lambdaUpdate(EBaseinfo.class)
.set(EBaseinfo::getSuporg, afterDeptid)
.set(EBaseinfo::getSuporgCn, org.getOrgUnitName())
.set(EBaseinfo::getLocaladm, afterDeptid)
.set(EBaseinfo::getAcceptRegorg, afterDeptid)
.set(EBaseinfo::getAcceptregorgCn, org.getOrgUnitName())
.set(EBaseinfo::getRegulatory, afterDeptid)
.set(EBaseinfo::getRegulatoryName, org.getOrgUnitName())
.eq(EBaseinfo::getPripid, eBaseinfo.getPripid()); // 根据主键更新
this.update(updateWrapper);
// 记录属地调整日志
XrSuperviseDeptLog log = new XrSuperviseDeptLog()
.setSuperviseLogId(UUID.randomUUID().toString())
.setPripId(eBaseinfo.getPripid())
.setUniscId(StringUtils.isNotEmpty(eBaseinfo.getUniscid()) ? eBaseinfo.getUniscid() : eBaseinfo.getRegno())
.setEntName(eBaseinfo.getEntname())
.setDeptBefore(eBaseinfo.getSuporg()) // 记录更新前的值
.setDeptAfter(afterDeptid)
.setOperater(user.getName())
.setOperId(user.getPrimaryKey())
.setOperTime(LocalDateTime.now());
iXrSuperviseDeptLogService.save(log);
return eBaseinfo;
}
}

View File

@ -0,0 +1,12 @@
package com.chinaweal.aiccs.aiccs.abnormal.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chinaweal.aiccs.aiccs.abnormal.entity.XrSuperviseDeptLog;
import com.chinaweal.aiccs.aiccs.abnormal.mapper.XrSuperviseDeptLogMapper;
import com.chinaweal.aiccs.aiccs.abnormal.service.IXrSuperviseDeptLogService;
import org.springframework.stereotype.Service;
@Service
public class XrSuperviseDeptLogServiceImpl extends ServiceImpl<XrSuperviseDeptLogMapper, XrSuperviseDeptLog> implements IXrSuperviseDeptLogService {
}

View File

@ -0,0 +1,83 @@
package com.chinaweal.aiccs.org.controller;
import com.chinaweal.aiccs.common.base.controller.BaseController;
import com.chinaweal.aiccs.common.util.StringUtils;
import com.chinaweal.aiccs.org.entity.vo.CascaderVO;
import com.chinaweal.aiccs.org.service.AicorgService;
import com.chinaweal.youfool.framework.springboot.rest.RestResult;
import com.github.xiaoymin.knife4j.annotations.ApiSort;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 机构表 控制器
*
* @author zhouxy
* @since 2026-01-10
*/
@Api(tags = "组织结构")
@ApiSort(2)
@RestController
@RequestMapping("/tOrgunits")
public class TOrgunitsController extends BaseController {
@Resource
private AicorgService aicorgService;
@ApiOperation(value = "获取某个地市下面所有机关")
@PostMapping("/getAllOrgunits")
public RestResult<?> getAllOrgunits(String orgNumber,Integer orgLevel) {
List<CascaderVO> orgunits;
if(StringUtils.isNotEmpty(orgNumber)){
orgNumber = orgNumber+"%";
}
if(orgLevel == 0){
orgLevel = 1;
}
orgunits = aicorgService.queryAll(orgNumber);
List<CascaderVO> level1 = new ArrayList<>();
CascaderVO cascader = new CascaderVO();
List<CascaderVO> level2 = new ArrayList<>();
for (CascaderVO orgunit : orgunits) {
if (orgunit.getOrgLevel() == orgLevel.intValue()) {
cascader.setLabel(orgunit.getLabel());
cascader.setOrgUnitId(orgunit.getOrgUnitId());
cascader.setParentID(orgunit.getParentID());
cascader.setValue(orgunit.getValue());
cascader.setOrgLevel(orgunit.getOrgLevel());
}
if (Objects.equals(orgunit.getOrgLevel(), orgLevel + 1)) {
level2.add(orgunit);
}
}
merge(level2, orgunits);
cascader.setChildren(level2);
level1.add(cascader);
return RestResult.ok(level1);
}
private void merge(List<CascaderVO> pre, List<CascaderVO> all) {
List<CascaderVO> ooo = new ArrayList<>();
for (CascaderVO orgunits : pre) {
for (CascaderVO org : all) {
if (StringUtils.equals(org.getParentID(), orgunits.getOrgUnitId())) {
if (orgunits.getChildren() == null) {
orgunits.setChildren(new ArrayList<>());
}
orgunits.getChildren().add(org);
ooo.add(org);
}
}
}
if (ooo.size() > 0) {
merge(ooo, all);
}
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chinaweal.aiccs.aiccs.abnormal.mapper.XrSuperviseDeptLogMapper">
</mapper>

View File

@ -160,7 +160,7 @@
units.parentID,
units.orgLevel,
units.orgNumber AS "value"
FROM t_orgUnits units
FROM cxaicorg.t_orgUnits units
WHERE units.deleted = '0'
AND units.unitType = '1'
AND units.orgLevel IN (1, 2, 3, 4, 5)