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
*/
@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);
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>
*/
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 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
* @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
*/
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.RenException;
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.dto.AllDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDictDTO;
@ -88,6 +90,9 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
@Autowired
public EpidemicPlotGridDao epidemicPlotGridDao;
@Autowired
private RedisUtils redisUtils;
@Override
public PageData<EpidemicPlotBuildingDTO> page(Map<String, Object> 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 name = (String) params.get("buildingName");
String type = (String) params.get("buildingType");
Long plotId = (Long) params.get("plotId");
String buildingMaCode = (String) params.get("buildingMaCode");
QueryWrapper<EpidemicPlotBuildingEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(name), "BUILDING_NAME", name);
wrapper.eq(StringUtils.isNotBlank(type), "BUILDING_TYPE", type);
wrapper.eq(plotId != null, "PLOT_ID", plotId);
wrapper.eq(StringUtils.isNotBlank(buildingMaCode), "BUILDING_MA_CODE", buildingMaCode);
return wrapper;
@ -139,8 +146,11 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
entity.setBuildingLongitudeDsf(BigDecimal.valueOf(coordinates[1]));
entity.setBuildingLatitudeDsf(BigDecimal.valueOf(coordinates[0]));
}
int code = getMaxCode();
entity.setBuildingMaCode(code);
if (dto.getPlotId() != null) {
int code = getMaxCode(dto.getPlotId());
entity.setBuildingMaCode(code);
}
insert(entity);
}
@ -340,8 +350,10 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
//保存楼栋唯一编码
// entity.setBuildingCode(allDeptInfo.getGridId()+getNewMaxIndex(newMaxIndex));
// newMaxIndex++;
int code = getMaxCode();
entity.setBuildingMaCode(code);
if (record.getPlotId() != null) {
int code = getMaxCode(record.getPlotId());
entity.setBuildingMaCode(code);
}
baseDao.insert(entity);
} else {//更新
// isExist = ConvertUtils.sourceToTarget(record, EpidemicPlotBuildingEntity.class);
@ -414,8 +426,8 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
}
@Override
public int getMaxCode() {
Integer maxCode = baseDao.getMaxCode();
public int getMaxCode(Long plotId) {
Integer maxCode = baseDao.getMaxCode(plotId);
if (maxCode == null) {
maxCode = 0;
}
@ -428,13 +440,32 @@ public class EpidemicPlotBuildingServiceImpl extends CrudServiceImpl<EpidemicPlo
params.put("buildingMaCode", "0");
List<EpidemicPlotBuildingEntity> list = baseDao.selectList(getWrapper(params));
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
list.get(i).setBuildingMaCode(i + 1);
for (EpidemicPlotBuildingEntity entity : list) {
// 没有绑定楼栋的没有这个码
if (entity.getPlotId() != null) {
updateBuildingMaCode(entity);
}
}
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
* @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.personroom.dao.EpidemicPlotBuildingDao;
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.EpidemicPlotCoordinateErrorEntity;
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) {
IPage<EpidemicPlotCoordinateDTO> page = getPage(params);
List<EpidemicPlotCoordinateDTO> list = baseDao.getPlotPage(params);
list.forEach(item->{
list.forEach(item -> {
});
return new PageData<>(list, page.getTotal());
@ -120,6 +121,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
String gridName = (String) params.get("gridName");
String gridId = (String) params.get("gridId");
String plotName = (String) params.get("plotName");
String plotMaCode = (String) params.get("plotMaCode");
QueryWrapper<EpidemicPlotCoordinateEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
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(gridId), "GRID_ID", gridId);
wrapper.like(StringUtils.isNotBlank(plotName), "PLOT_NAME", plotName);
wrapper.eq(StringUtils.isNotBlank(plotMaCode), "PLOT_MA_CODE", plotMaCode);
return wrapper;
}
@ -141,7 +144,7 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
Map<String, Object> params = new HashMap<>(2);
params.put("plotId", id);
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()));
}
return dto;
@ -163,10 +166,11 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
List<EpidemicPlotCoordinateEntity> lists = epidemicPlotCoordinateDao.selectList(wrapper);
if (lists.isEmpty()) {
int maCode = getMaxCode();
dto.setPlotMaCode(maCode);
EpidemicPlotCoordinateEntity entity = ConvertUtils.sourceToTarget(dto, EpidemicPlotCoordinateEntity.class);
insert(entity);
saveOrUpdateRelation(entity.getId(), dto.getGridIds());
// epidemicUserInoutRecordService.updatePositionInfo(entity);
return new Result();
} else {
return new Result().error("该小区已存在");
@ -341,6 +345,27 @@ public class EpidemicPlotCoordinateServiceImpl extends CrudServiceImpl<EpidemicP
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 )
FROM
epidemic_plot_building
WHERE
PLOT_ID = #{plotId}
</select>
</mapper>

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

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

Loading…
Cancel
Save