Browse Source

保存单元自增ID

feature/user_house_import
zhangyuan 3 years ago
parent
commit
709b5f6395
  1. 1
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/HousingInformationController.java
  2. 14
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingController.java
  3. 6
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
  4. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java
  5. 13
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
  6. 88
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java
  7. 32
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml
  8. 1
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml
  9. 2
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml

1
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/HousingInformationController.java

@ -225,7 +225,6 @@ public class HousingInformationController {
// 将属性的首字母大写
String methodName = field.getName().replaceFirst(field.getName().substring(0, 1),
field.getName().substring(0, 1).toUpperCase());
System.out.println(methodName);
try {
Method methodGet = clazz.getMethod("get" + methodName);
// 调用getter方法获取属性值

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

@ -121,18 +121,18 @@ public class PlotBuildingController {
*/
@GetMapping("getBuildingOptionApp")
public Result<List<DictOptionDTO>> getBuildingOptionApp(@RequestBody EpidemicPlotBuildingDTO formDTO) {
log.info("################楼栋############plotId:"+formDTO.getPlotId());
log.info("################楼栋############plotId:" + formDTO.getPlotId());
List<DictOptionDTO> list = epidemicPlotBuildingService.getBuildingOption(formDTO);
return new Result<List<DictOptionDTO>>().ok(list);
}
/**
* @describe: 导入房屋信息
* @author wangtong
* @date 2022/4/25 17:01
* @params [file]
* @return io.pingyin.common.utils.Result
*/
* @return io.pingyin.common.utils.Result
* @describe: 导入房屋信息
* @author wangtong
* @date 2022/4/25 17:01
* @params [file]
*/
@PostMapping("importBuilding")
public Result importBuilding(@RequestParam("file") MultipartFile file) {
return epidemicPlotBuildingService.importBuilding(file);

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

@ -111,7 +111,11 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
*/
List<EpidemicUnitInfoResultDTO> listAllUnitInfo(@Param("gridId") String gridId);
Integer getMaxCode();
Integer getRoomMaxCode(@Param("buildingId") Long buildingId, @Param("unit") String unit);
Integer getUnitMaxCode(@Param("buildingId") Long buildingId);
Integer getUnitCode(@Param("buildingId") Long buildingId, @Param("unit") String unit);
List<EpidemicBuildingUnitEntity> getErrorRoom();

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

@ -181,6 +181,11 @@ public class EpidemicBuildingUnitEntity extends BasePingyinEntity {
*/
private Integer roomMaCode;
/**
* 房屋码(5位数字自增)
*/
private Integer unitMaCode;
/**
* 二维码
*/

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

@ -28,7 +28,6 @@ import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeZipFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@ -121,7 +120,17 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
* @author zhy
* @date 2022/6/9 17:24
*/
int getMaxCode();
int getRoomMaxCode(Long buildingId, String unit);
/**
* 获取最大编码
*
* @param
* @return int
* @author zhy
* @date 2022/6/9 17:24
*/
int getUnitNewCode(Long buildingId, String unit);
/**
* 更新编码

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

@ -27,6 +27,8 @@ import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.StrConstant;
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.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -113,6 +115,9 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Autowired
private QrCodeProperties qrCodeProperties;
@Autowired
private RedisUtils redisUtils;
@Override
public PageData<EpidemicBuildingUnitDTO> page(Map<String, Object> params) {
IPage<EpidemicBuildingUnitDTO> page = getPage(params);
@ -179,6 +184,13 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
throw new RenException("房屋已存在");
}
checkData(dto);
if (dto.getBuildingId() != null && dto.getUnit() != null) {
int unitCode = getUnitNewCode(dto.getBuildingId(), dto.getUnit().trim().toUpperCase());
dto.setUnitMaCode(unitCode);
int roomCode = getRoomMaxCode(dto.getBuildingId(), dto.getUnit().trim().toUpperCase());
roomCode = roomCode + 1;
dto.setRoomMaCode(roomCode);
}
EpidemicBuildingUnitEntity entity = ConvertUtils.sourceToTarget(dto, EpidemicBuildingUnitEntity.class);
insert(entity);
saveOrUpdateOwners(dto.getOwners(), entity.getId());
@ -326,14 +338,28 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
}
@Override
public int getMaxCode() {
Integer maxCode = baseDao.getMaxCode();
public int getRoomMaxCode(Long buildingId, String unit) {
Integer maxCode = baseDao.getRoomMaxCode(buildingId, unit);
if (maxCode == null) {
maxCode = 0;
}
return maxCode;
}
@Override
public int getUnitNewCode(Long buildingId, String unit) {
Integer code = baseDao.getUnitCode(buildingId, unit);
if (code != null && code != NumConstant.ZERO) {
return code;
}
Integer maxCode = baseDao.getUnitMaxCode(buildingId);
if (maxCode == null || maxCode == NumConstant.ZERO) {
maxCode = 0;
}
maxCode = maxCode + 1;
return maxCode;
}
@Override
public void updateErrorRoom() {
List<EpidemicBuildingUnitEntity> list = baseDao.getErrorRoom();
@ -363,13 +389,59 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
params.put("roomMaCode", "0");
List<EpidemicBuildingUnitEntity> list = baseDao.selectList(getWrapper(params));
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
list.get(i).setRoomMaCode(i + 1);
for (EpidemicBuildingUnitEntity epidemicBuildingUnitEntity : list) {
if (epidemicBuildingUnitEntity.getBuildingId() != null && StringUtils.isNotBlank(epidemicBuildingUnitEntity.getUnit())) {
updateUnitMaCode(epidemicBuildingUnitEntity);
if (StringUtils.isNotBlank(epidemicBuildingUnitEntity.getRoomNo())) {
updateRoomMaCode(epidemicBuildingUnitEntity);
}
}
}
updateBatchById(list);
}
}
private void updateUnitMaCode(EpidemicBuildingUnitEntity entity) {
String key = RedisKeys.getMaUnitCodeKey(entity.getBuildingId().toString(), entity.getUnit());
String nextKey = RedisKeys.getMaUnitNextCodeKey(entity.getBuildingId().toString());
Object obj = redisUtils.get(key);
Object nextObj = redisUtils.get(nextKey);
if (null != obj) {
int maCodeCache = (int) obj;
entity.setUnitMaCode(maCodeCache);
redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE);
return;
}
if (null != nextObj) {
int maCodeCache = (int) nextObj;
entity.setUnitMaCode(maCodeCache);
redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE);
redisUtils.set(nextKey, maCodeCache + 1, RedisUtils.HOUR_ONE_EXPIRE);
return;
}
int maCode = getUnitNewCode(entity.getBuildingId(), entity.getUnit());
entity.setUnitMaCode(maCode);
redisUtils.set(key, maCode, RedisUtils.HOUR_ONE_EXPIRE);
redisUtils.set(nextKey, maCode + 1, RedisUtils.HOUR_ONE_EXPIRE);
}
private void updateRoomMaCode(EpidemicBuildingUnitEntity entity) {
String key = RedisKeys.getMaRoomCodeKey(entity.getBuildingId().toString(), entity.getUnit());
Object obj = redisUtils.get(key);
if (null != obj) {
int maCodeCache = (int) obj;
maCodeCache = maCodeCache + 1;
entity.setRoomMaCode(maCodeCache);
redisUtils.set(key, maCodeCache, RedisUtils.HOUR_ONE_EXPIRE);
return;
}
int maCode = getRoomMaxCode(entity.getBuildingId(), entity.getUnit());
maCode = maCode + 1;
entity.setRoomMaCode(maCode);
redisUtils.set(key, maCode, RedisUtils.HOUR_ONE_EXPIRE);
}
@Override
public Result createBatchHouseCodeAndUrl() {
epidemicPlotBuildingService.updateMaCode();
@ -609,7 +681,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
epidemicUserInfoService.updateBatchById(updateList);
}
// 补充人房关系
int roomCode = getMaxCode();
List<EpidemicUnitInfoResultDTO> unitList = listAllUnitInfo(parentAndAllDeptDTO.getGrid());
List<EpidemicUnitOwnerEntity> addOwner = new ArrayList<>();
for (EpidemicUserInfoEntity item : addList) {
@ -633,6 +705,9 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
unitEntity.setOwnerName(item.getUserName());
unitEntity.setMobile(item.getMobile());
unitEntity.setRoomType(NumConstant.ONE_STR);
int unitCode = getUnitNewCode(buildingOptional.get().getId(), item.getUnit().trim().toUpperCase());
unitEntity.setUnitMaCode(unitCode);
int roomCode = getRoomMaxCode(buildingOptional.get().getId(), item.getUnit().trim().toUpperCase());
roomCode = roomCode + 1;
unitEntity.setRoomMaCode(roomCode);
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode));
@ -690,6 +765,9 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
unitEntity.setOwnerName(item.getUserName());
unitEntity.setMobile(item.getMobile());
unitEntity.setRoomType(NumConstant.ONE_STR);
int unitCode = getUnitNewCode(buildingOptional.get().getId(), item.getUnit().trim().toUpperCase());
unitEntity.setUnitMaCode(unitCode);
int roomCode = getRoomMaxCode(buildingOptional.get().getId(), item.getUnit().trim().toUpperCase());
roomCode = roomCode + 1;
unitEntity.setRoomMaCode(roomCode);
unitEntity.setRoomCode(getRoomCode(buildingOptional.get().getBuildingMaCode(), roomCode));

32
epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml

@ -177,11 +177,41 @@
</if>
</select>
<select id="getMaxCode" resultType="java.lang.Integer">
<select id="getRoomMaxCode" resultType="java.lang.Integer">
SELECT
MAX( ROOM_MA_CODE )
FROM
epidemic_building_unit
WHERE
DEL_FLAG = '0'
<if test="buildingId != null and buildingId !=''">
AND BUILDING_ID = #{buildingId}
</if>
<if test="unit != null and unit !=''">
AND UNIT = #{unit}
</if>
</select>
<select id="getUnitMaxCode" resultType="java.lang.Integer">
SELECT
MAX( ROOM_MA_CODE )
FROM
epidemic_building_unit
WHERE
DEL_FLAG = '0'
AND BUILDING_ID = #{buildingId}
</select>
<select id="getUnitCode" resultType="java.lang.Integer">
SELECT
ROOM_MA_CODE
FROM
epidemic_building_unit
WHERE
DEL_FLAG = '0'
AND BUILDING_ID = #{buildingId}
AND UNIT = #{unit}
LIMIT 1
</select>
<select id="getErrorRoom" resultType="com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity">

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

@ -196,6 +196,7 @@
FROM
epidemic_plot_building
WHERE
DEL_FLAG = '0' AND
PLOT_ID = #{plotId}
</select>
</mapper>

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

@ -169,6 +169,8 @@
MAX( ROOM_MA_CODE )
FROM
epidemic_plot_coordinate
WHERE
DEL_FLAG = '0'
</select>
</mapper>

Loading…
Cancel
Save