package com.jysoft.property.service; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.jysoft.property.entity.GreenPropertyEntity; import com.nationalelectirc.Constant.Constant; import com.nationalelectirc.utils.RestResult; import com.sgcc.uap.persistence.IHibernateDao; @Service public class PropertyService { @Autowired private IHibernateDao iHibernateDao; /** * 通过用户id获取服务记录 * * @param entity * 数据 * @return 响应数据 */ public RestResult getPropertyByUserId(GreenPropertyEntity entity) { StringBuilder sql = new StringBuilder(); ArrayList paramList = new ArrayList(); sql.append( "SELECT * FROM (SELECT ROWNUM num, A.* FROM (SELECT gp.ID, gp.PROPERTY_ID, gdi.DATA_VALUE, gp.APPLICANT_TIME, gp.OFFICE, gp.DEMAND, gp.FEEDBACK, gp.APPROVAL_ID, gp.STATE, gp.USER_ID, gp.USER_NAME, gp.PHONE, gp.ORG_ID, gp.ORG_NAME, gp.APPROVAL_NAME, gp.\"NUMBER\" FROM GREEN_PROPERTY gp LEFT JOIN GREEN_DICTIONARY_INFO gdi ON gdi.DATA_CODE = gp.PROPERTY_ID AND gdi.DATA_TYPE='propertyType' AND gdi.IS_DELETED ='N' WHERE"); if ("1".equals(entity.getType())) { sql.append(" 1=1"); } else { sql.append(" gp.USER_ID =? "); paramList.add(entity.getUserId()); } if (entity.getState() != null && !"".equals(entity.getState())) { sql.append("AND STATE = ? "); paramList.add(entity.getState()); } sql.append(" ORDER BY gp.APPLICANT_TIME DESC ) A WHERE ROWNUM<=?) WHERE num > ?"); System.err.println(sql.toString()); try { int pageSize = entity.getPageSize(); int pageNum = entity.getPageNum(); int page = (pageNum - 1) * pageSize; int limit = pageNum * pageSize; paramList.add(limit); paramList.add(page); List> list = iHibernateDao.queryForListWithSql(sql.toString(), paramList.toArray()); return new RestResult(Constant.SUCCESS, "查询成功", list); } catch (Exception e) { System.err.println(e.getMessage()); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 添加服务记录 * * @param entity * 数据 * @return 响应数据 */ public RestResult addProperty(GreenPropertyEntity entity) { String sql = "INSERT INTO GREEN_PROPERTY (ID, PROPERTY_ID, APPLICANT_TIME, OFFICE, DEMAND, FEEDBACK, " + "APPROVAL_ID, STATE, USER_ID, USER_NAME, PHONE, ORG_ID, ORG_NAME, APPROVAL_NAME,\"NUMBER\") " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try { String uuid = UUID.randomUUID().toString().replace("-", ""); iHibernateDao.executeSqlUpdate(sql, new Object[] { uuid, entity.getPropertyId(), entity.getApplicantTime(), entity.getOffice(), entity.getDemand(), entity.getFeedback(), entity.getApprovalId(), '0', entity.getUserId(), entity.getUserName(), entity.getPhone(), entity.getOrgId(), entity.getOrgName(), entity.getApprovalName(), entity.getNumber() }); return new RestResult(Constant.SUCCESS, "添加成功"); } catch (Exception e) { System.err.println(e.getMessage()); return new RestResult(Constant.FAILED, "添加失败"); } } /** * 修改服务状态 * * @param entity * 数据 * @return 响应数据 */ public RestResult updateProperty(GreenPropertyEntity entity) { try { List> list = (List>) getProperty(entity).getReturnData(); System.err.println(getProperty(entity).getReturnData().toString()); if (list.size() > 0) { Map map = list.get(0); String approvalId = (String) map.get("APPROVAL_ID"); if (approvalId != null && !("").equals(approvalId)) { if (!approvalId.equals(entity.getUserId())) { return new RestResult(Constant.FAILED, "办理人错误"); } } } String state = entity.getState(); if ("0".equals(entity.getState())) { state = "1"; } if ("1".equals(entity.getState())) { state = "2"; } entity.setState(state); String sql = "UPDATE GREEN_PROPERTY SET APPROVAL_ID =?,APPROVAL_NAME=?, FEEDBACK = ?,STATE = ? WHERE ID = ? "; iHibernateDao.executeSqlUpdate(sql, new Object[] { entity.getUserId(), entity.getUserName(), entity.getFeedback(), entity.getState(), entity.getId() }); return new RestResult(Constant.SUCCESS, "成功"); } catch (Exception e) { System.err.println(e.getMessage()); return new RestResult(Constant.FAILED, "失败"); } } /** * 获取服务类型 * * @param entity * 数据 * @return 响应数据 */ public RestResult getPropertyType() { String sql = "SELECT DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE ='propertyType'"; try { List> list = iHibernateDao.queryForListWithSql(sql); return new RestResult(Constant.SUCCESS, "查询成功", list); } catch (Exception e) { System.err.println(e.getMessage()); return new RestResult(Constant.FAILED, "查询失败"); } } /** * 获取服务详情 * * @param entity * 数据 * @return 响应数据 */ public RestResult getProperty(GreenPropertyEntity entity) { String sql = "SELECT gp.PROPERTY_ID, gdi.DATA_VALUE, gp.APPLICANT_TIME, gp.OFFICE, gp.DEMAND, gp.FEEDBACK, gp.APPROVAL_ID, gp.STATE, gp.USER_ID, gp.USER_NAME, gp.PHONE, gp.ORG_ID, gp.ORG_NAME, gp.APPROVAL_NAME, gp.\"NUMBER\" FROM GREEN_PROPERTY gp LEFT JOIN GREEN_DICTIONARY_INFO gdi ON gdi.DATA_CODE = gp.PROPERTY_ID AND gdi.DATA_TYPE='propertyType' AND gdi.IS_DELETED ='N' WHERE gp.ID=?"; try { ArrayList paramList = new ArrayList(); paramList.add(entity.getId()); List> list = iHibernateDao.queryForListWithSql(sql.toString(), paramList.toArray()); return new RestResult(Constant.SUCCESS, "查询成功", list); } catch (Exception e) { System.err.println(e.getMessage()); return new RestResult(Constant.FAILED, "查询失败"); } } }