模板解析功能提交

This commit is contained in:
2023-05-18 16:31:06 +08:00
parent 16c933d631
commit ce93551bf1
15 changed files with 230 additions and 10 deletions

View File

@@ -0,0 +1,24 @@
package com.njcn.algorithm.api;
import com.njcn.algorithm.api.fallback.CsEdDataFeignClientFallbackFactory;
import com.njcn.algorithm.pojo.dto.CsDictDTO;
import com.njcn.algorithm.pojo.po.CsEdDataPO;
import com.njcn.algorithm.pojo.vo.CsEdDataVO;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.ALGORITHM_BOOT, path = "/dict", fallbackFactory = CsEdDataFeignClientFallbackFactory.class,contextId = "edData")
public interface CsDictFeignClient {
@PostMapping("/getOwnAndFatherData")
HttpResult<CsDictDTO> getOwnAndFatherData(@RequestParam("name")String name);
}

View File

@@ -5,12 +5,20 @@ import com.njcn.algorithm.pojo.param.CsDevModelAddParm;
import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm; import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm;
import com.njcn.algorithm.pojo.po.CsDevModelPO; import com.njcn.algorithm.pojo.po.CsDevModelPO;
import com.njcn.algorithm.pojo.vo.CsDevModelPageVO; import com.njcn.algorithm.pojo.vo.CsDevModelPageVO;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/** /**
* @author xy * @author xy
@@ -24,4 +32,7 @@ public interface DevModelFeignClient {
@PostMapping("/queryDevModelOne") @PostMapping("/queryDevModelOne")
HttpResult<CsDevModelPageVO> queryDevModelOne(@RequestBody CsDevModelQueryListParm csDevModelQueryListParm); HttpResult<CsDevModelPageVO> queryDevModelOne(@RequestBody CsDevModelQueryListParm csDevModelQueryListParm);
@PostMapping("/findModel")
HttpResult<CsDevModelPO> findModel(@RequestParam("devType") String devType, @RequestParam("version") String version, @RequestParam("time") String time);
} }

View File

@@ -0,0 +1,40 @@
package com.njcn.algorithm.api.fallback;
import com.njcn.algorithm.api.CsDictFeignClient;
import com.njcn.algorithm.api.CsEdDataFeignClient;
import com.njcn.algorithm.pojo.dto.CsDictDTO;
import com.njcn.algorithm.pojo.po.CsEdDataPO;
import com.njcn.algorithm.pojo.vo.CsEdDataVO;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author xy
*/
@Slf4j
@Component
public class CsDictFeignClientFallbackFactory implements FallbackFactory<CsDictFeignClient> {
@Override
public CsDictFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new CsDictFeignClient() {
@Override
public HttpResult<CsDictDTO> getOwnAndFatherData(String name) {
log.error("{}异常,降级处理,异常为:{}","获取指标自身和父级信息",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -46,6 +46,12 @@ public class DevModelFeignClientFallbackFactory implements FallbackFactory<DevMo
log.error("{}异常,降级处理,异常为:{}","查询模板版本信息",cause.toString()); log.error("{}异常,降级处理,异常为:{}","查询模板版本信息",cause.toString());
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<CsDevModelPO> findModel(String devType, String version, String time) {
log.error("{}异常,降级处理,异常为:{}","根据条件查询模板",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -0,0 +1,25 @@
package com.njcn.algorithm.pojo.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/5/18 11:08
*/
@Data
public class CsDictDTO implements Serializable {
private String id;
private String name;
private String fatherId;
private String fatherName;
}

View File

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
/** /**
@@ -43,7 +44,7 @@ public class CsDevModelAddParm {
@ApiModelProperty(value = "版本日期") @ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date versionDate; private LocalDateTime versionDate;
/** /**
* 装置模板文件路径 * 装置模板文件路径
@@ -51,5 +52,6 @@ public class CsDevModelAddParm {
@ApiModelProperty(value = "装置模板文件路径") @ApiModelProperty(value = "装置模板文件路径")
private String filePath; private String filePath;
@ApiModelProperty(value = "系统软件表Id")
private String softInfoId;
} }

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
/** /**
@@ -52,7 +53,7 @@ public class CsDevModelPO extends BaseEntity {
* 版本日期 * 版本日期
*/ */
@TableField(value = "version_date") @TableField(value = "version_date")
private Date versionDate; private LocalDateTime versionDate;
/** /**
* 装置模板文件路径 * 装置模板文件路径
@@ -66,4 +67,7 @@ public class CsDevModelPO extends BaseEntity {
*/ */
@TableField(value = "status") @TableField(value = "status")
private String status; private String status;
@TableField(value = "soft_info_id")
private String softInfoId;
} }

View File

@@ -16,14 +16,12 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* Description: * Description:
@@ -88,6 +86,21 @@ public class DevModelController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDevModelPageVO, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDevModelPageVO, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/findModel")
@ApiOperation("根据条件查询模板")
@ApiImplicitParams({
@ApiImplicitParam(name = "devType", value = "装置类型", required = true),
@ApiImplicitParam(name = "version", value = "版本", required = true),
@ApiImplicitParam(name = "time", value = "时间", required = true)
})
public HttpResult<CsDevModelPO> findModel(@RequestParam("devType") String devType,@RequestParam("version") String version,@RequestParam("time") String time){
System.out.println(devType);
System.out.println(version);
System.out.println(time);
String methodDescribe = getMethodDescribe("findModel");
CsDevModelPO csDevModelPo = csDevModelService.findModel(devType,version,time);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDevModelPo, methodDescribe);
}
} }

View File

@@ -1,12 +1,26 @@
package com.njcn.algorithm.controller.dict; package com.njcn.algorithm.controller.dict;
import com.njcn.algorithm.pojo.dto.CsDictDTO;
import com.njcn.algorithm.pojo.vo.CsDictVO;
import com.njcn.algorithm.service.CsDictService;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
@@ -18,10 +32,10 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/dict") @RequestMapping("/dict")
@Api(tags = "字典表/表结构更改弃用") @Api(tags = "表名/指标字典表")
@AllArgsConstructor @AllArgsConstructor
public class DictDataController extends BaseController { public class DictDataController extends BaseController {
// private final CsDictService csDictService; private final CsDictService csDictService;
// @OperateInfo(info = LogEnum.BUSINESS_COMMON) // @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @PostMapping("/addDict") // @PostMapping("/addDict")
// @ApiOperation("新增字典") // @ApiOperation("新增字典")
@@ -42,4 +56,16 @@ public class DictDataController extends BaseController {
// //
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDictVOList, methodDescribe); // return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDictVOList, methodDescribe);
// } // }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getOwnAndFatherData")
@ApiOperation("查询自身和父级信息")
@ApiImplicitParam(name = "name", value = "指标名称", required = true)
public HttpResult<CsDictDTO> getOwnAndFatherData(@RequestParam("name")String name){
String methodDescribe = getMethodDescribe("getOwnAndFatherData");
CsDictDTO data = csDictService.getOwnAndFatherData(name);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
} }

View File

@@ -1,7 +1,9 @@
package com.njcn.algorithm.mapper; package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.dto.CsDictDTO;
import com.njcn.algorithm.pojo.po.CsDictPO; import com.njcn.algorithm.pojo.po.CsDictPO;
import org.apache.ibatis.annotations.Param;
/** /**
* *
@@ -13,4 +15,6 @@ import com.njcn.algorithm.pojo.po.CsDictPO;
* @version V1.0.0 * @version V1.0.0
*/ */
public interface CsDictMapper extends BaseMapper<CsDictPO> { public interface CsDictMapper extends BaseMapper<CsDictPO> {
CsDictDTO getOwnAndFatherData(@Param("name") String name);
} }

View File

@@ -20,4 +20,31 @@
id, pid, `name`, another_name, `state`, sort, create_by, create_time, update_by, id, pid, `name`, another_name, `state`, sort, create_by, create_time, update_by,
update_time update_time
</sql> </sql>
<select id="getOwnAndFatherData" resultType="com.njcn.algorithm.pojo.dto.CsDictDTO">
select
id,
(
select
id
from
cs_dict
where
id = t0.pid
and state = 1) fatherId,
(
select
name
from
cs_dict
where
id = t0.pid
and state = 1) fatherName,
another_name name
from
cs_dict t0
where
name = #{name}
and state = 1
</select>
</mapper> </mapper>

View File

@@ -8,6 +8,7 @@ import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm;
import com.njcn.algorithm.pojo.param.CsDevModelQueryParm; import com.njcn.algorithm.pojo.param.CsDevModelQueryParm;
import com.njcn.algorithm.pojo.po.CsDevModelPO; import com.njcn.algorithm.pojo.po.CsDevModelPO;
import com.njcn.algorithm.pojo.vo.CsDevModelPageVO; import com.njcn.algorithm.pojo.vo.CsDevModelPageVO;
import org.springframework.web.bind.annotation.RequestParam;
/** /**
* *
@@ -53,4 +54,6 @@ public interface CsDevModelService extends IService<CsDevModelPO>{
* @param projectEquipmentQueryParm * @param projectEquipmentQueryParm
*/ */
CsDevModelPageVO queryDevModelOne(CsDevModelQueryListParm projectEquipmentQueryParm); CsDevModelPageVO queryDevModelOne(CsDevModelQueryListParm projectEquipmentQueryParm);
CsDevModelPO findModel(String devType, String version, String time);
} }

