diff --git a/ibs/src/main/java/com/ruoyi/ibs/cmpm/service/GridCmpmService.java b/ibs/src/main/java/com/ruoyi/ibs/cmpm/service/GridCmpmService.java index 5a58531..e71cb46 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/cmpm/service/GridCmpmService.java +++ b/ibs/src/main/java/com/ruoyi/ibs/cmpm/service/GridCmpmService.java @@ -227,7 +227,24 @@ public class GridCmpmService { Map historyLevelCountMap = getCustLevelCountMap(custManagerDTO, "last"); Map custLevelCompLm = calculateLevelChanges(historyLevelCountMap, currentLevelCountMap); vo.setCustLevelCompLm(custLevelCompLm); - vo.setCustLevelCount(currentLevelCountMap); + + // 在 vo.setCustLevelCompLm 之前,按顺序重新组织数据 + String[] order = {"5星", "4星", "3星", "2星", "1星", "基础", "长尾"}; + Map orderedCustLevelCompLm = new LinkedHashMap<>(); + for (String itemKey : order) { + if (custLevelCompLm.containsKey(itemKey)) { + orderedCustLevelCompLm.put(itemKey, custLevelCompLm.get(itemKey)); + } + } + vo.setCustLevelCompLm(orderedCustLevelCompLm); + // custLevelCount 同理 + Map orderedCustLevelCount = new LinkedHashMap<>(); + for (String itemKey : order) { + if (currentLevelCountMap.containsKey(itemKey)) { + orderedCustLevelCount.put(itemKey, currentLevelCountMap.get(itemKey)); + } + } + vo.setCustLevelCount(orderedCustLevelCount); ObjectMapper objectMapper = new ObjectMapper(); try{ diff --git a/ibs/src/main/java/com/ruoyi/ibs/custmap/mapper/CustMapMapper.java b/ibs/src/main/java/com/ruoyi/ibs/custmap/mapper/CustMapMapper.java index a75d335..092a5da 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/custmap/mapper/CustMapMapper.java +++ b/ibs/src/main/java/com/ruoyi/ibs/custmap/mapper/CustMapMapper.java @@ -35,7 +35,7 @@ public interface CustMapMapper extends BaseMapper { List exportCustMapListByPolygon(CustMapPolygonExcelDTO custMapPolygonExcelDTO ); - List selectLngAndLat(@Param("offset") int offset, @Param("limit") int limit); + List selectLngAndLat(@Param("lastId") long lastId, @Param("limit") int limit); void saveCodeToCustMap(@Param("updateDataList") List> updateDataLis); diff --git a/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/AddressAnalyseServiceImpl.java b/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/AddressAnalyseServiceImpl.java index 3bfdcc2..b270ef7 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/AddressAnalyseServiceImpl.java +++ b/ibs/src/main/java/com/ruoyi/ibs/grid/service/impl/AddressAnalyseServiceImpl.java @@ -85,12 +85,12 @@ public class AddressAnalyseServiceImpl implements AddressAnalyseService { //pointInGeometryScheduled @Override public void pointInGeometryScheduled() { - int pageSize = 1000; // 每页处理1000条数据 - int offset = 0; + int pageSize = 1000; + long lastId = 0L; List custMapVOS; do { // 分页查询客户地图数据 - custMapVOS = custMapMapper.selectLngAndLat(offset, pageSize); + custMapVOS = custMapMapper.selectLngAndLat(lastId, pageSize); // 收集需要更新的数据 List> updateDataList = new ArrayList<>(); for (CustMapVO custMapVO : custMapVOS) { @@ -121,6 +121,10 @@ public class AddressAnalyseServiceImpl implements AddressAnalyseService { if (!updateDataList.isEmpty()) { custMapMapper.saveCodeToCustMap(updateDataList); } + // 关键:移动游标 + if (!custMapVOS.isEmpty()) { + lastId = custMapVOS.get(custMapVOS.size() - 1).getId(); + } // 避免数据库连接过多占用,适当休眠 try { Thread.sleep(100); @@ -128,9 +132,8 @@ public class AddressAnalyseServiceImpl implements AddressAnalyseService { Thread.currentThread().interrupt(); break; } - } while (custMapVOS.size() == pageSize); // 当查询结果小于页大小时,说明已处理完所有数据 - - log.info("地址解析定时任务执行完成, 共处理{}条数据", offset); + } while (!custMapVOS.isEmpty()); // 当查询结果小于页大小时,说明已处理完所有数据 + log.info("地址解析定时任务执行完成"); } @Override @@ -265,7 +268,6 @@ public class AddressAnalyseServiceImpl implements AddressAnalyseService { flattenFeoTree(geoInfoDTO, allGeoInfoDTOList); } log.info("扁平化区域列表大小: {}", allGeoInfoDTOList.size()); - log.info("<-------------------Loading completed.------------------->"); } diff --git a/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoDTO.java b/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoDTO.java index 61f2474..53d4d4f 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoDTO.java +++ b/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoDTO.java @@ -33,6 +33,13 @@ public class VisitInfoDTO { @ApiModelProperty(value = "异常走访标签 0正常 1走访频率异常 2走访持续时长异常 3签退时间异常") private String abnormalVisitTag; + /** 营销方式 0实地 1电话 2短信 3拜访未触达 4其他(不清楚含义) */ + @ApiModelProperty(value = "营销方式") + private String marketingWay; + + /** 走访结果 0已走访 1过期未走访 2走访未触达 3待走访 */ + @ApiModelProperty(value = "走访结果") + private String interRes; //后端直接工具获取的请求参数,前端不用传 private String userName; diff --git a/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoVO.java b/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoVO.java index fdf2f15..d0556a7 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoVO.java +++ b/ibs/src/main/java/com/ruoyi/ibs/list/domain/VisitInfoVO.java @@ -120,4 +120,12 @@ public class VisitInfoVO { @ApiModelProperty(value = "走访备注") private String remark; + /** 营销方式 0实地 1电话 2短信 3拜访未触达 4其他(不清楚含义) */ + @ApiModelProperty(value = "营销方式") + private String marketingWay; + + /** 走访结果 0已走访 1过期未走访 2走访未触达 3待走访 */ + @ApiModelProperty(value = "走访结果") + private String interRes; + } diff --git a/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/CustInfoRetailServiceImpl.java b/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/CustInfoRetailServiceImpl.java index 4405fbd..b7aa997 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/CustInfoRetailServiceImpl.java +++ b/ibs/src/main/java/com/ruoyi/ibs/list/service/impl/CustInfoRetailServiceImpl.java @@ -21,7 +21,7 @@ import com.ruoyi.ibs.list.mapper.*; import com.ruoyi.ibs.list.service.ICustInfoRetailService; import com.ruoyi.system.mapper.SysIndustryMapper; import com.ruoyi.system.service.ISysIndustryService; -import jdk.nashorn.internal.parser.JSONParser; +//import jdk.nashorn.internal.parser.JSONParser; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; diff --git a/ibs/src/main/java/com/ruoyi/ibs/tabs/service/impl/CustTabListInfoServiceImpl.java b/ibs/src/main/java/com/ruoyi/ibs/tabs/service/impl/CustTabListInfoServiceImpl.java index cc600e5..f7f995e 100644 --- a/ibs/src/main/java/com/ruoyi/ibs/tabs/service/impl/CustTabListInfoServiceImpl.java +++ b/ibs/src/main/java/com/ruoyi/ibs/tabs/service/impl/CustTabListInfoServiceImpl.java @@ -22,7 +22,7 @@ import com.ruoyi.ibs.tabs.enums.IndexThresholdTypeEnum; import com.ruoyi.ibs.tabs.mapper.CustTabListInfoMapper; import com.ruoyi.ibs.tabs.service.ICustTabDetailService; import com.ruoyi.ibs.tabs.service.ICustTabListInfoService; -import javafx.util.Builder; +//import javafx.util.Builder; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ibs/src/main/resources/mapper/custmap/CustMapMapper.xml b/ibs/src/main/resources/mapper/custmap/CustMapMapper.xml index ca59f6f..893a693 100644 --- a/ibs/src/main/resources/mapper/custmap/CustMapMapper.xml +++ b/ibs/src/main/resources/mapper/custmap/CustMapMapper.xml @@ -90,9 +90,12 @@ diff --git a/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml b/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml index 8081ac2..81c0b71 100644 --- a/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml +++ b/ibs/src/main/resources/mapper/list/SysCampaignMapper.xml @@ -1384,7 +1384,7 @@