Commit 8b50a32f by zhangkb

修改基础指标接口和基础指标、考核指标版本

parent 4b06f9d9
......@@ -28,20 +28,20 @@ public class IndCatalogCtrl {
@ApiOperation(value = "新建基础指标目录", notes = "新建基础指标目录")
@PostMapping(value = "/createBaseIndCatalog")
public String createBaseIndCatalog(@RequestBody IndCatalog indCatalog) throws Exception{
public int createBaseIndCatalog(@RequestBody IndCatalog indCatalog) throws Exception{
indCatalog = indCatalogService.saveOrUpdate(indCatalog);
return indCatalog.getId();
}
@ApiOperation(value = "批量级联删除基础指标目录", notes = "批量级联删除基础指标目录")
@PostMapping(value = "/deleteBaseIndCatalog")
public void deleteBaseIndCatalog(@RequestParam List<String> ids) throws Exception{
public void deleteBaseIndCatalog(@RequestParam List<Integer> ids) throws Exception{
indCatalogService.recursionDelete(ids);
}
@ApiOperation(value = "获取基础指标目录", notes = "获取基础指标目录")
@PostMapping(value = "/getBaseIndCatalog")
public List<IndCatalog> getBaseIndCatalog(@RequestParam(required=false) String parentId,
public List<IndCatalog> getBaseIndCatalog(@RequestParam(required=false) Integer parentId,
@RequestParam List<String> codes){
return indCatalogService.getCatalog(parentId, codes);
}
......
package com.keymobile.indicators.model.entity.indicators;
import java.io.Serializable;
import java.util.Date;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.persistence.Id;
import javax.persistence.Table;
import com.keymobile.indicators.utils.DateUtils;
import lombok.Data;
......@@ -11,17 +13,13 @@ import lombok.Data;
*author:zhangkb time:2020-5-20 desc:基础项数据版本数据
*/
@Data
@Document(collection="base_ind_def_version_data")
public class BaseIndDefVersionData implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Table(name="base_ind_def_version_data")
public class BaseIndDefVersionData{
@Id
private String id;
private Integer id;
private String indId;
private String indName;
private String version;
private String dataJson;
private String lastUpdateTime = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
}
package com.keymobile.indicators.model.entity.indicators;
import java.io.Serializable;
import java.util.Date;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.persistence.Id;
import javax.persistence.Table;
import com.keymobile.indicators.utils.DateUtils;
import lombok.Data;
......@@ -11,17 +13,13 @@ import lombok.Data;
*author:zhangkb time:2020-5-21 desc:考核指标数据版本数据
*/
@Data
@Document(collection="drive_ind_def_version_data")
public class DriveIndDefVersionData implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Table(name="drive_ind_def_version_data")
public class DriveIndDefVersionData {
@Id
private String id;
private Integer id;
private String indId;
private String indName;
private String version;
private String dataJson;
private String lastUpdateTime = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
}
package com.keymobile.indicators.model.entity.indicators;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.persistence.Id;
import javax.persistence.Table;
import com.keymobile.indicators.utils.DateUtils;
......@@ -15,19 +13,14 @@ import lombok.Data;
*author:zhangkb time:2020-5-18 desc:基础项目录
*/
@Data
@Document(collection="ind_catalog")
public class IndCatalog implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Table(name="base_ind_catalog")
public class IndCatalog {
@Id
private String id;
private Integer id;
private String catalogName;
//private String type;
private String catalogType;//分为数据项级别和数据项类别 0:数据项级别 1:数据项类别 2:普通目录
private String parentId;//顶层节点parentId为0
private Integer parentId;//顶层节点parentId为0
private String idPath;
private String code;//目录编码
private String lastUpdater;
......
......@@ -15,5 +15,5 @@ public interface BaseIndDefMapper extends BaseMapper<BaseIndDef>{
public int getByKeywordCount(Map<String,Object> param);
public void deleteByCatalogIdIn(List<String> catalogIds);
public void deleteByCatalogIdIn(List<Integer> catalogIds);
}
package com.keymobile.indicators.model.mapper.indmapper;
import org.apache.ibatis.annotations.Mapper;
import com.keymobile.indicators.model.entity.indicators.BaseIndDefVersionData;
import tk.mybatis.mapper.common.BaseMapper;
@Mapper
public interface BaseIndDefVersionDataMapper extends BaseMapper<BaseIndDefVersionData>{
}
package com.keymobile.indicators.model.mapper.indmapper;
import com.keymobile.indicators.model.entity.indicators.DriveIndDefVersionData;
import tk.mybatis.mapper.common.BaseMapper;
public interface DriveIndDefVersionDataMapper extends BaseMapper<DriveIndDefVersionData>{
}
package com.keymobile.indicators.model.mapper.indmapper;
import java.util.List;
import java.util.Map;
import com.keymobile.indicators.model.entity.indicators.IndCatalog;
import feign.Param;
import tk.mybatis.mapper.common.BaseMapper;
public interface IndCatalogMapper extends BaseMapper<IndCatalog>{
public void deleteByIdIn(List<Integer> ids);
public List<IndCatalog> findByParentIdAndCodeInOrderByLastUpdateTimeDesc(Map<String,Object> params);
public List<IndCatalog> findByParentId(@Param("pid") Integer pid);
}
package com.keymobile.indicators.persistence.hyindicators;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.keymobile.indicators.model.entity.indicators.BaseIndDefVersionData;
public interface BaseIndDefVersionRepository extends MongoRepository<BaseIndDefVersionData,String>{
}
package com.keymobile.indicators.persistence.hyindicators;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.keymobile.indicators.model.entity.indicators.DriveIndDefVersionData;
public interface DriveIndDefVersionRepository extends MongoRepository<DriveIndDefVersionData,String>{
}
package com.keymobile.indicators.persistence.hyindicators;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.keymobile.indicators.model.entity.indicators.IndCatalog;
public interface IndCatalogRepository extends MongoRepository<IndCatalog,String>{
public void deleteByIdIn(List<String> ids);
public List<IndCatalog> findByParentIdAndCodeInOrderByLastUpdateTimeDesc(String pid,List<String> codes);
public List<IndCatalog> findByParentId(String pid);
}
......@@ -9,14 +9,14 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.keymobile.indicators.model.entity.indicators.BaseIndDef;
import com.keymobile.indicators.model.entity.indicators.BaseIndDefVersionData;
import com.keymobile.indicators.persistence.hyindicators.BaseIndDefVersionRepository;
import com.keymobile.indicators.model.mapper.indmapper.BaseIndDefVersionDataMapper;
@Service
public class BaseIndDefVersionService {
private Logger logger = LoggerFactory.getLogger(BaseIndDefVersionService.class);
@Autowired
private BaseIndDefVersionRepository baseIndDefVersionRepo;
private BaseIndDefVersionDataMapper baseIndDefVersionDataMapper;
public boolean save(BaseIndDef baseIndDef) throws Exception{
BaseIndDefVersionData baseIndDefVersionData = new BaseIndDefVersionData();
......@@ -27,7 +27,7 @@ public class BaseIndDefVersionService {
gsonBuilder.setPrettyPrinting();
Gson gson = gsonBuilder.create();
baseIndDefVersionData.setDataJson(gson.toJson(baseIndDef));
baseIndDefVersionRepo.save(baseIndDefVersionData);
baseIndDefVersionDataMapper.insert(baseIndDefVersionData);
return true;
}
}
......@@ -9,14 +9,14 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndDefVersionData;
import com.keymobile.indicators.persistence.hyindicators.DriveIndDefVersionRepository;
import com.keymobile.indicators.model.mapper.indmapper.DriveIndDefVersionDataMapper;
@Service
public class DriveIndDefVersionService {
private Logger logger = LoggerFactory.getLogger(DriveIndDefVersionService.class);
@Autowired
private DriveIndDefVersionRepository driveIndDefVersionRepo;
private DriveIndDefVersionDataMapper driveIndDefVersionDataMapper;
public boolean save(DriveIndDef driveIndDef) throws Exception{
DriveIndDefVersionData driveIndDefVersionData = new DriveIndDefVersionData();
......@@ -27,7 +27,7 @@ public class DriveIndDefVersionService {
gsonBuilder.setPrettyPrinting();
Gson gson = gsonBuilder.create();
driveIndDefVersionData.setDataJson(gson.toJson(driveIndDef));
driveIndDefVersionRepo.save(driveIndDefVersionData);
driveIndDefVersionDataMapper.insert(driveIndDefVersionData);
return true;
}
}
package com.keymobile.indicators.service.hytobacco;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.apache.commons.lang.StringUtils;
......@@ -12,49 +14,51 @@ import org.springframework.stereotype.Service;
import com.keymobile.indicators.model.entity.indicators.IndCatalog;
import com.keymobile.indicators.model.mapper.indicators.BaseIndDefMapper;
import com.keymobile.indicators.persistence.hyindicators.IndCatalogRepository;
import com.keymobile.indicators.model.mapper.indmapper.IndCatalogMapper;
@Service
public class IndCatalogService {
private Logger logger = LoggerFactory.getLogger(IndCatalogService.class);
@Autowired
private IndCatalogRepository indCatalogRepo;
private IndCatalogMapper indCatalogMapper;
@Autowired
private BaseIndDefMapper baseIndDefMapper;
public IndCatalog saveOrUpdate(IndCatalog indCatalog) throws Exception{
if(StringUtils.isBlank(indCatalog.getId())) {//新增
if(indCatalog.getId()!=null) {//新增
//保存
indCatalog = indCatalogRepo.save(indCatalog);
indCatalogMapper.insert(indCatalog);
}
//获取parentId拼接idPath
String parentId = indCatalog.getParentId();
if(StringUtils.isBlank(parentId) || "0".equals(parentId)) {//顶层节点
indCatalog.setIdPath(indCatalog.getId());
int parentId = indCatalog.getParentId();
if(parentId==0) {//顶层节点
indCatalog.setIdPath(String.valueOf(indCatalog.getId()));
}else {
Optional<IndCatalog> parentIndCatalog = indCatalogRepo.findById(indCatalog.getParentId());
if(!parentIndCatalog.isPresent()) {
IndCatalog findIndCatalog = new IndCatalog();
findIndCatalog.setId(indCatalog.getParentId());
IndCatalog parentIndCatalog = indCatalogMapper.selectOne(findIndCatalog);
if(parentIndCatalog==null) {
throw new Exception("父节点不存在:parent catalog is not exist");
}else {
indCatalog.setIdPath(parentIndCatalog.get().getIdPath()+";"+indCatalog.getId());
indCatalog.setIdPath(parentIndCatalog.getIdPath()+";"+indCatalog.getId());
}
}
//保存
indCatalog = indCatalogRepo.save(indCatalog);
indCatalogMapper.insert(indCatalog);
return indCatalog;
}
public void delete(List<String> ids) {
indCatalogRepo.deleteByIdIn(ids);
public void delete(List<Integer> ids) {
indCatalogMapper.deleteByIdIn(ids);
}
//递归查找父目录下的子目录
public List<String> getDeleteCatalogId(String id){
List<String> result = new ArrayList<>();
public List<Integer> getDeleteCatalogId(int id){
List<Integer> result = new ArrayList<>();
result.add(id);
//根据id获取子节点
List<IndCatalog> children = indCatalogRepo.findByParentId(id);
List<IndCatalog> children = indCatalogMapper.findByParentId(id);
if(!children.isEmpty()) {
for(IndCatalog child : children) {
result.addAll(getDeleteCatalogId(child.getId()));
......@@ -64,9 +68,9 @@ public class IndCatalogService {
}
//递归删除
public void recursionDelete(List<String> ids) {
for(String id : ids) {
List<String> result = this.getDeleteCatalogId(id);
public void recursionDelete(List<Integer> ids) {
for(Integer id : ids) {
List<Integer> result = this.getDeleteCatalogId(id);
this.delete(result);
//删除目录关联的指标
baseIndDefMapper.deleteByCatalogIdIn(result);
......@@ -74,10 +78,10 @@ public class IndCatalogService {
}
//获取目录树
public List<IndCatalog> getCatalog(String parentId,List<String> codes){
if(StringUtils.isBlank(parentId) || "0".equals(parentId)) {
return indCatalogRepo.findByParentIdAndCodeInOrderByLastUpdateTimeDesc("0", codes);
}
return indCatalogRepo.findByParentIdAndCodeInOrderByLastUpdateTimeDesc(parentId, codes);
public List<IndCatalog> getCatalog(Integer parentId,List<String> codes){
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("pid", parentId);
paramMap.put("codes", codes);
return indCatalogMapper.findByParentIdAndCodeInOrderByLastUpdateTimeDesc(paramMap);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keymobile.indicators.model.mapper.indmapper.BaseIndDefVersionDataMapper">
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keymobile.indicators.model.mapper.indmapper.DriveIndDefVersionDataMapper">
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keymobile.indicators.model.mapper.indmapper.IndCatalogMapper">
<delete id="deleteByIdIn" parameterType="java.util.List">
delete
from base_ind_catalog
where id in
<foreach item="id" collection="ids" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
<select id="findByParentIdAndCodeInOrderByLastUpdateTimeDesc" parameterType="map" resultType="com.keymobile.indicators.model.entity.indicators.IndCatalog" >
select *
from base_ind_catalog
where parent_id = #{pid} and
code in
<foreach item="id" collection="codes" open="(" close=")" separator=",">
#{id}
</foreach>
order by last_update_time desc
</select>
<select id="findByParentId" resultType="com.keymobile.indicators.model.entity.indicators.IndCatalog" >
select *
from base_ind_catalog
where parent_id = #{pid}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment