| | |
| | | package org.jeecg.modules.eam.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.jeecg.dingtalk.api.user.vo.User; |
| | | import com.jeecg.dingtalk.api.user.vo.UserRole; |
| | | import org.jeecg.common.api.dto.message.MessageDTO; |
| | | import org.jeecg.common.system.api.ISysBaseAPI; |
| | | import org.jeecg.common.system.query.QueryGenerator; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.jeecg.common.system.base.controller.JeecgController; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.modules.eam.entity.Equipment; |
| | | import org.jeecg.modules.eam.service.IEamEquipmentService; |
| | | import org.jeecg.modules.eam.vo.ButtonVo; |
| | | import org.jeecg.modules.system.entity.*; |
| | | import org.jeecg.modules.system.service.*; |
| | | import org.jetbrains.annotations.NotNull; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | import java.util.Arrays; |
| | | |
| | | import java.util.*; |
| | | |
| | | import org.jeecg.common.util.oConvertUtils; |
| | | import org.jeecg.modules.eam.entity.StreamOperation; |
| | | import org.jeecg.modules.eam.entity.ABCAssessment; |
| | |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | import java.io.IOException; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private IABCAssessmentService aBCAssessmentService; |
| | | |
| | | @Autowired |
| | | private ISysUserRoleService userRoleService; |
| | | |
| | | @Autowired |
| | | private ISysRoleService roleService; |
| | | |
| | | @Autowired |
| | | private ISysDictService sysDictService; |
| | | |
| | | @Autowired |
| | | private ISysDictItemService sysDictItemService; |
| | | |
| | | @Autowired |
| | | private ISysBaseAPI sysBaseAPI; |
| | | |
| | | @Autowired |
| | | private ISysUserService userService; |
| | | |
| | | @Autowired |
| | | private IEamEquipmentService equipmentService; |
| | | |
| | | |
| | | |
| | | /*---------------------------------主表å¤ç-begin-------------------------------------*/ |
| | |
| | | List<ABCAssessment> aBCAssessmentList = aBCAssessmentService.selectByMainId(id); |
| | | return Result.OK(aBCAssessmentList); |
| | | } |
| | | @GetMapping("getPreInfo") |
| | | public Result<Map<String,Object>> getPreInfo(){ |
| | | Map<String,Object> map = new HashMap<>(3); |
| | | LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | SysDict roleNode = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","abc_stream_node_role"),false); |
| | | SysDict nodeOperation = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","stream_node_operation"),false); |
| | | SysDict operation = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","stream_operation"),false); |
| | | if(ObjectUtils.isNotNull(roleNode)){ |
| | | List<SysDictItem> roleNodeItems = sysDictItemService.selectItemsByMainId(roleNode.getId()); |
| | | List<String> roleCodes = roleNodeItems.stream().map(SysDictItem::getItemText).collect(Collectors.toList()); |
| | | if(ObjectUtils.isNotNull(nodeOperation)){ |
| | | List<SysDictItem> nodeOperationItems = sysDictItemService.selectItemsByMainId(nodeOperation.getId()); |
| | | List<SysUserRole> userRoles = userRoleService.list(new QueryWrapper<SysUserRole>().eq("user_id",user.getId())); |
| | | List<String> roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); |
| | | List<SysRole> roles = roleService.list(new QueryWrapper<SysRole>().in("id",roleIds).in("role_code",roleCodes)); |
| | | if(roles.size()==1){ |
| | | for(SysDictItem roleNodeItem:roleNodeItems){ |
| | | if(roles.get(0).getRoleCode().equals(roleNodeItem.getItemText())){ |
| | | for(SysDictItem nodeOperationItem:nodeOperationItems){ |
| | | if(roleNodeItem.getItemValue().equals(nodeOperationItem.getItemValue())){ |
| | | if(ObjectUtils.isNotNull(operation)){ |
| | | List<String> buttonvalues = Arrays.asList(nodeOperationItem.getItemText().split(",")); |
| | | List<SysDictItem> operations = sysDictItemService.selectItemsByMainId(operation.getId()); |
| | | List<ButtonVo> buttons = new ArrayList<>(); |
| | | for(String value:buttonvalues){ |
| | | for(SysDictItem name:operations){ |
| | | if(name.getItemValue().equals(value)){ |
| | | ButtonVo button = new ButtonVo(); |
| | | button.setName(name.getItemText()); |
| | | button.setValue(value); |
| | | buttons.add(button); |
| | | } |
| | | } |
| | | } |
| | | map.put("buttons",buttons); |
| | | map.put("nodeValue",nodeOperationItem.getItemValue()); |
| | | map.put("nodeSort",roleNodeItem.getSortOrder()); |
| | | map.put("msg","ok"); |
| | | return Result.OK(map); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | map.put("msg","è¯¥ç¨æ·æ ç¾å®¡è§è²"); |
| | | return Result.OK(map); |
| | | } |
| | | @PostMapping("next") |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Result<?> handleNext(@RequestBody ButtonVo buttonVo){ |
| | | LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | List<StreamOperation> streamOperations = streamOperationService.list(new QueryWrapper<StreamOperation>().eq("stream_id",buttonVo.getStreamId()).orderByDesc("sort")); |
| | | SysDict streamNode = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","stream_node"),false); |
| | | if(ObjectUtils.isNotNull(streamNode)){ |
| | | List<SysDictItem> nodes = sysDictItemService.selectItemsByMainId(streamNode.getId()); |
| | | if(buttonVo.getNodeSort()+1==nodes.size()){ |
| | | List<ABCAssessment> abcAssessments = aBCAssessmentService.selectByMainId(buttonVo.getStreamId()); |
| | | for(ABCAssessment abcAssessment:abcAssessments){ |
| | | Equipment equipment = equipmentService.getById(abcAssessment.getEquipmentId()); |
| | | equipment.setEquipmentImportanceId(abcAssessment.getFinalStandard()); |
| | | equipmentService.updateById(equipment); |
| | | } |
| | | } |
| | | SysDictItem nextStreamNodeItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("dict_id",streamNode.getId()).eq("sort_order",buttonVo.getNodeSort()+1),false); |
| | | return getResult(buttonVo, user, streamOperations, nextStreamNodeItem); |
| | | } |
| | | return Result.error("ç¾å®¡æµç³»ç»åºç°é误ï¼è¯·è系管çå"); |
| | | } |
| | | |
| | | @NotNull |
| | | private Result<?> getResult(@RequestBody ButtonVo buttonVo, LoginUser user, List<StreamOperation> streamOperations, SysDictItem nextStreamNodeItem) { |
| | | SysDict roleNode = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","abc_stream_node_role"),false); |
| | | SysDictItem roleNodeItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("dict_id",roleNode.getId()).eq("item_value",nextStreamNodeItem.getItemValue())); |
| | | SysRole nextRole = roleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleNodeItem.getItemText())); |
| | | return getResult(buttonVo, user, streamOperations, nextStreamNodeItem,nextRole); |
| | | } |
| | | |
| | | @NotNull |
| | | private Result<?> getResult(@RequestBody ButtonVo buttonVo, LoginUser user, List<StreamOperation> streamOperations, SysDictItem nextStreamNodeItem,SysRole role) { |
| | | if(ObjectUtils.isNotNull(nextStreamNodeItem)){ |
| | | Stream stream = streamService.getById(buttonVo.getStreamId()); |
| | | stream.setStatus(nextStreamNodeItem.getItemValue()); |
| | | streamService.updateById(stream); |
| | | StreamOperation streamOperation = new StreamOperation(); |
| | | streamOperation.setOperation(buttonVo.getValue()); |
| | | streamOperation.setStreamId(stream.getId()); |
| | | streamOperation.setOperationNode(buttonVo.getNode()); |
| | | streamOperation.setUserId(user.getId()); |
| | | streamOperation.setCreateTime(new Date()); |
| | | streamOperation.setRemark(buttonVo.getRemark()); |
| | | if(streamOperations.size()==0){ |
| | | streamOperation.setSort(0); |
| | | } |
| | | else { |
| | | streamOperation.setSort(streamOperations.get(0).getSort()+1); |
| | | streamOperation.setSourceId(streamOperations.get(0).getId()); |
| | | } |
| | | streamOperationService.save(streamOperation); |
| | | List<String> userIds = userRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",role.getId())).stream().map(SysUserRole::getUserId).collect(Collectors.toList()); |
| | | for(String uId:userIds){ |
| | | SysUser toU = userService.getById(uId); |
| | | String msg = "åæ®å·ä¸º"+stream.getNum()+"çABCæ è¯åæ´åéè¦ç¡®è®¤"; |
| | | MessageDTO messageDTO = new MessageDTO(); |
| | | messageDTO.setTitle("ABCæ è¯åæ´"); |
| | | messageDTO.setContent(msg); |
| | | messageDTO.setCategory("ABCåæ´"); |
| | | messageDTO.setFromUser(user.getUsername()); |
| | | messageDTO.setToUser(toU.getUsername()); |
| | | sysBaseAPI.sendSysAnnouncement(messageDTO); |
| | | } |
| | | return Result.OK("æä½æå"); |
| | | }else { |
| | | return Result.error("ç¾å®¡æµç³»ç»åºç°é误ï¼è¯·è系管çå"); |
| | | } |
| | | } |
| | | |
| | | @PostMapping("last") |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public Result<?> handleLast(@RequestBody ButtonVo buttonVo){ |
| | | LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | List<StreamOperation> streamOperations = streamOperationService.list(new QueryWrapper<StreamOperation>().eq("stream_id",buttonVo.getStreamId()).orderByDesc("sort")); |
| | | SysDict streamNode = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","stream_node"),false); |
| | | if(ObjectUtils.isNotNull(streamNode)){ |
| | | SysDictItem nextStreamNodeItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("dict_id",streamNode.getId()).eq("sort_order",buttonVo.getNodeSort()-1),false); |
| | | return getResult(buttonVo, user, streamOperations, nextStreamNodeItem); |
| | | } |
| | | return Result.error("ç¾å®¡æµç³»ç»åºç°é误ï¼è¯·è系管çå"); |
| | | } |
| | | |
| | | |
| | | } |