办卡办证

This commit is contained in:
cwchen 2025-03-07 13:20:59 +08:00
parent 2aee2c3744
commit b81a72ab24
4 changed files with 340 additions and 154 deletions

View File

@ -27,7 +27,7 @@ public class NewCardController extends GreenBaseController{
/**
* 根据选择的卡类型获取审核人
* 职工卡-根据选择的卡类型获取审核人
* @param entity
* @return
*/
@ -46,6 +46,26 @@ public class NewCardController extends GreenBaseController{
}
/**
* 第三方人员/VIP贵宾/临时出入证/施工出入证-根据选择的部门获取获取审核人
* @param entity
* @return
*/
@ResponseBody
@RequestMapping(value = "/getAuditCheckUser2", method = { RequestMethod.POST })
public RestResult getAuditCheckUser2(CardVo vo) {
try {
GreenUserInfo info = getUserInfo(vo.getUserId());
if (info == null) {
return new RestResult(Constant.FAILED, "非法用户");
}
} catch (Exception e) {
return new RestResult(Constant.FAILED, "非法用户");
}
return service.getAuditCheckUser2(vo);
}
/**
* 新增办卡/办证数据
* @param entity
@ -206,4 +226,24 @@ public class NewCardController extends GreenBaseController{
}
/**
* 查询历史填写项目
* @param vo
* @return
*/
@ResponseBody
@RequestMapping(value = "/getHistoryPros", method = { RequestMethod.POST })
public RestResult getHistoryPros(CardVo vo) {
try {
GreenUserInfo info = getUserInfo(vo.getUserId());
if (info == null) {
return new RestResult(Constant.FAILED, "非法用户");
}
} catch (Exception e) {
return new RestResult(Constant.FAILED, "非法用户");
}
return service.getHistoryPros(vo);
}
}

View File

