Browse Source

Merge branch 'feature/user_house_import'

master
zhangyuan 3 years ago
parent
commit
13661f4f53
  1. 12
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java
  2. 1
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/HousingInformationController.java
  3. 19
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java
  4. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingController.java
  5. 13
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotCoordinateController.java
  6. 6
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
  7. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotBuildingDao.java
  8. 3
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicPlotCoordinateDao.java
  9. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java
  10. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicPlotCoordinateEntity.java
  11. 22
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
  12. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotBuildingService.java
  13. 20
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicPlotCoordinateService.java
  14. 96
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java
  15. 43
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotBuildingServiceImpl.java
  16. 32
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicPlotCoordinateServiceImpl.java
  17. 1
      epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml
  18. 41
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml
  19. 5
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotBuildingDao.xml
  20. 14
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicPlotCoordinateDao.xml

12
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java

@ -1643,6 +1643,14 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
FamilyMemberInfoResultDTO dto = baseDao.getFamilyMember(formDTO);
// 如果记录表没有信息,需插入一条
if(dto != null && (dto.getRecordId() == null || dto.getRecordId() == 0)){
// 新增epidemic_user_inout_record
EpidemicUserInoutRecordEntity epidemicUserInoutRecordEntity = new EpidemicUserInoutRecordEntity();
epidemicUserInoutRecordEntity.setIdCard(dto.getIdCard());
epidemicUserInoutRecordDao.insert(epidemicUserInoutRecordEntity);
}
return new Result<FamilyMemberInfoResultDTO>().ok(dto);
}
@ -1696,6 +1704,10 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
// 新增epidemic_user_info
EpidemicUserInfoEntity epidemicUserInfoEntity = ConvertUtils.sourceToTarget(formDTO, EpidemicUserInfoEntity.class);
baseDao.insert(epidemicUserInfoEntity);
// 新增epidemic_user_inout_record
EpidemicUserInoutRecordEntity epidemicUserInoutRecordEntity = ConvertUtils.sourceToTarget(formDTO, EpidemicUserInoutRecordEntity.class);
epidemicUserInoutRecordDao.insert(epidemicUserInoutRecordEntity);
}
// 绑定房屋

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方法获取属性值

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