View File

@@ -1,5 +1,6 @@
package com.njcn.algorithm.service; package com.njcn.algorithm.service;
import com.njcn.algorithm.pojo.dto.CsDictDTO;
import com.njcn.algorithm.pojo.param.CsDictAddParm; import com.njcn.algorithm.pojo.param.CsDictAddParm;
import com.njcn.algorithm.pojo.po.CsDictPO; import com.njcn.algorithm.pojo.po.CsDictPO;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@@ -22,4 +23,10 @@ public interface CsDictService extends IService<CsDictPO>{
Boolean addDict(List<CsDictAddParm> csDictAddParms); Boolean addDict(List<CsDictAddParm> csDictAddParms);
List<CsDictVO> queryDictData(String dictType); List<CsDictVO> queryDictData(String dictType);
/**
* 获取当前资源的信息以及父级信息
* @return
*/
CsDictDTO getOwnAndFatherData(String name);
} }

View File

@@ -1,8 +1,11 @@
package com.njcn.algorithm.service.impl; package com.njcn.algorithm.service.impl;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.enums.AlgorithmResponseEnum;
import com.njcn.algorithm.mapper.CsDevModelMapper; import com.njcn.algorithm.mapper.CsDevModelMapper;
import com.njcn.algorithm.pojo.param.CsDevModelAddParm; import com.njcn.algorithm.pojo.param.CsDevModelAddParm;
import com.njcn.algorithm.pojo.param.CsDevModelAuditParm; import com.njcn.algorithm.pojo.param.CsDevModelAuditParm;
@@ -11,10 +14,15 @@ import com.njcn.algorithm.pojo.param.CsDevModelQueryParm;
import com.njcn.algorithm.pojo.po.CsDevModelPO; import com.njcn.algorithm.pojo.po.CsDevModelPO;
import com.njcn.algorithm.pojo.vo.CsDevModelPageVO; import com.njcn.algorithm.pojo.vo.CsDevModelPageVO;
import com.njcn.algorithm.service.CsDevModelService; import com.njcn.algorithm.service.CsDevModelService;
import com.njcn.common.pojo.exception.BusinessException;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Objects;
/** /**
* *
* Description: * Description:
@@ -60,4 +68,14 @@ public class CsDevModelServiceImpl extends ServiceImpl<CsDevModelMapper, CsDevMo
CsDevModelPageVO result = this.getBaseMapper ().queryOne(csDevModelQueryListParm); CsDevModelPageVO result = this.getBaseMapper ().queryOne(csDevModelQueryListParm);
return result; return result;
} }
@Override
public CsDevModelPO findModel(String devType, String version, String time) {
LambdaQueryWrapper<CsDevModelPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(CsDevModelPO::getDevType,devType)
.eq(CsDevModelPO::getVersionNo,version)
.eq(CsDevModelPO::getVersionDate, LocalDateTime.parse(time, DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)))
.eq(CsDevModelPO::getStatus,1);
return this.baseMapper.selectOne(lambdaQueryWrapper);
}
} }

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.enums.AlgorithmResponseEnum; import com.njcn.algorithm.enums.AlgorithmResponseEnum;
import com.njcn.algorithm.mapper.CsDictMapper; import com.njcn.algorithm.mapper.CsDictMapper;
import com.njcn.algorithm.pojo.dto.CsDictDTO;
import com.njcn.algorithm.pojo.param.CsDictAddParm; import com.njcn.algorithm.pojo.param.CsDictAddParm;
import com.njcn.algorithm.pojo.po.CsDictPO; import com.njcn.algorithm.pojo.po.CsDictPO;
import com.njcn.algorithm.pojo.vo.CsDictVO; import com.njcn.algorithm.pojo.vo.CsDictVO;
@@ -83,4 +84,13 @@ public class CsDictServiceImpl extends ServiceImpl<CsDictMapper, CsDictPO> imple
return csDictVO; return csDictVO;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
@Override
public CsDictDTO getOwnAndFatherData(String name) {
CsDictDTO csDictDTO = this.baseMapper.getOwnAndFatherData(name);
if (Objects.isNull(csDictDTO)){
throw new BusinessException(AlgorithmResponseEnum.DICT_DATA_ERROR);
}
return csDictDTO;
}
} }