@ -405,6 +405,11 @@ public class CardVo implements Serializable{
*/
private String operCardId;
/**
* 审批人操作类型 0.默认 1.制卡经办人审核 2.制卡经办人抄送填写备注办卡日期等操作
*/
private String operType;
public String getId() {
return id;
@ -915,4 +920,16 @@ public class CardVo implements Serializable{
this.operCardId = operCardId;
}
public String getOperType() {
return operType;
}
public void setOperType(String operType) {
this.operType = operType;
}
}

View File

@ -57,9 +57,10 @@ public class NewCardService {
List<CardAuditVo> dataList = new ArrayList<CardAuditVo>();
List<Object> parameter = new ArrayList<Object>();
String sql = " SELECT ghc.CHECK_ID AS \"checkId\"," + " ghcd.CHECK_ROLE AS \"checkRole\","
+ " gui.REAL_NAME AS \"userName\"," + " gui.ID AS \"userId\"" + " FROM GREEN_HOUSE_CHECK ghc"
+ " gui.REAL_NAME AS \"userName\"," + " gui.ID AS \"userId\" "
+ " FROM GREEN_HOUSE_CHECK ghc"
+ " LEFT JOIN GREEN_HOUSE_CHECK_DETAILS ghcd ON ghc.CHECK_ID = ghcd.CHECK_ID"
+ " LEFT JOIN GREEN_USER_ROLE_REL gurr ON ghcd.CHECK_ROLE = gurr.ROLE_ID AND IS_DELETED = 'N'"
+ " LEFT JOIN GREEN_HOUSE_CHECK_ROLE ghcr ON ghcd.CHECK_ROLE = ghcr.ROLE_ID"
+ " LEFT JOIN GREEN_USER_INFO gui ON gurr.USER_ID = gui.ID"
+ " WHERE ghc.CHECK_NAME = ? AND CHECK_SORT = '1'";
System.err.println(sql);
@ -73,6 +74,34 @@ public class NewCardService {
}
}
/**
* 第三方人员/VIP贵宾/临时出入证/施工出入证-根据选择的部门获取获取审核人
* @param vo
* @return
*/
public RestResult getAuditCheckUser2(CardVo vo) {
try {
List<CardAuditVo> dataList = new ArrayList<CardAuditVo>();
List<Object> parameter = new ArrayList<Object>();
String sql = " SELECT ghc.CHECK_ID AS \"checkId\"," + " ghcd.CHECK_ROLE AS \"checkRole\","
+ " gui.REAL_NAME AS \"userName\"," + " gui.ID AS \"userId\" "
+ " FROM GREEN_HOUSE_CHECK ghc"
+ " LEFT JOIN GREEN_HOUSE_CHECK_DETAILS ghcd ON ghc.CHECK_ID = ghcd.CHECK_ID"
+ " LEFT JOIN GREEN_HOUSE_CHECK_ROLE ghcr ON ghcd.CHECK_ROLE = ghcr.ROLE_ID"
+ " LEFT JOIN GREEN_USER_INFO gui ON gurr.USER_ID = gui.ID"
+ " WHERE ghc.CHECK_NAME = ? AND gui.DEPARTMENT_ID = ? AND CHECK_SORT = '1'";
System.err.println(sql);
parameter.add(vo.getCardType());
parameter.add(vo.getXmgkOrgId());
dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(),
new BeanPropertyRowMapper<CardAuditVo>(CardAuditVo.class));
return new RestResult(Constant.SUCCESS, "查询成功", dataList);
} catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED, "查询失败");
}
}
/**
* 新增办卡数据
*
@ -119,14 +148,14 @@ public class NewCardService {
addSql.append("INSERT INTO GREEN_CARD (ID, USER_ID, USER_NAME, PHONE, ORG_ID, ORG_NAME,TYPE,"
+ " UNIT,PERSONNEL,PERSONNEL_PHONE,APPLY_TIME,EXAMINE_BATCH,EXAMINE_STATE,EXAMINE_PERSON_ID,"
+ " EXAMINE_PERSON_NAME,CARD_TYPE,TYPE_NAME,PHOTO,ID_PHOTO,IS_ENABLE_FACE,CARD_STATUS,"
+ " DATA_ID,CHECK_ID,CHECK_ROLE)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+ " DATA_ID,CHECK_ID,CHECK_ROLE,OPER_TYPE)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
iHibernateDao.executeSqlUpdate(addSql.toString(),
new Object[] { id, vo.getUserId(), vo.getUserName(), vo.getPhone(), vo.getOrgId(),
vo.getOrgName(), vo.getType(), u.getUnit(), u.getPersonnel(), u.getPersonnelPhone(),
applyTime, '1', '0', vo.getCheckUserId(), vo.getCheckUserName(), vo.getCardType(),
vo.getTypeName(), u.getPhoto(), u.getIdPhoto(), vo.getIsEnableFace(), '0', dataId,
vo.getCheckId(), vo.getCheckRole() });
vo.getCheckId(), vo.getCheckRole(),"0" });
}
// 添加出入区域
addAreaData(vo, dataId);
@ -163,8 +192,8 @@ public class NewCardService {
+ " UNIT,PERSONNEL,PERSONNEL_PHONE,APPLY_TIME,EXAMINE_BATCH,EXAMINE_STATE,EXAMINE_PERSON_ID,"
+ " EXAMINE_PERSON_NAME,CARD_TYPE,TYPE_NAME,PHOTO,ID_PHOTO,IS_ENABLE_FACE,CARD_STATUS,"
+ " DATA_ID,CHECK_ID,CHECK_ROLE,XMGK_ORG_ID,XMGK_ORG_NAME,JB_USER_ID,JB_USER_PHONE,JB_USER_NAME,"
+ " APPLY_TYPE,APPLY_TERM,DOCUMENTATION)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+ " APPLY_TYPE,APPLY_TERM,DOCUMENTATION,OPER_TYPE)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
iHibernateDao.executeSqlUpdate(addSql.toString(),
new Object[] { id, vo.getUserId(), vo.getUserName(), vo.getPhone(), vo.getOrgId(),
vo.getOrgName(), vo.getType(), u.getUnit(), u.getPersonnel(), u.getPersonnelPhone(),
@ -172,7 +201,7 @@ public class NewCardService {
vo.getTypeName(), u.getPhoto(), u.getIdPhoto(), vo.getIsEnableFace(), '0', dataId,
vo.getCheckId(), vo.getCheckRole(), vo.getXmgkOrgId(), vo.getXmgkOrgName(),
vo.getJbUserId(), vo.getJbUserPhone(), vo.getJbUserName(), vo.getApplyType(),
vo.getApplyTerm(), u.getDocumentation() });
vo.getApplyTerm(), u.getDocumentation(),"0" });
}
// 添加出入区域
addAreaData(vo, dataId);
@ -204,14 +233,14 @@ public class NewCardService {
addSql.append("INSERT INTO GREEN_CARD (ID, USER_ID, USER_NAME, PHONE, ORG_ID, ORG_NAME,TYPE,"
+ " APPLY_TIME,EXAMINE_BATCH,EXAMINE_STATE,EXAMINE_PERSON_ID,EXAMINE_PERSON_NAME,"
+ " CARD_TYPE,TYPE_NAME,DATA_ID,CHECK_ID,CHECK_ROLE,JB_USER_ID,JB_USER_PHONE,JB_USER_NAME,"
+ " LEND_TIME,BACK_TIME,DOCUMENTATION)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+ " LEND_TIME,BACK_TIME,DOCUMENTATION,OPER_TYPE)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
iHibernateDao.executeSqlUpdate(addSql.toString(),
new Object[] { id, vo.getUserId(), vo.getUserName(), vo.getPhone(), vo.getOrgId(), vo.getOrgName(),
vo.getType(), applyTime, "1", "0", vo.getCheckUserId(), vo.getCheckUserName(),
vo.getCardType(), vo.getTypeName(), dataId, vo.getCheckId(), vo.getCheckRole(),
vo.getJbUserId(), vo.getJbUserPhone(), vo.getJbUserName(), vo.getLendTime(),
vo.getBackTime(), vo.getDocumentation() });
vo.getBackTime(), vo.getDocumentation(),"0" });
} catch (Exception e) {
e.printStackTrace();
// 手动回滚异常
@ -245,15 +274,17 @@ public class NewCardService {
+ " APPLY_TIME,EXAMINE_BATCH,EXAMINE_STATE,EXAMINE_PERSON_ID,EXAMINE_PERSON_NAME,"
+ " CARD_TYPE,TYPE_NAME,DATA_ID,CHECK_ID,CHECK_ROLE,PRO_NAME,PRO_UNIT,PRO_MANAGER,"
+ " PRO_MANAGER_PHONE,CONTRACT_START_TIME,CONTRACT_END_TIME,BZ_NUM,PERSONNEL,ID_PHOTO,"
+ " ACCESS_AREA)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+ " ACCESS_AREA,XMGK_ORG_ID,XMGK_ORG_NAME,"
+ " JB_USER_ID,JB_USER_PHONE,JB_USER_NAME,OPER_TYPE)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
iHibernateDao.executeSqlUpdate(addSql.toString(),
new Object[] { id, vo.getUserId(), vo.getUserName(), vo.getPhone(), vo.getOrgId(),
vo.getOrgName(), vo.getType(), applyTime, "1", "0", vo.getCheckUserId(),
vo.getCheckUserName(), vo.getCardType(), vo.getTypeName(), dataId, vo.getCheckId(),
vo.getCheckRole(), vo.getProName(), vo.getProUnit(), vo.getProManager(),
vo.getProManagerPhone(), vo.getContractStartTime(), vo.getContractEndTime(),
vo.getBzNum(), u.getPersonnel(), u.getIdPhoto(), vo.getAccessArea() });
vo.getBzNum(), u.getPersonnel(), u.getIdPhoto(), vo.getAccessArea(),vo.getXmgkOrgId(),
vo.getXmgkOrgName(),vo.getJbUserId(),vo.getJbUserPhone(),vo.getJbUserName(),"0"});
}
} catch (Exception e) {
e.printStackTrace();
@ -289,8 +320,8 @@ public class NewCardService {
+ " CARD_TYPE,TYPE_NAME,DATA_ID,CHECK_ID,CHECK_ROLE,XMGK_ORG_ID,XMGK_ORG_NAME,"
+ " JB_USER_ID,JB_USER_PHONE,JB_USER_NAME,WORK_CONTENT,TICKET_NO,ACCESS_AREA,"
+ " PRO_UNIT,PRO_MANAGER,PRO_MANAGER_PHONE,CONTRACT_START_TIME,CONTRACT_END_TIME,CAR_NUM,"
+ " PERSONNEL,ID_PHOTO,ID_NUMBER)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+ " PERSONNEL,ID_PHOTO,ID_NUMBER,OPER_TYPE)"
+ " VALUES (?, ?, ?, ?, ?, ?,?,?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
iHibernateDao.executeSqlUpdate(addSql.toString(),
new Object[] { id, vo.getUserId(), vo.getUserName(), vo.getPhone(), vo.getOrgId(),
vo.getOrgName(), vo.getType(), applyTime, "1", "0", vo.getCheckUserId(),
@ -299,7 +330,7 @@ public class NewCardService {
vo.getJbUserPhone(), vo.getJbUserName(), vo.getWorkContent(), vo.getTicketNo(),
vo.getAccessArea(), vo.getProUnit(), vo.getProManager(), vo.getProManagerPhone(),
vo.getContractStartTime(), vo.getContractEndTime(), vo.getCarNum(), u.getPersonnel(),
u.getIdPhoto(), u.getIdNumber() });
u.getIdPhoto(), u.getIdNumber(),"0" });
}
} catch (Exception e) {
e.printStackTrace();
@ -379,7 +410,7 @@ public class NewCardService {
+ " MAX(gc.IS_ENABLE_FACE) AS \"isEnableFace\",MAX(gc.APPLY_TIME) AS \"applyTime\","
+ " MAX(gc.EXAMINE_BATCH) AS \"examineBatch\",MAX(gc.EXAMINE_STATE) AS \"examineState\","
+ " MAX(gc.CHECK_ID) AS \"checkId\",MAX(gc.CHECK_ROLE) AS \"checkRole\","
+ " MAX(gc.EXAMINE_PERSON_ID) AS \"checkUserId\""
+ " MAX(gc.EXAMINE_PERSON_ID) AS \"checkUserId\",MAX(gc.OPER_TYPE) AS \"operType\""
+ " FROM GREEN_CARD gc" + " WHERE gc.DATA_ID = ?" + " GROUP BY gc.DATA_ID";
System.err.println(sql);
parameter.add(vo.getDataId());
@ -443,7 +474,8 @@ public class NewCardService {
+ " gc.JB_USER_NAME AS \"jbUserName\",gc.JB_USER_PHONE AS \"jbUserPhone\","
+ " gc.APPLY_TYPE AS \"applyType\",gc.APPLY_TERM AS \"applyTerm\",gc.DATA_ID AS \"dataId\","
+ " gc.EXAMINE_BATCH AS \"examineBatch\",gc.EXAMINE_STATE AS \"examineState\","
+ " gc.CHECK_ID AS \"checkId\",gc.CHECK_ROLE AS \"checkRole\",gc.EXAMINE_PERSON_ID AS \"checkUserId\""
+ " gc.CHECK_ID AS \"checkId\",gc.CHECK_ROLE AS \"checkRole\",gc.EXAMINE_PERSON_ID AS \"checkUserId\","
+ " gc.OPER_TYPE AS \"operType\""
+ " FROM GREEN_CARD gc" + " WHERE gc.DATA_ID = ?";
System.err.println(sql);
parameter.add(vo.getDataId());
@ -513,7 +545,8 @@ public class NewCardService {
+ " gc.JB_USER_NAME AS \"jbUserName\",gc.JB_USER_PHONE AS \"jbUserPhone\","
+ " gc.LEND_TIME AS \"lendTime\",gc.BACK_TIME AS \"backTime\","
+ " gc.ACTUAL_BACK_TIME AS \"actualBackTime\",gc.REMARK AS \"remark\","
+ " gc.CHECK_ID AS \"checkId\",gc.CHECK_ROLE AS \"checkRole\",gc.EXAMINE_PERSON_ID AS \"checkUserId\""
+ " gc.CHECK_ID AS \"checkId\",gc.CHECK_ROLE AS \"checkRole\",gc.EXAMINE_PERSON_ID AS \"checkUserId\","
+ " gc.OPER_TYPE AS \"operType\""
+ " FROM GREEN_CARD gc"
+ " WHERE gc.DATA_ID = ?";
System.err.println(sql);
@ -560,7 +593,7 @@ public class NewCardService {
+ " MAX(gc.CARD_START_TIME) AS \"cardStartTime\",MAX(gc.CARD_END_TIME) AS \"cardEndTime\","
+ " MAX(gc.ACCESS_AREA) AS \"accessArea\",MAX(gc.BZ_NUM) AS \"bzNum\","
+ " MAX(gc.CHECK_ID) AS \"checkId\",MAX(gc.CHECK_ROLE) AS \"checkRole\","
+ " MAX(gc.EXAMINE_PERSON_ID) AS \"checkUserId\""
+ " MAX(gc.EXAMINE_PERSON_ID) AS \"checkUserId\",MAX(gc.OPER_TYPE) AS \"operType\""
+ " FROM GREEN_CARD gc"
+ " WHERE gc.DATA_ID = ? GROUP BY gc.DATA_ID";
parameter.add(vo.getDataId());
@ -615,7 +648,7 @@ public class NewCardService {
+ " MAX(gc.CONTRACT_START_TIME) AS \"contractStartTime\",MAX(gc.CONTRACT_END_TIME) AS \"contractEndTime\","
+ " MAX(gc.CARD_START_TIME) AS \"cardStartTime\",MAX(gc.CARD_END_TIME) AS \"cardEndTime\","
+ " MAX(gc.ACCESS_AREA) AS \"accessArea\",MAX(gc.CAR_NUM) AS \"carNum\",MAX(gc.TICKET_NO) AS \"ticketNo\","
+ " MAX(gc.WORK_CONTENT) AS \"workContent\","
+ " MAX(gc.WORK_CONTENT) AS \"workContent\",MAX(gc.OPER_TYPE) AS \"operType\","
+ " MAX(gc.CHECK_ID) AS \"checkId\",MAX(gc.CHECK_ROLE) AS \"checkRole\",MAX(gc.EXAMINE_PERSON_ID) AS \"checkUserId\""
+ " FROM GREEN_CARD gc WHERE gc.DATA_ID = ? GROUP BY gc.DATA_ID";
parameter.add(vo.getDataId());
@ -823,15 +856,12 @@ public class NewCardService {
public RestResult auditData(CardVo vo) {
switch (vo.getCardType()) {
case "职工卡":
return auditEmployeeCard(vo);
case "第三方人员":
return auditThirdPartyPersonnelCard(vo);
return auditCard(vo);
case "VIP贵宾":
return auditVipCard(vo);
case "临时出入证":
return auditLsAndSgCard(vo);
case "施工出入证":
return auditLsAndSgCard(vo);
return auditCard2(vo);
default:
break;
}
@ -840,64 +870,21 @@ public class NewCardService {
/**
* 职工卡-审批
* @param vo
* @return
*/
@Transactional(rollbackFor = Exception.class)
public RestResult auditEmployeeCard(CardVo vo) {
try {
// 审批流程-申请人所在部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人抄送
Boolean repeatAudit = isRepeatAudit(vo);
if(repeatAudit){
return new RestResult(Constant.FAILED, "请勿重复审核,刷新页面重试");
}
List<Map<String, String>> auditNodeList = getNextAuditNodeRole(vo);
vo.setDescription(auditNodeList.get(0).get("checkName"));
String examineBatch = vo.getExamineBatch();
String nextExamineBatch =String.valueOf(Integer.parseInt(examineBatch));
// 添加审核记录
addExamineData(vo);
if(Objects.equals(vo.getExamineState(), "1") && !Objects.equals(vo.getExamineBatch(), "3")){
// 1.申请人所在部门负责人审核2.制卡经办人审核 ---> 审核通过-流转到下一审批
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
if(Objects.equals(examineBatch, "2")){ // 添加制卡经办人ID
vo.setOperCardId(vo.getUserId());
}
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(vo.getExamineBatch(), "3")){
// 3.制卡部门负责人审核 ----> 制卡部门负责人审核通过直接抄送制卡经办人审批流程结束
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("1");
List<Map<String, String>> sendUserInfos = getSendUserInfo(vo,"2");
vo.setUserId(sendUserInfos.get(0).get("userId"));
vo.setUserId(sendUserInfos.get(0).get("userName"));
vo.setDescription(auditNodeList.get(1).get("checkName"));
// 添加抄送记录
addExamineData(vo);
// 发起抄送
pushInfo2(vo);
}
// 更新办卡/办证数据
updateCardAuditData(vo);
} catch (Exception e) {
e.printStackTrace();
// 手动回滚异常
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new RestResult(Constant.FAILED, "操作失败");
}
return new RestResult(Constant.SUCCESS, "操作成功");
}
/**
* 第三方人员-审批
* @param vo
* @return
*/
public RestResult auditThirdPartyPersonnelCard(CardVo vo) {
@Transactional(rollbackFor = Exception.class)
public RestResult auditCard(CardVo vo) {
try {
// 审批流程->项目归口管理部门负责人审核->制卡经办人审核->制卡部门负责人审核->项目归口管理部门分管领导审核->制卡经办人抄送
// 职工卡的审批流程-申请人所在部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人抄送
// 第三方人员的审批流程->项目归口管理部门负责人审核->制卡经办人审核->制卡部门负责人审核->项目归口管理部门分管领导审核->制卡经办人抄送
// 判断当前登录人是否具有审核权限
Boolean isHasAuditAuth = isHasAuditAuth(vo);
if(isHasAuditAuth){
return new RestResult(Constant.FAILED, "当前登录用户无审核权限");
}
// 判断是否重复审核
Boolean repeatAudit = isRepeatAudit(vo);
if(repeatAudit){
return new RestResult(Constant.FAILED, "请勿重复审核,刷新页面重试");
@ -906,22 +893,34 @@ public class NewCardService {
vo.setDescription(auditNodeList.get(0).get("checkName"));
String examineBatch = vo.getExamineBatch();
String nextExamineBatch =String.valueOf(Integer.parseInt(examineBatch));
// check_operate -1.已无审核节点 0.无操作人员审核 1.代表制卡经办人审核 2.代表制卡经办人抄送
String checkOperate = auditNodeList.get(0).get("checkOperate");
String nextCheckOperate = auditNodeList.get(1).get("checkOperate");
// 添加审核记录
addExamineData(vo);
if(Objects.equals(vo.getExamineState(), "1") && !Objects.equals(vo.getExamineBatch(), "4")){
// 1.项目归口管理部门负责人审核2.制卡经办人审核3.制卡部门负责人审核 ---> 审核通过-流转到下一审批
if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "0")){ // 无操作人员审核->无操作人员审核
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
if(Objects.equals(examineBatch, "2")){ // 添加制卡经办人ID
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "1")){ // 无操作人员审核->制卡经办人审核
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "1")
&& Objects.equals(nextCheckOperate, "0")){ // 制卡经办人审核->无操作人员审核
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
// 添加制卡经办人的ID
vo.setOperCardId(vo.getUserId());
}
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(vo.getExamineBatch(), "4")){
// 4.项目归口管理部门分管领导审核 ----> 项目归口管理部门分管领导审核通过直接抄送制卡经办人审批流程结束
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "2")){ // 无操作人员审核->制卡经办人抄送(默认审批流程已结束)
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("1");
List<Map<String, String>> sendUserInfos = getSendUserInfo(vo,"2");
List<Map<String, String>> sendUserInfos = getSendUserInfo(vo);
vo.setUserId(sendUserInfos.get(0).get("userId"));
vo.setUserId(sendUserInfos.get(0).get("userName"));
vo.setDescription(auditNodeList.get(1).get("checkName"));
@ -929,6 +928,25 @@ public class NewCardService {
addExamineData(vo);
// 发起抄送
pushInfo2(vo);
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "1")
&& Objects.equals(nextCheckOperate, "2")){ // 制卡经办人审核->制卡经办人抄送
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("1");
// 添加制卡经办人的ID
vo.setOperCardId(vo.getUserId());
List<Map<String, String>> sendUserInfos = getSendUserInfo(vo);
vo.setUserId(sendUserInfos.get(0).get("userId"));
vo.setUserId(sendUserInfos.get(0).get("userName"));
vo.setDescription(auditNodeList.get(1).get("checkName"));
// 添加抄送记录
addExamineData(vo);
// 发起抄送
pushInfo2(vo);
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "-1")){
// 无操作人员审核->已无审核节点(审批流程结束)
vo.setExamineState("1");
}
// 更新办卡/办证数据
updateCardAuditData(vo);
@ -946,14 +964,20 @@ public class NewCardService {
* @param vo
* @return
*/
public RestResult auditVipCard(CardVo vo) {
public RestResult auditCard2(CardVo vo) {
try {
// 审批流程->经办部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人填写归还时间及备注
// VIP贵宾的审批流程->经办部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人填写归还时间及备注
// 临时出入证/施工出入证的审批流程->项目归口管理部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人填写证件有效期
// 判断当前登录人是否具有审核权限
Boolean isHasAuditAuth = isHasAuditAuth(vo);
if(isHasAuditAuth){
return new RestResult(Constant.FAILED, "当前登录用户无审核权限");
}
Boolean repeatAudit = isRepeatAudit(vo);
if(repeatAudit){
return new RestResult(Constant.FAILED, "请勿重复审核,刷新页面重试");
}
if(Objects.equals(vo.getExamineBatch(), "4")){
if(Objects.equals(vo.getOperType(), "2") && Objects.equals(vo.getCardType(), "VIP贵宾")){
if(StringUtils.isEmpty(vo.getActualBackTime())){
return new RestResult(Constant.FAILED, "实际归还时间不能为空");
}
@ -961,22 +985,57 @@ public class NewCardService {
return new RestResult(Constant.FAILED, "备注不能为空");
}
}
if(Objects.equals(vo.getOperType(), "2") && (Objects.equals(vo.getCardType(), "临时出入证") || Objects.equals(vo.getCardType(), "施工出入证"))){
if(StringUtils.isEmpty(vo.getCardStartTime()) || StringUtils.isEmpty(vo.getCardEndTime())){
return new RestResult(Constant.FAILED, "证件有效期不能为空");
}
}
List<Map<String, String>> auditNodeList = getNextAuditNodeRole(vo);
vo.setDescription(auditNodeList.get(0).get("checkName"));
String examineBatch = vo.getExamineBatch();
String nextExamineBatch =String.valueOf(Integer.parseInt(examineBatch));
// check_operate -1.代表已无审核流程 0.无操作人员审核 1.代表制卡经办人审核 2.代表制卡经办人抄送
String checkOperate = auditNodeList.get(0).get("checkOperate");
String nextCheckOperate = auditNodeList.get(1).get("checkOperate");
// 添加审核记录
addExamineData(vo);
if(Objects.equals(vo.getExamineState(), "1") && !Objects.equals(vo.getExamineBatch(), "4")){
// 1.经办部门负责人审核2.制卡经办人审核3.制卡部门负责人审核 ---> 审核通过-流转到下一审批
if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "0")){ // 无操作人员审核->无操作人员审核
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
if(Objects.equals(examineBatch, "2")){ // 添加制卡经办人ID
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "1")){ // 无操作人员审核->制卡经办人审核
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "1")
&& Objects.equals(nextCheckOperate, "0")){ // 制卡经办人审核->无操作人员审核
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
// 添加制卡经办人的ID
vo.setOperCardId(vo.getUserId());
}
}else if(Objects.equals(vo.getExamineBatch(), "4")){
// 4.制卡经办人填写归还时间及备注
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "2")){ // 无操作人员审核->制卡经办人填写数据
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "1")
&& Objects.equals(nextCheckOperate, "2")){ // 制卡经办人审核->制卡经办人填写数据
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("1");
// 添加制卡经办人的ID
vo.setOperCardId(vo.getUserId());
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "2")
&& Objects.equals(nextCheckOperate, "-1")){ // 制卡经办人填写数据->已无审核节点(审批流程结束)
vo.setExamineState("1");
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "2")
&& Objects.equals(nextCheckOperate, "0")){ // 制卡经办人填写数据->无操作人员审核(默认审批流程结束)
vo.setExamineState("1");
}else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(checkOperate, "0")
&& Objects.equals(nextCheckOperate, "-1")){ // 无操作人员审核->已无审核节点(审批流程结束)
vo.setExamineState("1");
}
// 更新办卡/办证数据
@ -991,49 +1050,35 @@ public class NewCardService {
}
/**
* 临时出入证-审批/施工出入证-审批
* @param vo
* 判断当前用户是否具有审核权限
* @return
*/
public RestResult auditLsAndSgCard(CardVo vo) {
public Boolean isHasAuditAuth(CardVo vo){
try {
// 审批流程->项目归口管理部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人填写证件有效期
Boolean repeatAudit = isRepeatAudit(vo);
if(repeatAudit){
return new RestResult(Constant.FAILED, "请勿重复审核,刷新页面重试");
if(Objects.equals(vo.getExamineBatch(), "1")){ // 第一批次审核已经指定了审核人-判断当前登录人和审核人是否一致
if(!Objects.equals(vo.getUserId(), vo.getCheckUserId())){
return true;
}
if(Objects.equals(vo.getExamineBatch(), "4")){
if(StringUtils.isEmpty(vo.getCardStartTime()) || StringUtils.isEmpty(vo.getCardEndTime())){
return new RestResult(Constant.FAILED, "证件有效期不能为空");
}else{
// 制卡经办人填写备注证件有效期等操作
if(Objects.equals(vo.getOperType(), "2")){
if(!Objects.equals(vo.getUserId(), vo.getCheckUserId())){
return true;
}
}
List<Map<String, String>> auditNodeList = getNextAuditNodeRole(vo);
vo.setDescription(auditNodeList.get(0).get("checkName"));
String examineBatch = vo.getExamineBatch();
String nextExamineBatch =String.valueOf(Integer.parseInt(examineBatch));
// 添加审核记录
addExamineData(vo);
if(Objects.equals(vo.getExamineState(), "1") && !Objects.equals(vo.getExamineBatch(), "4")){
// 1.项目归口管理部门负责人审核2.制卡经办人审核3.制卡部门负责人审核 ---> 审核通过-流转到下一审批
vo.setExamineBatch(nextExamineBatch);
vo.setCheckRole(auditNodeList.get(1).get("checkRole"));
vo.setExamineState("0");
if(Objects.equals(examineBatch, "2")){ // 添加制卡经办人ID
vo.setOperCardId(vo.getUserId());
// 其余审核批次指定角色
String sql = "SELECT COUNT(*) FROM GREEN_HOUSE_CHECK_ROLE "
+ " WHERE USER_ID = ? AND ROLE_ID = ?";
Integer result = iHibernateDao.queryForIntWithSql(sql,
new Object[] { vo.getUserId(),vo.getCheckRole()});
if(Objects.equals(result, 0)){
return true;
}
}else if(Objects.equals(vo.getExamineBatch(), "4")){
// 4.制卡经办人填写证件有效期
vo.setExamineState("1");
}
// 更新办卡/办证数据
updateCardAuditData(vo);
} catch (Exception e) {
e.printStackTrace();
// 手动回滚异常
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new RestResult(Constant.FAILED, "操作失败");
}
return new RestResult(Constant.SUCCESS, "操作成功");
return true;
}
/**
@ -1064,11 +1109,18 @@ public class NewCardService {
try {
String examineBatch = vo.getExamineBatch();
String nextExamineBatch = String.valueOf(Integer.parseInt(examineBatch) + 1);
String sql = "SELECT CHECK_ROLE AS \"checkRole\",CHECK_NAME AS \"checkName\" "
+ " FROM GREEN_HOUSE_CHECK_DETAILS "
+ " WHERE CHECK_ID = ? AND CHECK_SORT IN (?,?) ORDER BY CHECK_SORT";
String sql = "SELECT ghcd.CHECK_ROLE AS \"checkRole\",ghcd.CHECK_NAME AS \"checkName\","
+ " ghcd.CHECK_OPERATE AS \"checkOperate\",ghc.CHECK_NUM AS \"checkNum\" "
+ " FROM GREEN_HOUSE_CHECK_DETAILS ghcd"
+ " LEFT JOIN GREEN_HOUSE_CHECK ghc ON ghcd.CHECK_ID = ghc.CHECK_ID"
+ " WHERE ghcd.CHECK_ID = ? AND ghcd.CHECK_SORT IN (?,?) ORDER BY ghcd.CHECK_SORT";
List<Map<String, String>> list = iHibernateDao.queryForListWithSql(sql,
new Object[] { vo.getCheckId(),examineBatch,nextExamineBatch});
if(CollectionUtils.isNotEmpty(list) && list.size() == 1){
Map<String, String> map = new HashMap<String, String>();
map.put("checkOperate", "-1");
list.add(map);
}
return list;
} catch (Exception e) {
e.printStackTrace();
@ -1129,13 +1181,13 @@ public class NewCardService {
* @param examineBatch
* @return
*/
public List<Map<String, String>> getSendUserInfo(CardVo vo,String examineBatch){
public List<Map<String, String>> getSendUserInfo(CardVo vo){
try {
String sql = "SELECT USER_ID AS \"userId\",USER_NAME AS \"userName\" "
+ " FROM GREEN_CARD_EXAMINE "
+ " WHERE CARD_ID = ? AND EXAMINE_BATCH = ?";
+ " WHERE CARD_ID = ? AND USER_ID = ?";
List<Map<String, String>> list = iHibernateDao.queryForListWithSql(sql,
new Object[] { vo.getDataId(),examineBatch});
new Object[] { vo.getDataId(),vo.getUserId()});
return list;
} catch (Exception e) {
e.printStackTrace();
@ -1182,8 +1234,9 @@ public class NewCardService {
public RestResult getUnapprovedData(CardVo vo){
try {
// 获取当前登录人的角色
String currentUserRole = getCurrentUserRole(vo);
List<String> aduitRoles = new ArrayList<String>();
String userId = vo.getUserId();
List<Object> parameter = new ArrayList<Object>();
String sql = " SELECT * FROM (SELECT ROWNUM num,A.* FROM ( "
+ " SELECT * FROM ("
+ " SELECT MAX(gc.DATA_ID) AS \"dataId\",MAX(gc.CARD_TYPE) AS \"carType\","
@ -1191,8 +1244,8 @@ public class NewCardService {
+ " MAX(gc.EXAMINE_BATCH) AS \"examineBatch\",MAX(gc.EXAMINE_STATE) AS \"examineState\""
+ " FROM GREEN_CARD gc "
+ " WHERE (gc.EXAMINE_BATCH = '1' AND gc.EXAMINE_STATE = '0' AND gc.EXAMINE_PERSON_ID = ?) OR"
+ " (gc.EXAMINE_BATCH IN ('2','3') AND gc.EXAMINE_STATE = '0' AND gc.CHECK_ROLE = ?) OR"
+ " (gc.CARD_TYPE = '第三方人员' AND gc.EXAMINE_BATCH = '4' AND gc.EXAMINE_STATE = '0' AND gc.CHECK_ROLE = ?) OR"
+ " (gc.EXAMINE_BATCH IN ('2','3') AND gc.EXAMINE_STATE = '0' AND gc.CHECK_ROLE IN ("+handlePlaceholder(aduitRoles)+")) OR"
+ " (gc.CARD_TYPE = '第三方人员' AND gc.EXAMINE_BATCH = '4' AND gc.EXAMINE_STATE = '0' AND gc.CHECK_ROLE IN ("+handlePlaceholder(aduitRoles)+")) OR"
+ " (gc.CARD_TYPE != '第三方人员' AND gc.EXAMINE_BATCH = '4' AND gc.EXAMINE_STATE = '0' AND gc.OPER_CARD_ID = ?)"
+ " GROUP BY gc.DATA_ID"
+ ") B ORDER BY B.\"applyTime\" DESC) " + " A WHERE ROWNUM <= ?) WHERE num > ?";
@ -1201,8 +1254,20 @@ public class NewCardService {
Integer pageNum = vo.getPageNum();
Integer page = (pageNum - 1) * pageSize;
Integer limit = pageNum * pageSize;
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql,
new Object[] { userId,currentUserRole,currentUserRole,userId, limit, page });
parameter.add(userId);
for (int j = 0; j < 2; j++) {
if(CollectionUtils.isEmpty(aduitRoles)){
parameter.add("-1");
}else{
for (int i = 0; i < aduitRoles.size(); i++) {
parameter.add(aduitRoles.get(i));
}
}
}
parameter.add(userId);
parameter.add(limit);
parameter.add(page);
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql,parameter.toArray());
return new RestResult(Constant.SUCCESS, "查询成功", list);
} catch (Exception e) {
e.printStackTrace();
@ -1217,6 +1282,7 @@ public class NewCardService {
*/
public RestResult getApprovedData(CardVo vo){
try {
List<Object> parameter = new ArrayList<Object>();
String userId = vo.getUserId();
String sql = " SELECT * FROM (SELECT ROWNUM num,A.* FROM ( "
+ " SELECT * FROM ("
@ -1236,8 +1302,13 @@ public class NewCardService {
Integer pageNum = vo.getPageNum();
Integer page = (pageNum - 1) * pageSize;
Integer limit = pageNum * pageSize;
parameter.add(userId);
parameter.add(userId);
parameter.add(userId);
parameter.add(limit);
parameter.add(page);
List<Map<String, Object>> list = iHibernateDao.queryForListWithSql(sql,
new Object[] { userId,userId,userId, limit, page });
parameter.toArray());
return new RestResult(Constant.SUCCESS, "查询成功", list);
} catch (Exception e) {
e.printStackTrace();
@ -1246,24 +1317,64 @@ public class NewCardService {
}
/**
* 查询当前登录人的角色
* 查询当前登录人的审批角色 ROLE_TYPE为3是审批角色
* @return
*/
public String getCurrentUserRole(CardVo vo){
String currentUserRole = "";
public List<String> getCurrentUserRole(CardVo vo){
List<String> dataList = new ArrayList<String>();
try {
String sql = "SELECT USER_ID AS \"userId\",ROLE_ID AS \"roleId\" "
+ " FROM GREEN_USER_ROLE_REL "
+ " WHERE USER_ID = ? AND IS_DELETED = 'N'";
String sql = "SELECT ghcr.USER_ID AS \"userId\",ghcr.ROLE_ID AS \"roleId\" "
+ " FROM GREEN_HOUSE_CHECK_ROLE ghcr"
+ " LEFT JOIN GREEN_ROLE gr ON ghcr.ROLE_ID = gr.ID AND gr.IS_DELETED = 'N'"
+ " WHERE ghcr.USER_ID = ? AND gr.IS_DELETED = 'N' AND gr.ROLE_TYPE = '3'";
List<Map<String, String>> list = iHibernateDao.queryForListWithSql(sql,
new Object[] { vo.getUserId()});
if(CollectionUtils.isNotEmpty(list)){
currentUserRole = list.get(0).get("roleId");
for (int i = 0; i < list.size(); i++) {
dataList.add(list.get(i).get("roleId"));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return currentUserRole;
return dataList;
}
/**
* 查询历史填写项目
* @param vo
* @return
*/
public RestResult getHistoryPros(CardVo vo) {
try {
String sql = "SELECT DISTINCT PRO_NAME AS \"proName\""
+ " FROM GREEN_CARD WHERE PRO_NAME IS NOT NULL";
List<Map<String, String>> list = iHibernateDao.queryForListWithSql(sql);
return new RestResult(Constant.SUCCESS, "查询成功", list);
} catch (Exception e) {
e.printStackTrace();
return new RestResult(Constant.FAILED, "查询失败");
}
}
/**
* 处理占位符
* @return
*/
public String handlePlaceholder(List<String> list){
if(CollectionUtils.isEmpty(list)){
return "?";
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < list.size(); i++) {
sb.append("?").append(",");
}
// 检查最后一个字符是否是逗号
if (sb.length() > 0 && sb.charAt(sb.length() - 1) == ',') {
// 移除最后一个字符
sb.deleteCharAt(sb.length() - 1);
}
return sb.toString();
}
}

View File

@ -3461,6 +3461,24 @@ public class GreenMainInterfaceController {
ObjectMapper objectMapper = new ObjectMapper();
CardVo vo = objectMapper.readValue(dataStr, CardVo.class);
return newCardController.getAuditData(vo);
}else if ("greenNewCard/getHistoryPros".equals(method)) {
if (Utils.list.contains("greenNewCard/getHistoryPros" + checkTime)) {
return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求...");
} else {
Utils.list.add("greenNewCard/getHistoryPros" + checkTime);
}
ObjectMapper objectMapper = new ObjectMapper();
CardVo vo = objectMapper.readValue(dataStr, CardVo.class);
return newCardController.getHistoryPros(vo);
}else if ("greenNewCard/getAuditCheckUser2".equals(method)) {
if (Utils.list.contains("greenNewCard/getAuditCheckUser2" + checkTime)) {
return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求...");
} else {
Utils.list.add("greenNewCard/getAuditCheckUser2" + checkTime);
}
ObjectMapper objectMapper = new ObjectMapper();
CardVo vo = objectMapper.readValue(dataStr, CardVo.class);
return newCardController.getAuditCheckUser2(vo);
}