@ -21,10 +21,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.personroom.form.BindingFamilyFormDTO;
import com.elink.esua.epdc.dto.personroom.form.FamilyMemberInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO;
import com.elink.esua.epdc.dto.personroom.form.*;
import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicBuildingUnitService;
import org.springframework.beans.factory.annotation.Autowired;
@ -103,6 +100,20 @@ public class AppFamilyController {
return epidemicBuildingUnitService.getHouseInfo(formDTO);
}
/**
* 修改房屋信息
*
* @param formDTO
* @return
* @Author wanggongfeng
*/
@PostMapping("updateHouseInfo")
public Result updateHouseInfo(@RequestBody HouseInfoFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
return epidemicBuildingUnitService.updateHouseInfo(formDTO);
}
/**
* 绑定我的家庭房屋
*

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

@ -31,6 +31,7 @@ import com.elink.esua.epdc.dto.personroom.EpidemicPlotBuildingDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotBuildingResultDTO;
import com.elink.esua.epdc.vaccine.personroom.excel.EpidemicPlotBuildingExcel;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicPlotBuildingService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -46,6 +47,7 @@ import java.util.Map;
* @author zhy qu@elink-cn.com
* @since v1.0.0 2022-02-15
*/
@Slf4j
@RestController
@RequestMapping("epidemicplotbuilding")
public class PlotBuildingController {
@ -119,16 +121,17 @@ public class PlotBuildingController {
*/
@GetMapping("getBuildingOptionApp")
public Result<List<DictOptionDTO>> getBuildingOptionApp(@RequestBody EpidemicPlotBuildingDTO formDTO) {
log.info("################楼栋############plotId:" + formDTO.getPlotId());
List<DictOptionDTO> list = epidemicPlotBuildingService.getBuildingOption(formDTO);
return new Result<List<DictOptionDTO>>().ok(list);
}
/**
* @return io.pingyin.common.utils.Result
* @describe: 导入房屋信息
* @author wangtong
* @date 2022/4/25 17:01
* @params [file]
* @return io.pingyin.common.utils.Result
*/
@PostMapping("importBuilding")
public Result importBuilding(@RequestParam("file") MultipartFile file) {

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

@ -31,6 +31,7 @@ import com.elink.esua.epdc.dto.personroom.form.EpidemicPlotCoordinateFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotCoordinateResultDTO;
import com.elink.esua.epdc.vaccine.personroom.excel.EpidemicPlotCoordinateExcel;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicPlotCoordinateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -46,6 +47,7 @@ import java.util.Map;
* @author zhangyuan qu@elink-cn.com
* @since v1.0.0 2021-07-09
*/
@Slf4j
@RestController
@RequestMapping("epidemicplotcoordinate")
public class PlotCoordinateController {
@ -138,6 +140,7 @@ public class PlotCoordinateController {
*/
@GetMapping("getPlotOptionApp")
public Result<List<DictOptionDTO>> getPlotOptionApp(@RequestBody EpidemicPlotCoordinateDTO formDTO) {
log.info("###############小区#############gridId:"+formDTO.getGridId());
List<DictOptionDTO> list = epidemicPlotCoordinateService.getPlotOption(formDTO);
return new Result<List<DictOptionDTO>>().ok(list);
}
@ -168,5 +171,15 @@ public class PlotCoordinateController {
return epidemicPlotCoordinateService.importExcel(file);
}
/**
* 更新房屋自增序号
*
* @return
*/
@PostMapping("updateMaCode")
public Result updateMaCode() {
epidemicPlotCoordinateService.updateMaCode();
return new Result();
}
}

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();

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/EpidemicBuildingUnitEntity.java

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

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;
}

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

@ -23,6 +23,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseInfoFormDTO;
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;
@ -119,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);
/**
* 更新编码
@ -169,6 +180,13 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
*/
Result getHouseInfo(GetHouseInfoFormDTO formDTO);
/**
* 修改房屋信息
* @param formDTO
* @return
*/
Result updateHouseInfo(HouseInfoFormDTO formDTO);
/**
* @return com.epmet.commons.tools.utils.Result
* @describe: 批量生成房屋的房屋编码和一户一档二维码
@ -199,4 +217,6 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
void createQrCode(String roomId, HttpServletResponse response);
}

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();
}

96
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;
@ -38,6 +40,7 @@ import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO;
import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeZipFormDTO;
import com.elink.esua.epdc.dto.personroom.result.*;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserErrorEntity;
@ -112,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);
@ -178,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());
@ -325,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();
@ -362,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();
@ -608,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) {
@ -632,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));
@ -689,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));
@ -742,6 +821,13 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
return new Result<HouseInfoResultDTO>().ok(houseInfoResultDTO);
}
@Override
public Result updateHouseInfo(HouseInfoFormDTO formDTO) {
EpidemicBuildingUnitEntity entity = ConvertUtils.sourceToTarget(formDTO, EpidemicBuildingUnitEntity.class);
baseDao.updateById(entity);
return new Result();
}
public String createHouseQrCodeUrl(String roomCode, String name) throws Exception {
//url组成:小程序地址?房屋编码
String url = qrCodeProperties.getPre() + roomCode;

43
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();
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();
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: 创建数据库里不存在的小区

32
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,8 +144,9 @@ 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) {
dto.setGridIds(relation.stream().map(EpidemicPlotGridDTO::getGridId).collect(Collectors.toList()));
}
return dto;
}
@ -162,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("该小区已存在");
@ -340,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);
}
}
/**
* 更新小区网格关系

1
epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml

@ -701,6 +701,7 @@
from epidemic_user_inout_record uir
where uir.DEL_FLAG = '0'
and uir.ID_CARD = #{idCard}
order by uir.ID
limit 1
) ur on ur.ID_CARD = ui.ID_CARD
where ui.DEL_FLAG = '0'

41
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">
@ -220,7 +250,8 @@
<select id="getHouseOption" resultType="com.elink.esua.epdc.dto.epidemic.DictOptionDTO">
SELECT
u.ID AS dictValue,
u.ROOM_NO AS dictName
u.ROOM_NO AS dictName,
u.ROOM_CODE
FROM
epidemic_building_unit u
WHERE u.DEL_FLAG = '0'
@ -235,9 +266,13 @@
<select id="getHouseInfo" resultType="com.elink.esua.epdc.dto.personroom.result.HouseInfoResultDTO"
parameterType="com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO">
SELECT
u.*
u.*,
b.BUILDING_NAME,
p.PLOT_NAME
FROM
epidemic_building_unit u
LEFT JOIN epidemic_plot_building b ON u.BUILDING_ID = b.id
LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id
WHERE u.DEL_FLAG = '0'
<if test="roomCode != null and roomCode !=''">
and u.ROOM_CODE = #{roomCode}

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

@ -37,7 +37,7 @@
epidemic_plot_building pb
WHERE pb.DEL_FLAG = '0'
<if test="plotId != null and plotId !=''">
and PLOT_ID = #{plotId}
and pb.PLOT_ID = #{plotId}
</if>
</select>
@ -195,5 +195,8 @@
MAX( BUILDING_MA_CODE )
FROM
epidemic_plot_building
WHERE
DEL_FLAG = '0' AND
PLOT_ID = #{plotId}
</select>
</mapper>

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

@ -109,9 +109,9 @@
pc.PLOT_NAME AS dictName
from epidemic_plot_coordinate pc
LEFT JOIN epidemic_plot_grid pg ON pc.id = pg.PLOT_ID
<where>
where pc.DEL_FLAG = '0'
<if test="streetId != null and streetId != ''">
pc.STREET_ID = #{streetId}
and pc.STREET_ID = #{streetId}
</if>
<if test="communityId != null and communityId != ''">
and pc.COMMUNITY_ID = #{communityId}
@ -119,8 +119,6 @@
<if test="gridId != null and gridId != ''">
and pg.GRID_ID = #{gridId}
</if>
and pc.DEL_FLAG = '0'
</where>
</select>
<select id="getOldData" resultType="com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotCoordinateEntity">
@ -166,5 +164,13 @@
and GRID_ID = #{gridId}
</select>
<select id="getMaxCode" resultType="java.lang.Integer">
SELECT
MAX( ROOM_MA_CODE )
FROM
epidemic_plot_coordinate
WHERE
DEL_FLAG = '0'
</select>
</mapper>

Loading…
Cancel
Save