Explorar o código

敏感词接口

mengkang %!s(int64=4) %!d(string=hai) anos
pai
achega
cfa03ab3e8

+ 2 - 2
business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java

@ -85,9 +85,9 @@ public class BasePatientService<T, R extends CrudRepository> extends BaseJpaServ
        List<Map<String, Object>> result = new ArrayList<>();
        String param = null == nameOrIdcard ? "": nameOrIdcard;
        String sql = "SELECT\n" +
                "\tID AS \"ID\",\n" +
                "\tID AS \"id\",\n" +
                "\tidcard AS \"idcard\",\n" +
                "\tNAME AS \"NAME\",\n" +
                "\tNAME AS \"name\",\n" +
                "\tCASE\n" +
                "WHEN sex = 1 THEN\n" +
                "\t'男'\n" +

+ 21 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/words/BaseImportSensitiveDO.java

@ -21,6 +21,11 @@ public class BaseImportSensitiveDO extends UuidIdentityEntityWithOperator {
    @Column(name = "problem")
    private String problem;
    @Column(name = "operator_code")
    private String operatorCode;
    @Column(name = "operator")
    private String operator;
    public String getRow() {
        return row;
@ -37,4 +42,20 @@ public class BaseImportSensitiveDO extends UuidIdentityEntityWithOperator {
    public void setProblem(String problem) {
        this.problem = problem;
    }
    public String getOperatorCode() {
        return operatorCode;
    }
    public void setOperatorCode(String operatorCode) {
        this.operatorCode = operatorCode;
    }
    public String getOperator() {
        return operator;
    }
    public void setOperator(String operator) {
        this.operator = operator;
    }
}

+ 9 - 6
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/word/BaseSensitiveEndpoint.java

@ -49,9 +49,11 @@ public class BaseSensitiveEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "words", value = "敏感词")
            @RequestParam(value = "words", required = false) String words,
            @ApiParam(name = "explanation", value = "说明")
            @RequestParam(value = "explanation", required = false) String explanation) throws Exception {
            @RequestParam(value = "explanation", required = false) String explanation,
            @ApiParam(name = "status", value = "status")
            @RequestParam(value = "status", required = false,defaultValue = "1") String status) throws Exception {
        try {
            baseSensitiveService.createSensitiveWords(words,explanation,getUID(),getUNAME());
            baseSensitiveService.createSensitiveWords(words,explanation,status,getUID(),getUNAME());
            return MixEnvelop.getSuccess("创建成功");
        } catch (Exception e) {
            return MixEnvelop.getError(e.getMessage());
@ -68,9 +70,11 @@ public class BaseSensitiveEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "words", value = "敏感词")
            @RequestParam(value = "words", required = false) String words,
            @ApiParam(name = "explanation", value = "说明")
            @RequestParam(value = "explanation", required = false) String explanation) throws Exception {
            @RequestParam(value = "explanation", required = false) String explanation,
            @ApiParam(name = "status", value = "status")
            @RequestParam(value = "status", required = false,defaultValue = "1") String status) throws Exception {
        try {
            baseSensitiveService.updateSensitiveWords(id,words,explanation,getUID(),getUNAME());
            baseSensitiveService.updateSensitiveWords(id,words,explanation,status,getUID(),getUNAME());
            return MixEnvelop.getSuccess("更新成功");
        } catch (Exception e) {
            return MixEnvelop.getError(e.getMessage());
@ -109,7 +113,7 @@ public class BaseSensitiveEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = BaseRequestMapping.BaseSensitive.findSensitiveWords)
    @ApiOperation(value = "修改敏感词汇状态")
    @ApiOperation(value = "查找敏感词")
    public MixEnvelop findSensitiveWords (
            @ApiParam(name = "page", value = "page")
            @RequestParam(value = "page", required = false,defaultValue = "1") Integer page,
@ -158,7 +162,6 @@ public class BaseSensitiveEndpoint extends EnvelopRestEndpoint {
            baseSensitiveExcelReader.read(file);
            //验证未通过(暂无验证)
            List<BaseSensitiveExcelDO> correctLs = baseSensitiveExcelReader.getCorrectLs();
            List errorLs = baseSensitiveExcelReader.getErrorLs();
            if(correctLs.size()>0){
                Map<String, Object> result = baseSensitiveService.importSensitive(correctLs,getUID(),getUNAME());
                result.put("correctLs", correctLs);

+ 14 - 124
svr/svr-base/src/main/java/com/yihu/jw/base/service/word/BaseSensitiveService.java

@ -64,11 +64,11 @@ public class BaseSensitiveService extends BaseJpaService<BaseSensitiveDO, BaseSe
     * @param words
     * @param explanation
     */
    public void createSensitiveWords(String words, String explanation,String operatorCode,String name) {
    public void createSensitiveWords(String words, String explanation,String status,String operatorCode,String name) {
        BaseSensitiveDO baseSensitiveDO = new BaseSensitiveDO();
        baseSensitiveDO.setSensitiveWord(words);
        baseSensitiveDO.setExplanation(explanation);
        baseSensitiveDO.setStatus("1");
        baseSensitiveDO.setStatus(status);
        baseSensitiveDO.setAddTime(DateUtil.getNowDate());
        baseSensitiveDO.setOperatorCode(operatorCode);
        baseSensitiveDO.setOperator(name);
@ -81,13 +81,14 @@ public class BaseSensitiveService extends BaseJpaService<BaseSensitiveDO, BaseSe
     * @param words
     * @param explanation
     */
    public void updateSensitiveWords(String id, String words, String explanation,String operatorCode,String name) {
    public void updateSensitiveWords(String id, String words, String explanation,String status,String operatorCode,String name) {
        BaseSensitiveDO baseSensitiveDO = baseSensitiveDao.findOne(id);
        baseSensitiveDO.setSensitiveWord(words);
        baseSensitiveDO.setExplanation(explanation);
        baseSensitiveDO.setRenewTime(DateUtil.getNowDate());
        baseSensitiveDO.setOperatorCode(operatorCode);
        baseSensitiveDO.setOperator(name);
        baseSensitiveDO.setStatus(status);
        baseSensitiveDao.save(baseSensitiveDO);
    }
@ -132,132 +133,21 @@ public class BaseSensitiveService extends BaseJpaService<BaseSensitiveDO, BaseSe
            sql.append(" AND (s.sensitive like'%").append(words).append("%'").append(" or ").append("s.explanation like'%").append(words).append("%')");
            countSql.append(" AND (s.sensitive like'%").append(words).append("%'").append(" or ").append("s.explanation like'%").append(words).append("%')");
        }
        sql.append(" ORDER BY s.update_time LIMIT ").append((page-1)*pageSize).append(",").append(pageSize);
        sql.append(" ORDER BY s.renew_time desc LIMIT ").append((page-1)*pageSize).append(",").append(pageSize);
        Logger.getAnonymousLogger().info("sql="+sql.toString());
        List<BaseSyncDataDO> list = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(BaseSyncDataDO.class));
        List<BaseSensitiveDO> list = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(BaseSensitiveDO.class));
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(countSql.toString());
        long count = (long)mapList.get(0).get("count");
        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find,list,page,pageSize,count);
    }
    /**
     * 导入词汇文件
     * @param path
     * 导出敏感词日志
     * @param url
     * @param operatorCode
     * @return
     */
    public MixEnvelop importSensitiveWords(String path,String operatorCode,String name) {
        Logger.getAnonymousLogger().info("path="+path+"----operatorCode="+operatorCode+"------name="+name);
        List<BaseSensitiveDO> list = new ArrayList<BaseSensitiveDO>();
        File file = null;
        InputStream input = null;
        if (path != null && path.length() > 7) {
            // 判断文件是否是Excel(2003、2007)
            String suffix = path
                    .substring(path.lastIndexOf("."), path.length());
            file = new File(path);
            try {
                input = new FileInputStream(file);
            } catch (FileNotFoundException e) {
                System.out.println("未找到指定的文件!");
            }
            // Excel2003
            if (".xls".equals(suffix)) {
                POIFSFileSystem fileSystem = null;
                // 工作簿
                HSSFWorkbook workBook = null;
                try {
                    fileSystem = new POIFSFileSystem(input);
                    workBook = new HSSFWorkbook(fileSystem);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                // 获取第一个工作簿
                HSSFSheet sheet = workBook.getSheetAt(0);
                list = getContent((Sheet) sheet);
                // Excel2007
            } else if (".xlsx".equals(suffix)) {
                XSSFWorkbook workBook = null;
                try {
                    workBook = new XSSFWorkbook(input);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                // 获取第一个工作簿
                XSSFSheet sheet = workBook.getSheetAt(0);
                list = getContent(sheet);
            }
            HashMap<String, String> rs = new HashMap<>();
            int total = list.size();
            rs.put("total",total+"");
            Date nowDate = DateUtil.getNowDate();
            for (BaseSensitiveDO one : list) {
                BaseSensitiveDO sensitive = baseSensitiveDao.findBySensitiveWord(one.getSensitiveWord());
                if (sensitive!=null){
                    BaseImportSensitiveDO importSensitiveDO = new BaseImportSensitiveDO();
                    importSensitiveDO.setRow(one.getId());
                    importSensitiveDO.setProblem("敏感词已存在");
                    importSensitiveDO.setCreateTime(nowDate);
                    importSensitiveDO.setCreateUser(operatorCode);
                    importSensitiveDO.setCreateUserName(name);
                    baseImportSensitiveDao.save(importSensitiveDO);
                    total-=1;
                    continue;
                }
                if (one.getSensitiveWord()==null){
                    BaseImportSensitiveDO importSensitiveDO = new BaseImportSensitiveDO();
                    importSensitiveDO.setRow(one.getId());
                    importSensitiveDO.setProblem("敏感词为空");
                    importSensitiveDO.setCreateTime(nowDate);
                    importSensitiveDO.setCreateUser(operatorCode);
                    importSensitiveDO.setCreateUserName(name);
                    baseImportSensitiveDao.save(importSensitiveDO);
                    total-=1;
                    continue;
                }
                one.setId(UUID.randomUUID().toString().replaceAll("-",""));
                one.setStatus("1");
                baseSensitiveDao.save(one);
            }
            rs.put("success",total+"");
        } else {
            MixEnvelop.getError("非法的文件路径!");
        }
     return MixEnvelop.getSuccess("导入成功");
    }
    // 获取Excel内容
    public static List<BaseSensitiveDO> getContent(Sheet sheet) {
        List<BaseSensitiveDO> list = new ArrayList<BaseSensitiveDO>();
        // Excel数据总行数
        int rowCount = sheet.getPhysicalNumberOfRows();
        // 遍历数据行,略过标题行,从第二行开始
        for (int i = 1; i < rowCount; i++) {
            BaseSensitiveDO ub = new BaseSensitiveDO();
            Row row = sheet.getRow(i);
            int cellCount = row.getPhysicalNumberOfCells();
            // 遍历行单元格
            for (int j = 0; j < cellCount; j++) {
                Cell cell = row.getCell(j);
                switch (j) {
                    case 0:
                        ub.setId(cell.getStringCellValue());
                        break;
                    case 1:
                        ub.setSensitiveWord(cell.getStringCellValue());
                        break;
                    case 2:
                        ub.setExplanation(cell.getStringCellValue());
                        break;
                }
            }
            list.add(ub);
        }
        return list;
    }
    public MixEnvelop exportSensitiveWordsLog(String url,String operatorCode){
        String sql="SELECT * FROM base_import_sensitive b WHERE b.create_time=(SELECT MAX(b.create_time) FROM base_import_sensitive b) and b.operator_code="+operatorCode;
        //获取日志
@ -314,8 +204,8 @@ public class BaseSensitiveService extends BaseJpaService<BaseSensitiveDO, BaseSe
                importSensitiveDO.setRow(one.getId());
                importSensitiveDO.setProblem("敏感词已存在");
                importSensitiveDO.setCreateTime(nowDate);
                importSensitiveDO.setCreateUser(operatorCode);
                importSensitiveDO.setCreateUserName(name);
                importSensitiveDO.setOperatorCode(operatorCode);
                importSensitiveDO.setOperator(name);
                baseImportSensitiveDao.save(importSensitiveDO);
                total-=1;
                continue;
@ -325,8 +215,8 @@ public class BaseSensitiveService extends BaseJpaService<BaseSensitiveDO, BaseSe
                importSensitiveDO.setRow(one.getId());
                importSensitiveDO.setProblem("敏感词为空");
                importSensitiveDO.setCreateTime(nowDate);
                importSensitiveDO.setCreateUser(operatorCode);
                importSensitiveDO.setCreateUserName(name);
                importSensitiveDO.setOperatorCode(operatorCode);
                importSensitiveDO.setOperator(name);
                baseImportSensitiveDao.save(importSensitiveDO);
                total-=1;
                continue;