1210 lines
57 KiB
Plaintext
1210 lines
57 KiB
Plaintext
package com.nationalelectric.greenH5;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.regex.Matcher;
|
||
import java.util.regex.Pattern;
|
||
import java.util.Arrays;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
import java.util.Objects;
|
||
import java.util.UUID;
|
||
|
||
import javax.servlet.http.HttpServletRequest;
|
||
import javax.servlet.http.HttpServletResponse;
|
||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||
import org.apache.commons.collections.CollectionUtils;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Controller;
|
||
import org.springframework.transaction.annotation.Transactional;
|
||
import org.springframework.web.bind.annotation.RequestBody;
|
||
import org.springframework.web.bind.annotation.RequestMapping;
|
||
import org.springframework.web.bind.annotation.RequestMethod;
|
||
import org.springframework.web.bind.annotation.ResponseBody;
|
||
|
||
import com.nationalelectirc.Constant.Constant;
|
||
import com.nationalelectirc.utils.RestResult;
|
||
import com.nationalelectric.greenH5.DTO.GreenHouseDto;
|
||
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
|
||
import com.nationalelectric.greenH5.po.GreenRentHouseApply;
|
||
import com.nationalelectric.greenH5.po.GreenUserInfo;
|
||
import com.nationalelectric.greenH5.utils.DateTime;
|
||
import com.nationalelectric.greenH5.utils.DateTimeHelper;
|
||
import com.nationalelectric.greenH5.utils.DateUtil;
|
||
import com.sgcc.uap.persistence.IHibernateDao;
|
||
import com.sgcc.uap.utils.StringUtils;
|
||
import com.sun.org.apache.xpath.internal.FoundIndex;
|
||
import com.aostarit.mobile.client.message.api.client.MsgQueryClient;
|
||
import com.aostarit.mobile.client.message.api.client.MsgRequestClient;
|
||
import com.aostarit.mobile.client.message.api.client.MsgSendClient;
|
||
import com.aostarit.mobile.client.message.api.config.WxMsgConfig;
|
||
import com.aostarit.mobile.client.message.api.entity.SendMsgParams;
|
||
import com.aostarit.mobile.client.message.api.entity.WxSendMsgResult;
|
||
|
||
/**
|
||
* 租房管理
|
||
*
|
||
* @author 96048
|
||
*
|
||
*/
|
||
@Controller
|
||
@RequestMapping("/greenHouse")
|
||
public class GreenHouseController extends GreenBaseController {
|
||
|
||
@Autowired
|
||
IHibernateDao hibernateDao;
|
||
|
||
@Autowired
|
||
private BaseServiceImpl baseService;
|
||
|
||
/**
|
||
* 房屋申请列表:个人查看
|
||
*
|
||
* @param rentHouseApply
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/page", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult page(@RequestBody GreenRentHouseApply rentHouseApply) {
|
||
|
||
try {
|
||
String userId = rentHouseApply.getUserId();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
int limit = ((rentHouseApply.getPageNum() > 0 ? rentHouseApply.getPageNum() : 1) - 1)
|
||
* rentHouseApply.getPageSize();
|
||
int pageSize = rentHouseApply.getPageSize() * rentHouseApply.getPageNum();
|
||
|
||
String sql = "select * from (select rn.*,rownum from ( "
|
||
+ " SELECT gha.ID as \"id\", gha.USER_ID as \"userId\", gha.USER_NAME as \"userName\", gha.GENDER as \"gender\", "
|
||
+ " gha.MARRIAGE_STATE as \"marriageState\", gha.PHONE as \"phone\", gha.ORG_ID as \"orgId\", gha.ORG_NAME as \"orgName\", "
|
||
+ " gha.POSITION as \"position\", gha.USER_TYPE as \"userType\", gha.HOUSE_TYPE as \"houseType\", gha.APPLY_CAUSE as \"applyCause\","
|
||
+ " to_char(gha.APPLY_TIME,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\", gha.EXAMINE_STATE as \"examineState\", "
|
||
+ " gha.EXAMINE_BATCH as \"examineBatch\" ,"
|
||
+ " gha.CONTRACT_START_TIME as \"contractStartTime\" , gha.CONTRACT_END_TIME as \"contractEndTime\" ,gha.PHOTO AS \"photo\","
|
||
+ " gha.CONTRACT_STATE AS \"contractState\",gha.CONTRACT_PHOTO AS \"contractPhoto\","
|
||
+ " ghs.HOUSE_NAME AS \"houseName\",ghs.RESPONSIBLE AS \"pesponsible\",ghs.RESPONSIBLE_PHONE AS \"pesponsiblePhone\",gha.IS_UPLOAD AS \"isUpload\" "
|
||
+ " FROM GREEN_HOUSE_APPLY gha LEFT JOIN GREEN_HOUSE_SELECTED ghs ON ghs.APPLY_ID = gha.ID "
|
||
+ " where gha.DEL_FLAG = 0 AND gha.USER_ID = ? ORDER BY gha.APPLY_TIME DESC "
|
||
+ ") rn ) where rownum>? and rownum<=?";
|
||
|
||
List<Map<String, Object>> list = hibernateDao.queryForListWithSql(sql,
|
||
new Object[] { userId, limit, pageSize });
|
||
for (Map<String, Object> map : list) {
|
||
String photoStr = String.valueOf(map.get("photo"));
|
||
String contractPhotoStr = String.valueOf(map.get("contractPhoto"));
|
||
List<String> photoResult = Arrays.asList(photoStr.split(","));
|
||
List<String> contractPhotoResult = Arrays.asList(contractPhotoStr.split(","));
|
||
String photoUrl = "";
|
||
String contractPhotoUrl = "";
|
||
for (String string : photoResult) {
|
||
photoUrl += baseService.getImageBase64(string) + ",";
|
||
}
|
||
photoUrl = photoUrl.substring(0, photoUrl.lastIndexOf(","));
|
||
map.put("photo", photoUrl);
|
||
|
||
for (String string : contractPhotoResult) {
|
||
contractPhotoUrl += baseService.getImageBase64(string) + ",";
|
||
}
|
||
contractPhotoUrl = contractPhotoUrl.substring(0, contractPhotoUrl.lastIndexOf(","));
|
||
map.put("contractPhoto", contractPhotoUrl);
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 房屋申请列表:审核人员查看
|
||
*
|
||
* @param rentHouseApply
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/examinePage", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult examinePage(@RequestBody GreenRentHouseApply rentHouseApply) {
|
||
|
||
try {
|
||
ArrayList<Object> paramList = new ArrayList<Object>();
|
||
String userId = rentHouseApply.getUserId();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
int limit = ((rentHouseApply.getPageNum() > 0 ? rentHouseApply.getPageNum() : 1) - 1)
|
||
* rentHouseApply.getPageSize();
|
||
int pageSize = rentHouseApply.getPageSize() * rentHouseApply.getPageNum();
|
||
String examineState = rentHouseApply.getExamineState();
|
||
String examineBatch = rentHouseApply.getExamineBatch();
|
||
|
||
if (StringUtils.isBlank(examineState)) {
|
||
return new RestResult(Constant.FAILED, "审核状态不能为空");
|
||
}
|
||
if (StringUtils.isBlank(examineBatch)) {
|
||
return new RestResult(Constant.FAILED, "审核批次不能为空");
|
||
}
|
||
|
||
if ("0".equals(examineState)) {
|
||
String sql = "select count(*) from GREEN_DICTIONARY_INFO where data_type = 'houseExamineSwitch' and data_code = ? and data_value = 1 ";
|
||
int count = hibernateDao.queryForIntWithSql(sql, new Object[] { examineBatch });
|
||
if (count == 0) {
|
||
return new RestResult(Constant.SUCCESS, "操作成功", new ArrayList<Map<String, String>>());
|
||
}
|
||
}
|
||
String sql = "select * from (select rn.*,rownum from ( "
|
||
+ " SELECT A.ID as \"id\", A.USER_ID as \"userId\", A.USER_NAME as \"userName\", A.GENDER as \"gender\", "
|
||
+ " A.MARRIAGE_STATE as \"marriageState\", A.PHONE as \"phone\", A.ORG_ID as \"orgId\", A.ORG_NAME as \"orgName\", "
|
||
+ " A.POSITION as \"position\", A.USER_TYPE as \"userType\", A.HOUSE_TYPE as \"houseType\", A.APPLY_CAUSE as \"applyCause\","
|
||
+ " to_char(A.APPLY_TIME,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\", A.EXAMINE_STATE as \"examineState\", A.EXAMINE_BATCH as \"examineBatch\",A.IS_UPLOAD AS \"isUpload\" "
|
||
+ " FROM GREEN_HOUSE_APPLY A ";
|
||
if (!"4".equals(examineBatch)) {
|
||
sql += " LEFT JOIN (select ID,APPLY_ID,USER_ID,USER_NAME,EXAMINE_STATE,to_char(EXAMINE_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"EXAMINE_TIME\",to_char(UPD_TIME,'yyyy-mm-dd hh24:mi:ss') AS \"UPD_TIME\",DEL_FLAG,EXAMINE_OPINION,EXAMINE_BATCH,BATCH_DESCRIPTION from GREEN_HOUSE_APPLY_EXAMINE where EXAMINE_BATCH= ? and DEL_FLAG=0) E ON A.ID = E.APPLY_ID ";
|
||
|
||
paramList.add(examineBatch);
|
||
}
|
||
;
|
||
sql += " WHERE A.DEL_FLAG = 0 ";
|
||
|
||
// 当查询审核批次为1时,只查询当前用户部门以及子部门的数据
|
||
if ("1".equals(examineBatch)) {
|
||
sql += "AND A.ORG_ID IN (SELECT id FROM GREEN_DEPARTMENT START WITH ID = ? CONNECT BY PRIOR ID = PARENT_ID) ";
|
||
paramList.add(rentHouseApply.getOrgId());
|
||
}
|
||
if ("3".equals(examineBatch)) {
|
||
if ("1".equals(examineState)) {// 已审批
|
||
sql += " AND A.EXAMINE_STATE !=0 AND A.EXAMINE_BATCH = ? ";
|
||
paramList.add(examineBatch);
|
||
} else if ("0".equals(examineState)) {// 待审批
|
||
sql += " AND A.EXAMINE_STATE = 0 AND A.EXAMINE_BATCH = ? ";
|
||
paramList.add(examineBatch);
|
||
}
|
||
} else {
|
||
if ("1".equals(examineState)) {// 已审批
|
||
sql += "and e.ID is not NULL ";
|
||
} else if ("0".equals(examineState)) {// 未审批
|
||
sql += "AND A.EXAMINE_STATE = 0 AND A.EXAMINE_BATCH = ? ";
|
||
paramList.add(examineBatch);
|
||
}
|
||
}
|
||
|
||
sql += " ORDER BY A.APPLY_TIME DESC " + " ) rn )where rownum>? and rownum<=? ";
|
||
paramList.add(limit);
|
||
paramList.add(pageSize);
|
||
System.err.println(sql);
|
||
List<GreenRentHouseApply> list = hibernateDao.queryForListWithSql(sql, paramList.toArray());
|
||
return new RestResult(Constant.SUCCESS, "操作成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 房屋申请列表详情
|
||
*
|
||
* @param rentHouseApply
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/detail", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult detail(@RequestBody GreenRentHouseApply rentHouseApply) {
|
||
|
||
try {
|
||
String userId = rentHouseApply.getUserId();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
|
||
String sql = "SELECT ghs.HOUSE_ID AS \"houseId\",gha.ID as \"id\", gha.USER_ID as \"userId\", gha.USER_NAME as \"userName\", gha.GENDER as \"gender\", "
|
||
+ " gha.MARRIAGE_STATE as \"marriageState\", gha.PHONE as \"phone\", gha.ORG_ID as \"orgId\", gha.ORG_NAME as \"orgName\", "
|
||
+ " gha.POSITION as \"position\", gha.USER_TYPE as \"userType\", gha.HOUSE_TYPE as \"houseType\", gha.APPLY_CAUSE as \"applyCause\","
|
||
+ " to_char(gha.APPLY_TIME,'YYYY-MM-DD HH24:MI:SS') as \"applyTime\", gha.EXAMINE_STATE as \"examineState\", gha.EXAMINE_BATCH as \"examineBatch\" ,gha.CONTRACT_START_TIME as \"contractStartTime\" , gha.CONTRACT_END_TIME as \"contractEndTime\" ,gha.PHOTO AS \"photo\",gha.CONTRACT_STATE AS \"contractState\",gha.CONTRACT_PHOTO AS \"contractPhoto\","
|
||
+ " ghs.HOUSE_NAME AS \"houseName\",ghs.RESPONSIBLE AS \"pesponsible\",ghs.RESPONSIBLE_PHONE AS \"pesponsiblePhone\",gha.ROOM_INSPECTION AS \"roomInspection\",gha.IS_UPLOAD \"isUpload\", "
|
||
+ " gha.CHECK_IN_PHOTO AS \"checkInPhoto\",gha.WATER_VALUE AS \"waterValue\",gha.POWER_VALUE AS \"powerValue\","
|
||
+ " gha.GAS_VALUE AS \"gasValue\",gha.DEVICE_LIST AS \"deviceList\",ghs.RENT AS \"rent\", "
|
||
+ " gha.CHECK_OUT_DATE AS \"checkOutDate\",gha.CHECK_OUT_PHOTO AS \"checkOutPhoto\", "
|
||
+ " gha.PROPERTY_PHOTO AS \"propertyPhoto\",gha.WATER_VALUE_NOW AS \"waterValueNow\", "
|
||
+ " gha.POWER_VALUE_NOW AS \"powerValueNow\",gha.GAS_VALUE_NOW AS \"gasValueNow\", "
|
||
+ " gha.WATER_SETTLE_PHOTO AS \"waterSettlePhoto\",gha.POWER_SETTLE_PHOTO AS \"powerSettlePhoto\","
|
||
+ " gha.GAS_SETTLE_PHOTO AS \"gasSettlePhoto\",gha.CHECK_DEVICE_LIST AS \"checkDeviceList\", "
|
||
+ " gha.DEPOSIT_BACK AS \"depositBack\",gha.IS_DEDUCTION AS \"isDeduction\", "
|
||
+ " gha.DEDUCTION_REASON AS \"deductionReason\" " + " FROM GREEN_HOUSE_APPLY gha"
|
||
+ " LEFT JOIN GREEN_HOUSE_SELECTED ghs ON ghs.APPLY_ID = gha.ID"
|
||
+ " WHERE gha.DEL_FLAG = 0 AND gha.ID = ? ";
|
||
System.err.println(sql);
|
||
List<Map<String, Object>> list = hibernateDao.queryForListWithSql(sql,
|
||
new Object[] { rentHouseApply.getId() });
|
||
for (Map<String, Object> map : list) {
|
||
map.put("photo", handlePhoto(map.get("photo")));
|
||
map.put("contractPhoto", handlePhoto(map.get("contractPhoto")));
|
||
map.put("roomInspection", handlePhoto(map.get("roomInspection")));
|
||
map.put("checkOutPhoto", handlePhoto(map.get("checkOutPhoto")));
|
||
map.put("checkInPhoto", handlePhoto(map.get("checkInPhoto")));
|
||
map.put("propertyPhoto", handlePhoto(map.get("propertyPhoto")));
|
||
map.put("waterSettlePhoto", handlePhoto(map.get("waterSettlePhoto")));
|
||
map.put("powerSettlePhoto", handlePhoto(map.get("powerSettlePhoto")));
|
||
map.put("gasSettlePhoto", handlePhoto(map.get("gasSettlePhoto")));
|
||
String applyUserId = String.valueOf(map.get("userId"));
|
||
String getUserInfoSql = "SELECT REAL_NAME FROM GREEN_USER_INFO WHERE ID = '" + applyUserId
|
||
+ "' AND IS_DELETED = 'N' AND USERTYPE = '0'";
|
||
List<Map<String, Object>> userList = hibernateDao.queryForListWithSql(getUserInfoSql);
|
||
if (CollectionUtils.isNotEmpty(userList)) {
|
||
map.put("applyUserName", userList.get(0).get("REAL_NAME"));
|
||
}
|
||
// 查询附属设施
|
||
String ancillaryFacilitieSql = "SELECT gaf.ID AS \"id\","
|
||
+ "gaf.ASSETSID AS \"assetsid\","
|
||
+ "gaf.NAME AS \"name\",gaf.BRAND AS \"brand\","
|
||
+ "gaf.MODEL AS \"model\",gaf.NUM AS \"num\" "
|
||
+ " FROM GREEN_HOUSE_SELECTED ghs"
|
||
+ " INNER JOIN GREEN_HOUSE gh ON ghs.HOUSE_ID = gh.UUID"
|
||
+ " INNER JOIN GREEN_ANCILLARY_FACILIITIES gaf ON gh.ASSETS_ID = gaf.ASSETSID"
|
||
+ " WHERE ghs.APPLY_ID = ?";
|
||
List<Map<String, String>> ancillaryFacilitieList = hibernateDao.queryForListWithSql(ancillaryFacilitieSql,
|
||
new Object[] { rentHouseApply.getId() });
|
||
map.put("ancillaryFacilitieList", ancillaryFacilitieList);
|
||
}
|
||
// 获取审核详情
|
||
if (list.size() > 0) {
|
||
String sqls = "SELECT EXAMINE_STATE as \"examineState\", to_char(EXAMINE_TIME,'YYYY-MM-DD HH24:MI:SS') as \"examineTime\","
|
||
+ " EXAMINE_OPINION as \"examineOpinion\",EXAMINE_BATCH as \"examineBatch\",BATCH_DESCRIPTION as \"batchDescription\" "
|
||
+ " FROM GREEN_HOUSE_APPLY_EXAMINE WHERE DEL_FLAG = 0 AND apply_id = ? order by EXAMINE_BATCH asc ";
|
||
List<Map<String, String>> lists = hibernateDao.queryForListWithSql(sqls,
|
||
new Object[] { rentHouseApply.getId() });
|
||
if (lists.size() > 0) {
|
||
list.get(0).put("detail", lists.toArray());
|
||
}
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: handlePhoto
|
||
* @Description: 处理照片
|
||
* @author cwchen
|
||
* @param value
|
||
* @return String
|
||
* @date 2024-05-22 03:28:10
|
||
*/
|
||
public String handlePhoto(Object value) {
|
||
if (value != null) {
|
||
String data = String.valueOf(value);
|
||
List<String> dataResult = Arrays.asList(data.split(","));
|
||
String dataUrl = "";
|
||
for (String str : dataResult) {
|
||
dataUrl += baseService.getImageBase64(str) + ",";
|
||
}
|
||
dataUrl = dataUrl.substring(0, dataUrl.lastIndexOf(","));
|
||
return dataUrl;
|
||
} else {
|
||
return "";
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 新增租房申请
|
||
*
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/apply", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult apply(@RequestBody GreenRentHouseApply rentHouseApply) {
|
||
|
||
try {
|
||
String userId = rentHouseApply.getUserId();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
|
||
// 查询当前用户是否已存在申请记录 - 内部申请
|
||
if (Objects.equals("1", rentHouseApply.getUserType())) {
|
||
String existsSql = "SELECT COUNT(*) FROM GREEN_HOUSE_APPLY WHERE EXAMINE_BATCH = '1' AND EXAMINE_STATE = '0' AND DEL_FLAG = '0' AND USER_ID = ? AND USER_TYPE = '1'";
|
||
int count = hibernateDao.queryForIntWithSql(existsSql, new Object[] { userId });
|
||
if (count > 0) {
|
||
return new RestResult(Constant.FAILED, "您有申请待审核,请勿重复提交");
|
||
}
|
||
String existsSql2 = "SELECT COUNT(*) FROM GREEN_HOUSE_APPLY WHERE ((EXAMINE_BATCH IN ('2','3') AND EXAMINE_STATE = '0') OR (EXAMINE_BATCH = '3' AND EXAMINE_STATE = '1')) AND DEL_FLAG = '0' AND USER_ID = ? AND USER_TYPE = '1'";
|
||
int count2 = hibernateDao.queryForIntWithSql(existsSql2, new Object[] { userId });
|
||
if (count2 > 0) {
|
||
return new RestResult(Constant.FAILED, "您有申请审核中,请勿重复提交");
|
||
}
|
||
String existsSql3 = "SELECT COUNT(*) FROM GREEN_HOUSE_APPLY WHERE EXAMINE_BATCH = '3' AND EXAMINE_STATE = '7' AND DEL_FLAG = '0' AND USER_ID = ? AND USER_TYPE = '1'";
|
||
int count3 = hibernateDao.queryForIntWithSql(existsSql3, new Object[] { userId });
|
||
if (count3 > 0) {
|
||
return new RestResult(Constant.FAILED, "您申请的房源已入住,无法申请");
|
||
}
|
||
String existsSql4 = "SELECT COUNT(*) FROM GREEN_HOUSE_APPLY WHERE EXAMINE_BATCH = '3' AND EXAMINE_STATE = '4' AND DEL_FLAG = '0' AND USER_ID = ? AND USER_TYPE = '1'";
|
||
int count4 = hibernateDao.queryForIntWithSql(existsSql4, new Object[] { userId });
|
||
if (count4 > 0) {
|
||
return new RestResult(Constant.FAILED, "您申请的房源待退租,无法申请");
|
||
}
|
||
} else if (Objects.equals("2", rentHouseApply.getUserType())) { // 查询当前申请人是否已存在申请记录
|
||
// -
|
||
// 外部申请
|
||
String userName = rentHouseApply.getUserName();
|
||
String phone = rentHouseApply.getPhone();
|
||
String existsSql = "SELECT COUNT(*) FROM GREEN_HOUSE_APPLY WHERE ((EXAMINE_BATCH IN ('2','3') AND EXAMINE_STATE = '0') OR (EXAMINE_BATCH = '3' AND EXAMINE_STATE = '1')) AND DEL_FLAG = '0' AND USER_NAME = ? AND PHONE = ?";
|
||
int count = hibernateDao.queryForIntWithSql(existsSql, new Object[] { userName, phone });
|
||
if (count > 0) {
|
||
return new RestResult(Constant.FAILED, userName + "/" + phone + "申请的房源审核中,请勿重复提交");
|
||
}
|
||
String existsSql2 = "SELECT COUNT(*) FROM GREEN_HOUSE_APPLY WHERE EXAMINE_BATCH = '3' AND EXAMINE_STATE = '7' AND DEL_FLAG = '0' AND USER_NAME = ? AND PHONE = ? ";
|
||
int count2 = hibernateDao.queryForIntWithSql(existsSql2, new Object[] { userName, phone });
|
||
if (count2 > 0) {
|
||
return new RestResult(Constant.FAILED, userName + "/" + phone + "申请的房源已入住,无法申请");
|
||
}
|
||
String existsSql3 = "SELECT COUNT(*) FROM GREEN_HOUSE_APPLY WHERE EXAMINE_BATCH = '3' AND EXAMINE_STATE = '4' AND DEL_FLAG = '0' AND USER_NAME = ? AND PHONE = ? ";
|
||
int count3 = hibernateDao.queryForIntWithSql(existsSql3, new Object[] { userName, phone });
|
||
if (count3 > 0) {
|
||
return new RestResult(Constant.FAILED, userName + "/" + phone + "申请的房源待退租,无法申请");
|
||
}
|
||
}
|
||
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||
|
||
// 查询第一审核批次
|
||
String batchSql = "SELECT ID,DATA_TYPE,DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'houseExamineSwitch' AND IS_DELETED = 'N' AND DATA_VALUE = 1 ORDER BY DATA_CODE ASC ";
|
||
List<Map<String, String>> list = hibernateDao.queryForListWithSql(batchSql);
|
||
String examineBatch = "0";
|
||
if (list.size() > 0) {
|
||
examineBatch = list.get(0).get("DATA_CODE");
|
||
}
|
||
String isUpload = null, contractState = null;
|
||
if (StringUtils.isNotBlank(rentHouseApply.getHouseId())) {
|
||
// 外部人员申请默认已分配房源、待上传合同、房管领导审批
|
||
isUpload = "2";
|
||
contractState = "0";
|
||
examineBatch = "2";
|
||
}
|
||
String sql = "INSERT INTO GREEN_HOUSE_APPLY (ID,USER_ID,USER_NAME,GENDER,MARRIAGE_STATE,PHONE, "
|
||
+ "ORG_ID,ORG_NAME,POSITION,USER_TYPE,HOUSE_TYPE,APPLY_CAUSE,APPLY_TIME,DEL_FLAG,EXAMINE_STATE,EXAMINE_BATCH,ROOM_INSPECTION,IS_UPLOAD,CONTRACT_STATE) "
|
||
+ "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,SYSDATE,0,0,?,?,?,?) ";
|
||
hibernateDao.executeSqlUpdate(sql,
|
||
new Object[] { uuid, rentHouseApply.getUserId(), rentHouseApply.getUserName(),
|
||
rentHouseApply.getGender(), rentHouseApply.getMarriageState(), rentHouseApply.getPhone(),
|
||
rentHouseApply.getOrgId(), rentHouseApply.getOrgName(), rentHouseApply.getPosition(),
|
||
rentHouseApply.getUserType(), rentHouseApply.getHouseType(), rentHouseApply.getApplyCause(),
|
||
examineBatch, rentHouseApply.getRoomInspection(), isUpload, contractState });
|
||
// 外部人员申请房源
|
||
if (Objects.equals("2", rentHouseApply.getUserType())) {
|
||
// 查询房屋详情数据
|
||
String HOUSE_NAME = null, HOUSE_TYPE = null, HOUSE_ADDR = null, ACREAGE = null, MODEL = null,
|
||
BUILDING_YEAR = null, DEVICE = null, RESPONSIBLE = null, RESPONSIBLE_PHONE = null, PRICE = null,
|
||
RENT_TYPE = null, RENT = null;
|
||
String houseDetailSql = "SELECT UUID,HOUSE_NAME,ASSETS_ID,HOUSE_TYPE,"
|
||
+ "HOUSE_ADDR,ACREAGE,DEED,MODEL,MAP,BUILDING_YEAR,BUILDING_YEAR,STATUS,RESPONSIBLE,"
|
||
+ "RESPONSIBLE_PHONE,PRICE,RENT_TYPE,WATER,WATER_NUM,ELEC,ELEC_NUM,GAS,GAS_NUM,PROPERTY,RENT,"
|
||
+ "AMOUNT,AIR"
|
||
+ " FROM GREEN_HOUSE WHERE UUID = '" + rentHouseApply.getHouseId()
|
||
+ "' AND IS_DELETED = 'N'";
|
||
List<Map<String, String>> houseList = hibernateDao.queryForListWithSql(houseDetailSql);
|
||
if (CollectionUtils.isNotEmpty(houseList)) {
|
||
Map<String, String> houseDetail = houseList.get(0);
|
||
HOUSE_NAME = houseDetail.get("HOUSE_NAME");
|
||
HOUSE_TYPE = houseDetail.get("HOUSE_TYPE");
|
||
HOUSE_ADDR = houseDetail.get("HOUSE_ADDR");
|
||
ACREAGE = houseDetail.get("ACREAGE");
|
||
MODEL = houseDetail.get("MODEL");
|
||
BUILDING_YEAR = houseDetail.get("BUILDING_YEAR");
|
||
DEVICE = houseDetail.get("DEVICE");
|
||
RESPONSIBLE = houseDetail.get("RESPONSIBLE");
|
||
RESPONSIBLE_PHONE = houseDetail.get("RESPONSIBLE_PHONE");
|
||
PRICE = houseDetail.get("PRICE");
|
||
RENT_TYPE = houseDetail.get("RENT_TYPE");
|
||
RENT = houseDetail.get("RENT");
|
||
}
|
||
String checkHouseId = UUID.randomUUID().toString().replaceAll("-", "");
|
||
// 添加选房数据
|
||
String addHouseSql = "INSERT INTO GREEN_HOUSE_SELECTED(UUID,HOUSE_ID,HOUSE_NAME,HOUSE_TYPE,HOUSE_ADDR,ACREAGE,MODEL, "
|
||
+ "BUILDING_YEAR,DEVICE,RESPONSIBLE,RESPONSIBLE_PHONE,CREATOR,GMT_CREATED,IS_DELETED,PRICE,RENT_TYPE,APPLY_ID,RENT) "
|
||
+ "values(?,?,?,?,?,?,?,?,?,?,?,?,SYSDATE,'N',?,?,?,?) ";
|
||
hibernateDao.executeSqlUpdate(addHouseSql,
|
||
new Object[] { checkHouseId, rentHouseApply.getHouseId(), HOUSE_NAME, HOUSE_TYPE, HOUSE_ADDR,
|
||
ACREAGE, MODEL, BUILDING_YEAR, DEVICE, RESPONSIBLE, RESPONSIBLE_PHONE, userId, PRICE,
|
||
RENT_TYPE, uuid, RENT });
|
||
// 更新房屋状态为在租
|
||
String updateSql = "UPDATE GREEN_HOUSE SET STATUS = '2' WHERE UUID = '" + rentHouseApply.getHouseId()
|
||
+ "' ";
|
||
hibernateDao.executeSqlUpdate(updateSql);
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功", uuid);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 房屋申请审批
|
||
*
|
||
* @param map
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/examine", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult examine(Map<String, String> map) {
|
||
|
||
try {
|
||
String userId = map.get("userId");
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
|
||
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||
String applyId = map.get("applyId");
|
||
String userName = map.get("userName");
|
||
String examineState = map.get("examineState");
|
||
String examineOpinion = map.get("examineOpinion");
|
||
String examineBatch = map.get("examineBatch");
|
||
String houseId = map.get("houseId");
|
||
String isUpload = map.get("isUpload");
|
||
|
||
if (StringUtils.isBlank(examineState)) {
|
||
return new RestResult(Constant.FAILED, "审核状态不能为空");
|
||
}
|
||
if (StringUtils.isBlank(examineBatch)) {
|
||
return new RestResult(Constant.FAILED, "审核批次不能为空");
|
||
}
|
||
|
||
// 查询下一审核批次
|
||
String batchSql = "SELECT ID,DATA_TYPE,DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'houseExamineSwitch' "
|
||
+ "AND IS_DELETED = 'N' AND DATA_VALUE = 1 AND DATA_CODE > ? ORDER BY DATA_CODE ASC ";
|
||
List<Map<String, String>> list = hibernateDao.queryForListWithSql(batchSql, new Object[] { examineBatch });
|
||
// 不为空则更改审核批次,否则更改申请单的审核状态
|
||
if (list.size() > 0) {
|
||
if ("1".equals(examineState)) {
|
||
String lastExamineBatch = list.get(0).get("DATA_CODE");
|
||
String updateBatchSql = null;
|
||
if (org.apache.commons.lang3.StringUtils.isEmpty(isUpload)) {
|
||
updateBatchSql = "UPDATE GREEN_HOUSE_APPLY SET EXAMINE_BATCH = ? WHERE ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateBatchSql, new Object[] { lastExamineBatch, applyId });
|
||
} else {
|
||
// 上传合同-结束流程/更新租房申请状态为已租赁
|
||
updateBatchSql = "UPDATE GREEN_HOUSE_APPLY SET EXAMINE_STATE = '7' WHERE ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateBatchSql, new Object[] { applyId });
|
||
String sql = "INSERT INTO GREEN_HOUSE_APPLY_EXAMINE(ID,APPLY_ID,USER_ID,USER_NAME,EXAMINE_STATE,EXAMINE_OPINION,"
|
||
+ "EXAMINE_TIME,DEL_FLAG,EXAMINE_BATCH,BATCH_DESCRIPTION) "
|
||
+ "VALUES(?,?,?,?,?,?,SYSDATE,0,?,?) ";
|
||
hibernateDao.executeSqlUpdate(sql, new Object[] { uuid, applyId, userId, userName, "1",
|
||
examineOpinion, "4", "房屋经办人上传合同" });
|
||
// 更新房屋状态为在用
|
||
String updateHosueStateSql = "UPDATE GREEN_HOUSE SET STATUS = ? WHERE UUID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateHosueStateSql, new Object[] { 3, houseId });
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
}
|
||
} else if ("2".equals(examineState)) {
|
||
String updateStateSql = "UPDATE GREEN_HOUSE_APPLY SET EXAMINE_STATE = ? WHERE ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateStateSql, new Object[] { examineState, applyId });
|
||
}
|
||
} else {
|
||
String updateStateSql = "UPDATE GREEN_HOUSE_APPLY SET EXAMINE_STATE =? WHERE ID = ? ";
|
||
if ("3".equals(examineBatch)) {
|
||
if ("1".equals(examineState)) {
|
||
hibernateDao.executeSqlUpdate(updateStateSql, new Object[] { examineState, applyId });
|
||
} else if ("2".equals(examineState)) {
|
||
// 房管领导 审核不通过
|
||
String updateHosueStateSql = "DELETE GREEN_HOUSE_SELECTED WHERE APPLY_ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateHosueStateSql, new Object[] { applyId });
|
||
// 更新房屋状态为闲置
|
||
String updateSql = "UPDATE GREEN_HOUSE SET STATUS = '1' WHERE UUID = '" + houseId + "' ";
|
||
hibernateDao.executeSqlUpdate(updateSql);
|
||
|
||
}
|
||
}
|
||
hibernateDao.executeSqlUpdate(updateStateSql, new Object[] { examineState, applyId });
|
||
}
|
||
|
||
// 查询当前批次描述
|
||
String description = "";
|
||
String sqls = "SELECT DATA_CODE as \"id\",DATA_VALUE as \"name\",DESCRIPTION as \"description\" FROM GREEN_DICTIONARY_INFO "
|
||
+ "WHERE DATA_TYPE = 'houseExamineSwitch' AND IS_DELETED = 'N' and DATA_CODE = ? ";
|
||
List<Map<String, String>> lists = hibernateDao.queryForListWithSql(sqls, new Object[] { examineBatch });
|
||
if (lists.size() > 0) {
|
||
description = lists.get(0).get("description");
|
||
}
|
||
|
||
// 插入数据
|
||
String sql = "INSERT INTO GREEN_HOUSE_APPLY_EXAMINE(ID,APPLY_ID,USER_ID,USER_NAME,EXAMINE_STATE,EXAMINE_OPINION,"
|
||
+ "EXAMINE_TIME,DEL_FLAG,EXAMINE_BATCH,BATCH_DESCRIPTION) " + "VALUES(?,?,?,?,?,?,SYSDATE,0,?,?) ";
|
||
hibernateDao.executeSqlUpdate(sql, new Object[] { uuid, applyId, userId, userName, examineState,
|
||
examineOpinion, examineBatch, description });
|
||
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/addSelectedHouse", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult addSelectedHouse(Map<String, Object> map) {
|
||
try {
|
||
String userId = map.get("userId") == null ? "" : String.valueOf(map.get("userId"));
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
|
||
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||
String applyId = map.get("applyId") == null ? "" : String.valueOf(map.get("applyId"));
|
||
String HOUSE_ID = map.get("HOUSE_ID") == null ? "" : String.valueOf(map.get("HOUSE_ID"));
|
||
String HOUSE_NAME = map.get("HOUSE_NAME") == null ? "" : String.valueOf(map.get("HOUSE_NAME"));
|
||
String HOUSE_TYPE = map.get("HOUSE_TYPE") == null ? "" : String.valueOf(map.get("HOUSE_TYPE"));
|
||
String HOUSE_ADDR = map.get("HOUSE_ADDR") == null ? "" : String.valueOf(map.get("HOUSE_ADDR"));
|
||
String ACREAGE = map.get("ACREAGE") == null ? "" : String.valueOf(map.get("ACREAGE"));
|
||
String MODEL = map.get("MODEL") == null ? "" : String.valueOf(map.get("MODEL"));
|
||
String BUILDING_YEAR = map.get("BUILDING_YEAR") == null ? "" : String.valueOf(map.get("BUILDING_YEAR"));
|
||
String DEVICE = map.get("DEVICE") == null ? "" : String.valueOf(map.get("DEVICE"));
|
||
String RESPONSIBLE = map.get("RESPONSIBLE") == null ? "" : String.valueOf(map.get("RESPONSIBLE"));
|
||
String RESPONSIBLE_PHONE = map.get("RESPONSIBLE_PHONE") == null ? ""
|
||
: String.valueOf(map.get("RESPONSIBLE_PHONE"));
|
||
String PRICE = map.get("PRICE") == null ? "" : String.valueOf(map.get("PRICE"));
|
||
String RENT_TYPE = map.get("RENT_TYPE") == null ? "" : String.valueOf(map.get("RENT_TYPE"));
|
||
String contractStartTime = map.get("contractStartTime") == null ? ""
|
||
: String.valueOf(map.get("contractStartTime"));
|
||
String contractEndTime = map.get("contractEndTime") == null ? ""
|
||
: String.valueOf(map.get("contractEndTime"));
|
||
String photo = map.get("photo") == null ? "" : String.valueOf(map.get("photo"));
|
||
String contractPhoto = map.get("contractPhoto") == null ? "" : String.valueOf(map.get("contractPhoto"));
|
||
String sql = "insert into GREEN_HOUSE_SELECTED(UUID,HOUSE_ID,HOUSE_NAME,HOUSE_TYPE,HOUSE_ADDR,ACREAGE,MODEL, "
|
||
+ "BUILDING_YEAR,DEVICE,RESPONSIBLE,RESPONSIBLE_PHONE,CREATOR,GMT_CREATED,IS_DELETED,PRICE,RENT_TYPE,APPLY_ID) "
|
||
+ "values(?,?,?,?,?,?,?,?,?,?,?,?,SYSDATE,'N',?,?,?) ";
|
||
hibernateDao.executeSqlUpdate(sql,
|
||
new Object[] { uuid, HOUSE_ID, HOUSE_NAME, HOUSE_TYPE, HOUSE_ADDR, ACREAGE, MODEL, BUILDING_YEAR,
|
||
DEVICE, RESPONSIBLE, RESPONSIBLE_PHONE, userId, PRICE, RENT_TYPE, applyId });
|
||
String sqlContract = "INSERT INTO GREEN_HOUSE_CONTRACT ( ID, HOUSE_ID,HOUSE_TYPE, CONTRACT_START_TIME, CONTRACT_END_TIME, RESPONSIBLE,RESPONSIBLE_PHONE, STATE, APPLY_ID,CREATE_TIME ) VALUES ( ?,?, ?, ?, ?, ?, ?, ? ,?,?)";
|
||
String uuidContract = UUID.randomUUID().toString().replaceAll("-", "");
|
||
hibernateDao.executeSqlUpdate(sqlContract,
|
||
new Object[] { uuidContract, HOUSE_ID, HOUSE_TYPE, contractStartTime, contractEndTime, RESPONSIBLE,
|
||
RESPONSIBLE_PHONE, "0", applyId, DateTimeHelper.getNowDate1() });
|
||
// 修改租房申请表状态:已选房
|
||
String updateStateSql = "UPDATE GREEN_HOUSE_APPLY SET EXAMINE_STATE = ?,CONTRACT_START_TIME=?,CONTRACT_END_TIME=?,PHOTO=?,CONTRACT_STATE=0 ,CONTRACT_PHOTO =? WHERE ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateStateSql,
|
||
new Object[] { 0, contractStartTime, contractEndTime, photo, contractPhoto, applyId });
|
||
|
||
/*
|
||
* // 修改房屋表状态:在租 String updateHosueStateSql =
|
||
* "UPDATE GREEN_HOUSE SET STATUS = ? WHERE UUID = ? ";
|
||
* hibernateDao.executeSqlUpdate(updateHosueStateSql, new Object[]
|
||
* {2, HOUSE_ID });
|
||
*/
|
||
|
||
return new RestResult(Constant.SUCCESS, "您已成功选房");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: addSelHouse
|
||
* @Description: 房管经办人选房
|
||
* @author cwchen
|
||
* @param map
|
||
* @return RestResult
|
||
* @date 2024-05-21 03:45:13
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/checkedHouse", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult checkedHouse(Map<String, Object> map) {
|
||
try {
|
||
String userId = map.get("userId") == null ? "" : String.valueOf(map.get("userId"));
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
|
||
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||
String applyId = map.get("applyId") == null ? "" : String.valueOf(map.get("applyId"));
|
||
String houseId = map.get("houseId") == null ? "" : String.valueOf(map.get("houseId"));
|
||
String operType = map.get("operType") == null ? "" : String.valueOf(map.get("operType"));
|
||
String contractStartTime = map.get("contractStartTime") == null ? ""
|
||
: String.valueOf(map.get("contractStartTime"));
|
||
String contractEndTime = map.get("contractEndTime") == null ? ""
|
||
: String.valueOf(map.get("contractEndTime"));
|
||
String photo = map.get("photo") == null ? "" : String.valueOf(map.get("photo"));
|
||
String contractPhoto = map.get("contractPhoto") == null ? "" : String.valueOf(map.get("contractPhoto"));
|
||
// 入住照片、水表数值、电表数值、燃气表数值、附属设备清单
|
||
String checkInPhoto = map.get("checkInPhoto") == null ? "" : String.valueOf(map.get("checkInPhoto"));
|
||
String waterValue = map.get("waterValue") == null ? "" : String.valueOf(map.get("waterValue"));
|
||
String powerValue = map.get("powerValue") == null ? "" : String.valueOf(map.get("powerValue"));
|
||
String gasValue = map.get("gasValue") == null ? "" : String.valueOf(map.get("gasValue"));
|
||
String deviceList = map.get("deviceList") == null ? "" : String.valueOf(map.get("deviceList"));
|
||
if (!isValueValidate(waterValue)) {
|
||
return new RestResult(Constant.FAILED, "水表数值应为大于等于0 的数,最多保留三位小数");
|
||
}
|
||
if (!isValueValidate(powerValue)) {
|
||
return new RestResult(Constant.FAILED, "电表数值应为大于等于0 的数,最多保留三位小数");
|
||
}
|
||
if (!isValueValidate(gasValue)) {
|
||
return new RestResult(Constant.FAILED, "燃气表数值应为大于等于0 的数,最多保留三位小数");
|
||
}
|
||
// 查询房屋详情数据
|
||
String HOUSE_NAME = null, HOUSE_TYPE = null, HOUSE_ADDR = null, ACREAGE = null, MODEL = null,
|
||
BUILDING_YEAR = null, DEVICE = null, RESPONSIBLE = null, RESPONSIBLE_PHONE = null, PRICE = null,
|
||
RENT_TYPE = null, RENT = null;
|
||
String houseDetailSql = "SELECT UUID,HOUSE_NAME,ASSETS_ID,HOUSE_TYPE,"
|
||
+ "HOUSE_ADDR,ACREAGE,DEED,MODEL,MAP,BUILDING_YEAR,BUILDING_YEAR,STATUS,RESPONSIBLE,"
|
||
+ "RESPONSIBLE_PHONE,PRICE,RENT_TYPE,WATER,WATER_NUM,ELEC,ELEC_NUM,GAS,GAS_NUM,PROPERTY,RENT,"
|
||
+ "AMOUNT,AIR"
|
||
+" FROM GREEN_HOUSE WHERE UUID = '" + houseId + "' AND IS_DELETED = 'N'";
|
||
List<Map<String, String>> houseList = hibernateDao.queryForListWithSql(houseDetailSql);
|
||
if (CollectionUtils.isNotEmpty(houseList)) {
|
||
Map<String, String> houseDetail = houseList.get(0);
|
||
HOUSE_NAME = houseDetail.get("HOUSE_NAME");
|
||
HOUSE_TYPE = houseDetail.get("HOUSE_TYPE");
|
||
HOUSE_ADDR = houseDetail.get("HOUSE_ADDR");
|
||
ACREAGE = houseDetail.get("ACREAGE");
|
||
MODEL = houseDetail.get("MODEL");
|
||
BUILDING_YEAR = houseDetail.get("BUILDING_YEAR");
|
||
DEVICE = houseDetail.get("DEVICE");
|
||
RESPONSIBLE = houseDetail.get("RESPONSIBLE");
|
||
RESPONSIBLE_PHONE = houseDetail.get("RESPONSIBLE_PHONE");
|
||
PRICE = houseDetail.get("PRICE");
|
||
RENT_TYPE = houseDetail.get("RENT_TYPE");
|
||
RENT = houseDetail.get("RENT");
|
||
}
|
||
if (Objects.equals("1", operType)) { // 房管经办人-选房
|
||
// 添加选房数据
|
||
String sql = "INSERT INTO GREEN_HOUSE_SELECTED(UUID,HOUSE_ID,HOUSE_NAME,HOUSE_TYPE,HOUSE_ADDR,ACREAGE,MODEL, "
|
||
+ "BUILDING_YEAR,DEVICE,RESPONSIBLE,RESPONSIBLE_PHONE,CREATOR,GMT_CREATED,IS_DELETED,PRICE,RENT_TYPE,APPLY_ID,RENT) "
|
||
+ "values(?,?,?,?,?,?,?,?,?,?,?,?,SYSDATE,'N',?,?,?,?) ";
|
||
hibernateDao.executeSqlUpdate(sql,
|
||
new Object[] { uuid, houseId, HOUSE_NAME, HOUSE_TYPE, HOUSE_ADDR, ACREAGE, MODEL,
|
||
BUILDING_YEAR, DEVICE, RESPONSIBLE, RESPONSIBLE_PHONE, userId, PRICE, RENT_TYPE,
|
||
applyId, RENT });
|
||
// 更新租房申请
|
||
String updateUploadSql = "UPDATE GREEN_HOUSE_APPLY SET IS_UPLOAD = '2',CONTRACT_STATE = '0' WHERE ID = '"
|
||
+ applyId + "'";
|
||
hibernateDao.executeSqlUpdate(updateUploadSql);
|
||
// 更新房屋状态为在租
|
||
String updateSql = "UPDATE GREEN_HOUSE SET STATUS = '2' WHERE UUID = '" + houseId + "' ";
|
||
hibernateDao.executeSqlUpdate(updateSql);
|
||
} else if (Objects.equals("2", operType)) { // 房管经办人-上传合同
|
||
Integer month = handleMonth(contractStartTime,contractEndTime);
|
||
if(month < 1){
|
||
return new RestResult(Constant.FAILED, "合同日期至少为一个月");
|
||
}
|
||
String sqlContract = "INSERT INTO GREEN_HOUSE_CONTRACT ( ID, HOUSE_ID,HOUSE_TYPE, CONTRACT_START_TIME, CONTRACT_END_TIME, RESPONSIBLE,RESPONSIBLE_PHONE, STATE, APPLY_ID,CREATE_TIME,PHOTO,CONTRACT_PHOTO,CHECK_IN_PHOTO,WATER_VALUE,POWER_VALUE,GAS_VALUE,DEVICE_LIST ) VALUES ( ?,?, ?, ?, ?, ?, ?, ? ,?,?,?,?,?,?,?,?,?)";
|
||
String uuidContract = UUID.randomUUID().toString().replaceAll("-", "");
|
||
hibernateDao.executeSqlUpdate(sqlContract,
|
||
new Object[] { uuidContract, houseId, HOUSE_TYPE, contractStartTime, contractEndTime,
|
||
RESPONSIBLE, RESPONSIBLE_PHONE, "0", applyId, DateTimeHelper.getNowDate1(), photo,
|
||
contractPhoto, checkInPhoto, waterValue, powerValue, gasValue, deviceList });
|
||
// 更新租房申请表状态
|
||
String updateStateSql = "UPDATE GREEN_HOUSE_APPLY SET IS_UPLOAD = ?,CONTRACT_START_TIME=?,CONTRACT_END_TIME=?,PHOTO=?,CONTRACT_STATE=1 ,CONTRACT_PHOTO =?,CHECK_IN_PHOTO = ?,WATER_VALUE = ?,POWER_VALUE = ?,GAS_VALUE = ?,DEVICE_LIST = ? WHERE ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateStateSql, new Object[] { "3", contractStartTime, contractEndTime,
|
||
photo, contractPhoto, checkInPhoto, waterValue, powerValue, gasValue, deviceList, applyId });
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
public static Integer handleMonth(String startTime, String endTime) {
|
||
Integer days = DateTimeHelper.getDays(startTime, endTime);
|
||
Integer basicMonthDays = 30;
|
||
int result = divideAndCeil(days, basicMonthDays);
|
||
return result;
|
||
}
|
||
|
||
public static Integer divideAndCeil(Integer numerator, Integer denominator) {
|
||
double result = (double) numerator / denominator;
|
||
// 如果小数部分大于或等于0.5,则向上取整
|
||
if (result - Math.floor(result) >= 0.5) {
|
||
return (int) Math.ceil(result);
|
||
} else {
|
||
return (int) Math.floor(result);
|
||
}
|
||
}
|
||
|
||
public static void main(String[] args) {
|
||
Integer month = handleMonth("2024-11-01","2024-11-15");
|
||
System.err.println(month);
|
||
// Boolean checkContractPeriod = checkContractPeriod("2024-11-01","2024-11-30");
|
||
}
|
||
|
||
/**
|
||
* 查询用户已选房屋
|
||
*
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/getSelectedHouse", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult getSelectedHouse(Map<String, String> map) {
|
||
try {
|
||
|
||
String userId = map.get("userId");
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
|
||
String APPLY_ID = map.get("APPLY_ID");
|
||
|
||
String sql = "SELECT GH.UUID,GH.HOUSE_NAME,GH.ASSETS_ID,GH.HOUSE_TYPE,"
|
||
+ "GH.HOUSE_ADDR,GH.ACREAGE,GH.DEED,GH.MODEL,GH.MAP,GH.BUILDING_YEAR,GH.BUILDING_YEAR,GH.STATUS,GH.RESPONSIBLE,"
|
||
+ "GH.RESPONSIBLE_PHONE,GH.PRICE,GH.RENT_TYPE,GH.WATER,GH.WATER_NUM,GH.ELEC,GH.ELEC_NUM,GH.GAS,GH.GAS_NUM,GH.PROPERTY,GH.RENT,"
|
||
+ "GH.AMOUNT,GH.AIR,H.UUID,H.HOUSE_ID,H.HOUSE_ID,H.HOUSE_ID,H.HOUSE_ADDR,H.ACREAGE,"
|
||
+ "H.MODEL,H.MODEL,H.MODEL,H.RESPONSIBLE,H.RESPONSIBLE_PHONE,H.PRICE,H.RENT_TYPE,H.APPLY_ID,H.RENT,"
|
||
+ "P.PIC from GREEN_HOUSE_SELECTED H LEFT JOIN ( "
|
||
+ "SELECT HOUSE_ID, LISTAGG (to_char(PICTURE), ',') WITHIN GROUP (ORDER BY SORT) AS PIC "
|
||
+ "FROM GREEN_HOUSE_PICTURE GROUP BY HOUSE_ID ) P ON H.HOUSE_ID = P.HOUSE_ID "
|
||
+ "LEFT JOIN GREEN_HOUSE GH ON GH.UUID = H.HOUSE_ID AND GH.IS_DELETED = 'N' "
|
||
+ "WHERE H.IS_DELETED='N' and APPLY_ID = ? " + "order by H.GMT_CREATED DESC ";
|
||
System.err.println(sql);
|
||
List<Map<String, Object>> list = hibernateDao.queryForListWithSql(sql, new Object[] { APPLY_ID });
|
||
for (Map<String, Object> map1 : list) {
|
||
List<Object> pictures = new ArrayList<Object>();
|
||
String PICS = String.valueOf(map1.get("PIC"));
|
||
if (StringUtils.isNotBlank(PICS) && !"null".equals(PICS)) {
|
||
String[] split = PICS.split(",");
|
||
for (int i = 0; i < split.length; i++) {
|
||
String picture = split[i];
|
||
picture = baseService.getImageBase64(picture);
|
||
pictures.add(picture);
|
||
}
|
||
}
|
||
map1.put("PICTURE", pictures.toArray());
|
||
}
|
||
|
||
return new RestResult(Constant.SUCCESS, "操作成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 新增退租申请
|
||
*
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/houseCheckOut", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult houseCheckOut(Map<String, String> map) {
|
||
try {
|
||
String userId = map.get("userId");
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
String applyId = map.get("applyId");
|
||
String status = map.get("status");
|
||
String houseId = map.get("houseId");
|
||
|
||
if (status == null && "".equals(status)) {
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
|
||
if ("5".equals(status)) {// 退租验收通过
|
||
// 退房时间、入住后照片、物业费结清凭证、当前水表数值、当前电表数值、当前燃气数值、水费结清凭证、电费结清凭证、燃气费结清凭证、附属设备清单是否完好、押金是否退还
|
||
// 1 是 2 否、是否抵扣 1 是 2 否、抵扣说明
|
||
String checkOutDate = map.get("checkOutDate");
|
||
String checkOutPhoto = map.get("checkOutPhoto");
|
||
String propertyPhoto = map.get("propertyPhoto");
|
||
String waterValueNow = map.get("waterValueNow");
|
||
String powerValueNow = map.get("powerValueNow");
|
||
String gasValueNow = map.get("gasValueNow");
|
||
String waterSettlePhoto = map.get("waterSettlePhoto");
|
||
String powerSettlePhoto = map.get("powerSettlePhoto");
|
||
String gasSettlePhoto = map.get("gasSettlePhoto");
|
||
String checkDeviceList = map.get("checkDeviceList");
|
||
String depositBack = map.get("depositBack");
|
||
String isDeduction = map.get("isDeduction");
|
||
String deductionReason = map.get("deductionReason");
|
||
// 验证 水表、电表、燃气表数值是否合法
|
||
if (!isValueValidate(waterValueNow)) {
|
||
return new RestResult(Constant.FAILED, "水表当前数值应为大于等于0 的数,最多保留三位小数");
|
||
}
|
||
if (!isValueValidate(powerValueNow)) {
|
||
return new RestResult(Constant.FAILED, "电表当前数值应为大于等于0 的数,最多保留三位小数");
|
||
}
|
||
if (!isValueValidate(gasValueNow)) {
|
||
return new RestResult(Constant.FAILED, "燃气表当前数值应为大于等于0 的数,最多保留三位小数");
|
||
}
|
||
// 获取租房申请详情
|
||
String houseApplyDetailSql = "SELECT WATER_VALUE,POWER_VALUE,GAS_VALUE,CONTRACT_START_TIME FROM GREEN_HOUSE_APPLY WHERE ID = '" + applyId + "'";
|
||
List<Map<String, String>> houseApplyList = hibernateDao.queryForListWithSql(houseApplyDetailSql);
|
||
if (CollectionUtils.isNotEmpty(houseApplyList)) {
|
||
Map<String, String> mapData = houseApplyList.get(0);
|
||
if (!isValueValidate2(mapData.get("WATER_VALUE"), waterValueNow)) {
|
||
return new RestResult(Constant.FAILED, "水表当前数值不小于水表初始数值");
|
||
}
|
||
if (!isValueValidate2(mapData.get("POWER_VALUE"), powerValueNow)) {
|
||
return new RestResult(Constant.FAILED, "电表当前数值不小于电表初始数值");
|
||
}
|
||
if (!isValueValidate2(mapData.get("GAS_VALUE"), gasValueNow)) {
|
||
return new RestResult(Constant.FAILED, "燃气表当前数值不小于燃气表初始数值");
|
||
}
|
||
if (!isValueValidate3(mapData.get("CONTRACT_START_TIME"), checkOutDate)) {
|
||
return new RestResult(Constant.FAILED, "退房日期应在合同开始日期之后");
|
||
}
|
||
}
|
||
// 更新合同状态
|
||
String sql = "UPDATE GREEN_HOUSE_CONTRACT SET STATE = '2' WHERE APPLY_ID = ? ";
|
||
hibernateDao.executeSqlUpdate(sql, new Object[] { applyId });
|
||
// 修改房屋表状态:空置
|
||
System.err.println("房屋ID:" + houseId);
|
||
String updateHosueStateSql = "UPDATE GREEN_HOUSE SET STATUS = ? WHERE UUID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateHosueStateSql, new Object[] { "1", houseId });
|
||
// 更新租房退租验收项目
|
||
String updateBatchSql = "UPDATE GREEN_HOUSE_APPLY SET EXAMINE_STATE = ?,CHECK_OUT_DATE = ?,CHECK_OUT_PHOTO = ?,"
|
||
+ " PROPERTY_PHOTO = ?,WATER_VALUE_NOW = ?,POWER_VALUE_NOW = ?,"
|
||
+ " GAS_VALUE_NOW = ?,WATER_SETTLE_PHOTO = ?,POWER_SETTLE_PHOTO = ?,"
|
||
+ " GAS_SETTLE_PHOTO = ?,CHECK_DEVICE_LIST = ?,DEPOSIT_BACK = ?,IS_DEDUCTION = ?,DEDUCTION_REASON = ?"
|
||
+ " WHERE ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateBatchSql,
|
||
new Object[] { status, checkOutDate, checkOutPhoto, propertyPhoto, waterValueNow, powerValueNow,
|
||
gasValueNow, waterSettlePhoto, powerSettlePhoto, gasSettlePhoto, checkDeviceList,
|
||
depositBack, isDeduction, deductionReason, applyId });
|
||
} else { // 提交退租申请
|
||
String updateBatchSql = "UPDATE GREEN_HOUSE_APPLY SET EXAMINE_STATE = ? WHERE ID = ? ";
|
||
hibernateDao.executeSqlUpdate(updateBatchSql, new Object[] { status, applyId });
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功", map);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取字典数据:房屋类型
|
||
*
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/getHouseType", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult getHouseType(Map<String, String> map) {
|
||
try {
|
||
|
||
String dataType = map.get("dataType");
|
||
|
||
List<Map<String, String>> dictionaryInfo = getDictionaryInfo(dataType);
|
||
return new RestResult(Constant.SUCCESS, "操作成功", dictionaryInfo);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
|
||
}
|
||
|
||
/**
|
||
* 获取字典数据:房屋类型
|
||
*
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/getHouseTypes", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult getHouseTypes(Map<String, String> map) {
|
||
try {
|
||
String userId = map.get("userId");
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
String dataType = map.get("dataType");
|
||
String sql = "SELECT DATA_CODE as \"id\",DATA_VALUE as \"name\",DESCRIPTION as \"description\" FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = ?";
|
||
if (info.getLeader() != null && !"1".equals(info.getLeader())) {
|
||
sql += " AND DATA_CODE NOT IN (1,2)";
|
||
}
|
||
sql += " AND IS_DELETED = 'N' ";
|
||
List<Map<String, String>> list = hibernateDao.queryForListWithSql(sql, new Object[] { dataType });
|
||
return new RestResult(Constant.SUCCESS, "操作成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
|
||
}
|
||
|
||
/**
|
||
* 根据房屋类型获取闲置房屋
|
||
*
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/getFreeHouse", method = { RequestMethod.POST })
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult getFreeHouse(Map<String, String> map) {
|
||
try {
|
||
|
||
String userId = map.get("userId");
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if (info == null) {
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
int pageNum = Integer.parseInt(String.valueOf(map.get("pageNum")));
|
||
int pageSize = Integer.parseInt(String.valueOf(map.get("pageSize")));
|
||
int limit = ((pageNum > 0 ? pageNum : 1) - 1) * pageSize;
|
||
pageSize = pageSize * pageNum;
|
||
|
||
String houseType = map.get("houseType");
|
||
String sql = "SELECT * FROM ( SELECT RN.*,ROWNUM rw FROM( "
|
||
+ "SELECT H.UUID,H.HOUSE_NAME,H.ASSETS_ID,H.HOUSE_TYPE,"
|
||
+ "H.HOUSE_ADDR,H.ACREAGE,H.DEED,H.MODEL,H.MAP,H.BUILDING_YEAR,H.DEVICE,H.STATUS,H.RESPONSIBLE,"
|
||
+ "H.RESPONSIBLE_PHONE,H.PRICE,H.RENT_TYPE,H.WATER,H.WATER_NUM,H.ELEC,H.ELEC_NUM,H.GAS,H.GAS_NUM,H.PROPERTY,H.RENT,"
|
||
+ "H.AMOUNT,H.AIR, P.PIC from GREEN_HOUSE H LEFT JOIN ( "
|
||
+ "SELECT HOUSE_ID, LISTAGG (to_char(PICTURE), ',') WITHIN GROUP (ORDER BY SORT) AS PIC "
|
||
+ "FROM GREEN_HOUSE_PICTURE GROUP BY HOUSE_ID ) P ON H.UUID = P.HOUSE_ID WHERE H.IS_DELETED='N' "
|
||
+ "AND HOUSE_TYPE = ? AND STATUS = 1 "
|
||
+ "order by H.GMT_CREATED DESC )rn ) WHERE rw > ? AND rw <= ? ";
|
||
|
||
List<Map<String, Object>> list = hibernateDao.queryForListWithSql(sql,
|
||
new Object[] { houseType, limit, pageSize });
|
||
for (Map<String, Object> map1 : list) {
|
||
List<Object> pictures = new ArrayList<Object>();
|
||
String PICS = String.valueOf(map1.get("PIC"));
|
||
if (StringUtils.isNotBlank(PICS) && !"null".equals(PICS)) {
|
||
String[] split = PICS.split(",");
|
||
for (int i = 0; i < split.length; i++) {
|
||
String picture = split[i];
|
||
picture = baseService.getImageBase64(picture);
|
||
pictures.add(picture);
|
||
}
|
||
}
|
||
map1.put("PICTURE", pictures.toArray());
|
||
}
|
||
|
||
return new RestResult(Constant.SUCCESS, "操作成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/test", method = RequestMethod.POST)
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@ResponseBody
|
||
public RestResult test(HttpServletRequest request, HttpServletResponse response) {
|
||
try {
|
||
// 生产
|
||
String messageAppId = "0f4824416eca4c7e82753acaf222649e";
|
||
String producerId = "d1c6e3b0f94742dc91a13f9a780941d6";
|
||
String sm2key = "041C2174BC0227F8F7F9342522AED537C277B3AA6217246D892156B874702041D5180D121845E75DF9D31B05DEA490632C9DD6F2AFBF40540740AAE21D32CAF9A6";
|
||
String sm4key = "13276439115248968552415895716389";
|
||
String baseUrl = "https://id.sgcc.com.cn:10443/mobile-message";
|
||
// 测试
|
||
// String messageAppId = "0f4824416eca4c7e82753acaf222649e";
|
||
// String producerId = "d1c6e3b0f94742dc91a13f9a780941d6";
|
||
// String sm2key =
|
||
// "041C2174BC0227F8F7F9342522AED537C277B3AA6217246D892156B874702041D5180D121845E75DF9D31B05DEA490632C9DD6F2AFBF40540740AAE21D32CAF9A6";
|
||
// String sm4key = "13276439115248968552415895716389";
|
||
// String baseUrl =
|
||
// "https://igw.isgcc.net:18443/isgcc_message/server";
|
||
|
||
WxMsgConfig wxMsgConfig = new WxMsgConfig();
|
||
wxMsgConfig.setBaseUrl(baseUrl);
|
||
// TODO : 以下三个参数需要进行替换
|
||
wxMsgConfig.setProducerId(producerId);
|
||
wxMsgConfig.setSm4Key(sm4key);
|
||
wxMsgConfig.setSm2PublicKey(sm2key);
|
||
// 以下三个Bean 建议在项目中以单例形式存在
|
||
MsgRequestClient requestClient = new MsgRequestClient(wxMsgConfig);
|
||
// 消息中心查询client
|
||
MsgQueryClient msgQueryClient = new MsgQueryClient(requestClient);
|
||
// 消息中心发送client
|
||
MsgSendClient msgSendClient = new MsgSendClient(requestClient);
|
||
|
||
// 构建发送消息参数
|
||
SendMsgParams wechatMsg = new SendMsgParams();
|
||
// TODO : 发送目标用户
|
||
wechatMsg.setTouser("sgitg_sunfenglin");
|
||
// 发送目标组织
|
||
// wechatMsg.setToparty("目标组织");
|
||
// 跳转链接地址
|
||
wechatMsg.setUrl("zipapp://appid.1001093/index.html");
|
||
wechatMsg.setTitle("点击进入应用" + System.currentTimeMillis());
|
||
wechatMsg.setType("textcard");
|
||
wechatMsg.setContent("对接测试内容" + System.currentTimeMillis());
|
||
// wechatMsg.setPicurl("https://www.baidu.com/img/PCjing_5e539553b5304b9f43deb8a0fc918e45.png");
|
||
wechatMsg.setDescription("对接测试内容" + System.currentTimeMillis());
|
||
// 目标应用appId
|
||
wechatMsg.setMessageAppId(messageAppId);
|
||
WxSendMsgResult wxSendMsgResult = msgSendClient.sendMsg(wechatMsg);
|
||
System.out.println(wxSendMsgResult);
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: getUserTypeByRole
|
||
* @Description: 根据角色获取人员类型
|
||
* @author cwchen
|
||
* @param dto
|
||
* @return RestResult
|
||
* @date 2024-05-21 11:26:15
|
||
*/
|
||
|
||
@SuppressWarnings("deprecation")
|
||
@ResponseBody
|
||
@RequestMapping(value = "/getUserTypeByRole", method = { RequestMethod.POST })
|
||
public RestResult getUserTypeByRole(GreenHouseDto dto) {
|
||
try {
|
||
String userTypeValue = "本部人员";
|
||
String roleId = dto.getRoleId();
|
||
String sql = "SELECT ROLE_NAME FROM GREEN_ROLE WHERE ID = ? AND IS_DELETED = 'N' AND ROLE_TYPE = '1' ";
|
||
List<Map<String, String>> list = hibernateDao.queryForListWithSql(sql,
|
||
new Object[] { Integer.parseInt(roleId) });
|
||
StringBuffer roleSql = new StringBuffer();
|
||
roleSql.append("SELECT DATA_CODE AS \"id\",DATA_VALUE AS \"name\",DESCRIPTION AS \"description\" FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'userType' AND IS_DELETED = 'N'");
|
||
if (list != null && list.size() > 0) {
|
||
String roleName = list.get(0).get("ROLE_NAME");
|
||
if (Objects.equals("房管经办人", roleName)) {
|
||
// 房管经办人角色
|
||
roleSql.append(" ORDER BY DATA_CODE asc");
|
||
} else {
|
||
// 其他角色
|
||
roleSql.append(" AND DATA_VALUE = '"+userTypeValue+"' ORDER BY DATA_CODE asc");
|
||
}
|
||
}
|
||
System.err.println("根据角色获取人员类型:" + roleSql.toString());
|
||
List<Map<String, String>> userTypeList = hibernateDao.queryForListWithSql(roleSql.toString());
|
||
return new RestResult(Constant.SUCCESS, "操作成功", userTypeList);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: getHouseTypeByRole
|
||
* @Description: 根据角色查看不同的房源类型
|
||
* @author cwchen
|
||
* @param map
|
||
* @return RestResult
|
||
* @date 2024-05-21 01:41:41
|
||
*/
|
||
@SuppressWarnings("deprecation")
|
||
@ResponseBody
|
||
@RequestMapping(value = "/getHouseTypeByRole", method = { RequestMethod.POST })
|
||
public RestResult getHouseTypeByRole(GreenHouseDto dto) {
|
||
try {
|
||
String roleId = dto.getRoleId();
|
||
String userType = dto.getUserType();
|
||
StringBuilder houseTypeSql = new StringBuilder();
|
||
if (Objects.equals("1", userType)) {
|
||
// 内部人员
|
||
houseTypeSql.append("SELECT DATA_CODE AS \"id\",DATA_VALUE AS \"name\",DESCRIPTION AS \"description\" "
|
||
+ " FROM GREEN_ROLE_REAL_HOUSE grrh"
|
||
+ " INNER JOIN GREEN_DICTIONARY_INFO gdi ON grrh.HOUSE_CODE = gdi.DATA_CODE AND DATA_TYPE = 'houseType' AND IS_DELETED = 'N'"
|
||
+ " WHERE grrh.ROLE_ID = " + roleId + " " + " ORDER BY gdi.DATA_CODE ASC ");
|
||
} else if (Objects.equals("2", userType)) {
|
||
// 外聘人员
|
||
houseTypeSql.append(
|
||
"SELECT DATA_CODE AS \"id\",DATA_VALUE AS \"name\",DESCRIPTION AS \"description\" FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'houseType' AND IS_DELETED = 'N' ORDER BY DATA_CODE ASC");
|
||
}
|
||
List<Map<String, String>> houseTypeList = hibernateDao.queryForListWithSql(houseTypeSql.toString());
|
||
return new RestResult(Constant.SUCCESS, "操作成功", houseTypeList);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: isValidate
|
||
* @Description: 验证输入的水表数、电表数等是否合法
|
||
* @author cwchen
|
||
* @param value
|
||
* @return boolean
|
||
* @date 2024-05-22 02:36:10
|
||
*/
|
||
public boolean isValueValidate(String value) {
|
||
if (StringUtils.isNotBlank(value)) {
|
||
Pattern pattern = Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,3})?$");
|
||
Matcher matcher = pattern.matcher(value);
|
||
return matcher.matches();
|
||
} else {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: isValueValidate2
|
||
* @Description: 比较当前水表数、电表数等是否大于初始值
|
||
* @author cwchen
|
||
* @param value
|
||
* @param value2
|
||
* @return boolean
|
||
* @date 2024-05-22 02:46:04
|
||
*/
|
||
public boolean isValueValidate2(String value, String value2) {
|
||
if (StringUtils.isNotBlank(value) && StringUtils.isNotBlank(value2)) {
|
||
double parseDouble = Double.parseDouble(value);
|
||
double parseDouble2 = Double.parseDouble(value2);
|
||
if (parseDouble > parseDouble2) {
|
||
return false;
|
||
}
|
||
return true;
|
||
} else {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: isValueValidate3
|
||
* @Description: 验证退房时间 与合同开始时间比较
|
||
* @author cwchen
|
||
* @param value
|
||
* @param value2
|
||
* @return boolean
|
||
* @date 2024-05-22 03:00:46
|
||
*/
|
||
public boolean isValueValidate3(String value, String value2) {
|
||
if (StringUtils.isNotBlank(value) && StringUtils.isNotBlank(value2)) {
|
||
Long timestamp = DateTimeHelper.convertDateStringToTimestamp(value, "yyyy-MM-dd");
|
||
Long timestamp2 = DateTimeHelper.convertDateStringToTimestamp(value2, "yyyy-MM-dd");
|
||
if (timestamp > timestamp2) {
|
||
return false;
|
||
}
|
||
return true;
|
||
} else {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
}
|