887 lines
40 KiB
Plaintext
887 lines
40 KiB
Plaintext
package com.jysoft.card.service;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.Arrays;
|
||
import java.util.Calendar;
|
||
import java.util.Date;
|
||
import java.util.HashMap;
|
||
import java.util.HashSet;
|
||
import java.util.Iterator;
|
||
import java.util.LinkedList;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
import java.util.Objects;
|
||
import java.util.UUID;
|
||
import java.util.stream.Collectors;
|
||
|
||
import javax.annotation.Resource;
|
||
|
||
import org.apache.commons.collections.CollectionUtils;
|
||
import org.hibernate.util.StringHelper;
|
||
import org.json.JSONArray;
|
||
import org.json.JSONObject;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Service;
|
||
import org.springframework.transaction.annotation.Transactional;
|
||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||
|
||
import com.alibaba.fastjson.JSON;
|
||
import com.jysoft.visitor.util.ArtemisPost;
|
||
import com.nationalelectirc.Constant.Constant;
|
||
import com.nationalelectirc.utils.RestResult;
|
||
import com.nationalelectric.greenH5.AliasManageController;
|
||
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
|
||
import com.nationalelectric.greenH5.po.GreenAccessControl;
|
||
import com.nationalelectric.greenH5.po.GreenRentHouseApply;
|
||
import com.nationalelectric.greenH5.po.GreenVisitor;
|
||
import com.nationalelectric.greenH5.po.VisitorEventNotify;
|
||
import com.nationalelectric.greenH5.po.VisitorEventNotify.ParamsDTO.EventsDTO;
|
||
import com.nationalelectric.greenH5.po.VisitorEventNotify.ParamsDTO.EventsDTO.DataDTO;
|
||
import com.nationalelectric.greenH5.utils.Base64Utils;
|
||
import com.nationalelectric.greenH5.utils.DateTimeHelper;
|
||
import com.nationalelectric.greenH5.utils.DateUtil;
|
||
import com.sgcc.uap.persistence.IHibernateDao;
|
||
import com.sgcc.uap.utils.DateUtils;
|
||
import com.sgcc.uap.utils.StringUtils;
|
||
|
||
import oracle.jdbc.logging.annotations.StringBlinder;
|
||
|
||
/**
|
||
* @author bonus
|
||
* @date 2023-06-12
|
||
* @功能 访客管理
|
||
*/
|
||
@Service
|
||
public class CardService {
|
||
|
||
@Autowired
|
||
private IHibernateDao iHibernateDao;
|
||
|
||
@Resource
|
||
private AliasManageController aliasManageController;
|
||
|
||
@Autowired
|
||
private BaseServiceImpl baseService;
|
||
|
||
/**
|
||
* 添加门禁卡
|
||
*
|
||
* @param entity
|
||
* 数据
|
||
* @return 响应数据
|
||
*/
|
||
@Transactional(rollbackFor = Exception.class)
|
||
public RestResult addCard(GreenCard entity) {
|
||
StringBuilder sqlString = new StringBuilder();
|
||
try {
|
||
// 新办卡-门禁卡校验
|
||
String sql = "SELECT COUNT(*) FROM GREEN_CARD WHERE PERSONNEL_PHONE = '" + entity.getPersonnelPhone()
|
||
+ "' AND TYPE_NAME = '" + entity.getTypeName() + "'" + " AND CARD_TYPE = '" + entity.getCardType()
|
||
+ "' AND TYPE = '1'";
|
||
// 新办卡 门卡类型 同一手机号只能限制办理一张
|
||
if (Objects.equals("新办卡", entity.getTypeName())) {
|
||
// 1. 申请的门禁卡处于审批中
|
||
/*
|
||
* String checkSql = sql + " AND EXAMINE_STATE = '0'"; int
|
||
* result = iHibernateDao.queryForIntWithSql(checkSql);
|
||
* if(result > 0){ return new RestResult(Constant.FAILED,
|
||
* "申请人申请的"+entity.getCardType()+"处于审核中"); }
|
||
*/
|
||
// 2. 申请的门禁卡处于制卡完成状态(未领取)
|
||
/*
|
||
* String checkSql2 = sql + " AND CARD_STATUS = '2'"; int
|
||
* result2 = iHibernateDao.queryForIntWithSql(checkSql2);
|
||
* if(result2 > 0){ return new RestResult(Constant.FAILED,
|
||
* "申请人申请的"+entity.getCardType()+"已制卡完成,未领取"); }
|
||
*/
|
||
// 3. 申请的门禁卡已领取
|
||
/*
|
||
* String checkSql3 = sql + " AND CARD_STATUS = '3'"; int
|
||
* result3 = iHibernateDao.queryForIntWithSql(checkSql3);
|
||
* if(result3 > 0){ return new RestResult(Constant.FAILED,
|
||
* "申请人申请的"+entity.getCardType()+"已存在"); }
|
||
*/
|
||
/*
|
||
* // 4. 门禁卡已挂失 String checkSql4 = sql +
|
||
* " AND CARD_STATUS = '4'"; int result4 =
|
||
* iHibernateDao.queryForIntWithSql(checkSql4); if(result4 > 0){
|
||
* return new RestResult(Constant.FAILED,
|
||
* "申请人申请的"+entity.getCardType()+"已挂失,后续操作,请在补办卡/卡挂失中进行办理"); }
|
||
*/
|
||
}
|
||
String batchSql = "SELECT ID,DATA_TYPE,DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'cardExamSwitch' AND IS_DELETED = 'N' AND DATA_VALUE = 1 ORDER BY DATA_CODE ASC ";
|
||
List<Map<String, String>> list = iHibernateDao.queryForListWithSql(batchSql);
|
||
String examineBatch = "0";
|
||
if (list.size() > 0) {
|
||
examineBatch = list.get(0).get("DATA_CODE");
|
||
}
|
||
if (StringUtils.isBlank(entity.getExaminePersonId())) {
|
||
return new RestResult(Constant.FAILED, "请选择审核人");
|
||
}
|
||
if (Objects.equals("新办证", entity.getTypeName()) && StringUtils.isNotBlank(entity.getAccessArea())) {
|
||
String accessArea = entity.getAccessArea();
|
||
if (accessArea.contains("后勤中心")) {
|
||
entity.setAccessArea(accessArea.replace("后勤中心", "后勤楼"));
|
||
}
|
||
}
|
||
sqlString.append(
|
||
"INSERT INTO GREEN_CARD (ID, USER_ID, USER_NAME, PHONE, ORG_ID, ORG_NAME, TYPE, UNIT, PERSONNEL, PERSONNEL_PHONE, MATTER, ACCESS_AREA, START_TIME, END_TIME, APPLY_TIME, EXAMINE_BATCH, EXAMINE_STATE, EXAMINE_PERSON_ID, EXAMINE_PERSON_NAME,CARD_CODE,CARD_TYPE ,TYPE_NAME,PHOTO,ID_PHOTO,IS_ENABLE_FACE,CARD_STATUS,DOCUMENTATION) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?,?,?,?,?,?,?)");
|
||
String uuid = UUID.randomUUID().toString().replace("-", "");
|
||
iHibernateDao.executeSqlUpdate(sqlString.toString(),
|
||
new Object[] { uuid, entity.getUserId(), entity.getUserName(), entity.getPhone(), entity.getOrgId(),
|
||
entity.getOrgName(), entity.getType(), entity.getUnit(), entity.getPersonnel(),
|
||
entity.getPersonnelPhone(), entity.getMatter(), entity.getAccessArea(),
|
||
entity.getStartTime(), entity.getEndTime(), DateTimeHelper.getNowDate(), examineBatch, "0",
|
||
entity.getExaminePersonId(), entity.getExaminePersonName(), entity.getCardCode(),
|
||
entity.getCardType(), entity.getTypeName(), entity.getPhoto(), entity.getIdPhoto(),
|
||
entity.getIsEnableFace(), "0", entity.getDocumentation() });
|
||
System.err.println("新办卡类型:" + entity.getTypeName());
|
||
// 出入区域
|
||
if (Objects.equals("新办卡", entity.getTypeName()) && StringUtils.isNotBlank(entity.getAccessArea())) {
|
||
String[] areaIdsArr = entity.getAccessArea().split(",");
|
||
List<String> dataList = Arrays.asList(areaIdsArr);
|
||
for (int i = 0; i < dataList.size(); i++) {
|
||
String areaId = dataList.get(i);
|
||
String sqlStr = "INSERT INTO CARD_RELA_ACCESS (GREEN_CARD_ID, ACCESS_ID) VALUES (?, ?)";
|
||
iHibernateDao.executeSqlUpdate(sqlStr, new Object[] { uuid, areaId });
|
||
}
|
||
}
|
||
|
||
String title = "" + entity.getTypeName() + "申请";
|
||
String text = "您好,您有新的" + entity.getTypeName() + "申请需要审批,请点击查看。";
|
||
String url = "/pages/access-card/card-record?examineBatch=" + examineBatch;
|
||
aliasManageController.pushToSingle(entity.getExaminePersonId(), title, text, url);
|
||
return new RestResult(Constant.SUCCESS, "添加成功");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
// 手动回滚异常
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "添加失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 通过id获取来访记录
|
||
*
|
||
* @param entity
|
||
* 数据
|
||
* @return 响应数据
|
||
*/
|
||
public RestResult getCard(GreenCard entity) {
|
||
try {
|
||
System.err.println("门禁卡详情");
|
||
List<Object> params = new ArrayList<Object>();
|
||
String sql = "SELECT * FROM GREEN_CARD WHERE ID = ? ORDER BY APPLY_TIME desc ";
|
||
params.add(entity.getId());
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql, params.toArray());
|
||
if (list.size() > 0) {
|
||
String id = String.valueOf(list.get(0).get("ID"));
|
||
String pictureString = list.get(0).get("PHOTO") == null ? "" : list.get(0).get("PHOTO").toString();
|
||
String documentation = list.get(0).get("DOCUMENTATION") == null ? ""
|
||
: list.get(0).get("DOCUMENTATION").toString();
|
||
String idPhoto = list.get(0).get("ID_PHOTO") == null ? "" : list.get(0).get("ID_PHOTO").toString();
|
||
String[] strs = idPhoto.split(",");
|
||
String photo = "";
|
||
for (String string : strs) {
|
||
photo += baseService.getImageBase64(string) + ",";
|
||
}
|
||
photo = photo.substring(0, photo.lastIndexOf(","));
|
||
list.get(0).put("PHOTO", baseService.getImageBase64(pictureString));
|
||
list.get(0).put("ID_PHOTO", photo);
|
||
list.get(0).put("DOCUMENTATION", baseService.getImageBase64(documentation));
|
||
System.err.println("人脸照片:" + baseService.getImageBase64(pictureString));
|
||
System.err.println("证明文件:" + baseService.getImageBase64(documentation));
|
||
System.err.println("身份证照片:" + photo);
|
||
System.err.println("-------------------------");
|
||
// 获取审核详情
|
||
String sqls = "SELECT * from GREEN_CARD_EXAMINE where DEL_FLAG = 0 and CARD_ID = ? order by EXAMINE_BATCH asc ";
|
||
List<Map<String, String>> lists = iHibernateDao.queryForListWithSql(sqls,
|
||
new Object[] { list.get(0).get("ID").toString() });
|
||
if (lists.size() > 0) {
|
||
list.get(0).put("detail", lists.toArray());
|
||
}
|
||
if (Objects.equals("新办卡", String.valueOf(list.get(0).get("TYPE_NAME")))
|
||
|| Objects.equals("补办卡", String.valueOf(list.get(0).get("TYPE_NAME")))) {
|
||
System.err.println("我进出入区域了");
|
||
// 出入区域
|
||
String areaSql = "SELECT cra.ACCESS_ID \"id\",gac.ACCESS_NAME AS \"name\","
|
||
+ " gac.PARENT_ID AS \"parentId\", " + " gac2.ACCESS_NAME AS \"parentName\" "
|
||
+ " FROM CARD_RELA_ACCESS cra"
|
||
+ " INNER JOIN GREEN_ACCESS_CONTROL gac ON cra.ACCESS_ID = gac.ACCESS_ID AND gac.ACCESS_LEVEL = '2' AND gac.IS_DELETE = 'N' "
|
||
+ " INNER JOIN GREEN_ACCESS_CONTROL gac2 ON gac.PARENT_ID = gac2.ACCESS_ID AND gac2.ACCESS_LEVEL = '1' AND gac2.IS_DELETE = 'N' "
|
||
+ " WHERE cra.GREEN_CARD_ID = '" + id + "' AND gac.IS_DELETE = 'N'";
|
||
List<Map<String, String>> areaList = iHibernateDao.queryForListWithSql(areaSql);
|
||
System.err.println("areaList:" + areaList.size());
|
||
if (areaList != null && areaList.size() > 0) {
|
||
String areaSql2 = "SELECT ACCESS_ID AS \"id\",ACCESS_NAME AS \"name\" FROM GREEN_ACCESS_CONTROL WHERE ACCESS_LEVEL = '1' AND IS_DELETE = 'N'";
|
||
List<Map<String, String>> areaList2 = iHibernateDao.queryForListWithSql(areaSql2);
|
||
// 处理出入区域数据
|
||
System.err.println("areaList2:" + areaList2.size());
|
||
String accessArea = this.setAreaData(areaList, areaList2);
|
||
list.get(0).put("ACCESS_AREA", accessArea);
|
||
}
|
||
}
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "查询成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
System.err.println(e.getMessage());
|
||
return new RestResult(Constant.FAILED, "查询失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: setAreaData
|
||
* @Description: 出入区域处理
|
||
* @author cwchen
|
||
* @param list
|
||
* @return String
|
||
* @date 2024-05-14 03:40:48
|
||
*/
|
||
public String setAreaData(List<Map<String, String>> list, List<Map<String, String>> list2) {
|
||
List<Map<String, Object>> returnList = new ArrayList<Map<String, Object>>();
|
||
try {
|
||
for (int i = 0; i < list2.size(); i++) {
|
||
String id = list2.get(i).get("id");
|
||
StringBuffer areaStr = new StringBuffer();
|
||
StringBuffer areaIdStr = new StringBuffer();
|
||
for (int j = 0; j < list.size(); j++) {
|
||
String parentId = list.get(j).get("parentId");
|
||
if (Objects.equals(id, parentId)) {
|
||
areaIdStr.append(list.get(j).get("id") + ",");
|
||
areaStr.append(list.get(j).get("name") + ",");
|
||
}
|
||
}
|
||
String area = areaStr.toString();
|
||
String areaId = areaIdStr.toString();
|
||
if (StringUtils.isNotBlank(areaId)) {
|
||
// GreenAccessControl vo = new GreenAccessControl();
|
||
Map<String, Object> data = new HashMap<String, Object>();
|
||
// vo.setAddress(list2.get(i).get("name"));
|
||
data.put("address", list2.get(i).get("name"));
|
||
// vo.setAddressId(id);
|
||
data.put("addressId", id);
|
||
// vo.setArea(area.substring(0,area.lastIndexOf(",")));
|
||
data.put("area", area.substring(0, area.lastIndexOf(",")));
|
||
// vo.setAreaIds(areaId.substring(0,areaId.lastIndexOf(",")));
|
||
data.put("areaIds", areaId.substring(0, areaId.lastIndexOf(",")));
|
||
// System.err.println(vo);
|
||
System.err.println("hhhh");
|
||
returnList.add(data);
|
||
System.err.println("集合数量" + returnList.size());
|
||
}
|
||
}
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
System.err.println("区域处理");
|
||
}
|
||
return JSON.toJSONString(returnList);
|
||
}
|
||
|
||
/**
|
||
* 修改门禁信息状态
|
||
*
|
||
* @param entity
|
||
* 数据
|
||
* @return 响应数据
|
||
*/
|
||
public RestResult updateCard(GreenCard entity) {
|
||
try {
|
||
|
||
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||
if (StringUtils.isBlank(entity.getExamineState())) {
|
||
return new RestResult(Constant.FAILED, "审核状态不能为空");
|
||
}
|
||
if (StringUtils.isBlank(entity.getExamineBatch())) {
|
||
return new RestResult(Constant.FAILED, "审核批次不能为空");
|
||
}
|
||
|
||
// 查询下一审核批次
|
||
String batchSql = "SELECT ID,DATA_TYPE,DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'cardExamSwitch' "
|
||
+ "AND IS_DELETED = 'N' AND DATA_VALUE = 1 AND DATA_CODE > ? ORDER BY DATA_CODE ASC ";
|
||
List<Map<String, String>> list = iHibernateDao.queryForListWithSql(batchSql,
|
||
new Object[] { entity.getExamineBatch() });
|
||
// 更新所要补卡的注销状态
|
||
String carTypeSql = "SELECT ID,LAST_CARD_ID FROM GREEN_CARD WHERE ID = '" + entity.getId() + "' ";
|
||
List<Map<String, String>> carTypeList = iHibernateDao.queryForListWithSql(carTypeSql);
|
||
// 不为空则更改审核批次,否则更改申请单的审核状态
|
||
if (list.size() > 0) {
|
||
if ("1".equals(entity.getExamineState())) {
|
||
String lastExamineBatch = list.get(0).get("DATA_CODE");
|
||
// 后勤领导审批通过后,卡状态为待制卡状态
|
||
String cardStatusString = "0";
|
||
if (Objects.equals("2", entity.getExamineBatch())) {
|
||
cardStatusString = "1";
|
||
}
|
||
String updateBatchSql = "UPDATE GREEN_CARD SET EXAMINE_BATCH = ?,CARD_STATUS = ? WHERE ID = ? ";
|
||
iHibernateDao.executeSqlUpdate(updateBatchSql,
|
||
new Object[] { lastExamineBatch, cardStatusString, entity.getId() });
|
||
} else if ("2".equals(entity.getExamineState())) {
|
||
String updateStateSql = "UPDATE GREEN_CARD SET EXAMINE_STATE = ? WHERE ID = ? ";
|
||
iHibernateDao.executeSqlUpdate(updateStateSql,
|
||
new Object[] { entity.getExamineState(), entity.getId() });
|
||
/*
|
||
* // 补办卡被审批不通过时 重置补办卡状态
|
||
* if(CollectionUtils.isNotEmpty(carTypeList)){ Map<String,
|
||
* String> mapData = carTypeList.get(0); String
|
||
* lastCardIdString = mapData.get("LAST_CARD_ID");
|
||
* if(org.apache.commons.lang3.StringUtils.isNotBlank(
|
||
* lastCardIdString)){ String reissueCardSql =
|
||
* "UPDATE GREEN_CARD SET IS_LOG_OFF = NULL WHERE ID = '"
|
||
* +lastCardIdString+"' ";
|
||
* iHibernateDao.executeSqlUpdate(reissueCardSql); } }
|
||
*/
|
||
}
|
||
} else {
|
||
String updateStateSql = "UPDATE GREEN_CARD SET EXAMINE_STATE = ?,CARD_STATUS = ? WHERE ID = ? ";
|
||
iHibernateDao.executeSqlUpdate(updateStateSql,
|
||
new Object[] { entity.getExamineState(), "2", entity.getId() });
|
||
// 补办卡制卡完成时 更新补办卡状态
|
||
if (CollectionUtils.isNotEmpty(carTypeList)) {
|
||
Map<String, String> mapData = carTypeList.get(0);
|
||
String lastCardIdString = mapData.get("LAST_CARD_ID");
|
||
if (org.apache.commons.lang3.StringUtils.isNotBlank(lastCardIdString)) {
|
||
String reissueCardSql = "UPDATE GREEN_CARD SET IS_LOG_OFF = '1' WHERE ID = '" + lastCardIdString
|
||
+ "' ";
|
||
iHibernateDao.executeSqlUpdate(reissueCardSql);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 查询当前批次描述
|
||
String description = "";
|
||
String sqls = "SELECT DATA_CODE as \"id\",DATA_VALUE as \"name\",DESCRIPTION as \"description\" FROM GREEN_DICTIONARY_INFO "
|
||
+ "WHERE DATA_TYPE = 'cardExamSwitch' AND IS_DELETED = 'N' and DATA_CODE = ? ";
|
||
List<Map<String, String>> lists = iHibernateDao.queryForListWithSql(sqls,
|
||
new Object[] { entity.getExamineBatch() });
|
||
if (lists.size() > 0) {
|
||
description = lists.get(0).get("description");
|
||
}
|
||
|
||
// 插入数据
|
||
String sql = "INSERT INTO GREEN_CARD_EXAMINE(ID,CARD_ID,USER_ID,USER_NAME,EXAMINE_STATE,EXAMINE_OPINION,"
|
||
+ "EXAMINE_TIME,DEL_FLAG,EXAMINE_BATCH,BATCH_DESCRIPTION) " + "VALUES(?,?,?,?,?,?,?,0,?,?) ";
|
||
iHibernateDao.executeSqlUpdate(sql,
|
||
new Object[] { uuid, entity.getId(), entity.getUserId(), entity.getUserName(),
|
||
entity.getExamineState(), entity.getExamineOpinion(), DateTimeHelper.getNowDate(),
|
||
entity.getExamineBatch(), description });
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 审核记录
|
||
*
|
||
* @param entity
|
||
* 数据
|
||
* @return 响应数据
|
||
*/
|
||
public RestResult getCardByUserId(GreenCard entity) {
|
||
try {
|
||
ArrayList<Object> paramList = new ArrayList<Object>();
|
||
int pageSize = entity.getPageSize();
|
||
int pageNum = entity.getPageNum();
|
||
int page = (pageNum - 1) * pageSize;
|
||
int limit = pageNum * pageSize;
|
||
if (StringUtils.isBlank(entity.getExamineState())) {
|
||
return new RestResult(Constant.FAILED, "审核状态不能为空");
|
||
}
|
||
if (StringUtils.isBlank(entity.getExamineBatch())) {
|
||
return new RestResult(Constant.FAILED, "审核批次不能为空");
|
||
}
|
||
|
||
if ("0".equals(entity.getExamineState())) {
|
||
String sqlState = "select count(*) from GREEN_DICTIONARY_INFO where data_type = 'cardExamSwitch' and data_code in (?) and data_value = 1 ";
|
||
int count = iHibernateDao.queryForIntWithSql(sqlState, new Object[] { entity.getExamineBatch() });
|
||
if (count == 0) {
|
||
return new RestResult(Constant.SUCCESS, "操作成功", new ArrayList<Map<String, String>>());
|
||
}
|
||
}
|
||
|
||
String sql = "select * from (select rn.*,rownum rn from ( " + " SELECT DISTINCT A.*" + " FROM GREEN_CARD A "
|
||
+ " LEFT JOIN (select * from GREEN_CARD_EXAMINE where EXAMINE_BATCH in (?) and DEL_FLAG=0) E ON A.ID = E.CARD_ID "
|
||
+ " WHERE 1=1 ";
|
||
|
||
paramList.add(entity.getExamineBatch());
|
||
|
||
// 当查询审核批次为1时,只查询审核人为当前userid的数据
|
||
if ("1".equals(entity.getExamineBatch())) {
|
||
sql += "AND A.EXAMINE_PERSON_ID = ? ";
|
||
paramList.add(entity.getUserId());
|
||
}
|
||
if ("1".equals(entity.getExamineState())) {// 已审核
|
||
sql += "and e.ID is not NULL ";
|
||
} else if ("0".equals(entity.getExamineState())) {// 待审核
|
||
sql += "AND A.EXAMINE_STATE = 0 AND A.EXAMINE_BATCH in (?) ";
|
||
paramList.add(entity.getExamineBatch());
|
||
}
|
||
|
||
sql += " ORDER BY A.APPLY_TIME DESC " + " ) rn )where rn>? and rn<=? ";
|
||
paramList.add(page);
|
||
paramList.add(limit);
|
||
System.err.println(sql);
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql, paramList.toArray());
|
||
for (Map<String, Object> map : list) {
|
||
String pictureString = map.get("PHOTO") == null ? "" : map.get("PHOTO").toString();
|
||
String idPhoto = map.get("ID_PHOTO") == null ? "" : map.get("ID_PHOTO").toString();
|
||
String documentation = map.get("DOCUMENTATION") == null ? "" : map.get("DOCUMENTATION").toString();
|
||
String[] strs = idPhoto.split(",");
|
||
String photo = "";
|
||
for (String string : strs) {
|
||
photo += baseService.getImageBase64(string) + ",";
|
||
}
|
||
photo = photo.substring(0, photo.lastIndexOf(","));
|
||
list.get(0).put("PHOTO", baseService.getImageBase64(pictureString));
|
||
list.get(0).put("DOCUMENTATION", baseService.getImageBase64(documentation));
|
||
list.get(0).put("ID_PHOTO", photo);
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "查询成功", list);
|
||
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
System.err.println(e.getMessage());
|
||
return new RestResult(Constant.FAILED, "查询失败");
|
||
}
|
||
|
||
}
|
||
|
||
/**
|
||
* 获取个人发出的申请门禁记录
|
||
*
|
||
* @param entity
|
||
* 数据
|
||
* @return 响应数据
|
||
*/
|
||
public RestResult getIssueCardByUserId(GreenCard entity) {
|
||
String sql = "SELECT * FROM (SELECT ROWNUM num,A.* FROM (SELECT gc.* FROM GREEN_CARD gc WHERE gc.USER_ID =? ORDER BY gc.APPLY_TIME DESC ) A WHERE ROWNUM<=?) WHERE num > ? ";
|
||
try {
|
||
int pageSize = entity.getPageSize();
|
||
int pageNum = entity.getPageNum();
|
||
int page = (pageNum - 1) * pageSize;
|
||
int limit = pageNum * pageSize;
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql,
|
||
new Object[] { entity.getUserId(), limit, page });
|
||
/*
|
||
* String pictureString = list.get(0).get("PHOTO") == null ? "" :
|
||
* list.get(0).get("PHOTO").toString(); String idPhoto =
|
||
* list.get(0).get("ID_PHOTO") == null ? "" :
|
||
* list.get(0).get("ID_PHOTO").toString(); String[] strs =
|
||
* idPhoto.split(","); String photo = ""; for (String string : strs)
|
||
* { photo += baseService.getImageBase64(string)+ ","; } photo =
|
||
* photo.substring(0, photo.lastIndexOf(","));
|
||
* list.get(0).put("PHOTO",
|
||
* baseService.getImageBase64(pictureString));
|
||
* list.get(0).put("ID_PHOTO", photo);
|
||
*/
|
||
return new RestResult(Constant.SUCCESS, "查询成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "查询失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 查询出行报备部门拥有审核权限人员
|
||
*
|
||
* @param map
|
||
* @return
|
||
*/
|
||
public RestResult getDeptExamineAuth(GreenCard entity) {
|
||
try {
|
||
String depts[] = entity.getDepartmentId().split("/");
|
||
String dept = "";
|
||
for (String string : depts) {
|
||
dept = dept + string + "/";
|
||
}
|
||
int lastIndex = dept.lastIndexOf("/");
|
||
dept = dept.substring(0, lastIndex);
|
||
String sql = "SELECT u.id as \"id\",u.REAL_NAME as \"name\" from GREEN_USER_INFO u "
|
||
+ "LEFT JOIN GREEN_USER_ROLE_REL urr ON u.ID = urr.USER_ID AND u.IS_DELETED = 'N' "
|
||
+ "LEFT JOIN GREEN_ROLE_PERMISSION rp ON urr.ROLE_ID = rp.ROLE_ID AND urr.IS_DELETED = 'N' "
|
||
+ "WHERE u.DEPt_ID_url like '%" + dept + "%' AND rp.PERMISSION_ID = '43418' "; // 生产:43418
|
||
// 开发:15102
|
||
System.err.println(sql);
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql);
|
||
return new RestResult(Constant.SUCCESS, "操作成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取服务类型
|
||
*
|
||
* @param entity
|
||
* 数据
|
||
* @return 响应数据
|
||
*/
|
||
public RestResult getCardType(GreenCard entity) {
|
||
String sql = "SELECT ID,DATA_TYPE ,DATA_CODE,DATA_VALUE,DESCRIPTION,DATA_SORT,CREATOR,MODIFIER,IS_DELETED "
|
||
+ "FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE ='cardType' AND DATA_CODE = ?";
|
||
try {
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql, new Object[] { entity.getType() });
|
||
return new RestResult(Constant.SUCCESS, "查询成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "查询失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: getAccessControlList
|
||
* @Description: 门禁卡办理-出入区域
|
||
* @author cwchen
|
||
* @param entity
|
||
* @return RestResult
|
||
* @date 2024-05-13 04:41:59
|
||
*/
|
||
public RestResult getAccessControlList(GreenCard entity) {
|
||
try {
|
||
String sql = "SELECT ACCESS_ID AS \"ACCESSID\",ACCESS_NAME AS \"ACCESSNAME\" FROM GREEN_ACCESS_CONTROL WHERE ACCESS_LEVEL ='1' AND IS_DELETE = 'N' ORDER BY CREATE_TIME ASC";
|
||
System.err.println(sql);
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql);
|
||
if (CollectionUtils.isNotEmpty(list)) {
|
||
for (int i = 0; i < list.size(); i++) {
|
||
String accessId = String.valueOf(list.get(i).get("accessId"));
|
||
String sql2 = "SELECT ACCESS_ID AS \"ACCESSID\",ACCESS_NAME AS \"ACCESSNAME\" FROM GREEN_ACCESS_CONTROL WHERE PARENT_ID = '"
|
||
+ accessId + "' AND ACCESS_LEVEL ='2' AND IS_DELETE = 'N' ORDER BY CREATE_TIME ASC";
|
||
System.err.println(sql2);
|
||
List<Map<String, Object>> childList = iHibernateDao.queryForListWithSql(sql2);
|
||
list.get(i).put("areaList", childList);
|
||
|
||
}
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "查询成功", list);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
System.err.println(e.getMessage());
|
||
return new RestResult(Constant.FAILED, "查询失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: updateCardStatusById
|
||
* @Description: 申请人更新领卡状态
|
||
* @author cwchen
|
||
* @param entity
|
||
* @return RestResult
|
||
* @date 2024-05-15 09:56:08
|
||
*/
|
||
@Transactional(rollbackFor = Exception.class)
|
||
public RestResult updateCardStatusById(GreenCard entity) {
|
||
try {
|
||
// cardStatus:3 领卡 4.挂失
|
||
if (Objects.equals("3", entity.getCardStatus())) {
|
||
String sql = "UPDATE GREEN_CARD SET CARD_STATUS = '" + entity.getCardStatus() + "' WHERE ID = '"
|
||
+ entity.getId() + "'";
|
||
iHibernateDao.executeSqlUpdate(sql);
|
||
} else if (Objects.equals("4", entity.getCardStatus())) {
|
||
String sql = "SELECT * FROM GREEN_GUARD_CARD WHERE UUID='" + entity.getId() + "' AND CARD_STATE = '1'";
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql);
|
||
if (CollectionUtils.isNotEmpty(list)) {
|
||
// 添加挂失卡数据
|
||
Map<String, Object> dataMap = list.get(0);
|
||
StringBuilder addSql = new StringBuilder();
|
||
addSql.append(
|
||
"INSERT INTO GREEN_GUARD_LOSS_CARD (UUID, CARD_ID, STAFF_ID, STAFF_NO, NAME, PHONE_NUM, ORG_NAME, CARD_TYPE, CARD_NAME, CARD_ETIME, CARD_STATE, FACE_PHOTO, IS_PUSH) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||
iHibernateDao.executeSqlUpdate(addSql.toString(),
|
||
new Object[] { dataMap.get("UUID"), dataMap.get("CARD_ID"), dataMap.get("STAFF_ID"),
|
||
dataMap.get("STAFF_NO"), dataMap.get("NAME"), dataMap.get("PHONE_NUM"),
|
||
dataMap.get("ORG_NAME"), dataMap.get("CARD_TYPE"), dataMap.get("CARD_NAME"),
|
||
dataMap.get("CARD_ETIME"), dataMap.get("CARD_STATE"), null, "0" });
|
||
// 添加补办卡门禁点位
|
||
String sql2 = "SELECT * FROM GREEN_MJ_ROLE WHERE CARD_ID='" + entity.getId() + "'";
|
||
List<Map<String, Object>> list2 = iHibernateDao.queryForListWithSql(sql2);
|
||
if (CollectionUtils.isNotEmpty(list2)) {
|
||
for (int i = 0; i < list2.size(); i++) {
|
||
StringBuilder addSql2 = new StringBuilder();
|
||
addSql2.append("INSERT INTO GREEN_MJ_ROLE_LOSS (CARD_ID, DEVICE_ID) VALUES (?, ?)");
|
||
iHibernateDao.executeSqlUpdate(addSql2.toString(),
|
||
new Object[] { list.get(0).get("UUID"), list2.get(i).get("DEVICE_ID") });
|
||
}
|
||
}
|
||
// 更新门禁卡与用户关联的卡状态
|
||
String updateSql = "UPDATE GREEN_GUARD_CARD_REAL_USER SET IS_LOSS = '1' WHERE CARD_ID = '"
|
||
+ entity.getId() + "'";
|
||
iHibernateDao.executeSqlUpdate(updateSql);
|
||
// 更新门禁卡状态为挂失
|
||
String updateSql2 = "UPDATE GREEN_GUARD_CARD SET CARD_STATE = '2' WHERE UUID = '" + entity.getId()
|
||
+ "'";
|
||
iHibernateDao.executeSqlUpdate(updateSql2);
|
||
}
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
// 手动回滚异常
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: getAllCardList
|
||
* @Description: 查询卡挂失-列表
|
||
* @author cwchen
|
||
* @param entity
|
||
* @return RestResult
|
||
* @date 2024-05-15 11:00:40
|
||
*/
|
||
@SuppressWarnings("unchecked")
|
||
public RestResult getAllCardList(GreenCard entity) {
|
||
List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
|
||
try {
|
||
String sql = "SELECT ggc.UUID AS \"id\",ggc.CARD_ID AS \"staffNo\",ggc.NAME AS \"name\",ggc.CARD_NAME AS \"cardName\",ggc.ORG_NAME AS \"orgName\",ggc.PHONE_NUM AS \"phone\",IS_LOSS AS \"isLoss\""
|
||
+ " FROM GREEN_GUARD_CARD_REAL_USER ggcru"
|
||
+ " LEFT JOIN GREEN_GUARD_CARD ggc ON ggcru.CARD_ID = ggc.UUID"
|
||
+ " WHERE ggcru.USER_ID = ? ORDER BY IS_LOSS ASC";
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql,
|
||
new Object[] { entity.getUserId() });
|
||
if (CollectionUtils.isNotEmpty(list)) {
|
||
dataList.addAll(list);
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "查询成功", dataList);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "查询失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @MethodName: reissueCard
|
||
* @Description: 补办卡
|
||
* @author cwchen
|
||
* @param entity
|
||
* @return RestResult
|
||
* @date 2024-05-15 04:26:42
|
||
*/
|
||
public RestResult reissueCard(GreenCard entity) {
|
||
StringBuilder sqlString = new StringBuilder();
|
||
try {
|
||
String reissueSql = "SELECT * FROM GREEN_GUARD_LOSS_CARD WHERE UUID = '" + entity.getId() + "'";
|
||
List<Map<String, String>> reissueList = iHibernateDao.queryForListWithSql(reissueSql);
|
||
if (CollectionUtils.isEmpty(reissueList)) {
|
||
return new RestResult(Constant.FAILED, "未匹配到补办卡数据");
|
||
}
|
||
Map<String, String> dataMap = reissueList.get(0);
|
||
String batchSql = "SELECT ID,DATA_TYPE,DATA_CODE,DATA_VALUE FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = 'cardExamSwitch' AND IS_DELETED = 'N' AND DATA_VALUE = 1 ORDER BY DATA_CODE ASC ";
|
||
List<Map<String, String>> list = iHibernateDao.queryForListWithSql(batchSql);
|
||
String examineBatch = "0";
|
||
if (list.size() > 0) {
|
||
examineBatch = list.get(0).get("DATA_CODE");
|
||
}
|
||
if (StringUtils.isBlank(entity.getExaminePersonId())) {
|
||
return new RestResult(Constant.FAILED, "请选择审核人");
|
||
}
|
||
// 补办卡是否开通人脸权限
|
||
String isEnableFace = "0";
|
||
String facePhoto = dataMap.get("FACE_PHOTO");
|
||
if (StringUtils.isNotBlank(facePhoto)) {
|
||
isEnableFace = "1";
|
||
}
|
||
// 补办人手机号
|
||
/*
|
||
* String phoneNum = dataMap.get("PHONE_NUM"); String phone = null;
|
||
* if(StringUtils.isNotBlank(phoneNum) && !Objects.equals("null",
|
||
* phoneNum)){ phone = phoneNum; }
|
||
*/
|
||
sqlString.append(
|
||
"INSERT INTO GREEN_CARD (ID, USER_ID, USER_NAME, PHONE, ORG_ID, ORG_NAME, TYPE, UNIT, PERSONNEL, PERSONNEL_PHONE, MATTER, ACCESS_AREA, START_TIME, END_TIME, APPLY_TIME, EXAMINE_BATCH, EXAMINE_STATE, EXAMINE_PERSON_ID, EXAMINE_PERSON_NAME,CARD_CODE,CARD_TYPE ,TYPE_NAME,PHOTO,ID_PHOTO,IS_ENABLE_FACE,IS_REISSUE,LAST_CARD_ID,CARD_STATUS) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?,?,?,?,?,?,?,?)");
|
||
String uuid = UUID.randomUUID().toString().replace("-", "");
|
||
iHibernateDao.executeSqlUpdate(sqlString.toString(),
|
||
new Object[] { uuid, entity.getUserId(), entity.getUserName(), entity.getPhone(), entity.getOrgId(),
|
||
entity.getOrgName(), entity.getType(), dataMap.get("ORG_NAME"), dataMap.get("NAME"),
|
||
entity.getPersonnelPhone(), "补办卡", null, null, null, DateTimeHelper.getNowDate(),
|
||
examineBatch, "0", entity.getExaminePersonId(), entity.getExaminePersonName(), null,
|
||
dataMap.get("CARD_NAME"), entity.getTypeName(), dataMap.get("FACE_PHOTO"), null,
|
||
isEnableFace, "1", entity.getId(), "0" });
|
||
// 出入区域
|
||
String areaSql = "SELECT * FROM GREEN_MJ_ROLE_LOSS WHERE CARD_ID = '" + entity.getId() + "'";
|
||
List<Map<String, String>> areaList = iHibernateDao.queryForListWithSql(areaSql);
|
||
if (CollectionUtils.isNotEmpty(areaList)) {
|
||
for (int i = 0; i < areaList.size(); i++) {
|
||
String sqlStr = "INSERT INTO CARD_RELA_ACCESS (GREEN_CARD_ID, ACCESS_ID) VALUES (?, ?)";
|
||
iHibernateDao.executeSqlUpdate(sqlStr, new Object[] { uuid, areaList.get(i).get("DEVICE_ID") });
|
||
}
|
||
}
|
||
String title = "补办卡申请";
|
||
String text = "您好,您有新的补办卡申请需要审批,请点击查看。";
|
||
String url = "/pages/access-card/card-record?examineBatch=" + examineBatch;
|
||
aliasManageController.pushToSingle(entity.getExaminePersonId(), title, text, url);
|
||
return new RestResult(Constant.SUCCESS, "添加成功");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
System.err.println(e.getMessage());
|
||
// 手动回滚异常
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "添加失败");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 添加我的卡
|
||
*
|
||
* @param entity
|
||
* @return
|
||
*/
|
||
@Transactional(rollbackFor = Exception.class)
|
||
@SuppressWarnings("unchecked")
|
||
public RestResult addMyCard(GreenCard entity) {
|
||
try {
|
||
if (Objects.equals(entity.getType(), "1")) {
|
||
// 新增我的门禁卡
|
||
if (StringUtils.isEmpty(entity.getCardNo())) {
|
||
return new RestResult(Constant.FAILED, "请输入卡号");
|
||
}
|
||
String cardSql = "SELECT * FROM GREEN_GUARD_CARD WHERE CARD_ID = ?";
|
||
List<Map<String, String>> cardList = iHibernateDao.queryForListWithSql(cardSql,
|
||
new Object[] { entity.getCardNo() });
|
||
if (CollectionUtils.isEmpty(cardList)) {
|
||
return new RestResult(Constant.FAILED, "未查询到卡号");
|
||
} else {
|
||
Map<String, String> dataMap = cardList.get(0);
|
||
String cardState = setNullValue(dataMap.get("CARD_STATE"));
|
||
String uuid = setNullValue(dataMap.get("UUID"));
|
||
if (!Objects.equals(cardState, "1")) {
|
||
return new RestResult(Constant.FAILED, "此卡号已挂失");
|
||
}
|
||
String isExistSql = "SELECT COUNT(*) FROM GREEN_GUARD_CARD_REAL_USER WHERE CARD_ID = ?";
|
||
Integer existNum = iHibernateDao.queryForIntWithSql(isExistSql, new Object[] { uuid });
|
||
if (existNum > 0) {
|
||
return new RestResult(Constant.FAILED, "请勿重复绑定此卡号");
|
||
}
|
||
String sql = "INSERT INTO GREEN_GUARD_CARD_REAL_USER (CARD_ID,USER_ID,IS_LOSS) VALUES (?,?,?)";
|
||
iHibernateDao.executeSqlUpdate(sql, new Object[] { uuid, entity.getUserId(), "0" });
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
}
|
||
} else if (Objects.equals(entity.getType(), "2")) {
|
||
// 取消我的门禁卡
|
||
if (StringUtils.isEmpty(entity.getCardId())) {
|
||
return new RestResult(Constant.FAILED, "参数不能为空");
|
||
}
|
||
String isExistSql = "SELECT COUNT(*) FROM GREEN_GUARD_CARD_REAL_USER WHERE CARD_ID = ? AND IS_LOSS !='0'";
|
||
Integer existNum = iHibernateDao.queryForIntWithSql(isExistSql, new Object[] { entity.getCardId() });
|
||
if (existNum > 0) {
|
||
return new RestResult(Constant.FAILED, "此卡号已挂失,不能解绑");
|
||
}
|
||
String sql = "DELETE FROM GREEN_GUARD_CARD_REAL_USER WHERE CARD_ID = ?";
|
||
iHibernateDao.executeSqlUpdate(sql, new Object[] { entity.getCardId() });
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
} else if (Objects.equals(entity.getType(), "3")) {
|
||
// 挂失
|
||
if (StringUtils.isEmpty(entity.getCardId())) {
|
||
return new RestResult(Constant.FAILED, "参数不能为空");
|
||
}
|
||
String sql = "UPDATE GREEN_GUARD_CARD_REAL_USER SET IS_LOSS = ? WHERE CARD_ID = ?";
|
||
iHibernateDao.executeSqlUpdate(sql, new Object[] { "1", entity.getCardId() });
|
||
String querySql = "SELECT * FROM GREEN_GUARD_CARD WHERE UUID = ? AND CARD_STATE = ?";
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(querySql,
|
||
new Object[] { entity.getCardId(), "1" });
|
||
if (CollectionUtils.isNotEmpty(list)) {
|
||
// 添加挂失卡数据
|
||
Map<String, Object> dataMap = list.get(0);
|
||
StringBuilder addSql = new StringBuilder();
|
||
addSql.append(
|
||
"INSERT INTO GREEN_GUARD_LOSS_CARD (UUID, CARD_ID, STAFF_ID, STAFF_NO, NAME, PHONE_NUM, ORG_NAME, CARD_TYPE, CARD_NAME, CARD_ETIME, CARD_STATE, FACE_PHOTO, IS_PUSH) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
||
iHibernateDao.executeSqlUpdate(addSql.toString(),
|
||
new Object[] { dataMap.get("UUID"), dataMap.get("CARD_ID"), dataMap.get("STAFF_ID"),
|
||
dataMap.get("STAFF_NO"), dataMap.get("NAME"), dataMap.get("PHONE_NUM"),
|
||
dataMap.get("ORG_NAME"), dataMap.get("CARD_TYPE"), dataMap.get("CARD_NAME"),
|
||
dataMap.get("CARD_ETIME"), dataMap.get("CARD_STATE"), null, "0" });
|
||
// 更新门禁卡状态为挂失
|
||
String updateSql2 = "UPDATE GREEN_GUARD_CARD SET CARD_STATE = ? WHERE UUID = ?";
|
||
iHibernateDao.executeSqlUpdate(updateSql2, new Object[] { "2", entity.getCardId() });
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
}else if(Objects.equals(entity.getType(), "4")){
|
||
// 补办卡
|
||
if (StringUtils.isEmpty(entity.getCardId())) {
|
||
return new RestResult(Constant.FAILED, "参数不能为空");
|
||
}
|
||
String sql = "UPDATE GREEN_GUARD_CARD_REAL_USER SET IS_LOSS = ? WHERE CARD_ID = ?";
|
||
iHibernateDao.executeSqlUpdate(sql, new Object[] { "3", entity.getCardId() });
|
||
String querySql = "SELECT * FROM GREEN_GUARD_CARD WHERE UUID = ?";
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(querySql,
|
||
new Object[] { entity.getCardId()});
|
||
if (CollectionUtils.isNotEmpty(list)) {
|
||
// 添加挂失卡数据
|
||
Map<String, Object> dataMap = list.get(0);
|
||
StringBuffer sqlString = new StringBuffer();
|
||
// 补办卡的审核流程:经办人到制卡人
|
||
sqlString.append(
|
||
"INSERT INTO GREEN_CARD (ID, USER_ID, USER_NAME, PHONE, ORG_ID, ORG_NAME, TYPE, UNIT, PERSONNEL, PERSONNEL_PHONE, MATTER, ACCESS_AREA, START_TIME, END_TIME, APPLY_TIME, EXAMINE_BATCH, EXAMINE_STATE, EXAMINE_PERSON_ID, EXAMINE_PERSON_NAME,CARD_CODE,CARD_TYPE ,TYPE_NAME,PHOTO,ID_PHOTO,IS_ENABLE_FACE,IS_REISSUE,LAST_CARD_ID,CARD_STATUS) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?,?,?,?,?,?,?,?)");
|
||
String uuid = UUID.randomUUID().toString().replace("-", "");
|
||
iHibernateDao.executeSqlUpdate(sqlString.toString(),
|
||
new Object[] { uuid, entity.getUserId(), entity.getUserName(), entity.getPhone(), entity.getOrgId(),
|
||
entity.getOrgName(), entity.getType(), dataMap.get("ORG_NAME"), dataMap.get("NAME"),
|
||
dataMap.get("PHONE_NUM"), "补办卡", null, null, null, DateTimeHelper.getNowDate(),
|
||
"3", "0", null, null, null,
|
||
dataMap.get("CARD_NAME"), "补办卡", null, null,
|
||
"1", "1", null, "0" });
|
||
// 添加出入区域
|
||
String areaSql = "SELECT * FROM GREEN_MJ_ROLE WHERE CARD_ID = ? ";
|
||
List<Map<String, String>> areaList = iHibernateDao.queryForListWithSql(areaSql,new Object[] {entity.getCardId() });
|
||
if (CollectionUtils.isNotEmpty(areaList)) {
|
||
for (int i = 0; i < areaList.size(); i++) {
|
||
String sqlStr = "INSERT INTO CARD_RELA_ACCESS (GREEN_CARD_ID, ACCESS_ID) VALUES (?, ?)";
|
||
iHibernateDao.executeSqlUpdate(sqlStr, new Object[] { uuid, areaList.get(i).get("DEVICE_ID") });
|
||
}
|
||
}
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
}else if(Objects.equals(entity.getType(), "5")){
|
||
// 重置-删除当前登录人所有绑定的卡号
|
||
String sql = "DELETE FROM GREEN_GUARD_CARD_REAL_USER WHERE CARD_ID = ?";
|
||
iHibernateDao.executeSqlUpdate(sql, new Object[] { entity.getCardId() });
|
||
String sql2 = "DELETE FROM GREEN_GUARD_LOSS_CARD WHERE UUID = ?";
|
||
iHibernateDao.executeSqlUpdate(sql2, new Object[] { entity.getCardId() });
|
||
String sql3 = "UPDATE GREEN_GUARD_CARD SET CARD_STATE = ? WHERE UUID = ?";
|
||
iHibernateDao.executeSqlUpdate(sql3, new Object[] { "1", entity.getCardId() });
|
||
}
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
// 手动回滚异常
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "操作失败");
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "操作成功");
|
||
}
|
||
|
||
public static String setNullValue(Object value) {
|
||
if (value != null) {
|
||
return String.valueOf(value);
|
||
}
|
||
return null;
|
||
}
|
||
|
||
/**
|
||
* 已挂失卡的列表
|
||
*
|
||
* @param entity
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("unchecked")
|
||
public RestResult getReissueCardList(GreenCard entity) {
|
||
List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
|
||
try {
|
||
String sql = "SELECT ggc.UUID AS \"id\",ggc.CARD_ID AS \"staffNo\",ggc.NAME AS \"name\",ggc.CARD_NAME AS \"cardName\",ggc.ORG_NAME AS \"orgName\",ggc.PHONE_NUM AS \"phone\",IS_LOSS AS \"isLoss\""
|
||
+ " FROM GREEN_GUARD_CARD_REAL_USER ggcru"
|
||
+ " LEFT JOIN GREEN_GUARD_CARD ggc ON ggcru.CARD_ID = ggc.UUID"
|
||
+ " WHERE ggcru.USER_ID = ? AND ggcru.IS_LOSS = ?";
|
||
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql,
|
||
new Object[] { entity.getUserId(), "2" });
|
||
if (CollectionUtils.isNotEmpty(list)) {
|
||
dataList.addAll(list);
|
||
}
|
||
return new RestResult(Constant.SUCCESS, "查询成功", dataList);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
return new RestResult(Constant.FAILED, "查询失败");
|
||
}
|
||
}
|
||
}
|