From 24a411b396fc1e88cc5b69a658310c68f1d15d8d Mon Sep 17 00:00:00 2001 From: ZZM <1105966949@qq.com> Date: Wed, 24 Dec 2025 08:48:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E6=8A=A5=E8=87=AA=E6=A3=80=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=EF=BC=9A=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crm/controller/CrmSbzjjgController.java | 4 +- .../entity/VO/CrmAccountQueryRequestVO.java | 11 +- .../entity/VO/CrmAccountQueryResponseVO.java | 68 ------ .../VO/CrmRankByEnterpriseRiskRequestVO.java | 7 +- .../kakarote/crm/mapper/CrmSbzjjgMapper.java | 7 +- .../crm/mapper/xml/CrmSbzjjgMapper.xml | 110 +++++---- .../crm/service/ICrmSbzjjgService.java | 2 +- .../crm/service/IZjzbdmVoService.java | 5 + .../service/impl/CrmSbzjjgServiceImpl.java | 223 ++++++++++++------ .../service/impl/CrmSwjgDmServiceImpl.java | 12 +- .../crm/service/impl/ZjzbdmVoServiceImpl.java | 9 + 11 files changed, 257 insertions(+), 201 deletions(-) delete mode 100644 crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryResponseVO.java diff --git a/crm/src/main/java/com/kakarote/crm/controller/CrmSbzjjgController.java b/crm/src/main/java/com/kakarote/crm/controller/CrmSbzjjgController.java index 129e8e3..4cd9ae7 100644 --- a/crm/src/main/java/com/kakarote/crm/controller/CrmSbzjjgController.java +++ b/crm/src/main/java/com/kakarote/crm/controller/CrmSbzjjgController.java @@ -32,8 +32,8 @@ public class CrmSbzjjgController { @PostMapping("/accountQuery") @ApiOperation("户次查询") - public Result accountQuery(@RequestBody CrmAccountQueryRequestVO crmAccountQueryRequestVO) { - CrmAccountQueryResponseVO crmAccountQueryResponseVO = crmSbzjjgService.accountQuery(crmAccountQueryRequestVO); + public Result>> accountQuery(@RequestBody CrmAccountQueryRequestVO crmAccountQueryRequestVO) { + List> crmAccountQueryResponseVO = crmSbzjjgService.accountQuery(crmAccountQueryRequestVO); return R.ok(crmAccountQueryResponseVO); } diff --git a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryRequestVO.java b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryRequestVO.java index 5bc529d..41db19a 100644 --- a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryRequestVO.java +++ b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryRequestVO.java @@ -17,11 +17,11 @@ public class CrmAccountQueryRequestVO extends PageEntity implements Serializable private static final long serialVersionUID = 1L; - // 主管税务机关代码(必填) - private String zgswjg; + // 市级税务机关代码 + private String sjSwjgdm; - // 主管税务所(分局)代码 - private String zgsws; + // 区县税务机关代码(主管税务机关) + private String qxSwjgdm; // 征收项目 private String zsxm; @@ -32,6 +32,9 @@ public class CrmAccountQueryRequestVO extends PageEntity implements Serializable // 自检指标 private String zjzbmc; + //自检指标代码 + private String zjzbdm; + // 税收管理员 private String ssgly; diff --git a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryResponseVO.java b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryResponseVO.java deleted file mode 100644 index 2305236..0000000 --- a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmAccountQueryResponseVO.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.kakarote.crm.entity.VO; - -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - - -@Data -public class CrmAccountQueryResponseVO implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 税务机关:1.主管税务局,2.主管税务所 - */ - private String swjg; - - /** - * 税务机关代码 - */ - private String swjgDm; - - /** - * 上级税务机关代码 - */ - private String sjSwjgDm; - - /** - * 申报自检户次 - */ - private Integer sbzjhc; - - /** - * 无需处理户次 - */ - private Integer wxclhc; - - /** - * 检测通过户次 - */ - private Integer jctghc; - - /** - * 未更正户次 - */ - private Integer wgzhc; - - /** - * 已更正(问题未解决)户次 - */ - private Integer ybtse1; - - /** - * 已更正(问题已解决)户次 - */ - private Integer ybtse2; - - /** - * 补正税款金额 - */ - private Double bzskje; - - /** - * 税务所的统计结果 - */ - List children; -} diff --git a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmRankByEnterpriseRiskRequestVO.java b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmRankByEnterpriseRiskRequestVO.java index 5c82b0c..c942625 100644 --- a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmRankByEnterpriseRiskRequestVO.java +++ b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmRankByEnterpriseRiskRequestVO.java @@ -13,8 +13,11 @@ public class CrmRankByEnterpriseRiskRequestVO extends PageEntity implements Seri private static final long serialVersionUID = 1L; - // 主管税务机关 - private String zgswjg; + // 市级税务机关 + private String sjSwjgdm; + + // 区县税务机关 + private String qxSwjgdm; // 自检日期起 private String zjrqq; diff --git a/crm/src/main/java/com/kakarote/crm/mapper/CrmSbzjjgMapper.java b/crm/src/main/java/com/kakarote/crm/mapper/CrmSbzjjgMapper.java index e9d0647..206b97a 100644 --- a/crm/src/main/java/com/kakarote/crm/mapper/CrmSbzjjgMapper.java +++ b/crm/src/main/java/com/kakarote/crm/mapper/CrmSbzjjgMapper.java @@ -13,13 +13,16 @@ import java.util.Map; @Mapper public interface CrmSbzjjgMapper extends BaseMapper { - CrmAccountQueryResponseVO accountQuery(@Param("vo") CrmAccountQueryRequestVO crmAccountQueryRequestVO); + List> accountQuery(@Param("vo") CrmAccountQueryRequestVO crmAccountQueryRequestVO, + @Param("fuzzy") String fuzzy); List accountQueryDetail(@Param("vo") CrmAccountQueryRequestVO crmAccountQueryRequestVO, + @Param("fuzzy") String fuzzy, @Param("offset") Integer offset, @Param("limit") Integer limit); List> rankByEnterpriseRisk(@Param("vo") CrmRankByEnterpriseRiskRequestVO crmRankByEnterpriseRiskRequestVO, + @Param("fuzzy") String fuzzy, @Param("offset") Integer offset, @Param("limit") Integer limit); @@ -40,5 +43,5 @@ public interface CrmSbzjjgMapper extends BaseMapper { List fuzzyQueryByKeyWord(@Param("keyword") String keyword); - List> batchCheckExists(@Param("batchEntities") List batchEntities); + List batchCheckExists(@Param("batchEntities") List batchEntities); } diff --git a/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmSbzjjgMapper.xml b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmSbzjjgMapper.xml index 87e7e6d..e4f6307 100644 --- a/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmSbzjjgMapper.xml +++ b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmSbzjjgMapper.xml @@ -37,40 +37,46 @@ - SELECT - COUNT(*) AS sbzjhc, - COUNT(CASE WHEN zjztmc IN ('无需处理') THEN 1 END) AS wxclhc, - COUNT(CASE WHEN zjztmc IN ('检查通过') THEN 1 END) AS jctghc, - COUNT(CASE WHEN zjztmc IN ('未更正') THEN 1 END) AS wgzhc, - COUNT(CASE WHEN zjztmc IN ('已更正,问题未解决') THEN 1 END) AS ybtse1, - COUNT(CASE WHEN zjztmc IN ('已更正,问题已解决') THEN 1 END) AS ybtse2, - SUM(COALESCE(bzskje, 0)) AS bzskje + + zgswjgmc as swjgmc, + + COUNT(*) AS sbzjhc, + COUNT(CASE WHEN zjztmc IN ('无需处理') THEN 1 END) AS wxclhc, + COUNT(CASE WHEN zjztmc IN ('检查通过') THEN 1 END) AS jctghc, + COUNT(CASE WHEN zjztmc IN ('未更正') THEN 1 END) AS wgzhc, + COUNT(CASE WHEN zjztmc IN ('已更正,问题未解决') THEN 1 END) AS ybtse1, + COUNT(CASE WHEN zjztmc IN ('已更正,问题已解决') THEN 1 END) AS ybtse2, + SUM(COALESCE(bzskje, 0)) AS bzskje FROM wk_crm_sbzjjg WHERE 1=1 - + AND zsxm_dm = #{vo.zsxm} - - - AND yzpzzl_dm = #{vo.yzpzlx} - - - AND zjzbmc = #{vo.zjzbmc} - - - AND ssgly = #{vo.ssgly} - - - AND zxsbrq BETWEEN #{vo.sbrqq} AND #{vo.sbrqz} - - - AND zjrq BETWEEN #{vo.zjrqq} AND #{vo.zjrqz} - - - AND zgswjg_dm = #{vo.zgswjg} - - AND zgswjgkfj_dm = #{vo.zgsws} + + AND yzpzzl_dm = #{vo.yzpzlx} + + + AND zjzbmc = #{vo.zjzbmc} + + + AND ssgly = #{vo.ssgly} + + + AND zxsbrq BETWEEN #{vo.sbrqq} AND #{vo.sbrqz} + + + AND zjrq BETWEEN #{vo.zjrqq} AND #{vo.zjrqz} + + + AND zgswjg_dm LIKE CONCAT(#{fuzzy}, '%') + + + AND zgswjg_dm = #{vo.qxSwjgdm} + + + GROUP BY zgswjgmc @@ -95,11 +101,11 @@ AND zjrq BETWEEN #{vo.zjrqq} AND #{vo.zjrqz} - - AND zgswjg_dm = #{vo.zgswjg} + + AND zgswjg_dm = #{vo.qxSwjgdm} - - AND zgswjgkfj_dm = #{vo.zgsws} + + AND zgswjg_dm LIKE CONCAT(#{fuzzy}, '%') @@ -129,7 +135,7 @@ SELECT DISTINCT zjzbmc FROM wk_crm_sbzjjg - WHERE zgswjg_dm = #{vo.zgswjg} AND zjztmc != '检查通过' AND nsrmc = #{vo.dwmc} + WHERE zjztmc != '检查通过' AND nsrmc = #{vo.dwmc} AND ssgly = #{vo.wgy} @@ -275,13 +289,27 @@ LIMIT 10 - SELECT * FROM wk_crm_sbzjjg - WHERE - (nsrsbh, skssqq, skssqz, zjzbmc, zjrq, zjztmc, scsbrq ,zxsbrq) IN - - (#{item.nsrsbh},#{item.skssqq},#{item.skssqz},#{item.zjzbmc},#{item.zjrq},#{item.zjztmc},#{item.scsbrq},#{item.zxsbrq}) - + + + (nsrsbh, zgswjgmc, skssqq, skssqz, zjzbmc, zjrq, zjztmc) IN + + ( + #{item.nsrsbh}, + #{item.zgswjgmc}, + #{item.skssqq}, + #{item.skssqz}, + #{item.zjzbmc}, + #{item.zjrq}, + #{item.zjztmc} + ) + + + + 1=0 + + diff --git a/crm/src/main/java/com/kakarote/crm/service/ICrmSbzjjgService.java b/crm/src/main/java/com/kakarote/crm/service/ICrmSbzjjgService.java index 7f118a4..3d921fd 100644 --- a/crm/src/main/java/com/kakarote/crm/service/ICrmSbzjjgService.java +++ b/crm/src/main/java/com/kakarote/crm/service/ICrmSbzjjgService.java @@ -17,7 +17,7 @@ public interface ICrmSbzjjgService extends BaseService { /** * 户次查询 */ - CrmAccountQueryResponseVO accountQuery(CrmAccountQueryRequestVO crmAccountQueryRequestVO); + List> accountQuery(CrmAccountQueryRequestVO crmAccountQueryRequestVO); /** * 户次查询明细 diff --git a/crm/src/main/java/com/kakarote/crm/service/IZjzbdmVoService.java b/crm/src/main/java/com/kakarote/crm/service/IZjzbdmVoService.java index 2695c64..da8606e 100644 --- a/crm/src/main/java/com/kakarote/crm/service/IZjzbdmVoService.java +++ b/crm/src/main/java/com/kakarote/crm/service/IZjzbdmVoService.java @@ -29,4 +29,9 @@ public interface IZjzbdmVoService extends BaseService { */ Integer queryZbIdByName(String name); + /** + * 通过指标代码获取指标名称 + */ + String queryZbNameByZbDm(String zbDm); + } diff --git a/crm/src/main/java/com/kakarote/crm/service/impl/CrmSbzjjgServiceImpl.java b/crm/src/main/java/com/kakarote/crm/service/impl/CrmSbzjjgServiceImpl.java index 084b921..d34189c 100644 --- a/crm/src/main/java/com/kakarote/crm/service/impl/CrmSbzjjgServiceImpl.java +++ b/crm/src/main/java/com/kakarote/crm/service/impl/CrmSbzjjgServiceImpl.java @@ -1,5 +1,4 @@ package com.kakarote.crm.service.impl; - import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; @@ -10,20 +9,20 @@ import com.kakarote.crm.entity.PO.*; import com.kakarote.crm.entity.VO.*; import com.kakarote.crm.mapper.*; import com.kakarote.crm.service.*; +import com.kakarote.crm.webService.service.NsrdjxxService; import lombok.extern.slf4j.Slf4j; -import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; - import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java.util.*; +import java.util.stream.Collectors; +import static jdk.nashorn.internal.runtime.ScriptRuntime.safeToString; @Service @Slf4j @@ -32,15 +31,9 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl> accountQuery(CrmAccountQueryRequestVO crmAccountQueryRequestVO) { + + if (crmAccountQueryRequestVO.getZjzbdm() != null && !crmAccountQueryRequestVO.getZjzbdm().isEmpty()) { + crmAccountQueryRequestVO.setZjzbmc(zjzbdmVoService.queryZbNameByZbDm(crmAccountQueryRequestVO.getZjzbdm())); + } + + List> list; + //如果只传入了市级税务机关,则取税务机关代码的前五位进行模糊查询 + if ((crmAccountQueryRequestVO.getSjSwjgdm() != null && !crmAccountQueryRequestVO.getSjSwjgdm().isEmpty()) + && (crmAccountQueryRequestVO.getQxSwjgdm() == null || crmAccountQueryRequestVO.getQxSwjgdm().isEmpty())) { + String fuzzy = crmAccountQueryRequestVO.getSjSwjgdm().substring(0, 5); + list = crmSbzjjgMapper.accountQuery(crmAccountQueryRequestVO, fuzzy); + // 添加市级税务机关名称 CrmSwjg swjg = new LambdaQueryChainWrapper<>(crmSwjgMapper) - .eq(CrmSwjg::getSwjgDm, crmAccountQueryRequestVO.getZgsws()) + .eq(CrmSwjg::getSwjgDm, crmAccountQueryRequestVO.getSjSwjgdm()) .last("limit 1") .one(); - parent.setSwjg(swjg.getSwjgmc()); - parent.setSwjgDm(swjg.getSwjgDm()); - parent.setSjSwjgDm(swjg.getSjswjgDm()); - return parent; + list.get(0).put("swjgmc", swjg.getSwjgmc()); + list.get(0).put("swjgdm", swjg.getSwjgDm()); + return list; } else { - // 获取主管税务机关名称 - String name = new LambdaQueryChainWrapper<>(crmSwjgDmMapper) - .eq(CrmSwjgDm::getSwjgDm, crmAccountQueryRequestVO.getZgswjg()) - .last("limit 1") - .one().getSwjgMc(); - // 设置主管税务机关 - parent.setSwjg(name); - // 设置主管税务机关代码 - parent.setSwjgDm(crmAccountQueryRequestVO.getZgswjg()); - // 获取下级税务机关信息 - List swjgs = new LambdaQueryChainWrapper<>(crmSwjgMapper) - .eq(CrmSwjg::getSjswjgDm, crmAccountQueryRequestVO.getZgswjg()) - .list(); - // 对下级税务机关进行户次查询 - swjgs.forEach(swjg -> { - crmAccountQueryRequestVO.setZgsws(swjg.getSwjgDm()); - CrmAccountQueryResponseVO child = crmSbzjjgMapper.accountQuery(crmAccountQueryRequestVO); - if (child != null && child.getSbzjhc() != 0) { - child.setSwjg(swjg.getSwjgmc()); - child.setSwjgDm(swjg.getSwjgDm()); - child.setSjSwjgDm(swjg.getSjswjgDm()); - // 确保children列表不为null - if (parent.getChildren() == null) { - parent.setChildren(new ArrayList<>()); // 初始化列表 - } - parent.getChildren().add(child); - } + list = crmSbzjjgMapper.accountQuery(crmAccountQueryRequestVO,null); + list.forEach(map->{ + CrmSwjg swjg = new LambdaQueryChainWrapper<>(crmSwjgMapper) + .eq(CrmSwjg::getSwjgmc, map.get("swjgmc")) + .last("limit 1") + .one(); + map.put("swjgmdm", swjg.getSwjgDm()); }); - return parent; } + return list; } @Override public BasePage accountQueryDetail(CrmAccountQueryRequestVO crmAccountQueryRequestVO) { + if (crmAccountQueryRequestVO.getZjzbdm() != null && !crmAccountQueryRequestVO.getZjzbdm().isEmpty()) { + crmAccountQueryRequestVO.setZjzbmc(zjzbdmVoService.queryZbNameByZbDm(crmAccountQueryRequestVO.getZjzbdm())); + } + Integer offset = (crmAccountQueryRequestVO.getPage() - 1) * crmAccountQueryRequestVO.getLimit(); crmAccountQueryRequestVO.setOffset(offset); - List crmSbzjjgs = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO,null,null); + List crmSbzjjgs; + List pageList; - List pageList = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO, - offset, - crmAccountQueryRequestVO.getLimit()); + if (crmAccountQueryRequestVO.getSjSwjgdm() != null && !crmAccountQueryRequestVO.getSjSwjgdm().isEmpty()) { + //如果传入了市级税务机关,则取税务机关代码的前五位进行模糊查询 + String fuzzy = crmAccountQueryRequestVO.getSjSwjgdm().substring(0, 5); + crmSbzjjgs = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO, fuzzy, null, null); + pageList = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO, + fuzzy, + offset, + crmAccountQueryRequestVO.getLimit()); + } else { + crmSbzjjgs = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO,null,null,null); + pageList = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO, + null, + offset, + crmAccountQueryRequestVO.getLimit()); + } BasePage basePage = new BasePage<>(); - for (CrmSbzjjg crmSbzjjg : pageList) { basePage.getList().add(crmSbzjjg); } @@ -132,29 +132,60 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl> rankByEnterpriseRisk(CrmRankByEnterpriseRiskRequestVO crmRankByEnterpriseRiskRequestVO) { - List> maps = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, - null, - null); + BasePage> basePage = new BasePage<>(); Integer offset = (crmRankByEnterpriseRiskRequestVO.getPage() - 1) * crmRankByEnterpriseRiskRequestVO.getLimit(); crmRankByEnterpriseRiskRequestVO.setOffset(offset); - List> pageMap = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, - offset, - crmRankByEnterpriseRiskRequestVO.getLimit()); + List> maps; + List> pageMap; - BasePage> basePage = new BasePage<>(); + // 如果没有传市级税务机关,则按照区县税务机关进行分类查询 + if (crmRankByEnterpriseRiskRequestVO.getSjSwjgdm() == null || crmRankByEnterpriseRiskRequestVO.getSjSwjgdm().isEmpty()) { + maps = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, + null, + null, + null); + pageMap = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, + null, + offset, + crmRankByEnterpriseRiskRequestVO.getLimit()); + } else if (crmRankByEnterpriseRiskRequestVO.getQxSwjgdm() == null || crmRankByEnterpriseRiskRequestVO.getQxSwjgdm().isEmpty()) { + //如果传入了市级税务机关,则取税务机关代码的前五位进行模糊查询 + String fuzzy = crmRankByEnterpriseRiskRequestVO.getSjSwjgdm().substring(0, 5); + maps = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, + fuzzy, + null, + null); + pageMap = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, + fuzzy, + offset, + crmRankByEnterpriseRiskRequestVO.getLimit()); + } else { + maps = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, + null, + null, + null); + pageMap = crmSbzjjgMapper.rankByEnterpriseRisk(crmRankByEnterpriseRiskRequestVO, + null, + offset, + crmRankByEnterpriseRiskRequestVO.getLimit()); + + } basePage.setList(pageMap); basePage.setCurrent(crmRankByEnterpriseRiskRequestVO.getPage()); basePage.setSize(crmRankByEnterpriseRiskRequestVO.getLimit()); basePage.setTotal(maps.size()); - return basePage; } @Override public BasePage> rankByEnterpriseRiskDetail(CrmRankByEnterpriseRiskRequestVO crmRankByEnterpriseRiskRequestVO) { + if (crmRankByEnterpriseRiskRequestVO.getDwmc() == null || crmRankByEnterpriseRiskRequestVO.getDwmc().isEmpty()) { + throw new RuntimeException("单位名称不能为空!"); + } + List fxzbList = crmSbzjjgMapper.rankByEnterpriseRiskDetail(crmRankByEnterpriseRiskRequestVO,null,null); Integer offset = (crmRankByEnterpriseRiskRequestVO.getPage() - 1) * crmRankByEnterpriseRiskRequestVO.getLimit(); @@ -168,14 +199,14 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl map = new HashMap<>(); - String swjgmc = new LambdaQueryChainWrapper<>(crmSwjgMapper) - .eq(CrmSwjg::getSwjgDm, crmRankByEnterpriseRiskRequestVO.getZgswjg()) + String zgswjgmc = new LambdaQueryChainWrapper<>(crmSbzjjgMapper) + .eq(CrmSbzjjg::getNsrmc, crmRankByEnterpriseRiskRequestVO.getDwmc()) .last("limit 1") .one() - .getSwjgmc(); + .getZgswjgmc(); map.put("dwmc", crmRankByEnterpriseRiskRequestVO.getDwmc()); - map.put("zjswjg", swjgmc); + map.put("zjswjg", zgswjgmc); map.put("fxzbList", pageList); mapList.add(map); @@ -238,13 +269,16 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl(crmQyjbxxMapper) - .eq(CrmQyjbxx::getNsrmc, qymc) + CrmSbzjjg one = new LambdaQueryChainWrapper<>(crmSbzjjgMapper) + .eq(CrmSbzjjg::getNsrmc, qymc) + .last("limit 1") .one(); + CrmQyjbxx crmQyjbxx = nsrdjxxService.getNsrdjxx(one.getNsrsbh(), one.getZgswjgkfjDm()); + Map map = new HashMap<>(); map.put("qymc", qymc); - map.put("wgy", crmRankByPointerTypeRequestVO.getWgy()); + map.put("wgy", one.getSsgly()); if (crmQyjbxx != null) { map.put("qysh",crmQyjbxx.getNsrsbh()); map.put("frxm",crmQyjbxx.getFddbrxm()); @@ -295,7 +329,7 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl uniqueEntities = checkAndRemoveDuplicates(batchEntities); // 分批插入 // 插入当前批次 - batchInsert(batchEntities); - successCount += batchEntities.size(); + if (!uniqueEntities.isEmpty()) { + batchInsert(uniqueEntities); + } + successCount += uniqueEntities.size(); + skipCount += (batchCount - uniqueEntities.size()); // 记录进度 log.info("已处理 {}/{} 条数据", Math.min(endRow, dataRowCount), dataRowCount); @@ -349,13 +388,13 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl importResult = new HashMap<>(); importResult.put("totalRows", totalCount-1); importResult.put("successCount", successCount); - importResult.put("message", String.format("成功导入 %d 条数据", successCount)); + importResult.put("message", String.format("成功导入 %d 条数据,跳过 %d 条重复数据", + successCount, skipCount)); return importResult; } private void setTableMapping(ExcelReader reader) { - // 设置表头映射 reader.addHeaderAlias("纳税人名称", "nsrmc"); reader.addHeaderAlias("统一社会信用代码(纳税人识别号)", "nsrsbh"); @@ -470,9 +509,31 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl checkAndRemoveDuplicates(List batchEntities){ - List> maps = crmSbzjjgMapper.batchCheckExists(batchEntities); - System.out.println(maps.size()); - return null; + List list = crmSbzjjgMapper.batchCheckExists(batchEntities); + + Set existSet = list.stream().map(this::generateKey).collect(Collectors.toSet()); + + batchEntities.removeIf(entity -> { + String key = generateKey(entity); + return existSet.contains(key); + }); + + return batchEntities; + } + + private String generateKey(CrmSbzjjg crmSbzjjg) { + if (crmSbzjjg == null) { + return null; + } + return String.join("|||", + safeToString(crmSbzjjg.getNsrsbh()), + safeToString(crmSbzjjg.getZgswjgmc()), + safeToString(crmSbzjjg.getSkssqq()), + safeToString(crmSbzjjg.getSkssqz()), + safeToString(crmSbzjjg.getZjzbmc()), + safeToString(crmSbzjjg.getZjrq()), + safeToString(crmSbzjjg.getZjztmc()) + ); } private void batchInsert(List batchEntities) { @@ -494,7 +555,13 @@ public class CrmSbzjjgServiceImpl extends BaseServiceImpl exportList = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO, null, null); + List exportList; + if (crmAccountQueryRequestVO.getSjSwjgdm() != null && !crmAccountQueryRequestVO.getSjSwjgdm().isEmpty()) { + String fuzzy = crmAccountQueryRequestVO.getSjSwjgdm().substring(0, 5); + exportList = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO, fuzzy, null,null); + } else { + exportList = crmSbzjjgMapper.accountQueryDetail(crmAccountQueryRequestVO,null,null,null); + } if (exportList == null || exportList.isEmpty()) { throw new RuntimeException("没有可导出的数据"); diff --git a/crm/src/main/java/com/kakarote/crm/service/impl/CrmSwjgDmServiceImpl.java b/crm/src/main/java/com/kakarote/crm/service/impl/CrmSwjgDmServiceImpl.java index cf044c3..661f031 100644 --- a/crm/src/main/java/com/kakarote/crm/service/impl/CrmSwjgDmServiceImpl.java +++ b/crm/src/main/java/com/kakarote/crm/service/impl/CrmSwjgDmServiceImpl.java @@ -6,6 +6,7 @@ import com.kakarote.core.servlet.BaseServiceImpl; import com.kakarote.crm.entity.PO.CrmSwjgDm; import com.kakarote.crm.mapper.CrmSwjgDmMapper; import com.kakarote.crm.service.ICrmSwjgDmService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,6 +14,7 @@ import java.util.Collections; import java.util.List; @Service +@Slf4j public class CrmSwjgDmServiceImpl extends BaseServiceImpl implements ICrmSwjgDmService { @Autowired @@ -44,11 +46,15 @@ public class CrmSwjgDmServiceImpl extends BaseServiceImpl(crmSwjgDmMapper) + CrmSwjgDm swjgDm = new LambdaQueryChainWrapper<>(crmSwjgDmMapper) .select(CrmSwjgDm::getSwjgDm) .eq(CrmSwjgDm::getSwjgMc, name) .last("limit 1") - .one() - .getSwjgDm(); + .one(); + if (swjgDm == null) { + log.info("无法查询到相关税务机关代码:{},返回空值", name); + return ""; + } + return swjgDm.getSwjgDm(); } } diff --git a/crm/src/main/java/com/kakarote/crm/service/impl/ZjzbdmVoServiceImpl.java b/crm/src/main/java/com/kakarote/crm/service/impl/ZjzbdmVoServiceImpl.java index 68995d6..cc5a2fd 100644 --- a/crm/src/main/java/com/kakarote/crm/service/impl/ZjzbdmVoServiceImpl.java +++ b/crm/src/main/java/com/kakarote/crm/service/impl/ZjzbdmVoServiceImpl.java @@ -218,4 +218,13 @@ public class ZjzbdmVoServiceImpl extends BaseServiceImpl(zjzbdmVoMapper) + .eq(ZjzbdmVo::getZbDm,zbDm) + .last("limit 1") + .one() + .getZbmc(); + } } \ No newline at end of file