Browse Source

更新房屋编码

feature/user_house_import
zhangyuan 3 years ago
parent
commit
66a7598070
  1. 10
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotCoordinateController.java
  2. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java
  3. 3
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotCoordinateDao.java
  4. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotCoordinateEntity.java
  5. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotBuildingService.java
  6. 20
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotCoordinateService.java
  7. 47
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotBuildingServiceImpl.java
  8. 31
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotCoordinateServiceImpl.java
  9. 2
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml
  10. 6
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml

10
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotCoordinateController.java

@ -171,5 +171,15 @@ public class PlotCoordinateController {
return epidemicPlotCoordinateService.importExcel(file); return epidemicPlotCoordinateService.importExcel(file);
} }
/**
* 更新房屋自增序号
*
* @return
*/
@PostMapping("updateMaCode")
public Result updateMaCode() {
epidemicPlotCoordinateService.updateMaCode();
return new Result();
}
} }

2
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java

@ -142,6 +142,6 @@ public interface EpidemicPlotBuildingDao extends BaseDao<EpidemicPlotBuildingEnt
*/ */
List<EpidemicPlotBuildingResultDTO> listAllBuildingInfo(@Param("gridId") String gridId); List<EpidemicPlotBuildingResultDTO> listAllBuildingInfo(@Param("gridId") String gridId);
Integer getMaxCode(); Integer getMaxCode(@Param("plotId") Long plotId);
} }

3
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotCoordinateDao.java

@ -100,4 +100,7 @@ public interface EpidemicPlotCoordinateDao extends BaseDao<EpidemicPlotCoordinat
* @return java.util.List<io.pingyin.modules.personroom.entity.EpidemicPlotCoordinateEntity> * @return java.util.List<io.pingyin.modules.personroom.entity.EpidemicPlotCoordinateEntity>
*/ */
List<EpidemicPlotCoordinateEntity> getListByGridId(@Param("gridId") String gridId); List<EpidemicPlotCoordinateEntity> getListByGridId(@Param("gridId") String gridId);
Integer getMaxCode();
} }

5
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotCoordinateEntity.java

@ -102,4 +102,9 @@ public class EpidemicPlotCoordinateEntity extends BasePingyinEntity {
*/ */
private String introduce; private String introduce;
/**
* 自增编码
*/
private Integer plotMaCode;
} }

2
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotBuildingService.java

@ -92,7 +92,7 @@ public interface EpidemicPlotBuildingService extends CrudService<EpidemicPlotBui
* @author zhy * @author zhy
* @date 2022/6/9 17:24 * @date 2022/6/9 17:24
*/ */
int getMaxCode(); int getMaxCode(Long plotId);
/** /**
* 更新编码 * 更新编码

20
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotCoordinateService.java

@ -119,4 +119,24 @@ public interface EpidemicPlotCoordinateService extends CrudService<EpidemicPlotC
* @date 2022/4/6 14:47 * @date 2022/4/6 14:47
*/ */
Result importExcel(MultipartFile file); Result importExcel(MultipartFile file);
/**
* 获取最大编码
*
* @param
* @return int
* @author zhy
* @date 2022/6/9 17:24
*/
int getMaxCode();
/**
* 更新编码
*
* @param
* @return void
* @author zhy
* @date 2022/6/9 17:24
*/
void updateMaCode();
} }

47
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotBuildingServiceImpl.java

