basic-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -90,7 +90,7 @@ </sql> <select id="selectStandardTreeList" resultMap="FactoryDto"> select 'ä¸å¤©ç§ææ£æµä¸å¿' factory, select '' factory, l.laboratory_name laboratory, sto.specimen_name sample_type, p.name sample, @@ -156,7 +156,7 @@ </select> <select id="selectStandardTreeList2" resultType="com.ruoyi.basic.pojo.StandardTree"> select 'ä¸å¤©ç§ææ£æµä¸å¿' factory, select '' factory, l.laboratory_name laboratory, sto.specimen_name sample_type, p.name sample @@ -237,7 +237,7 @@ where name = #{name} </select> <select id="selectStandardTreeListByPartNo" resultMap="FactoryDto"> select 'ä¸å¤©ç§ææ£æµä¸å¿' factory, select '' factory, l.laboratory_name laboratory, sto.specimen_name sample_type, p.name sample, cnas-device/pom.xml
@@ -19,22 +19,22 @@ <artifactId>inspect-server</artifactId> </dependency> <!--mqtt jarå --> <!-- https://mvnrepository.com/artifact/org.springframework.integration/spring-integration-mqtt --> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mqtt</artifactId> </dependency> <!--mqttéè¦çjarå --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId> </dependency> <!--mqttéè¦çjarå --> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-stream</artifactId> </dependency> <!-- <!–mqtt jarå –>--> <!-- <!– https://mvnrepository.com/artifact/org.springframework.integration/spring-integration-mqtt –>--> <!-- <dependency>--> <!-- <groupId>org.springframework.integration</groupId>--> <!-- <artifactId>spring-integration-mqtt</artifactId>--> <!-- </dependency>--> <!-- <!–mqttéè¦çjarå –>--> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-integration</artifactId>--> <!-- </dependency>--> <!-- <!–mqttéè¦çjarå –>--> <!-- <dependency>--> <!-- <groupId>org.springframework.integration</groupId>--> <!-- <artifactId>spring-integration-stream</artifactId>--> <!-- </dependency>--> </dependencies> <properties> cnas-device/src/main/java/com/ruoyi/device/mqtt/MQBean.java
ÎļþÒÑɾ³ý cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java
ÎļþÒÑɾ³ý cnas-device/src/main/java/com/ruoyi/device/mqtt/MQClient.java
ÎļþÒÑɾ³ý cnas-device/src/main/java/com/ruoyi/device/mqtt/MQConfig.java
ÎļþÒÑɾ³ý cnas-device/src/main/java/com/ruoyi/device/mqtt/MQPublic.java
ÎļþÒÑɾ³ý cnas-device/src/main/java/com/ruoyi/device/mqtt/MQSubscribe.java
ÎļþÒÑɾ³ý inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
ÎļþÒÑɾ³ý inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java
@@ -1,13 +1,8 @@ package com.ruoyi.inspect.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.oa.OAProcess; import com.ruoyi.inspect.dto.PushOADto; import com.ruoyi.inspect.dto.UnqualifiedHandlerDto; import com.ruoyi.inspect.pojo.InsUnqualifiedHandlerFile; import com.ruoyi.inspect.service.InsUnqualifiedHandlerFileService; @@ -19,9 +14,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; @RestController @Api("ä¸åæ ¼å¤ç管ç") @@ -32,19 +25,6 @@ private final InsUnqualifiedHandlerService unqualifiedHandlerService; private final InsUnqualifiedHandlerFileService unqualifiedHandlerFileService; private static final String REQUESTID = "requestId"; private static final String CHECKRESULT = "CHECKRESULT"; @ApiOperation(value = "æäº¤OA") @PostMapping("/pushOA") public Result pushOA(@RequestBody PushOADto pushOADto){ return unqualifiedHandlerService.pushOA(pushOADto); } @ApiOperation(value = "æ¥è¯¢") @GetMapping("/page") public Result pageByUnqualified(Page page, UnqualifiedHandlerDto unqualifiedHandlerDto){ @@ -60,38 +40,6 @@ } @Anonymous @ApiOperation(value = "ä¸åæ ¼å¤çOAåè°") @RequestMapping(value = "/callback", produces = "text/plain") public String unqualifiedHandlerOACallback(String data){ String msg = OAProcess.oaReturnMsg(0, "success"); JSONObject json = JSONObject.parseObject(data); log.info("oaåè°åæ°========>" + json); try { Long oaWorkId = json.getLong(REQUESTID); String checkResult = json.getString(CHECKRESULT); Object o = json.get("workflowRequestLogs"); JSONArray objects = JSONArray.parseArray(JSONObject.toJSONString(o)); unqualifiedHandlerService.unqualifiedHandlerOACallback(oaWorkId, checkResult,objects); } catch (Exception e) { log.error("oaåè°å¤±è´¥: " + e.getMessage()); msg = OAProcess.oaReturnMsg(1, "oaåè°å¤±è´¥: " + e.getMessage()); } log.info("oaåè°è¿åç»æ========>" + msg); return msg; } /** * ä¸è½½oaéä»¶ * @param handlerFileId * @param response */ @GetMapping("/downloadOAFile/{handlerFileId}") public void downloadOAFile(@PathVariable("handlerFileId") Long handlerFileId, HttpServletResponse response){ unqualifiedHandlerFileService.downloadOAFile(handlerFileId,response); } @ApiOperation(value = "æ°å¢ä¸åæ ¼å¤ç") @PostMapping("/addUnqualifiedHandler") public Result addUnqualifiedHandler(@RequestBody UnqualifiedHandlerDto unqualifiedHandlerDto){ @@ -103,13 +51,6 @@ @PostMapping("/updateUnqualifiedHandler") public Result updateUnqualifiedHandler(@RequestBody UnqualifiedHandlerDto unqualifiedHandlerDto){ return Result.success(unqualifiedHandlerService.updateUnqualifiedHandler(unqualifiedHandlerDto)); } @ApiOperation(value = "æ¥çoaæµç¨") @GetMapping("/getOaFlow") public Result getOaFlow(Integer id){ return Result.success(unqualifiedHandlerService.getOaFlow(id)); } inspect-server/src/main/java/com/ruoyi/inspect/dto/CostStatisticsDto.java
@@ -13,37 +13,37 @@ public class CostStatisticsDto{ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","ZTT/QR-30-01-01","æ¥æ"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","æ¥æ"}) private LocalDateTime createTime; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","ZTT/QR-30-01-01","æ£éªç¼å·"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","æ£éªç¼å·"}) private String entrustCode; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","æ ·ååç§°"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","æ ·ååç§°"}) private String sample; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","è§æ ¼åå·"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","è§æ ¼åå·"}) private String model; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","æ ·åæ°é"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","æ ·åæ°é"}) private Integer num; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","æ»ä»·"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","æ»ä»·"}) private BigDecimal price; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","è¯éªé¡¹ç®"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","è¯éªé¡¹ç®"}) private String inspectionItem; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","å§æåä½"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","å§æåä½"}) private String company; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","å§æäºº"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","å§æäºº"}) private String name; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","ç产åä½"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","ç产åä½"}) private String production; @ExcelProperty(value ={"ä¸å¤©ç§ææ£æµä¸å¿æ ·åç»è®°è¡¨","å·¥ç¨åç§°"}) @ExcelProperty(value ={"æ ·åç»è®°è¡¨","å·¥ç¨åç§°"}) private String engineering; @ExcelIgnore inspect-server/src/main/java/com/ruoyi/inspect/dto/PushOADto.java
ÎļþÒÑɾ³ý inspect-server/src/main/java/com/ruoyi/inspect/mapper/CommonOaMapper.java
ÎļþÒÑɾ³ý inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnqualifiedHandlerMapper.java
@@ -4,13 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.inspect.dto.UnqualifiedHandlerDto; import com.ruoyi.inspect.pojo.CommonOa; import com.ruoyi.inspect.pojo.InsUnqualifiedHandler; import com.ruoyi.inspect.vo.UnqualifiedHandlerVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * @author 27233 @@ -25,12 +22,6 @@ UnqualifiedHandlerVO findById(@Param("id") Long id); /** * æ¥çoaæµç¨ * @param id * @return */ List<CommonOa> getOaFlow(@Param("id") Integer id); } inspect-server/src/main/java/com/ruoyi/inspect/pojo/CommonOa.java
ÎļþÒÑɾ³ý inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandler.java
@@ -110,22 +110,4 @@ @ApiModelProperty(value = "订åid") private Integer insOrderId; /** * oa工使µid */ @ApiModelProperty(value = "oa工使µid") private Integer requestId; /** * oaå®¡æ ¸ç¶æ(1:å¾ å®¡æ ¸ 2:å®¡æ ¸ä¸ 3:éè¿ 4:驳å) */ @ApiModelProperty(value = "oaå®¡æ ¸ç¶æ") private Integer oaState; /** * oaéä»¶urlå°å */ @ApiModelProperty("oaéä»¶urlå°å") private String fileUrl; } inspect-server/src/main/java/com/ruoyi/inspect/service/CommonOaService.java
ÎļþÒÑɾ³ý inspect-server/src/main/java/com/ruoyi/inspect/service/InsUnqualifiedHandlerFileService.java
@@ -4,8 +4,6 @@ import com.ruoyi.inspect.pojo.InsUnqualifiedHandlerFile; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; /** * @author 27233 * @description é对表ãins_unqualified_handler_file(ä¸åæ ¼å¤çéä»¶è®°å½è¡¨)ãçæ°æ®åºæä½Service @@ -15,5 +13,4 @@ InsUnqualifiedHandlerFile uploadFile(Long handlerId, MultipartFile file); void downloadOAFile(Long handlerFileId, HttpServletResponse response); } inspect-server/src/main/java/com/ruoyi/inspect/service/InsUnqualifiedHandlerService.java
@@ -1,18 +1,11 @@ package com.ruoyi.inspect.service; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.Result; import com.ruoyi.inspect.dto.PushOADto; import com.ruoyi.inspect.dto.UnqualifiedHandlerDto; import com.ruoyi.inspect.pojo.CommonOa; import com.ruoyi.inspect.pojo.InsUnqualifiedHandler; import com.ruoyi.inspect.vo.UnqualifiedHandlerVO; import java.util.List; import java.util.Map; /** * @author 27233 @@ -22,12 +15,6 @@ public interface InsUnqualifiedHandlerService extends IService<InsUnqualifiedHandler> { IPage<UnqualifiedHandlerVO> pageList(Page page, UnqualifiedHandlerDto unqualifiedHandlerDto); Result pushOA(PushOADto pushOADto); void unqualifiedHandlerOACallback(Long oaWorkId, String checkResult, JSONArray objects); List<CommonOa> getOaFlow(Integer id); boolean addUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto); inspect-server/src/main/java/com/ruoyi/inspect/service/impl/CommonOaServiceImpl.java
ÎļþÒÑɾ³ý inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -648,13 +648,6 @@ if(isSplitOrder){ ifsInventoryQuantity.setIsSplitOrder(1); } //todo:䏿¸ æ¥ç¨éï¼ææ¶å±è½æ // æ¥è¯¢äº§ä¸é¾æ£æµæ°æ® // String industryChainAttrFields = IndustryChainUtils.getIndustryChainAttrFields(ifsInventoryQuantity.getOrderNo(), // ifsInventoryQuantity.getLineNo(), // ifsInventoryQuantity.getReleaseNo()); // ifsInventoryQuantity.setIndustryChain(industryChainAttrFields); ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); } } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerFileServiceImpl.java
@@ -1,6 +1,5 @@ package com.ruoyi.inspect.service.impl; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.UUID; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.framework.exception.ErrorException; @@ -12,12 +11,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.nio.file.Files; /** * @author 27233 @@ -72,35 +66,6 @@ e.printStackTrace(); log.error("éä»¶ä¸ä¼ é误"); throw new ErrorException(e.getMessage()); } } @Override public void downloadOAFile(Long handlerFileId, HttpServletResponse response) { response.reset(); String fileName; try { //æ¥è¯¢ä¸ä¼ éä»¶è®°å½ InsUnqualifiedHandlerFile file = baseMapper.selectById(handlerFileId); if (file != null){ fileName = file.getFileName(); fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString()); response.setContentType("application/vnd.ms-excel"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); //è·åæä»¶å¤¹è·¯å¾ String path = file.getType()==1?imgUrl:wordUrl; //æä»¶å®æ´è·¯å¾ String fullPath = path + file.getFileUrl(); //夿æä»¶æ¯å¦åå¨ File fullFile = new File(fullPath); if(fullFile.exists()){ IoUtil.copy(Files.newInputStream(fullFile.toPath()),response.getOutputStream()); } } } catch (IOException e) { throw new RuntimeException(e); } } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
@@ -1,46 +1,28 @@ package com.ruoyi.inspect.service.impl; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.oa.OAProcess; import com.ruoyi.common.oa.OAProperty; import com.ruoyi.common.oa.OAResult; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.dto.PushOADto; import com.ruoyi.inspect.dto.UnqualifiedHandlerDto; import com.ruoyi.inspect.mapper.InsOrderMapper; import com.ruoyi.inspect.mapper.InsUnqualifiedHandlerMapper; import com.ruoyi.inspect.pojo.CommonOa; import com.ruoyi.inspect.pojo.InsOrder; import com.ruoyi.inspect.pojo.InsUnqualifiedHandler; import com.ruoyi.inspect.pojo.InsUnqualifiedHandlerFile; import com.ruoyi.inspect.service.CommonOaService; import com.ruoyi.inspect.service.InsUnqualifiedHandlerFileService; import com.ruoyi.inspect.service.InsUnqualifiedHandlerService; import com.ruoyi.inspect.vo.UnqualifiedHandlerVO; import com.ruoyi.system.mapper.UserMapper; import com.ruoyi.system.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author 27233 @@ -48,14 +30,8 @@ * @createDate 2024-07-31 13:38:14 */ @Service @Slf4j public class InsUnqualifiedHandlerServiceImpl extends ServiceImpl<InsUnqualifiedHandlerMapper, InsUnqualifiedHandler> implements InsUnqualifiedHandlerService { @Resource private CommonOaService commonOaService; @Resource private OAProperty oaProperty; @Resource private InsUnqualifiedHandlerFileService insUnqualifiedHandlerFileService; @Resource @@ -67,135 +43,6 @@ return baseMapper.selectPageList(page, QueryWrappers.queryWrappers(unqualifiedHandlerDto)); } @Override public Result pushOA(PushOADto pushOADto) { //è·åä¸åæ ¼å¤çè®°å½ UnqualifiedHandlerVO vo = baseMapper.findById(pushOADto.getHandlerId()); if (vo.getRequestId() != null) { throw new ErrorException("该ä¸åæ ¼å¤çå·²æäº¤è¿OA"); } //æäº¤oaç¸å ³å段èµå¼ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); Map<String, String> mainFields = new HashMap<>(); mainFields.put("bh", vo.getNo());//ç¼å· mainFields.put("gysmc", vo.getSupplierName());//ä¾åºååç§° mainFields.put("wlmc", vo.getMaterialName());//ç©æåç§° mainFields.put("scpc", vo.getProductionBatch());//çäº§æ¹æ¬¡ mainFields.put("dhsl", vo.getCargoQuantity());//å°è´§æ°é mainFields.put("ggxh", vo.getSpecsModels());//è§æ ¼åå· mainFields.put("bjrq", vo.getInspectTime().format(formatter));//æ¥æ£æ¥æ mainFields.put("fkr", SecurityUtils.getUsername());//åé¦äºº mainFields.put("fkrq", vo.getFeedbackTime().format(formatter));//å馿¥æ mainFields.put("fl", vo.getClassification());//åç±» mainFields.put("bhggs", vo.getOffGradeAscription());//ä¸åæ ¼å½å± mainFields.put("bhgqkms", vo.getUnqualifiedDesc());//ä¸åæ ¼æ åµæè¿° //æ¥è¯¢éä»¶ List<InsUnqualifiedHandlerFile> handlerFiles = insUnqualifiedHandlerFileService.list(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery() .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, vo.getHandlerId())); if (CollectionUtils.isNotEmpty(handlerFiles)) { StringBuilder fileUrl = new StringBuilder(); for (int i = 0; i < handlerFiles.size(); i++) { String path = handlerFiles.get(i).getType().equals(1) ? "/lims/img/" : "/lims/word/"; if (i == handlerFiles.size() - 1) { fileUrl.append("<a href='" + oaProperty.getProdIp()).append(path + handlerFiles.get(i).getFileUrl() + "'target='_blank'>" + handlerFiles.get(i).getFileName() + "</a>"); } else { fileUrl.append("<a href='" + oaProperty.getProdIp()).append(path + handlerFiles.get(i).getFileUrl() + "'target='_blank'>" + handlerFiles.get(i).getFileName() + "</a>").append("<br/>"); } } mainFields.put("xlimsfj", fileUrl.toString()); } //æµç¨æ é¢ String requestName = vo.getHeadline(); //åèµ·OA boolean oa = false; try { log.info("åèµ·ä¸åæ ¼å¤çOAå®¡æ ¸æµç¨"); String unqualifiedProcessId = oaProperty.getUnqualifiedProcessId(); OAResult oaResult = OAProcess.start(mainFields, requestName, unqualifiedProcessId,SecurityUtils.getUsername()); log.info("ä¸åæ ¼å¤çOAå®¡æ ¸æµç¨ç»æï¼è¿åç»æ->{}" + oaResult); oa = oaResult.success(); if (oa) { String addWorkflowResult = oaResult.getAddWorkflowResult(); baseMapper.update(null, new LambdaUpdateWrapper<InsUnqualifiedHandler>() .set(InsUnqualifiedHandler::getRequestId, addWorkflowResult) .set(InsUnqualifiedHandler::getOaState, 2) .eq(InsUnqualifiedHandler::getId, pushOADto.getHandlerId())); } else { return Result.fail("æäº¤oa失败: " + oaResult.getErrorMsg()); } } catch (Exception e) { throw new RuntimeException(e); } return Result.success(); } @Override @Transactional(rollbackFor = Exception.class) public void unqualifiedHandlerOACallback(Long oaWorkId, String checkResult, JSONArray objects) { // 没æè¿ä¸ªå°±ç»æ Long count1 = baseMapper.selectCount(Wrappers.<InsUnqualifiedHandler>lambdaQuery() .eq(InsUnqualifiedHandler::getRequestId, Integer.valueOf(String.valueOf(oaWorkId)))); if (count1 == 0) { return; } //oaç¶æï¼3éè¿ 4驳å Integer oaState = "1".equals(checkResult) ? 3 : 4; baseMapper.update(null, new LambdaUpdateWrapper<InsUnqualifiedHandler>() .set(InsUnqualifiedHandler::getOaState, oaState) .ge(InsUnqualifiedHandler::getRequestId, Integer.valueOf(String.valueOf(oaWorkId)))); //ä¿åoaå®¡æ¹æµç¨è®°å½ List<CommonOa> commonOaList = new ArrayList<>(); objects.forEach(l -> { JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(l)); CommonOa oa = new CommonOa(); oa.setApprover(jsonObject.getString("operatorName")); oa.setWorkflowId(oaWorkId); oa.setOperation(jsonObject.getString("operateType")); oa.setApprovalDate(jsonObject.getString("operateDate")); oa.setApprovalOpinion(jsonObject.getString("remark")); oa.setNodeName(jsonObject.getString("nodeName")); oa.setApprovalTime(jsonObject.getString("operateTime")); //æ¥è¯¢å¤æä¹åæ¯å¦æ·»å è¿ long count = commonOaService.count(Wrappers.<CommonOa>lambdaQuery() .eq(CommonOa::getApprover, oa.getApprover()) .eq(CommonOa::getWorkflowId, oa.getWorkflowId()) .eq(CommonOa::getOperation, oa.getOperation()) .eq(CommonOa::getApprovalDate, oa.getApprovalDate()) .eq(CommonOa::getApprovalOpinion, oa.getApprovalOpinion()) .eq(CommonOa::getNodeName, oa.getNodeName()) .eq(CommonOa::getApprovalTime, oa.getApprovalTime()) ); // 没æé夿·»å if (count == 0) { commonOaList.add(oa); } }); commonOaService.saveBatch(commonOaList); } /** * æ¥çoaæµç¨ * @param id * @return */ @Override public List<CommonOa> getOaFlow(Integer id) { return baseMapper.getOaFlow(id); } /** * æ°å¢ä¸åæ ¼å¤ç * @param unqualifiedHandlerDto * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean addUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) { @@ -278,3 +125,4 @@ inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -653,7 +653,6 @@ throw new ErrorException("ä¸åæ ¼çåæææè½è®©æ¥æ¾è¡"); } // todo:éè¦å¤æoaæµç¨æ¯å¦æ¯è®©æ¥æ¾è¡ String toLocation = insOrderService.moveRawMaterial(ifsInventoryQuantity); ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() @@ -843,7 +842,6 @@ throw new ErrorException("æªæ£æµå®ææ°æ®æè½æåå ¥åº"); } // todo:éè¦å¤æoaæµç¨æ¯å¦æ¯è®©æ¥æ¾è¡ String toLocation = insOrderService.moveRawMaterial(ifsInventoryQuantity); ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>() inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml
@@ -27,9 +27,6 @@ iuh.off_grade_ascription, iuh.unqualified_desc, iuh.inventory_quantity_id, iuh.oa_state, iuh.request_id, iuh.file_url, iuh.headline from ins_unqualified_handler iuh @@ -58,10 +55,7 @@ iuh.classification, iuh.off_grade_ascription, iuh.unqualified_desc, iuh.inventory_quantity_id, iuh.request_id, iuh.oa_state, iuh.file_url iuh.inventory_quantity_id from ins_unqualified_handler iuh inner join @@ -69,20 +63,5 @@ on iuh.inventory_quantity_id = iiq.id)tempA where tempA.handler_id = #{id} </select> <select id="getOaFlow" resultType="com.ruoyi.inspect.pojo.CommonOa"> select co.id, co.node_name, co.operation, co.approver, co.approval_date, co.approval_time, co.approval_opinion, co.workflow_id from common_oa co left join ins_unqualified_handler iuh on iuh.request_id = co.workflow_id where iuh.id = #{id} and operation != 'æé' group by co.node_name </select> </mapper> ruoyi-admin/src/main/java/com/ruoyi/web/MqttApplicationRunner.java
ÎļþÒÑɾ³ý ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/Company.java
ÎļþÒÑɾ³ý ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/Person.java
ÎļþÒÑɾ³ý ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/PersonDto.java
ÎļþÒÑɾ³ý ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/PersonnelHeaderApi.java
ÎļþÒÑɾ³ý ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CompaniesController.java
ÎļþÒÑɾ³ý ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -2,9 +2,6 @@ import java.util.List; import java.util.Set; import java.util.UUID; import com.ruoyi.common.config.SsoBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -41,9 +38,6 @@ @Autowired private TokenService tokenService; @Autowired private SsoBean ssoBean; /** * ç»å½æ¹æ³ @@ -101,31 +95,4 @@ return AjaxResult.success(menuService.buildMenus(menus)); } /** * è·åç»ä¸ç»å½å¹³å°è·åCODEå°å * * @return */ @GetMapping("/getSsoAuthUrl") public AjaxResult getSsoAuthUrl() { String uuid = UUID.randomUUID().toString(); return AjaxResult.success("æä½æå", ssoBean.getUrl() + "/oauth2/auth?response_type=code&scope=openid&client_id=" + ssoBean.getClientId() + "&redirect_uri=" + ssoBean.getCallbackUrl() + "&state=" + uuid); } /** * åç¹ç»å½ * * @param code ç»å½ä¿¡æ¯ * @return ç»æ */ @PostMapping("/loginBySSO") public AjaxResult loginBySSO(String code) { AjaxResult ajax = AjaxResult.success(); // çæä»¤ç String token = loginService.loginBySSO(code); ajax.put(Constants.TOKEN, token); return ajax; } } ruoyi-admin/src/main/resources/i18n/messages.properties
@@ -4,7 +4,6 @@ user.jcaptcha.expire=\u9A8C\u8BC1\u7801\u5DF2\u5931\u6548 user.not.exists=\u7528\u6237\u4E0D\u5B58\u5728/\u5BC6\u7801\u9519\u8BEF user.password.not.match=\u7528\u6237\u4E0D\u5B58\u5728/\u5BC6\u7801\u9519\u8BEF user.sso.not.match=\u5355\u70B9\u767B\u5F55\u9A8C\u8BC1\u5931\u8D25 user.password.retry.limit.count=\u5BC6\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21 user.password.retry.limit.exceed=\u5BC6\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21\uFF0C\u5E10\u6237\u9501\u5B9A{1}\u5206\u949F user.password.delete=\u5BF9\u4E0D\u8D77\uFF0C\u60A8\u7684\u8D26\u53F7\u5DF2\u88AB\u5220\u9664 @@ -12,7 +11,6 @@ role.blocked=\u89D2\u8272\u5DF2\u5C01\u7981\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458 login.blocked=\u5F88\u9057\u61BE\uFF0C\u8BBF\u95EEIP\u5DF2\u88AB\u5217\u5165\u7CFB\u7EDF\u9ED1\u540D\u5355 user.logout.success=\u9000\u51FA\u6210\u529F user.sso.logout.success=\u5355\u70B9\u767B\u5F55\u9000\u51FA\u6210\u529F length.not.valid=\u957F\u5EA6\u5FC5\u987B\u5728{min}\u5230{max}\u4E2A\u5B57\u7B26\u4E4B\u95F4 @@ -22,7 +20,6 @@ user.email.not.valid=\u90AE\u7BB1\u683C\u5F0F\u9519\u8BEF user.mobile.phone.number.not.valid=\u624B\u673A\u53F7\u683C\u5F0F\u9519\u8BEF user.login.success=\u767B\u5F55\u6210\u529F user.sso.login.success=\u5355\u70B9\u767B\u5F55\u6210\u529F user.register.success=\u6CE8\u518C\u6210\u529F user.notfound=\u8BF7\u91CD\u65B0\u767B\u5F55 user.forcelogout=\u7BA1\u7406\u5458\u5F3A\u5236\u9000\u51FA\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55 ruoyi-admin/src/main/resources/logback.xml
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- æ¥å¿åæ¾è·¯å¾ --> <springProperty scope="context" name="logs" source="logging.file-location" default="/ztzb-logs"/> <springProperty scope="context" name="logs" source="logging.file-location" default="/lims-logs"/> <property name="log.path" value="${logs}"/> <!-- æ¥å¿è¾åºæ ¼å¼ --> ruoyi-common/src/main/java/com/ruoyi/common/config/SsoBean.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/config/WechatProperty.java
@@ -5,7 +5,6 @@ import org.springframework.context.annotation.Configuration; /** * @author ZTT */ @Configuration @ConfigurationProperties(prefix = "wechat") ruoyi-common/src/main/java/com/ruoyi/common/oa/AddWorkflow.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/AddWorkflowResponse.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/ArrayOfOAWorkflowRequestTableField.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/ArrayOfOAWorkflowRequestTableRecord.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/ArrayOfOAWorkflowTable.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/ForwardWorkflowRequest.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/ForwardWorkflowRequestResponse.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProcess.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAProperty.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAResult.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAService.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkFlowRequest.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkFlowRequestHttpGet.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkFlowRequestHttpPost.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkFlowRequestSoap.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkflowRequestInfo.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkflowRequestTableField.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkflowRequestTableRecord.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/OAWorkflowTable.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/ObjectFactory.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/UpdateAndSubmitWorkflow.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/UpdateAndSubmitWorkflowResponse.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/oa/package-info.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/utils/api/MesApiUtils.java
ÎļþÒÑɾ³ý ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -1,13 +1,11 @@ package com.ruoyi.framework.config; import com.ruoyi.framework.web.ssoAuth.SsoCodeAuthenticationProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.ProviderManager; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; @@ -24,9 +22,6 @@ import com.ruoyi.framework.security.handle.AuthenticationEntryPointImpl; import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl; import java.util.ArrayList; import java.util.List; /** * spring securityé ç½® * @@ -42,13 +37,6 @@ @Autowired @Qualifier("UserDetailsServiceImpl") private UserDetailsService userDetailsService; /** * ssoèªå®ä¹æ ¡éª */ @Autowired @Qualifier("UserDetailsByOpenIdServiceImpl") private UserDetailsService userDetailsServiceBySSO; /** * 认è¯å¤±è´¥å¤çç±» @@ -90,15 +78,7 @@ daoAuthenticationProvider.setUserDetailsService(userDetailsService); daoAuthenticationProvider.setPasswordEncoder(bCryptPasswordEncoder()); // ssoç»éé´æ Provider SsoCodeAuthenticationProvider ssoCodeAuthenticationProvider = new SsoCodeAuthenticationProvider(); ssoCodeAuthenticationProvider.setUserDetailsService(userDetailsServiceBySSO); List<AuthenticationProvider> providers = new ArrayList<>(); providers.add(ssoCodeAuthenticationProvider); providers.add(daoAuthenticationProvider); return new ProviderManager(providers); return new ProviderManager(daoAuthenticationProvider); } /** @@ -134,7 +114,7 @@ .authorizeHttpRequests((requests) -> { permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); // 对äºç»å½login 注åregister éªè¯ç captchaImage å 许å¿åè®¿é® requests.antMatchers("/login", "/register", "/captchaImage", "/getSsoAuthUrl", "/loginBySSO").permitAll() requests.antMatchers("/login", "/register", "/captchaImage").permitAll() // éæèµæºï¼å¯å¿åè®¿é® .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**", "/img/**", "/word/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() ruoyi-framework/src/main/java/com/ruoyi/framework/model/SsoOauthTokenModel.java
ÎļþÒÑɾ³ý ruoyi-framework/src/main/java/com/ruoyi/framework/model/SsoUserInfoModel.java
ÎļþÒÑɾ³ý ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
@@ -5,11 +5,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.config.SsoBean; import com.ruoyi.common.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; import com.alibaba.fastjson2.JSON; @@ -33,11 +30,6 @@ { @Autowired private TokenService tokenService; @Autowired private RedisTemplate redisTemplate; @Autowired private SsoBean ssoBean; /** * éåºå¤ç * @@ -48,24 +40,14 @@ throws IOException, ServletException { LoginUser loginUser = tokenService.getLoginUser(request); String loginOutUrl = null; if (StringUtils.isNotNull(loginUser)) { String userName = loginUser.getUsername(); // å é¤ç¨æ·ç¼åè®°å½ tokenService.delLoginUser(loginUser.getToken()); // è®°å½ç¨æ·éåºæ¥å¿ // æ¸ é¤åç¹ç»å½ä¿¡æ¯ Object idToken = redisTemplate.opsForValue().get("ssoOauthToken:idToken:" + userName); if (idToken != null) { loginOutUrl = ssoBean.getUrl() + "/oauth2/sessions/logout?id_token_hint=" + idToken; redisTemplate.delete("ssoOauthToken:idToken:" + userName); AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, MessageUtils.message("user.sso.logout.success"))); } else { AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, MessageUtils.message("user.logout.success"))); } AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, MessageUtils.message("user.logout.success"))); } ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success(MessageUtils.message("user.logout.success"), loginOutUrl))); ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success(MessageUtils.message("user.logout.success")))); } } ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -1,29 +1,8 @@ package com.ruoyi.framework.web.service; import javax.annotation.Resource; import javax.net.ssl.SSLContext; import com.alibaba.fastjson.JSON; import com.ruoyi.common.config.SsoBean; import com.ruoyi.framework.model.SsoOauthTokenModel; import com.ruoyi.framework.model.SsoUserInfoModel; import com.ruoyi.framework.web.ssoAuth.SsoCodeAuthenticationToken; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.ssl.TrustStrategy; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -51,16 +30,6 @@ import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; /** * ç»å½æ ¡éªæ¹æ³ @@ -68,7 +37,6 @@ * @author ruoyi */ @Component @Slf4j public class SysLoginService { @Autowired @@ -85,12 +53,6 @@ @Autowired private ISysConfigService configService; @Autowired private SsoBean ssoBean; @Autowired private RedisTemplate redisTemplate; /** * ç»å½éªè¯ @@ -219,166 +181,4 @@ sysUserService.updateUserProfile(sysUser); } /** * åç¹ç»å½ * @param code * @return */ public String loginBySSO(String code) { // è·ååç¹ç»å½token SsoOauthTokenModel tokenModel = this.getSsoAccessToken(code); if (tokenModel == null) { throw new RuntimeException("åç¹ç»å½éªè¯å¤±è´¥"); } // è·ååç¹ç»å½ç¨æ·ä¿¡æ¯ SsoUserInfoModel userInfo = this.getSsoUserInfo(tokenModel.getAccess_token()); if (userInfo == null) { throw new RuntimeException("åç¹ç»å½éªè¯å¤±è´¥"); } // æ¥è¯¢æ¬å°ç¨æ·ä¿¡æ¯ LoginUser loginUser = this.getSsoLoginToken(userInfo.getEmployeeId()); recordLoginInfo(loginUser.getUserId()); // å建ç»å½ä¿¡æ¯ AsyncManager.me().execute(AsyncFactory.recordLogininfor(userInfo.getEmployeeId(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.sso.login.success"))); redisTemplate.opsForValue().set("ssoOauthToken:idToken:" + userInfo.getEmployeeId(), tokenModel.getId_token(), 3, TimeUnit.DAYS); // çætoken return tokenService.createToken(loginUser); } /** * ***** è·åæ¬å°ç¨æ·ä¿¡æ¯ ***** * @param username * @return */ public LoginUser getSsoLoginToken(String username) { // ç¨æ·éªè¯ Authentication authentication = null; SysUser sysUser = sysUserService.selectUserByUserName(username); if (sysUser == null) { throw new ServiceException("å½åç³»ç»æ²¡æè¯¥ç¨æ·"); } try { // æ éå¯ç è·åç¨æ·ä¿¡æ¯ authentication = authenticationManager.authenticate(new SsoCodeAuthenticationToken(username)); } catch (Exception e) { if (e instanceof BadCredentialsException) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.sso.not.match"))); throw new UserPasswordNotMatchException(); } else { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); throw new ServiceException(e.getMessage()); } } finally { AuthenticationContextHolder.clearContext(); } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.sso.login.success"))); return (LoginUser) authentication.getPrincipal(); } /** * **** è·ååç¹ç»å½token **** * @param code * @return */ public SsoOauthTokenModel getSsoAccessToken(String code) { List<NameValuePair> list = new LinkedList<>(); list.add(new BasicNameValuePair("grant_type", "authorization_code")); list.add(new BasicNameValuePair("code", code)); list.add(new BasicNameValuePair("client_id", ssoBean.getClientId())); list.add(new BasicNameValuePair("client_secret", ssoBean.getClientSecret())); list.add(new BasicNameValuePair("redirect_uri", ssoBean.getCallbackUrl())); Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/x-www-form-urlencoded"); headers.put("Accept", "application/json"); String result = doPost(ssoBean.getUrl() + "/oauth2/token", headers, list); if (org.apache.commons.lang3.StringUtils.isBlank(result)) { return null; } return JSON.parseObject(result, SsoOauthTokenModel.class); } /** * ***è·ååç¹ç»å½ç¨æ·ä¿¡æ¯*** * @param accessToken * @return */ public SsoUserInfoModel getSsoUserInfo(String accessToken) { Map<String, String> headers = new HashMap<>(); headers.put("Authorization", "Bearer " + accessToken); String result = doPost(ssoBean.getUrl() + "/userinfo", headers, null); if (org.apache.commons.lang3.StringUtils.isBlank(result)) { return null; } return JSON.parseObject(result, SsoUserInfoModel.class); } public static String doPost(String url, Map<String, String> headers, List<NameValuePair> params) { CloseableHttpClient client = createSSLClientDefault(); CloseableHttpResponse response = null; try { HttpPost method = new HttpPost(url); headers.forEach(method::setHeader); if (params != null) { method.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); } response = client.execute(method); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { HttpEntity entity = response.getEntity(); return EntityUtils.toString(entity); } } catch (Exception e) { log.error("ç»ä¸ç»å½è¯·æ±åºç°å¼å¸¸", e.getMessage()); } finally { try { if (client != null) { client.close(); } if (response != null) { response.close(); } } catch (Exception e) { log.error("ç»ä¸ç»å½è¯·æ±åºç°å¼å¸¸", e.getMessage()); } } return null; } private static CloseableHttpClient createSSLClientDefault() { try { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { //ä¿¡ä»»ææ @Override public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext); return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } catch (KeyManagementException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyStoreException e) { e.printStackTrace(); } return HttpClients.createDefault(); } } ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByOpenIdServiceImpl.java
ÎļþÒÑɾ³ý ruoyi-framework/src/main/java/com/ruoyi/framework/web/ssoAuth/SsoCodeAuthenticationProvider.java
ÎļþÒÑɾ³ý ruoyi-framework/src/main/java/com/ruoyi/framework/web/ssoAuth/SsoCodeAuthenticationToken.java
ÎļþÒÑɾ³ý