package com.zbooksoft.gdmis.common.operate; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruili.wcp.common.EncryptUtil; import com.ruili.wcp.common.SpringContextUtil; import com.ruili.wcp.data.entity.management.Dept; import com.ruili.wcp.data.entity.management.Role; import com.ruili.wcp.data.entity.management.User; import com.ruili.wcp.engine.form.IFormData; import com.ruili.wcp.service.management.DeptService; import com.ruili.wcp.service.management.RoleService; import com.ruili.wcp.service.management.UserService; import com.ruili.wcp.web.model.AjaxResponse; import com.ruili.wcp.web.model.ErrorInfo; import com.zbooksoft.gdmis.data.entity.UtilizationUser; import com.zbooksoft.gdmis.service.UtilizationUserService; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; import java.lang.reflect.InvocationTargetException; import java.text.SimpleDateFormat; import java.util.*; /** * @Description:利用审批用户操作 * @Author: zhai * @Date: 2024/8/26 **/ public class UtilizationUserOperate { private static final Logger logger = LoggerFactory.getLogger(UtilizationUserOperate.class); JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringContextUtil.getBean("jdbcTemplate"); UtilizationUserService utilizationUserService = (UtilizationUserService) SpringContextUtil.getBean("utilizationUserServiceImpl"); UserService userService = (UserService) SpringContextUtil.getBean("userServiceImpl"); DeptService deptService = (DeptService) SpringContextUtil.getBean("deptServiceImpl"); RoleService roleService = (RoleService) SpringContextUtil.getBean("roleServiceImpl"); IFormData iform = (IFormData) SpringContextUtil.getBean("iFormData"); /** * 审批通过 * * @param viewId * @param idList * @return * @throws InvocationTargetException * @throws IllegalAccessException */ public AjaxResponse registrationApproval(Long viewId, ArrayList idList) { Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); User user = (User) session.getAttribute("user"); try { String approval = user.getTrueName(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String approvalDate = sdf.format(new Date()); Long approvalId = user.getUserId(); // String updateSql = "UPDATE UTL_UTILIZATION_USER SET APPROVAL_DATE ='" + approvalDate + "',APPROVAL_ID =" + approvalId + " , APPROVAL = '" + approval + "' WHERE ID IN (" + StringUtils.join(idList, ",") + ")"; // String strSql = "update " + view.getMainTableName() + " set fbzt = 1 , FBRQ = TO_DATE('" + formattedDate + "', 'YYYY-MM-DD')"; String updateSql = "UPDATE UTL_UTILIZATION_USER SET APPROVAL_DATE = TO_DATE('" + approvalDate + "', 'YYYY-MM-DD'),APPROVAL_ID =" + approvalId + " , APPROVAL = '" + approval + "' WHERE ID IN (" + StringUtils.join(idList, ",") + ")"; jdbcTemplate.update(updateSql); return new AjaxResponse(true); } catch (Exception e) { logger.error(e.getMessage(), e); return new AjaxResponse(new ErrorInfo(e.getMessage()), false); } } /** * 删除后事件 * * @param viewId * @param idList * @return */ public AjaxResponse afterDelete(Long viewId, ArrayList idList) { for (int i = 0; i < idList.size(); i++) { try { UtilizationUser utilizationUser = utilizationUserService.getById(idList.get(i)); Long userId = utilizationUser.getUserId(); userService.removeById(userId); } catch (Exception e) { logger.error(e.getMessage(), e); return new AjaxResponse(new ErrorInfo(e.getMessage()), false); } } return new AjaxResponse(true); } /** * 人工添加利用用户保存后事件 * * @param formId * @param keyId * @param formData * @return */ public AjaxResponse afterSave(Long formId, Long keyId, Map formData) { String utilizationUserId = formData.get("USER_ID") == null ? "" : formData.get("USER_ID").toString(); String cardId = formData.get("ID_CARD").toString(); String mobile = formData.get("MOBILE").toString(); String userName = formData.get("USER_NAME").toString(); String pwd = cardId.substring(cardId.length() - 6, cardId.length()); String md5Pwd = EncryptUtil.getInstance().MD5(pwd); User user = new User(); if (StringUtils.isNotEmpty(utilizationUserId)) { user = userService.getUserById(Long.parseLong(utilizationUserId)); //登录名为身份证号,唯一性 user.setUserName(cardId); //默认取身份证后六位作为密码 user.setPassword(md5Pwd); user.setTrueName(userName); user.setMobilePhone(mobile); userService.saveOrUpdate(user); } else { //登录名为身份证号,唯一性 user.setUserName(cardId); //默认取身份证后六位作为密码 user.setPassword(md5Pwd); user.setTrueName(userName); Byte enableLogin = 1; user.setEnableLogin(enableLogin); user.setUserType(1); user.setMobilePhone(mobile); user.setCreateTime(new Date()); //用户设置为外部用户 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Dept::getDeptName, "外部用户"); Dept dept = deptService.getOne(wrapper); user.setDeptId(dept.getDeptId()); user.setDeptName("外部用户"); //插入系统用户表 userService.saveUser(user); Long userId = user.getUserId(); HashMap insertMap = new HashMap<>(); insertMap.put("ENABLE_LOGIN", 1); insertMap.put("PASSWORD", pwd); insertMap.put("LOGIN_NAME", cardId); insertMap.put("USER_ID", userId); iform.update(1826177548856377345L, insertMap, keyId); //初始化用户默认角色 List roles = roleService.addUserToDefaultRole(user.getUserId()); } return new AjaxResponse(true); } }