@ -28,6 +28,8 @@ import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode; import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.utils.*; import com.elink.esua.epdc.commons.tools.utils.*;
import com.elink.esua.epdc.dto.AllDeptDTO; import com.elink.esua.epdc.dto.AllDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO;
@ -88,6 +90,9 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
@Autowired @Autowired
public EpidemicPlotGridDao epidemicPlotGridDao; public EpidemicPlotGridDao epidemicPlotGridDao;
@Autowired
private RedisUtils redisUtils;
@Override @Override
public PageData<EpidemicPlotBuildingDTO> page(Map<String, Object> params) { public PageData<EpidemicPlotBuildingDTO> page(Map<String, Object> params) {
IPage<EpidemicPlotBuildingDTO> page = getPage(params); IPage<EpidemicPlotBuildingDTO> page = getPage(params);
@ -105,12 +110,14 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
String id = (String) params.get(FieldConstant.ID_HUMP); String id = (String) params.get(FieldConstant.ID_HUMP);
String name = (String) params.get("buildingName"); String name = (String) params.get("buildingName");
String type = (String) params.get("buildingType"); String type = (String) params.get("buildingType");
Long plotId = (Long) params.get("plotId");
String buildingMaCode = (String) params.get("buildingMaCode"); String buildingMaCode = (String) params.get("buildingMaCode");
QueryWrapper<EpidemicPlotBuildingEntity> wrapper = new QueryWrapper<>(); QueryWrapper<EpidemicPlotBuildingEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(name), "BUILDING_NAME", name); wrapper.eq(StringUtils.isNotBlank(name), "BUILDING_NAME", name);
wrapper.eq(StringUtils.isNotBlank(type), "BUILDING_TYPE", type); wrapper.eq(StringUtils.isNotBlank(type), "BUILDING_TYPE", type);
wrapper.eq(plotId != null, "PLOT_ID", plotId);
wrapper.eq(StringUtils.isNotBlank(buildingMaCode), "BUILDING_MA_CODE", buildingMaCode); wrapper.eq(StringUtils.isNotBlank(buildingMaCode), "BUILDING_MA_CODE", buildingMaCode);
return wrapper; return wrapper;
@ -139,8 +146,11 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
entity.setBuildingLongitudeDsf(BigDecimal.valueOf(coordinates[1])); entity.setBuildingLongitudeDsf(BigDecimal.valueOf(coordinates[1]));
entity.setBuildingLatitudeDsf(BigDecimal.valueOf(coordinates[0])); entity.setBuildingLatitudeDsf(BigDecimal.valueOf(coordinates[0]));
} }
int code = getMaxCode(); if (dto.getPlotId() != null) {
entity.setBuildingMaCode(code); int code = getMaxCode(dto.getPlotId());
entity.setBuildingMaCode(code);
}
insert(entity); insert(entity);
} }
@ -340,8 +350,10 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
//保存楼栋唯一编码 //保存楼栋唯一编码
// entity.setBuildingCode(allDeptInfo.getGridId()+getNewMaxIndex(newMaxIndex)); // entity.setBuildingCode(allDeptInfo.getGridId()+getNewMaxIndex(newMaxIndex));
// newMaxIndex++; // newMaxIndex++;
int code = getMaxCode(); if (record.getPlotId() != null) {
entity.setBuildingMaCode(code); int code = getMaxCode(record.getPlotId());
entity.setBuildingMaCode(code);
}
baseDao.insert(entity); baseDao.insert(entity);
} else {//更新 } else {//更新
// isExist = ConvertUtils.sourceToTarget(record, EpidemicPlotBuildingEntity.class); // isExist = ConvertUtils.sourceToTarget(record, EpidemicPlotBuildingEntity.class);
@ -414,8 +426,8 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
} }
@Override @Override
public int getMaxCode() { public int getMaxCode(Long plotId) {
Integer maxCode = baseDao.getMaxCode(); Integer maxCode = baseDao.getMaxCode(plotId);
if (maxCode == null) { if (maxCode == null) {
maxCode = 0; maxCode = 0;
} }
@ -428,13 +440,32 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
params.put("buildingMaCode", "0"); params.put("buildingMaCode", "0");
List<EpidemicPlotBuildingEntity> list = baseDao.selectList(getWrapper(params)); List<EpidemicPlotBuildingEntity> list = baseDao.selectList(getWrapper(params));
if (!list.isEmpty()) { if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) { for (EpidemicPlotBuildingEntity entity : list) {
list.get(i).setBuildingMaCode(i + 1); // 没有绑定楼栋的没有这个码
if (entity.getPlotId() != null) {
updateBuildingMaCode(entity);
}
} }
updateBatchById(list); updateBatchById(list);
} }
} }
private void updateBuildingMaCode(EpidemicPlotBuildingEntity entity) {
String key = RedisKeys.getMaBuildingCodeKey(entity.getPlotId().toString());
Object obj = redisUtils.get(key);
if (null != obj) {
int maCodeCache = (int) obj;
maCodeCache = maCodeCache + 1;
entity.setBuildingMaCode(maCodeCache);
redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE);
return;
}
int maCode = getMaxCode(entity.getPlotId());
maCode = maCode + 1;
entity.setBuildingMaCode(maCode);
redisUtils.set(key, maCode, RedisUtils.HOUR_ONE_EXPIRE);
}
/** /**
* @return void * @return void
* @describe: 创建数据库里不存在的小区 * @describe: 创建数据库里不存在的小区

31
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotCoordinateServiceImpl.java

@ -45,6 +45,7 @@ import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotCoordinateResultDTO
import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient; import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient;
import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicPlotBuildingDao; import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicPlotBuildingDao;
import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicPlotCoordinateDao; import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicPlotCoordinateDao;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotCoordinateEntity; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotCoordinateEntity;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotCoordinateErrorEntity; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotCoordinateErrorEntity;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotGridEntity; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotGridEntity;
@ -97,7 +98,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
public PageData<EpidemicPlotCoordinateDTO> page(Map<String, Object> params) { public PageData<EpidemicPlotCoordinateDTO> page(Map<String, Object> params) {
IPage<EpidemicPlotCoordinateDTO> page = getPage(params); IPage<EpidemicPlotCoordinateDTO> page = getPage(params);
List<EpidemicPlotCoordinateDTO> list = baseDao.getPlotPage(params); List<EpidemicPlotCoordinateDTO> list = baseDao.getPlotPage(params);
list.forEach(item->{ list.forEach(item -> {
}); });
return new PageData<>(list, page.getTotal()); return new PageData<>(list, page.getTotal());
@ -120,6 +121,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
String gridName = (String) params.get("gridName"); String gridName = (String) params.get("gridName");
String gridId = (String) params.get("gridId"); String gridId = (String) params.get("gridId");
String plotName = (String) params.get("plotName"); String plotName = (String) params.get("plotName");
String plotMaCode = (String) params.get("plotMaCode");
QueryWrapper<EpidemicPlotCoordinateEntity> wrapper = new QueryWrapper<>(); QueryWrapper<EpidemicPlotCoordinateEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.like(StringUtils.isNotBlank(streetName), "STREET_NAME", streetName); wrapper.like(StringUtils.isNotBlank(streetName), "STREET_NAME", streetName);
@ -129,6 +131,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
wrapper.eq(StringUtils.isNotBlank(gridName), "GRID_NAME", gridName); wrapper.eq(StringUtils.isNotBlank(gridName), "GRID_NAME", gridName);
wrapper.eq(StringUtils.isNotBlank(gridId), "GRID_ID", gridId); wrapper.eq(StringUtils.isNotBlank(gridId), "GRID_ID", gridId);
wrapper.like(StringUtils.isNotBlank(plotName), "PLOT_NAME", plotName); wrapper.like(StringUtils.isNotBlank(plotName), "PLOT_NAME", plotName);
wrapper.eq(StringUtils.isNotBlank(plotMaCode), "PLOT_MA_CODE", plotMaCode);
return wrapper; return wrapper;
} }
@ -141,7 +144,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
Map<String, Object> params = new HashMap<>(2); Map<String, Object> params = new HashMap<>(2);
params.put("plotId", id); params.put("plotId", id);
List<EpidemicPlotGridDTO> relation = epidemicPlotGridService.list(params); List<EpidemicPlotGridDTO> relation = epidemicPlotGridService.list(params);
if(relation != null && relation.size() > 0){ if (relation != null && relation.size() > 0) {
dto.setGridIds(relation.stream().map(EpidemicPlotGridDTO::getGridId).collect(Collectors.toList())); dto.setGridIds(relation.stream().map(EpidemicPlotGridDTO::getGridId).collect(Collectors.toList()));
} }
return dto; return dto;
@ -163,10 +166,11 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
List<EpidemicPlotCoordinateEntity> lists = epidemicPlotCoordinateDao.selectList(wrapper); List<EpidemicPlotCoordinateEntity> lists = epidemicPlotCoordinateDao.selectList(wrapper);
if (lists.isEmpty()) { if (lists.isEmpty()) {
int maCode = getMaxCode();
dto.setPlotMaCode(maCode);
EpidemicPlotCoordinateEntity entity = ConvertUtils.sourceToTarget(dto, EpidemicPlotCoordinateEntity.class); EpidemicPlotCoordinateEntity entity = ConvertUtils.sourceToTarget(dto, EpidemicPlotCoordinateEntity.class);
insert(entity); insert(entity);
saveOrUpdateRelation(entity.getId(), dto.getGridIds()); saveOrUpdateRelation(entity.getId(), dto.getGridIds());
// epidemicUserInoutRecordService.updatePositionInfo(entity);
return new Result(); return new Result();
} else { } else {
return new Result().error("该小区已存在"); return new Result().error("该小区已存在");
@ -341,6 +345,27 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
return new Result(); return new Result();
} }
@Override
public int getMaxCode() {
Integer maxCode = baseDao.getMaxCode();
if (maxCode == null) {
maxCode = 0;
}
return maxCode;
}
@Override
public void updateMaCode() {
Map<String, Object> params = new HashMap<>(4);
params.put("plotMaCode", "0");
List<EpidemicPlotCoordinateEntity> list = baseDao.selectList(getWrapper(params));
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
list.get(i).setPlotMaCode(i + 1);
}
updateBatchById(list);
}
}
/** /**
* 更新小区网格关系 * 更新小区网格关系

2
epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml

@ -195,5 +195,7 @@
MAX( BUILDING_MA_CODE ) MAX( BUILDING_MA_CODE )
FROM FROM
epidemic_plot_building epidemic_plot_building
WHERE
PLOT_ID = #{plotId}
</select> </select>
</mapper> </mapper>

6
epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml

@ -164,5 +164,11 @@
and GRID_ID = #{gridId} and GRID_ID = #{gridId}
</select> </select>
<select id="getMaxCode" resultType="java.lang.Integer">
SELECT
MAX( ROOM_MA_CODE )
FROM
epidemic_plot_coordinate
</select>
</mapper> </mapper>

Loading…
Cancel
Save