diff --git a/greenH5modul/src/com/jysoft/card/controller/NewCardController.java b/greenH5modul/src/com/jysoft/card/controller/NewCardController.java new file mode 100644 index 0000000..747c675 --- /dev/null +++ b/greenH5modul/src/com/jysoft/card/controller/NewCardController.java @@ -0,0 +1,209 @@ +package com.jysoft.card.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.jysoft.card.entity.vo.CardVo; +import com.jysoft.card.service.NewCardService; +import com.nationalelectirc.Constant.Constant; +import com.nationalelectirc.utils.RestResult; +import com.nationalelectric.greenH5.GreenBaseController; +import com.nationalelectric.greenH5.po.GreenUserInfo; + + +/** + * @author 10488 + * 门禁卡办理-新 + */ +@Controller +@RequestMapping("/greenNewCard") +public class NewCardController extends GreenBaseController{ + + @Autowired + private NewCardService service; + + + /** + * 根据选择的卡类型获取审核人 + * @param entity + * @return + */ + @ResponseBody + @RequestMapping(value = "/getAuditCheckUser", method = { RequestMethod.POST }) + public RestResult getAuditCheckUser(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.getAuditCheckUser(vo); + + } + + /** + * 新增办卡/办证数据 + * @param entity + * @return + */ + @ResponseBody + @RequestMapping(value = "/addCardData", method = { RequestMethod.POST }) + public RestResult addCardData(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.addCardData(vo); + + } + + /** + * 办卡/办证详情接口 + * @param vo + * @return + */ + @ResponseBody + @RequestMapping(value = "/getDetailInfo", method = { RequestMethod.POST }) + public RestResult getDetailInfo(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.getDetailInfo(vo); + + } + + /** + * 门禁卡办理记录 + * @param vo + * @return + */ + @ResponseBody + @RequestMapping(value = "/getCardList", method = { RequestMethod.POST }) + public RestResult getCardList(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.getCardList(vo); + + } + + /** + * 获取部门 + * @param vo + * @return + */ + @ResponseBody + @RequestMapping(value = "/getDeptList", method = { RequestMethod.POST }) + public RestResult getDeptList(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.getDeptList(vo); + + } + + /** + * 根据部门查询部门下的人员 + * @param vo + * @return + */ + @ResponseBody + @RequestMapping(value = "/getUserInfoByDept", method = { RequestMethod.POST }) + public RestResult getUserInfoByDept(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.getUserInfoByDept(vo); + + } + + /** + * 根据类型编码查询字典数据 + * @param vo + * @return + */ + @ResponseBody + @RequestMapping(value = "/getDictByType", method = { RequestMethod.POST }) + public RestResult getDictByType(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.getDictByType(vo); + + } + + /** + * 办卡/办证-审核 + * @param vo + * @return + */ + @ResponseBody + @RequestMapping(value = "/auditData", method = { RequestMethod.POST }) + public RestResult auditData(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.auditData(vo); + + } + + /** + * 查询未审批和已审批数据 + * @param vo + * @return + */ + @ResponseBody + @RequestMapping(value = "/getAuditData", method = { RequestMethod.POST }) + public RestResult getAuditData(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.getAuditData(vo); + + } + +} diff --git a/greenH5modul/src/com/jysoft/card/entity/vo/CardAuditVo.java b/greenH5modul/src/com/jysoft/card/entity/vo/CardAuditVo.java new file mode 100644 index 0000000..014316b --- /dev/null +++ b/greenH5modul/src/com/jysoft/card/entity/vo/CardAuditVo.java @@ -0,0 +1,74 @@ +package com.jysoft.card.entity.vo; + +/** + * @author 10488 + * 门禁卡审核-vo + */ +public class CardAuditVo { + + /** + * 用户ID + */ + private String userId; + /** + * 用户姓名 + */ + private String userName; + /** + * 审核流程ID + */ + private String checkId; + /** + * 审核流程角色 + */ + private String checkRole; + /** + * 审核流程排序-默认为1 + */ + private String checkSort = "1"; + + + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getCheckId() { + return checkId; + } + + public void setCheckId(String checkId) { + this.checkId = checkId; + } + + public String getCheckSort() { + return checkSort; + } + + public void setCheckSort(String checkSort) { + this.checkSort = checkSort; + } + + public String getCheckRole() { + return checkRole; + } + + public void setCheckRole(String checkRole) { + this.checkRole = checkRole; + } + + + +} diff --git a/greenH5modul/src/com/jysoft/card/entity/vo/CardVo.java b/greenH5modul/src/com/jysoft/card/entity/vo/CardVo.java new file mode 100644 index 0000000..a12d8fe --- /dev/null +++ b/greenH5modul/src/com/jysoft/card/entity/vo/CardVo.java @@ -0,0 +1,918 @@ +package com.jysoft.card.entity.vo; + +import java.io.Serializable; +import java.util.List; + +/** + * @author 10488 + * 门禁卡-vo + */ +public class CardVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 用户id + */ + private String userId; + /** + * 用户名 + */ + private String userName; + /** + * 用户电话 + */ + private String phone; + /** + * 组织id + */ + private String orgId; + /** + * 组织名 + */ + private String orgName; + + + /** + * 证件类型 + */ + private String cardType; + + /** + * 出入区域 + */ + private String[] entryAndExitAreas; + + /** + * 是否开通人脸权限 + */ + private String isEnableFace; + + /** + * 出入区域-多个用逗号拼接 + */ + private String accessArea; + + /** + * 办卡类型 1.新办卡 2.新办证 3.卡挂失 4.补办卡 + */ + private String type; + + /** + * 申请时间 + */ + private String applyTime; + + /** + * 审核批次 + */ + private String examineBatch; + + /** + * 审核状态 + */ + private String examineState; + + /** + * 审核意见 + */ + private String examineOpinion; + + /** + * 审核节点名称 + */ + private String description; + + /** + * 办卡类型 新办卡 新办证 卡挂失 补办卡 + */ + private String typeName; + + + /** + * 多人办理门禁卡ID + */ + private String dataId; + + /** + * 审核流程ID + */ + private String checkId; + + /** + * 项目归口管理部门ID + */ + private Integer xmgkOrgId; + /** + * 项目归口管理部门名称 + */ + private String xmgkOrgName; + /** + * 经办人员ID + */ + private String jbUserId; + /** + * 经办人员联系方式 + */ + private String jbUserPhone; + /** + * 经办人员姓名 + */ + private String jbUserName; + /** + * 申请类别 + */ + private String applyType; + /** + * 申请期限 + */ + private String applyTerm; + + /** + * 借出时间 + */ + private String lendTime; + /** + * 归还时间 + */ + private String backTime; + + /** + * 实际归还时间 + */ + private String actualBackTime; + + /** + * 备注 + */ + private String remark; + + /** + * 附件 + */ + private String documentation; + + /** + * 项目名称 + */ + private String proName; + /** + * 项目单位 + */ + private String proUnit; + /** + * 项目负责人 + */ + private String proManager; + /** + * 项目负责人联系方式 + */ + private String proManagerPhone; + /** + * 合同开始时间 + */ + private String contractStartTime; + /** + * 合同结束时间 + */ + private String contractEndTime; + /** + * 证件有效期开始时间 + */ + private String cardStartTime; + /** + * 证件有效期结束时间 + */ + private String cardEndTime; + /** + * 办证人数 + */ + private Integer bzNum; + + /** + * 作业票号 + */ + private String ticketNo; + /** + * 作业内容 + */ + private String workContent; + /** + * 车牌号 + */ + private String carNum; + + private Integer pageSize; + + private Integer pageNum; + + + /** + * 人员信息-多个 + */ + private List userInfoVos; + + + /** + * 审核流程记录 + */ + private List auditVos; + + public static class UserInfoVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + /** + * 人员姓名 + */ + private String personnel; + + /** + * 联系电话 + */ + private String personnelPhone; + + /** + * 人员部门 + */ + private String unit; + + /** + * 人员照片 + */ + private String idPhoto; + + /** + * 证件照片 + */ + private String photo; + + /** + * 情况说明 + */ + private String documentation; + + /** + * 身份证号 + */ + private String idNumber; + + + + public String getPersonnel() { + return personnel; + } + + public void setPersonnel(String personnel) { + this.personnel = personnel; + } + + public String getPersonnelPhone() { + return personnelPhone; + } + + public void setPersonnelPhone(String personnelPhone) { + this.personnelPhone = personnelPhone; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getIdPhoto() { + return idPhoto; + } + + public void setIdPhoto(String idPhoto) { + this.idPhoto = idPhoto; + } + + public String getPhoto() { + return photo; + } + + public void setPhoto(String photo) { + this.photo = photo; + } + + public String getDocumentation() { + return documentation; + } + + public void setDocumentation(String documentation) { + this.documentation = documentation; + } + + public String getIdNumber() { + return idNumber; + } + + public void setIdNumber(String idNumber) { + this.idNumber = idNumber; + } + + + + } + + public static class AuditVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + /** + * 姓名 + */ + private String userName; + /** + * 审核状态 :0 待审核 1通过 2不通过 + */ + private String examineState; + /** + * 审核时间 + */ + private String examineTime; + /** + * 审核批次 + */ + private String examineBatch; + /** + * 审核批次描述 + */ + private String batchDescription; + + public String getUserName() { + return userName; + } + public void setUserName(String userName) { + this.userName = userName; + } + public String getExamineState() { + return examineState; + } + public void setExamineState(String examineState) { + this.examineState = examineState; + } + public String getExamineTime() { + return examineTime; + } + public void setExamineTime(String examineTime) { + this.examineTime = examineTime; + } + public String getExamineBatch() { + return examineBatch; + } + public void setExamineBatch(String examineBatch) { + this.examineBatch = examineBatch; + } + public String getBatchDescription() { + return batchDescription; + } + public void setBatchDescription(String batchDescription) { + this.batchDescription = batchDescription; + } + + + + } + + + /** + * 审核人员ID + */ + private String checkUserId; + + /** + * 审核人员姓名 + */ + private String checkUserName; + + /** + * 当前审批的角色 + */ + private String checkRole; + + /** + * 制卡经办人ID + */ + private String operCardId; + + + public String getId() { + return id; + } + + + public void setId(String id) { + this.id = id; + } + + + public String getUserId() { + return userId; + } + + + public void setUserId(String userId) { + this.userId = userId; + } + + + public String getUserName() { + return userName; + } + + + public void setUserName(String userName) { + this.userName = userName; + } + + + public String getPhone() { + return phone; + } + + + public void setPhone(String phone) { + this.phone = phone; + } + + + public String getOrgId() { + return orgId; + } + + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + + public String getOrgName() { + return orgName; + } + + + public void setOrgName(String orgName) { + this.orgName = orgName; + } + + + public String getCardType() { + return cardType; + } + + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + + public String[] getEntryAndExitAreas() { + return entryAndExitAreas; + } + + + public void setEntryAndExitAreas(String[] entryAndExitAreas) { + this.entryAndExitAreas = entryAndExitAreas; + } + + + public String getIsEnableFace() { + return isEnableFace; + } + + + public void setIsEnableFace(String isEnableFace) { + this.isEnableFace = isEnableFace; + } + + + public List getUserInfoVos() { + return userInfoVos; + } + + + public void setUserInfoVos(List userInfoVos) { + this.userInfoVos = userInfoVos; + } + + + public String getCheckUserId() { + return checkUserId; + } + + + public void setCheckUserId(String checkUserId) { + this.checkUserId = checkUserId; + } + + + public String getAccessArea() { + return accessArea; + } + + + public void setAccessArea(String accessArea) { + this.accessArea = accessArea; + } + + + public String getType() { + return type; + } + + + public void setType(String type) { + this.type = type; + } + + + public String getApplyTime() { + return applyTime; + } + + + public void setApplyTime(String applyTime) { + this.applyTime = applyTime; + } + + + public String getExamineBatch() { + return examineBatch; + } + + + public void setExamineBatch(String examineBatch) { + this.examineBatch = examineBatch; + } + + + public String getExamineState() { + return examineState; + } + + + public void setExamineState(String examineState) { + this.examineState = examineState; + } + + + public String getTypeName() { + return typeName; + } + + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + + public String getDataId() { + return dataId; + } + + + public void setDataId(String dataId) { + this.dataId = dataId; + } + + + public String getCheckId() { + return checkId; + } + + + public void setCheckId(String checkId) { + this.checkId = checkId; + } + + + public String getCheckUserName() { + return checkUserName; + } + + + public void setCheckUserName(String checkUserName) { + this.checkUserName = checkUserName; + } + + + public String getCheckRole() { + return checkRole; + } + + + public void setCheckRole(String checkRole) { + this.checkRole = checkRole; + } + + + public Integer getXmgkOrgId() { + return xmgkOrgId; + } + + + public void setXmgkOrgId(Integer xmgkOrgId) { + this.xmgkOrgId = xmgkOrgId; + } + + + public String getXmgkOrgName() { + return xmgkOrgName; + } + + + public void setXmgkOrgName(String xmgkOrgName) { + this.xmgkOrgName = xmgkOrgName; + } + + + public String getJbUserId() { + return jbUserId; + } + + + public void setJbUserId(String jbUserId) { + this.jbUserId = jbUserId; + } + + + public String getJbUserPhone() { + return jbUserPhone; + } + + + public void setJbUserPhone(String jbUserPhone) { + this.jbUserPhone = jbUserPhone; + } + + + public String getJbUserName() { + return jbUserName; + } + + + public void setJbUserName(String jbUserName) { + this.jbUserName = jbUserName; + } + + + public String getApplyType() { + return applyType; + } + + + public void setApplyType(String applyType) { + this.applyType = applyType; + } + + + public String getApplyTerm() { + return applyTerm; + } + + + public void setApplyTerm(String applyTerm) { + this.applyTerm = applyTerm; + } + + + public String getLendTime() { + return lendTime; + } + + + public void setLendTime(String lendTime) { + this.lendTime = lendTime; + } + + + public String getBackTime() { + return backTime; + } + + + public void setBackTime(String backTime) { + this.backTime = backTime; + } + + + public String getActualBackTime() { + return actualBackTime; + } + + + public void setActualBackTime(String actualBackTime) { + this.actualBackTime = actualBackTime; + } + + + public String getRemark() { + return remark; + } + + + public void setRemark(String remark) { + this.remark = remark; + } + + + public String getDocumentation() { + return documentation; + } + + + public void setDocumentation(String documentation) { + this.documentation = documentation; + } + + + public String getProName() { + return proName; + } + + + public void setProName(String proName) { + this.proName = proName; + } + + + public String getProUnit() { + return proUnit; + } + + + public void setProUnit(String proUnit) { + this.proUnit = proUnit; + } + + + public String getProManager() { + return proManager; + } + + + public void setProManager(String proManager) { + this.proManager = proManager; + } + + + public String getProManagerPhone() { + return proManagerPhone; + } + + + public void setProManagerPhone(String proManagerPhone) { + this.proManagerPhone = proManagerPhone; + } + + + public String getContractStartTime() { + return contractStartTime; + } + + + public void setContractStartTime(String contractStartTime) { + this.contractStartTime = contractStartTime; + } + + + public String getContractEndTime() { + return contractEndTime; + } + + + public void setContractEndTime(String contractEndTime) { + this.contractEndTime = contractEndTime; + } + + + public String getCardStartTime() { + return cardStartTime; + } + + + public void setCardStartTime(String cardStartTime) { + this.cardStartTime = cardStartTime; + } + + + public String getCardEndTime() { + return cardEndTime; + } + + + public void setCardEndTime(String cardEndTime) { + this.cardEndTime = cardEndTime; + } + + + public Integer getBzNum() { + return bzNum; + } + + + public void setBzNum(Integer bzNum) { + this.bzNum = bzNum; + } + + + public String getTicketNo() { + return ticketNo; + } + + + public void setTicketNo(String ticketNo) { + this.ticketNo = ticketNo; + } + + + public String getWorkContent() { + return workContent; + } + + + public void setWorkContent(String workContent) { + this.workContent = workContent; + } + + + public String getCarNum() { + return carNum; + } + + + public void setCarNum(String carNum) { + this.carNum = carNum; + } + + + public List getAuditVos() { + return auditVos; + } + + + public void setAuditVos(List auditVos) { + this.auditVos = auditVos; + } + + + public Integer getPageSize() { + return pageSize; + } + + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + + public Integer getPageNum() { + return pageNum; + } + + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + + public String getExamineOpinion() { + return examineOpinion; + } + + + public void setExamineOpinion(String examineOpinion) { + this.examineOpinion = examineOpinion; + } + + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public String getOperCardId() { + return operCardId; + } + + + public void setOperCardId(String operCardId) { + this.operCardId = operCardId; + } + +} diff --git a/greenH5modul/src/com/jysoft/card/service/NewCardService.java b/greenH5modul/src/com/jysoft/card/service/NewCardService.java new file mode 100644 index 0000000..2f34fe2 --- /dev/null +++ b/greenH5modul/src/com/jysoft/card/service/NewCardService.java @@ -0,0 +1,1267 @@ +package com.jysoft.card.service; + +import java.util.ArrayList; +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.annotation.Resource; + +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +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.card.entity.vo.CardAuditVo; +import com.jysoft.card.entity.vo.CardVo; +import com.jysoft.card.entity.vo.CardVo.AuditVo; +import com.jysoft.card.entity.vo.CardVo.UserInfoVo; +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.utils.DateTimeHelper; +import com.sgcc.uap.persistence.IHibernateDao; +import com.sgcc.uap.utils.StringUtils; + +/** + * @author 10488 门禁卡办理业务逻辑层-新 + */ +@Service +public class NewCardService { + + @Autowired + private IHibernateDao iHibernateDao; + + @Resource + private AliasManageController aliasManageController; + + @Autowired + private BaseServiceImpl baseService; + + /** + * 根据选择的卡类型获取审核人 + * + * @param entity + * @return + */ + @SuppressWarnings("unchecked") + public RestResult getAuditCheckUser(CardVo vo) { + try { + List dataList = new ArrayList(); + List parameter = new ArrayList(); + 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_USER_ROLE_REL gurr ON ghcd.CHECK_ROLE = gurr.ROLE_ID AND IS_DELETED = 'N'" + + " LEFT JOIN GREEN_USER_INFO gui ON gurr.USER_ID = gui.ID" + + " WHERE ghc.CHECK_NAME = ? AND CHECK_SORT = '1'"; + System.err.println(sql); + parameter.add(vo.getCardType()); + dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardAuditVo.class)); + return new RestResult(Constant.SUCCESS, "查询成功", dataList); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 新增办卡数据 + * + * @param vo + * @return + */ + public RestResult addCardData(CardVo vo) { + switch (vo.getCardType()) { + case "职工卡": + return addEmployeeCard(vo); + case "第三方人员": + return addThirdPartyPersonnelCard(vo); + case "VIP贵宾": + return addVipCard(vo); + case "临时出入证": + return addLsCard(vo); + case "施工出入证": + return addSgCard(vo); + default: + break; + } + return new RestResult(Constant.FAILED, "操作失败"); + } + + /** + * 新增办卡数据-职工卡 + * + * @param vo + * @return + */ + @Transactional(rollbackFor = Exception.class) + public RestResult addEmployeeCard(CardVo vo) { + try { + // 多人办理门禁卡使用相同的ID + String dataId = UUID.randomUUID().toString().replace("-", ""); + List userInfoVos = vo.getUserInfoVos(); + String applyTime = DateTimeHelper.getNowDate(); + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo u = userInfoVos.get(i); + StringBuilder addSql = new StringBuilder(); + // 数据ID + String id = UUID.randomUUID().toString().replace("-", ""); + // 保存办卡数据 + 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 (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + 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() }); + } + // 添加出入区域 + addAreaData(vo, dataId); + } catch (Exception e) { + e.printStackTrace(); + // 手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return new RestResult(Constant.FAILED, "添加失败"); + } + pushInfo(vo); + return new RestResult(Constant.SUCCESS, "添加成功"); + + } + + /** + * 新增办卡数据-第三方人员 + * + * @param vo + * @return + */ + @Transactional(rollbackFor = Exception.class) + public RestResult addThirdPartyPersonnelCard(CardVo vo) { + try { + String dataId = UUID.randomUUID().toString().replace("-", ""); + List userInfoVos = vo.getUserInfoVos(); + String applyTime = DateTimeHelper.getNowDate(); + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo u = userInfoVos.get(i); + StringBuilder addSql = new StringBuilder(); + // 数据ID + String id = UUID.randomUUID().toString().replace("-", ""); + // 保存办卡数据 + 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,XMGK_ORG_ID,XMGK_ORG_NAME,JB_USER_ID,JB_USER_PHONE,JB_USER_NAME," + + " APPLY_TYPE,APPLY_TERM,DOCUMENTATION)" + + " 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.getXmgkOrgId(), vo.getXmgkOrgName(), + vo.getJbUserId(), vo.getJbUserPhone(), vo.getJbUserName(), vo.getApplyType(), + vo.getApplyTerm(), u.getDocumentation() }); + } + // 添加出入区域 + addAreaData(vo, dataId); + } catch (Exception e) { + e.printStackTrace(); + // 手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return new RestResult(Constant.FAILED, "添加失败"); + } + pushInfo(vo); + return new RestResult(Constant.SUCCESS, "添加成功"); + } + + /** + * 新增办卡数据-VIP贵宾 + * + * @param vo + * @return + */ + @Transactional(rollbackFor = Exception.class) + public RestResult addVipCard(CardVo vo) { + try { + String dataId = UUID.randomUUID().toString().replace("-", ""); + String applyTime = DateTimeHelper.getNowDate(); + StringBuilder addSql = new StringBuilder(); + // 数据ID + String id = UUID.randomUUID().toString().replace("-", ""); + // 保存办卡数据 + 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 (?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + 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() }); + } catch (Exception e) { + e.printStackTrace(); + // 手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return new RestResult(Constant.FAILED, "添加失败"); + } + pushInfo(vo); + return new RestResult(Constant.SUCCESS, "添加成功"); + + } + + /** + * 新增办卡数据-临时出入证 + * + * @param vo + * @return + */ + @Transactional(rollbackFor = Exception.class) + public RestResult addLsCard(CardVo vo) { + try { + String dataId = UUID.randomUUID().toString().replace("-", ""); + List userInfoVos = vo.getUserInfoVos(); + String applyTime = DateTimeHelper.getNowDate(); + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo u = userInfoVos.get(i); + StringBuilder addSql = new StringBuilder(); + // 数据ID + String id = UUID.randomUUID().toString().replace("-", ""); + // 保存办卡数据 + 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,PRO_NAME,PRO_UNIT,PRO_MANAGER," + + " PRO_MANAGER_PHONE,CONTRACT_START_TIME,CONTRACT_END_TIME,BZ_NUM,PERSONNEL,ID_PHOTO," + + " ACCESS_AREA)" + + " 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() }); + } + } catch (Exception e) { + e.printStackTrace(); + // 手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return new RestResult(Constant.FAILED, "添加失败"); + } + pushInfo(vo); + return new RestResult(Constant.SUCCESS, "添加成功"); + + } + + /** + * 新增办卡数据-施工出入证 + * + * @param vo + * @return + */ + @Transactional(rollbackFor = Exception.class) + public RestResult addSgCard(CardVo vo) { + try { + String dataId = UUID.randomUUID().toString().replace("-", ""); + List userInfoVos = vo.getUserInfoVos(); + String applyTime = DateTimeHelper.getNowDate(); + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo u = userInfoVos.get(i); + StringBuilder addSql = new StringBuilder(); + // 数据ID + String id = UUID.randomUUID().toString().replace("-", ""); + // 保存办卡数据 + 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,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 (?, ?, ?, ?, ?, ?,?,?, ?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + 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.getXmgkOrgId(), vo.getXmgkOrgName(), vo.getJbUserId(), + 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() }); + } + } catch (Exception e) { + e.printStackTrace(); + // 手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return new RestResult(Constant.FAILED, "添加失败"); + } + pushInfo(vo); + return new RestResult(Constant.SUCCESS, "添加成功"); + } + + /** + * 添加出入区域 + * + * @param vo + * @param id + */ + public void addAreaData(CardVo vo, String id) { + String[] areaIdsArr = vo.getAccessArea().split(","); + List 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[] { id, areaId }); + } + } + + /** + * 推送消息 + * + * @param vo + */ + public void pushInfo(CardVo vo) { + String title = "" + vo.getCardType() + "申请"; + String text = "您好,您有新的" + vo.getCardType() + "申请需要审批,请点击查看。"; + String url = "/pages/access-card/card-record"; + aliasManageController.pushToSingle(vo.getCheckUserId(), title, text, url); + } + + /** + * 办卡/办证详情接口 + * + * @param vo + * @return + */ + public RestResult getDetailInfo(CardVo vo) { + switch (vo.getCardType()) { + case "职工卡": + return getEmployeeCardDetail(vo); + case "第三方人员": + return getThirdPartyPersonnelCardDetail(vo); + case "VIP贵宾": + return getVipCardDetail(vo); + case "临时出入证": + return getLsCardDetail(vo); + case "施工出入证": + return getSgCardDetail(vo); + default: + break; + } + return new RestResult(Constant.FAILED, "查询失败"); + } + + /** + * 职工卡详情 + * + * @param vo + * @return + */ + @SuppressWarnings("unchecked") + public RestResult getEmployeeCardDetail(CardVo vo) { + try { + List dataList = new ArrayList(); + CardVo cardVo = new CardVo(); + List parameter = new ArrayList(); + String sql = " SELECT gc.DATA_ID AS \"dataId\",MAX(gc.CARD_TYPE) AS \"carType\",MAX(gc.TYPE_NAME) AS \"typeName\"," + + " 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\"" + + " FROM GREEN_CARD gc" + " WHERE gc.DATA_ID = ?" + " GROUP BY gc.DATA_ID"; + System.err.println(sql); + parameter.add(vo.getDataId()); + dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.class)); + if (CollectionUtils.isNotEmpty(dataList)) { + // 查询基本信息 + cardVo = dataList.get(0); + // 查询出入区域 + String accessArea = getAreaData(vo); + cardVo.setAccessArea(accessArea); + // 查询人员信息 + List userInfoVos = new ArrayList(); + String sql2 = " SELECT gc.UNIT AS \"unit\",gc.PERSONNEL AS \"personnel\"," + + " gc.PERSONNEL_PHONE AS \"personnelPhone\",gc.PHOTO AS \"photo\",gc.ID_PHOTO AS \"idPhoto\"" + + " FROM GREEN_CARD gc WHERE gc.DATA_ID = ? "; + userInfoVos = iHibernateDao.queryForListWithSql(sql2.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.UserInfoVo.class)); + // 处理人员照片 + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo vo2 = userInfoVos.get(i); + String photo = vo2.getPhoto(); + String idPhoto = vo2.getIdPhoto(); + if (StringUtils.isNotBlank(photo)) { // 证件照片 + String newPhoto = ""; + String[] photoArr = photo.split(","); + for (String str : photoArr) { + newPhoto += baseService.getImageBase64(str) + ","; + } + vo2.setPhoto(newPhoto); + } + if (StringUtils.isNotBlank(idPhoto)) { // 人脸照片 + vo2.setIdPhoto(baseService.getImageBase64(idPhoto)); + } + } + cardVo.setUserInfoVos(userInfoVos); + // 查询审核详情 + List auditVos = getAudits(vo); + cardVo.setAuditVos(auditVos); + } + return new RestResult(Constant.SUCCESS, "查询成功", cardVo); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 第三方人员详情 + * + * @param vo + * @return + */ + public RestResult getThirdPartyPersonnelCardDetail(CardVo vo) { + try { + List dataList = new ArrayList(); + CardVo cardVo = new CardVo(); + List parameter = new ArrayList(); + String sql = " SELECT gc.CARD_TYPE AS \"cardType\",gc.TYPE_NAME AS \"typeName\"," + + " gc.APPLY_TIME AS \"applyTime\",gc.XMGK_ORG_NAME AS \"xmgkOrgName\"," + + " 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\"" + + " FROM GREEN_CARD gc" + " WHERE gc.DATA_ID = ?"; + System.err.println(sql); + parameter.add(vo.getDataId()); + dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.class)); + if (CollectionUtils.isNotEmpty(dataList)) { + // 查询基本信息 + cardVo = dataList.get(0); + // 查询出入区域 + String accessArea = getAreaData(vo); + cardVo.setAccessArea(accessArea); + // 查询人员信息 + List userInfoVos = new ArrayList(); + String sql2 = " SELECT gc.UNIT AS \"unit\",gc.PERSONNEL AS \"personnel\"," + + " gc.PERSONNEL_PHONE AS \"personnelPhone\",gc.PHOTO AS \"photo\",gc.ID_PHOTO AS \"idPhoto\"," + + " gc.DOCUMENTATION AS \"documentation\"" + " FROM GREEN_CARD gc WHERE gc.DATA_ID = ? "; + userInfoVos = iHibernateDao.queryForListWithSql(sql2.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.UserInfoVo.class)); + // 处理人员照片 + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo vo2 = userInfoVos.get(i); + String photo = vo2.getPhoto(); + String idPhoto = vo2.getIdPhoto(); + String documentation = vo2.getDocumentation(); + if (StringUtils.isNotBlank(photo)) { // 证件照片 + String newPhoto = ""; + String[] photoArr = photo.split(","); + for (String str : photoArr) { + newPhoto += baseService.getImageBase64(str) + ","; + } + vo2.setPhoto(newPhoto); + } + if (StringUtils.isNotBlank(idPhoto)) { // 人脸照片 + vo2.setIdPhoto(baseService.getImageBase64(idPhoto)); + } + if (StringUtils.isNotBlank(documentation)) { // 情况说明 + vo2.setDocumentation(baseService.getImageBase64(documentation)); + } + } + cardVo.setUserInfoVos(userInfoVos); + // 查询审核详情 + List auditVos = getAudits(vo); + cardVo.setAuditVos(auditVos); + } + return new RestResult(Constant.SUCCESS, "查询成功", cardVo); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * VIP贵宾详情 + * + * @param vo + * @return + */ + public RestResult getVipCardDetail(CardVo vo) { + try { + List dataList = new ArrayList(); + CardVo cardVo = new CardVo(); + List parameter = new ArrayList(); + String sql = " SELECT gc.CARD_TYPE AS \"cardType\",gc.TYPE_NAME AS \"typeName\"," + + " gc.APPLY_TIME AS \"applyTime\",gc.DATA_ID AS \"dataId\"," + + " gc.EXAMINE_BATCH AS \"examineBatch\",gc.EXAMINE_STATE AS \"examineState\"," + + " gc.DOCUMENTATION AS \"documentation\",gc.XMGK_ORG_NAME AS \"xmgkOrgName\"," + + " 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\"" + + " FROM GREEN_CARD gc" + + " WHERE gc.DATA_ID = ?"; + System.err.println(sql); + parameter.add(vo.getDataId()); + dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.class)); + if (CollectionUtils.isNotEmpty(dataList)) { + // 查询基本信息 + cardVo = dataList.get(0); + // 处理附件照片 + String documentation = cardVo.getDocumentation(); + if (StringUtils.isNotBlank(documentation)) { + cardVo.setDocumentation(baseService.getImageBase64(documentation)); + } + // 查询审核详情 + List auditVos = getAudits(vo); + cardVo.setAuditVos(auditVos); + } + return new RestResult(Constant.SUCCESS, "查询成功", cardVo); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 临时出入证详情 + * + * @param vo + * @return + */ + public RestResult getLsCardDetail(CardVo vo) { + try { + List dataList = new ArrayList(); + CardVo cardVo = new CardVo(); + List parameter = new ArrayList(); + String sql = " SELECT MAX(gc.CARD_TYPE) AS \"cardType\",MAX(gc.TYPE_NAME) AS \"typeName\"," + + " MAX(gc.APPLY_TIME) AS \"applyTime\",MAX(gc.DATA_ID) AS \"dataId\"," + + " MAX(gc.EXAMINE_BATCH) AS \"examineBatch\",MAX(gc.EXAMINE_STATE) AS \"examineState\"," + + " MAX(gc.PRO_NAME) AS \"proName\",MAX(gc.PRO_UNIT) AS \"proUnit\",MAX(gc.PRO_MANAGER) AS \"proManager\"," + + " MAX(gc.PRO_MANAGER_PHONE) AS \"proManagerPhone\",MAX(gc.XMGK_ORG_NAME) AS \"xmgkOrgName\"," + + " MAX(gc.JB_USER_NAME) AS \"jbUserName\",MAX(gc.JB_USER_PHONE) AS \"jbUserPhone\"," + + " 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.BZ_NUM) AS \"bzNum\"," + + " 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()); + dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.class)); + if (CollectionUtils.isNotEmpty(dataList)) { + // 查询基本信息 + cardVo = dataList.get(0); + // 查询人员信息 + List userInfoVos = new ArrayList(); + String sql2 = " SELECT gc.PERSONNEL AS \"personnel\",gc.ID_PHOTO AS \"idPhoto\"" + + " FROM GREEN_CARD gc WHERE gc.DATA_ID = ? "; + userInfoVos = iHibernateDao.queryForListWithSql(sql2.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.UserInfoVo.class)); + // 处理人员照片 + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo vo2 = userInfoVos.get(i); + String idPhoto = vo2.getIdPhoto(); + if (StringUtils.isNotBlank(idPhoto)) { // 人脸照片 + vo2.setIdPhoto(baseService.getImageBase64(idPhoto)); + } + } + cardVo.setUserInfoVos(userInfoVos); + // 查询审核详情 + List auditVos = getAudits(vo); + cardVo.setAuditVos(auditVos); + } + return new RestResult(Constant.SUCCESS, "查询成功", cardVo); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 施工出入证详情 + * + * @param vo + * @return + */ + public RestResult getSgCardDetail(CardVo vo) { + try { + List dataList = new ArrayList(); + CardVo cardVo = new CardVo(); + List parameter = new ArrayList(); + String sql = " SELECT MAX(gc.CARD_TYPE) AS \"cardType\",MAX(gc.TYPE_NAME) AS \"typeName\"," + + " MAX(gc.APPLY_TIME) AS \"applyTime\",MAX(gc.DATA_ID) AS \"dataId\"," + + " MAX(gc.EXAMINE_BATCH) AS \"examineBatch\",MAX(gc.EXAMINE_STATE) AS \"examineState\"," + + " MAX(gc.PRO_UNIT) AS \"proUnit\",MAX(gc.PRO_MANAGER) AS \"proManager\"," + + " MAX(gc.PRO_MANAGER_PHONE) AS \"proManagerPhone\",MAX(gc.XMGK_ORG_NAME) AS \"xmgkOrgName\"," + + " MAX(gc.JB_USER_NAME) AS \"jbUserName\",MAX(gc.JB_USER_PHONE) AS \"jbUserPhone\"," + + " 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.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()); + dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.class)); + if (CollectionUtils.isNotEmpty(dataList)) { + // 查询基本信息 + cardVo = dataList.get(0); + // 查询人员信息 + List userInfoVos = new ArrayList(); + String sql2 = " SELECT gc.PERSONNEL AS \"personnel\",gc.ID_PHOTO AS \"idPhoto\"," + + " gc.ID_NUMBER AS \"idNumber\"" + " FROM GREEN_CARD gc WHERE gc.DATA_ID = ? "; + userInfoVos = iHibernateDao.queryForListWithSql(sql2.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.UserInfoVo.class)); + // 处理人员照片 + for (int i = 0; i < userInfoVos.size(); i++) { + UserInfoVo vo2 = userInfoVos.get(i); + String idPhoto = vo2.getIdPhoto(); + if (StringUtils.isNotBlank(idPhoto)) { // 人脸照片 + vo2.setIdPhoto(baseService.getImageBase64(idPhoto)); + } + } + cardVo.setUserInfoVos(userInfoVos); + // 查询审核详情 + List auditVos = getAudits(vo); + cardVo.setAuditVos(auditVos); + } + return new RestResult(Constant.SUCCESS, "查询成功", cardVo); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 获取区域列表 + * + * @param vo + * @return + */ + public String getAreaData(CardVo vo) { + 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 = '" + vo.getDataId() + "' AND gac.IS_DELETE = 'N'"; + List> 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> areaList2 = iHibernateDao.queryForListWithSql(areaSql2); + // 处理出入区域数据 + System.err.println("areaList2:" + areaList2.size()); + String accessArea = this.setAreaData(areaList, areaList2); + return accessArea; + } + return ""; + } + + /** + * 处理出入区域 + * + * @param list + * @param list2 + * @return + */ + public String setAreaData(List> list, List> list2) { + List> returnList = new ArrayList>(); + 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)) { + Map data = new HashMap(); + data.put("address", list2.get(i).get("name")); + data.put("addressId", id); + data.put("area", area.substring(0, area.lastIndexOf(","))); + data.put("areaIds", areaId.substring(0, areaId.lastIndexOf(","))); + returnList.add(data); + } + } + } catch (Exception e) { + e.printStackTrace(); + System.err.println("区域处理"); + } + return JSON.toJSONString(returnList); + } + + /** + * 查询审核详情 + * + * @param vo + * @return + */ + @SuppressWarnings("unchecked") + public List getAudits(CardVo vo) { + List dataList = new ArrayList(); + List parameter = new ArrayList(); + parameter.add(vo.getDataId()); + String sql = " SELECT USER_NAME AS \"userName\",EXAMINE_STATE AS \"examineState\"," + + " EXAMINE_TIME AS \"examineTime\",EXAMINE_BATCH AS \"examineBatch\"," + + " BATCH_DESCRIPTION AS \"batchDescription\"" + " FROM GREEN_CARD_EXAMINE " + + " WHERE DEL_FLAG = '0' and CARD_ID = ? ORDER BY EXAMINE_BATCH ASC"; + dataList = iHibernateDao.queryForListWithSql(sql.toString(), parameter.toArray(), + new BeanPropertyRowMapper(CardVo.AuditVo.class)); + return dataList; + } + + /** + * 门禁卡办理记录 + * + * @param vo + * @return + */ + public RestResult getCardList(CardVo vo) { + try { + String sql = " SELECT * FROM (SELECT ROWNUM num,A.* FROM ( " + + " SELECT * FROM (SELECT MAX(gc.DATA_ID) AS \"dataId\",MAX(gc.CARD_TYPE) AS \"carType\"," + + " MAX(gc.TYPE_NAME) AS \"typeName\",MAX(gc.APPLY_TIME) AS \"applyTime\"," + + " MAX(gc.EXAMINE_BATCH) AS \"examineBatch\",MAX(gc.EXAMINE_STATE) AS \"examineState\"" + + " FROM GREEN_CARD gc " + + " WHERE gc.USER_ID = ? GROUP BY gc.DATA_ID) B ORDER BY B.\"applyTime\" DESC) " + " A WHERE ROWNUM<=?) WHERE num > ?"; + System.err.println(sql); + Integer pageSize = vo.getPageSize(); + Integer pageNum = vo.getPageNum(); + Integer page = (pageNum - 1) * pageSize; + Integer limit = pageNum * pageSize; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { vo.getUserId(), limit, page }); + return new RestResult(Constant.SUCCESS, "查询成功", list); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 获取部门 + * @param vo + * @return + */ + public RestResult getDeptList(CardVo vo) { + try { + String sql = " SELECT ID AS \"id\",NAME AS \"name\"" + + " FROM GREEN_DEPARTMENT WHERE IS_DELETED = 'N'"; + List> list = iHibernateDao.queryForListWithSql(sql); + return new RestResult(Constant.SUCCESS, "查询成功", list); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 根据部门查询部门下的人员 + * @param vo + * @return + */ + public RestResult getUserInfoByDept(CardVo vo) { + try { + String sql = " SELECT ID AS \"id\",REAL_NAME AS \"name\",MOBILE AS \"phone\"" + + " FROM GREEN_USER_INFO WHERE DEPARTMENT_ID = ? AND IS_DELETED = 'N' AND USERTYPE = '0'"; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { vo.getXmgkOrgId()}); + return new RestResult(Constant.SUCCESS, "查询成功", list); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 根据类型编码查询字典数据 + * @param vo + * @return + */ + public RestResult getDictByType(CardVo vo) { + try { + String sql = " SELECT ID AS \"id\",DESCRIPTION AS \"value\"" + + " FROM GREEN_DICTIONARY_INFO WHERE DATA_TYPE = ? AND IS_DELETED = 'N'"; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { vo.getType()}); + return new RestResult(Constant.SUCCESS, "查询成功", list); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 办卡/办证-审核 + * @param vo + * @return + */ + public RestResult auditData(CardVo vo) { + switch (vo.getCardType()) { + case "职工卡": + return auditEmployeeCard(vo); + case "第三方人员": + return auditThirdPartyPersonnelCard(vo); + case "VIP贵宾": + return auditVipCard(vo); + case "临时出入证": + return auditLsAndSgCard(vo); + case "施工出入证": + return auditLsAndSgCard(vo); + default: + break; + } + return new RestResult(Constant.FAILED, "操作失败"); + } + + /** + * 职工卡-审批 + * @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> 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> 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) { + try { + // 审批流程->项目归口管理部门负责人审核->制卡经办人审核->制卡部门负责人审核->项目归口管理部门分管领导审核->制卡经办人抄送 + Boolean repeatAudit = isRepeatAudit(vo); + if(repeatAudit){ + return new RestResult(Constant.FAILED, "请勿重复审核,刷新页面重试"); + } + List> 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()); + } + }else if(Objects.equals(vo.getExamineState(), "1") && Objects.equals(vo.getExamineBatch(), "4")){ + // 4.项目归口管理部门分管领导审核 ----> 项目归口管理部门分管领导审核通过直接抄送制卡经办人审批流程结束 + vo.setExamineBatch(nextExamineBatch); + vo.setCheckRole(auditNodeList.get(1).get("checkRole")); + vo.setExamineState("1"); + List> 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, "操作成功"); + } + + /** + * VIP贵宾-审批 + * @param vo + * @return + */ + public RestResult auditVipCard(CardVo vo) { + try { + // 审批流程->经办部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人填写归还时间及备注 + Boolean repeatAudit = isRepeatAudit(vo); + if(repeatAudit){ + return new RestResult(Constant.FAILED, "请勿重复审核,刷新页面重试"); + } + if(Objects.equals(vo.getExamineBatch(), "4")){ + if(StringUtils.isEmpty(vo.getActualBackTime())){ + return new RestResult(Constant.FAILED, "实际归还时间不能为空"); + } + if(StringUtils.isEmpty(vo.getRemark())){ + return new RestResult(Constant.FAILED, "备注不能为空"); + } + } + List> 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()); + } + }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, "操作成功"); + } + + /** + * 临时出入证-审批/施工出入证-审批 + * @param vo + * @return + */ + public RestResult auditLsAndSgCard(CardVo vo) { + try { + // 审批流程->项目归口管理部门负责人审核->制卡经办人审核->制卡部门负责人审核->制卡经办人填写证件有效期 + Boolean repeatAudit = isRepeatAudit(vo); + if(repeatAudit){ + return new RestResult(Constant.FAILED, "请勿重复审核,刷新页面重试"); + } + if(Objects.equals(vo.getExamineBatch(), "4")){ + if(StringUtils.isEmpty(vo.getCardStartTime()) || StringUtils.isEmpty(vo.getCardEndTime())){ + return new RestResult(Constant.FAILED, "证件有效期不能为空"); + } + } + List> 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()); + } + }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 + */ + public Boolean isRepeatAudit(CardVo vo){ + Boolean isFlag = false; + try { + String sql = "SELECT COUNT(*) FROM GREEN_CARD WHERE DATA_ID = ? AND EXAMINE_BATCH > ?"; + Integer result = iHibernateDao.queryForIntWithSql(sql, + new Object[] { vo.getDataId(),vo.getExamineBatch()}); + if(result > 0){ + isFlag = true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return isFlag; + } + + /** + * 查询当前审批节点和下一审批节点 + * @param vo + * @return + */ + public List> getNextAuditNodeRole(CardVo vo){ + 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"; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { vo.getCheckId(),examineBatch,nextExamineBatch}); + return list; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 添加审批节点数据 + * @param vo + */ + public void addExamineData(CardVo vo){ + String uuid = UUID.randomUUID().toString().replace("-", ""); + 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, vo.getDataId(), vo.getUserId(), vo.getUserName(), + vo.getExamineState(), vo.getExamineOpinion(), DateTimeHelper.getNowDate(), + vo.getExamineBatch(), vo.getDescription() }); + } + + /** + * 更新办卡、办证的审批状态、审批节点、及其他数据 + * @param vo + */ + public void updateCardAuditData(CardVo vo){ + List parameter = new ArrayList(); + String sql = "UPDATE GREEN_CARD SET EXAMINE_BATCH = ?,EXAMINE_STATE = ?,CHECK_ROLE = ?"; + parameter.add(vo.getExamineBatch()); + parameter.add(vo.getExamineState()); + parameter.add(vo.getCheckRole()); + if(StringUtils.isNotBlank(vo.getActualBackTime())){ // 实际归还时间 + parameter.add(vo.getActualBackTime()); + sql += ",ACTUAL_BACK_TIME = ?"; + } + if(StringUtils.isNotBlank(vo.getRemark())){ // 备注 + parameter.add(vo.getRemark()); + sql += ",REMARK = ?"; + } + if(StringUtils.isNotBlank(vo.getCardStartTime())){ // 证件有效期开始时间 + parameter.add(vo.getCardStartTime()); + sql += ",CARD_START_TIME = ?"; + } + if(StringUtils.isNotBlank(vo.getCardEndTime())){ // 证件有效期结束时间 + parameter.add(vo.getCardEndTime()); + sql += ",CARD_END_TIME = ?"; + } + if(StringUtils.isNotBlank(vo.getOperCardId())){ // 制卡经办人 + parameter.add(vo.getOperCardId()); + sql += ",OPER_CARD_ID = ?"; + } + sql += " WHERE DATA_ID = ?"; + iHibernateDao.executeSqlUpdate(sql,parameter.toArray()); + } + + /** + * 获取抄送人信息 + * @param vo + * @param examineBatch + * @return + */ + public List> getSendUserInfo(CardVo vo,String examineBatch){ + try { + String sql = "SELECT USER_ID AS \"userId\",USER_NAME AS \"userName\" " + + " FROM GREEN_CARD_EXAMINE " + + " WHERE CARD_ID = ? AND EXAMINE_BATCH = ?"; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { vo.getDataId(),examineBatch}); + return list; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 抄送制卡经办人 + * + * @param vo + */ + public void pushInfo2(CardVo vo) { + String title = "" + vo.getCardType() + "申请"; + String text = "您好,您有新的" + vo.getCardType() + "申请需要审批,请点击查看。"; + String url = "/pages/access-card/card-record"; + aliasManageController.pushToSingle(vo.getCheckUserId(), title, text, url); + } + + + /** + * 查询未审批和已审批的数据 + * @param vo + * @return + */ + public RestResult getAuditData(CardVo vo) { + switch (vo.getType()) { + case "0": + return getUnapprovedData(vo); + case "1": + return getApprovedData(vo); + default: + break; + } + return new RestResult(Constant.FAILED, "查询失败"); + + } + + /** + * 未审批数据 + * @param vo + * @return + */ + public RestResult getUnapprovedData(CardVo vo){ + try { + // 获取当前登录人的角色 + String currentUserRole = getCurrentUserRole(vo); + String userId = vo.getUserId(); + String sql = " SELECT * FROM (SELECT ROWNUM num,A.* FROM ( " + + " SELECT * FROM (" + + " SELECT MAX(gc.DATA_ID) AS \"dataId\",MAX(gc.CARD_TYPE) AS \"carType\"," + + " MAX(gc.TYPE_NAME) AS \"typeName\",MAX(gc.APPLY_TIME) AS \"applyTime\"," + + " 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.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 > ?"; + Integer pageSize = vo.getPageSize(); + Integer pageNum = vo.getPageNum(); + Integer page = (pageNum - 1) * pageSize; + Integer limit = pageNum * pageSize; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { userId,currentUserRole,currentUserRole,userId, limit, page }); + return new RestResult(Constant.SUCCESS, "查询成功", list); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 已审批数据 + * @param vo + * @return + */ + public RestResult getApprovedData(CardVo vo){ + try { + String userId = vo.getUserId(); + String sql = " SELECT * FROM (SELECT ROWNUM num,A.* FROM ( " + + " SELECT * FROM (" + + " SELECT MAX(gc.DATA_ID) AS \"dataId\",MAX(gc.CARD_TYPE) AS \"carType\"," + + " MAX(gc.TYPE_NAME) AS \"typeName\",MAX(gc.APPLY_TIME) AS \"applyTime\"," + + " MAX(gc.EXAMINE_BATCH) AS \"examineBatch\",MAX(gc.EXAMINE_STATE) AS \"examineState\"" + + " FROM GREEN_CARD gc " + + " LEFT JOIN GREEN_CARD_EXAMINE gce ON gc.ID = ghcd.CARD_ID " + + " WHERE (gc.CARD_TYPE IN ('职工卡','第三方人员') AND gce.USER_ID = ? ) OR" + + " (gc.CARD_TYPE IN ('VIP贵宾','临时出入证','施工出入证') AND gc.EXAMINE_BATCH IN ('1','2','3') AND gce.USER_ID = ? ) OR" + + " (gc.CARD_TYPE IN ('VIP贵宾','临时出入证','施工出入证') AND gc.EXAMINE_BATCH = '4' AND gc.EXAMINE_STATE = '0' AND gce.USER_ID = '0' ) OR" + + " (gc.CARD_TYPE IN ('VIP贵宾','临时出入证','施工出入证') AND gc.EXAMINE_BATCH = '4' AND gc.EXAMINE_STATE = '1' AND gce.USER_ID = ? ) OR" + + " GROUP BY gc.DATA_ID" + + ") B ORDER BY B.\"applyTime\" DESC) " + " A WHERE ROWNUM <= ?) WHERE num > ?"; + Integer pageSize = vo.getPageSize(); + Integer pageNum = vo.getPageNum(); + Integer page = (pageNum - 1) * pageSize; + Integer limit = pageNum * pageSize; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { userId,userId,userId, limit, page }); + return new RestResult(Constant.SUCCESS, "查询成功", list); + } catch (Exception e) { + e.printStackTrace(); + return new RestResult(Constant.FAILED, "查询失败"); + } + } + + /** + * 查询当前登录人的角色 + * @return + */ + public String getCurrentUserRole(CardVo vo){ + String currentUserRole = ""; + try { + String sql = "SELECT USER_ID AS \"userId\",ROLE_ID AS \"roleId\" " + + " FROM GREEN_USER_ROLE_REL " + + " WHERE USER_ID = ? AND IS_DELETED = 'N'"; + List> list = iHibernateDao.queryForListWithSql(sql, + new Object[] { vo.getUserId()}); + if(CollectionUtils.isNotEmpty(list)){ + currentUserRole = list.get(0).get("roleId"); + } + } catch (Exception e) { + e.printStackTrace(); + } + return currentUserRole; + } + +} diff --git a/greenH5modul/src/com/nationalelectric/greenH5/GreenMainInterfaceController.java b/greenH5modul/src/com/nationalelectric/greenH5/GreenMainInterfaceController.java index 3e0d7f7..9fc6979 100644 --- a/greenH5modul/src/com/nationalelectric/greenH5/GreenMainInterfaceController.java +++ b/greenH5modul/src/com/nationalelectric/greenH5/GreenMainInterfaceController.java @@ -30,6 +30,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import com.gexin.fastjson.JSON; import com.jysoft.card.controller.CardController; +import com.jysoft.card.controller.NewCardController; +import com.jysoft.card.entity.vo.CardVo; import com.jysoft.card.service.GreenCard; import com.jysoft.property.controller.PropertyController; import com.jysoft.property.entity.GreenPropertyEntity; @@ -116,6 +118,9 @@ import net.sf.json.JSONObject; public class GreenMainInterfaceController { private static final Pattern compile = Pattern.compile(ConstantRegex.REGEX_010); + + @Resource + private NewCardController newCardController; @Resource private GreenParkThirdController greenParkThirdController; @@ -3375,6 +3380,87 @@ public class GreenMainInterfaceController { } TrrafficVisUserDto dto = (TrrafficVisUserDto) JSONObject.toBean(data, TrrafficVisUserDto.class); return trrafficVisController.getUserInfo(dto); + }else if ("greenNewCard/getAuditCheckUser".equals(method)) { + if (Utils.list.contains("greenNewCard/getAuditCheckUser" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/getAuditCheckUser" + checkTime); + } + CardVo vo = (CardVo) JSONObject.toBean(data, CardVo.class); + return newCardController.getAuditCheckUser(vo); + }else if ("greenNewCard/addCardData".equals(method)) { + if (Utils.list.contains("greenNewCard/addCardData" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/addCardData" + checkTime); + } +// CardVo vo = (CardVo) JSONObject.toBean(data, CardVo.class); + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.addCardData(vo); + }else if ("greenNewCard/getDetailInfo".equals(method)) { + if (Utils.list.contains("greenNewCard/getDetailInfo" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/getDetailInfo" + checkTime); + } + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.getDetailInfo(vo); + }else if ("greenNewCard/getCardList".equals(method)) { + if (Utils.list.contains("greenNewCard/getCardList" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/getCardList" + checkTime); + } + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.getCardList(vo); + }else if ("greenNewCard/getDeptList".equals(method)) { + if (Utils.list.contains("greenNewCard/getDeptList" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/getDeptList" + checkTime); + } + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.getDeptList(vo); + }else if ("greenNewCard/getUserInfoByDept".equals(method)) { + if (Utils.list.contains("greenNewCard/getUserInfoByDept" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/getUserInfoByDept" + checkTime); + } + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.getUserInfoByDept(vo); + }else if ("greenNewCard/getDictByType".equals(method)) { + if (Utils.list.contains("greenNewCard/getDictByType" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/getDictByType" + checkTime); + } + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.getDictByType(vo); + }else if ("greenNewCard/auditData".equals(method)) { + if (Utils.list.contains("greenNewCard/auditData" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/auditData" + checkTime); + } + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.auditData(vo); + }else if ("greenNewCard/getAuditData".equals(method)) { + if (Utils.list.contains("greenNewCard/getAuditData" + checkTime)) { + return new RestResult(Constant.FAILED, "您的请求存在异常!请重新请求..."); + } else { + Utils.list.add("greenNewCard/getAuditData" + checkTime); + } + ObjectMapper objectMapper = new ObjectMapper(); + CardVo vo = objectMapper.readValue(dataStr, CardVo.class); + return newCardController.getAuditData(vo); }