package com.landtool.lanbase.modules.res.controller; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.landtool.lanbase.common.annotation.LogAction; import com.landtool.lanbase.common.utils.Result; import com.landtool.lanbase.config.SysTemPropertyConfig; import com.landtool.lanbase.modules.api.utils.PageBean; import com.landtool.lanbase.modules.log.service.LogActionService; import com.landtool.lanbase.modules.org.service.OrgUnitService; import com.landtool.lanbase.modules.org.service.OrgUserService; import com.landtool.lanbase.modules.res.entity.Res_Audit; import com.landtool.lanbase.modules.res.entity.Res_MainInfo; import com.landtool.lanbase.modules.res.entity.UserDefined.MainInfoJoinAudit; import com.landtool.lanbase.modules.res.service.ResAuditService; import com.landtool.lanbase.modules.res.service.ResMainInfoService; import com.landtool.lanbase.modules.sys.controller.AbstractController; import com.landtool.lanbase.modules.sys.service.SysFieldvalueService; /** * 资源审核 */ @Controller public class ResAuditController extends AbstractController { @Autowired private ResAuditService resAuditService; @Autowired private ResMainInfoService resMainInfoService; @Autowired private SysTemPropertyConfig sysConfig; @Autowired private SysFieldvalueService FieldUtils; @Autowired private OrgUnitService orgUnitService; @Autowired private OrgUserService orgUserService; @Autowired private LogActionService logActionService; /** * 列表查询 */ @RequestMapping("/res/manage/audit/index") public String index(Model model) { // 获取下拉框目录 LinkedHashMap resourceTypeList = FieldUtils.getFieldListByKey("ResourceType");// 获取资源类型列表 model.addAttribute("resourceTypeList", resourceTypeList); model.addAttribute("pubzyWebRoot", sysConfig.getPubzyWebRoot()); model.addAttribute("systemName", sysConfig.getAppFullName()); String flag = "false"; Set permissions = orgUserService.getUserPermissions(getUserId()); if(permissions != null) { if(permissions.contains("res:resource:audit")) { flag = "true"; } } model.addAttribute("permissions",flag); return "manage/audit/index"; } /** * 获取列表 */ @ResponseBody @RequestMapping("/res/manage/audit/getlist") @LogAction("资源管理,资源审核,资源审核列表查询,查询") public Result getList(Res_MainInfo resMainInfo, PageBean pageBean) { PageHelper.startPage(pageBean.getPage(), pageBean.getLimit()); List mainInfoJoinAuditList = resMainInfoService.selectResMainInfojoinAudit(resMainInfo); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); int countNums = (int) ((Page) mainInfoJoinAuditList).getTotal(); PageBean pageData = new PageBean<>(pageBean.getPage(), pageBean.getLimit(), countNums); pageData.setItems(mainInfoJoinAuditList); LinkedHashMap ResourceTypeList = FieldUtils.getFieldListByKey("ResourceType");// 获取资源类型列表 List> maps = new LinkedList<>(); for (int i = 0; i < mainInfoJoinAuditList.size(); i++) { String resourceclass = ResourceTypeList.get(mainInfoJoinAuditList.get(i).getResourceclass()); if (resourceclass == null) resourceclass = ""; String unitname = orgUnitService.getUnitName((long) mainInfoJoinAuditList.get(i).getPubunitid()); String chinesename = orgUserService.getChinesename(mainInfoJoinAuditList.get(i).getAudituserid()); Map map = new HashMap<>(); map.put("resourceid", mainInfoJoinAuditList.get(i).getResourceid()); map.put("title", mainInfoJoinAuditList.get(i).getTitle()); map.put("resourceclass", resourceclass); map.put("pubunitid", unitname); map.put("pubdate", sdf.format(mainInfoJoinAuditList.get(i).getPubdate())); map.put("audituserid", chinesename); map.put("auditstatus", mainInfoJoinAuditList.get(i).getAuditstatus()); maps.add(map); } return Result.ok().put("totalCount",countNums).put("topics",maps); } /** * 保存审核状态 */ @ResponseBody @RequiresPermissions("res:resource:audit") @RequestMapping("/res/manage/audit/save") public String save(Res_MainInfo resMainInfo, String auditOpinion) { int result = 0; Integer ziYuanId = resMainInfo.getResourceid(); Integer status = resMainInfo.getAuditstatus(); Timestamp audittime = new Timestamp(new Date().getTime()); int isagreed = 0; if (status == 2) { logActionService.saveLogAction("资源管理,资源审核,资源审核(同意),修改");//添加系统操作日志 isagreed = 1; // 0:不同意,1:同意 } else if (status == 3) { logActionService.saveLogAction("资源管理,资源审核,资源审核(不同意),修改");//添加系统操作日志 isagreed = 0; } String auditlev = "I"; int actiontype = 0; // 0发布1注销2变更 Res_Audit resAudit = new Res_Audit(); resAudit.setResourceid(ziYuanId); resAudit.setAudituserid(getUserId().toString()); resAudit.setAudittime(audittime); resAudit.setAuditopinion(auditOpinion); resAudit.setIsagreed(isagreed); resAudit.setActiontype(actiontype); resAudit.setAuditlev(auditlev); int auditResult = resAuditService.insertSelective(resAudit); int finalResult = 0; if (auditResult == 1) { if (resMainInfo.getAuditstatus() == 2) { // 如果审核状态为审核通过,设置资源状态为正常 resMainInfo.setResourcestatus(0); } result = resMainInfoService.updateByPrimaryKeySelective(resMainInfo); } if (result != 1) { resAuditService.deleteByPrimaryKey(ziYuanId); } if (result == 1 && auditResult == 1) { finalResult = 1; } return "{'result':'" + finalResult + "'}"; } /** * 修改审核状态 */ @ResponseBody @RequestMapping("/res/manage/audit/modify") @LogAction("资源管理,资源审核,资源审核状态修改,修改")//添加系统操作日志 public String modify(String resourceid, String auditstatus) { int result = 0; Res_MainInfo mainInfo = resMainInfoService.selectByPrimaryKey(Integer.parseInt(resourceid)); if (mainInfo != null) { mainInfo.setAuditstatus(Integer.parseInt(auditstatus)); if (auditstatus.equals("0")) { // 如果变更为注销,则审核状态为0:未提交 mainInfo.setResourcestatus(3); } result = resMainInfoService.updateByPrimaryKeySelective(mainInfo); } return "{'result':'" + result + "'}"; } }