From 1cb0677f2efd314ae3ccfbb089094aaa1503aa60 Mon Sep 17 00:00:00 2001 From: ly19960718 <1622779752@qq.com> Date: Thu, 15 Apr 2021 16:59:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=87=E6=A0=87=E5=BA=93=E6=96=B0=E5=A2=9Ewe?= =?UTF-8?q?b=E9=A1=B5=E9=9D=A2=E6=A0=91=E5=BD=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/indexlib/IndexLibController.java | 17 ++++-- .../controller/route/indexWebController.java | 2 +- .../twoduty/dao/indexlib/IIndexLibDao.java | 10 ++++ .../bos/indextemplate/IndexTemplateBO.java | 11 ++++ .../pojo/dtos/indexlib/IndexLibCountDTO.java | 52 ++++++++++++++++++ .../dtos/indextemplate/IndexTemplateDTO.java | 10 ++++ .../pos/indextemplate/IndexTemplatePO.java | 9 +++ .../vos/indextemplate/IndexTemplateVO.java | 10 ++++ .../service/indexlib/IIndexLibService.java | 7 +++ .../indexlib/impl/IndexLibServiceImpl.java | 48 ++++++++++++++++ .../mapper/indexLib/indexLib-mapper.xml | 24 +++++++- .../indexTemplate/indexTemplate-mapper.xml | 14 +++++ .../ueditor/lang/zh-cn/images/localimage.png | Bin 6979 -> 3367 bytes .../js/vendor/ueditor/themes/iframe.css | 5 +- .../static/route/indexTemplate/list.html | 9 +++ .../static/route/indexTemplate/save.html | 6 ++ .../static/route/indexTemplate/update.html | 6 ++ 17 files changed, 232 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/tenlion/twoduty/pojo/dtos/indexlib/IndexLibCountDTO.java diff --git a/src/main/java/com/tenlion/twoduty/controller/api/indexlib/IndexLibController.java b/src/main/java/com/tenlion/twoduty/controller/api/indexlib/IndexLibController.java index ec8843d..de0c989 100644 --- a/src/main/java/com/tenlion/twoduty/controller/api/indexlib/IndexLibController.java +++ b/src/main/java/com/tenlion/twoduty/controller/api/indexlib/IndexLibController.java @@ -1,5 +1,6 @@ package com.tenlion.twoduty.controller.api.indexlib; +import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibCountDTO; import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibZTreeDTO; import ink.wgink.annotation.CheckRequestBodyAnnotation; import ink.wgink.common.base.DefaultBaseController; @@ -39,6 +40,18 @@ public class IndexLibController extends DefaultBaseController { @Autowired private IIndexLibService indexLibService; + + @ApiOperation(value = "指标统计", notes = "指标统计接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("countIndexLib/{indexLibParentId}") + public IndexLibCountDTO countIndexLib(@PathVariable("indexLibParentId") String indexLibParentId ){ + return indexLibService.countIndexLib(indexLibParentId); + } + + + + + @ApiOperation(value = "web页面导航列表", notes = "web页面导航列表接口") @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @GetMapping("listwebtags") @@ -53,10 +66,6 @@ public class IndexLibController extends DefaultBaseController { @GetMapping("listztreeweb/{indexLibParentId}") public List listZTreeWeb(@PathVariable("indexLibParentId") String indexLibParentId ) { Map params = requestParams(); - /* String indexLibParentId = "0"; - if (!StringUtils.isBlank(params.get("id") == null ? null : params.get("id").toString())) { - indexLibParentId = params.get("id").toString(); - }*/ params.put("indexLibParentId",indexLibParentId); return indexLibService.listZTreeWeb(params); } diff --git a/src/main/java/com/tenlion/twoduty/controller/route/indexWebController.java b/src/main/java/com/tenlion/twoduty/controller/route/indexWebController.java index 726fde7..0e5da6d 100644 --- a/src/main/java/com/tenlion/twoduty/controller/route/indexWebController.java +++ b/src/main/java/com/tenlion/twoduty/controller/route/indexWebController.java @@ -28,7 +28,7 @@ public class indexWebController extends DefaultBaseController { @ApiOperation(value = "后台页面首页", notes = "后台页面首页接口") @GetMapping("indexweb") - public ModelAndView indexweb(){ + public ModelAndView indexWeb(){ ModelAndView mv = new ModelAndView("index"); mv.addObject("userName",securityComponent.getCurrentUser().getUserName()); mv.addObject("userUserName",securityComponent.getCurrentUser().getUserUsername()); diff --git a/src/main/java/com/tenlion/twoduty/dao/indexlib/IIndexLibDao.java b/src/main/java/com/tenlion/twoduty/dao/indexlib/IIndexLibDao.java index d7f8135..380d723 100644 --- a/src/main/java/com/tenlion/twoduty/dao/indexlib/IIndexLibDao.java +++ b/src/main/java/com/tenlion/twoduty/dao/indexlib/IIndexLibDao.java @@ -1,5 +1,6 @@ package com.tenlion.twoduty.dao.indexlib; +import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibCountDTO; import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibZTreeDTO; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; @@ -153,4 +154,13 @@ public interface IIndexLibDao { */ Integer countByParentIdWeb(Map params) throws SearchException; + + /** + * 统计指标状态数量 + * @param params + * @return + * @throws SearchException + */ + IndexLibCountDTO countIndexLibAuditStatusNum(Map params) throws SearchException; + } \ No newline at end of file diff --git a/src/main/java/com/tenlion/twoduty/pojo/bos/indextemplate/IndexTemplateBO.java b/src/main/java/com/tenlion/twoduty/pojo/bos/indextemplate/IndexTemplateBO.java index 0807087..3c8ba86 100644 --- a/src/main/java/com/tenlion/twoduty/pojo/bos/indextemplate/IndexTemplateBO.java +++ b/src/main/java/com/tenlion/twoduty/pojo/bos/indextemplate/IndexTemplateBO.java @@ -1,5 +1,7 @@ package com.tenlion.twoduty.pojo.bos.indextemplate; +import io.swagger.annotations.ApiModelProperty; + /** * * @ClassName: IndexTemplateBO @@ -15,6 +17,7 @@ public class IndexTemplateBO { private String indexTemplateSavePath; private String indexTemplateUploadPath; private String indexTemplateListPath; + private String indexTemplateTableName; private String indexTemplateRemark; private Integer indexTemplateState; private String gmtCreate; @@ -118,4 +121,12 @@ public class IndexTemplateBO { public void setIndexTemplateState(Integer indexTemplateState) { this.indexTemplateState = indexTemplateState; } + + public String getIndexTemplateTableName() { + return indexTemplateTableName; + } + + public void setIndexTemplateTableName(String indexTemplateTableName) { + this.indexTemplateTableName = indexTemplateTableName; + } } diff --git a/src/main/java/com/tenlion/twoduty/pojo/dtos/indexlib/IndexLibCountDTO.java b/src/main/java/com/tenlion/twoduty/pojo/dtos/indexlib/IndexLibCountDTO.java new file mode 100644 index 0000000..5141c04 --- /dev/null +++ b/src/main/java/com/tenlion/twoduty/pojo/dtos/indexlib/IndexLibCountDTO.java @@ -0,0 +1,52 @@ +package com.tenlion.twoduty.pojo.dtos.indexlib; + + +/** + * 统计实体 + * @version 1.0 + * @author LY + * @date 2021/4/15 15:56 + */ +public class IndexLibCountDTO { + + + + private Integer count1; + + private Integer count2; + + private Integer count3; + private Integer count4; + + public Integer getCount1() { + return count1; + } + + public void setCount1(Integer count1) { + this.count1 = count1; + } + + public Integer getCount2() { + return count2; + } + + public void setCount2(Integer count2) { + this.count2 = count2; + } + + public Integer getCount3() { + return count3; + } + + public void setCount3(Integer count3) { + this.count3 = count3; + } + + public Integer getCount4() { + return count4; + } + + public void setCount4(Integer count4) { + this.count4 = count4; + } +} diff --git a/src/main/java/com/tenlion/twoduty/pojo/dtos/indextemplate/IndexTemplateDTO.java b/src/main/java/com/tenlion/twoduty/pojo/dtos/indextemplate/IndexTemplateDTO.java index 9fdd3af..550e3a8 100644 --- a/src/main/java/com/tenlion/twoduty/pojo/dtos/indextemplate/IndexTemplateDTO.java +++ b/src/main/java/com/tenlion/twoduty/pojo/dtos/indextemplate/IndexTemplateDTO.java @@ -27,6 +27,8 @@ public class IndexTemplateDTO { private String indexTemplateUploadPath; @ApiModelProperty(name = "indexTemplateListPath", value = "列表路径") private String indexTemplateListPath; + @ApiModelProperty(name = "indexTemplateTableName", value = "业务表名") + private String indexTemplateTableName; @ApiModelProperty(name = "indexTemplateRemark", value = "模板说明") private String indexTemplateRemark; @ApiModelProperty(name = "indexTemplateState", value = "模板状态") @@ -87,4 +89,12 @@ public class IndexTemplateDTO { public void setIndexTemplateState(Integer indexTemplateState) { this.indexTemplateState = indexTemplateState; } + + public String getIndexTemplateTableName() { + return indexTemplateTableName; + } + + public void setIndexTemplateTableName(String indexTemplateTableName) { + this.indexTemplateTableName = indexTemplateTableName; + } } diff --git a/src/main/java/com/tenlion/twoduty/pojo/pos/indextemplate/IndexTemplatePO.java b/src/main/java/com/tenlion/twoduty/pojo/pos/indextemplate/IndexTemplatePO.java index e0e7747..8ae0a23 100644 --- a/src/main/java/com/tenlion/twoduty/pojo/pos/indextemplate/IndexTemplatePO.java +++ b/src/main/java/com/tenlion/twoduty/pojo/pos/indextemplate/IndexTemplatePO.java @@ -17,6 +17,7 @@ public class IndexTemplatePO { private String indexTemplateSavePath; private String indexTemplateUploadPath; private String indexTemplateListPath; + private String indexTemplateTableName; private String indexTemplateRemark; private Integer indexTemplateState; private String gmtCreate; @@ -120,4 +121,12 @@ public class IndexTemplatePO { public void setIndexTemplateState(Integer indexTemplateState) { this.indexTemplateState = indexTemplateState; } + + public String getIndexTemplateTableName() { + return indexTemplateTableName; + } + + public void setIndexTemplateTableName(String indexTemplateTableName) { + this.indexTemplateTableName = indexTemplateTableName; + } } diff --git a/src/main/java/com/tenlion/twoduty/pojo/vos/indextemplate/IndexTemplateVO.java b/src/main/java/com/tenlion/twoduty/pojo/vos/indextemplate/IndexTemplateVO.java index a49bde1..7c1faae 100644 --- a/src/main/java/com/tenlion/twoduty/pojo/vos/indextemplate/IndexTemplateVO.java +++ b/src/main/java/com/tenlion/twoduty/pojo/vos/indextemplate/IndexTemplateVO.java @@ -25,6 +25,8 @@ public class IndexTemplateVO { private String indexTemplateUploadPath; @ApiModelProperty(name = "indexTemplateListPath", value = "列表路径") private String indexTemplateListPath; + @ApiModelProperty(name = "indexTemplateTableName", value = "业务表名") + private String indexTemplateTableName; @ApiModelProperty(name = "indexTemplateRemark", value = "模板说明") private String indexTemplateRemark; @ApiModelProperty(name = "indexTemplateState", value = "模板状态") @@ -78,4 +80,12 @@ public class IndexTemplateVO { public void setIndexTemplateState(Integer indexTemplateState) { this.indexTemplateState = indexTemplateState; } + + public String getIndexTemplateTableName() { + return indexTemplateTableName; + } + + public void setIndexTemplateTableName(String indexTemplateTableName) { + this.indexTemplateTableName = indexTemplateTableName; + } } diff --git a/src/main/java/com/tenlion/twoduty/service/indexlib/IIndexLibService.java b/src/main/java/com/tenlion/twoduty/service/indexlib/IIndexLibService.java index 9667e4a..143daef 100644 --- a/src/main/java/com/tenlion/twoduty/service/indexlib/IIndexLibService.java +++ b/src/main/java/com/tenlion/twoduty/service/indexlib/IIndexLibService.java @@ -1,5 +1,6 @@ package com.tenlion.twoduty.service.indexlib; +import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibCountDTO; import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibZTreeDTO; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.result.SuccessResultList; @@ -20,6 +21,12 @@ import java.util.Map; **/ public interface IIndexLibService { + /** + * 统计指标状态数量 + * @param indexLibParentId + * @return + */ + IndexLibCountDTO countIndexLib(String indexLibParentId); /** * 获取web页面导航 diff --git a/src/main/java/com/tenlion/twoduty/service/indexlib/impl/IndexLibServiceImpl.java b/src/main/java/com/tenlion/twoduty/service/indexlib/impl/IndexLibServiceImpl.java index ff70900..77d97b6 100644 --- a/src/main/java/com/tenlion/twoduty/service/indexlib/impl/IndexLibServiceImpl.java +++ b/src/main/java/com/tenlion/twoduty/service/indexlib/impl/IndexLibServiceImpl.java @@ -1,6 +1,8 @@ package com.tenlion.twoduty.service.indexlib.impl; +import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibCountDTO; import com.tenlion.twoduty.pojo.dtos.indexlib.IndexLibZTreeDTO; +import com.tenlion.twoduty.pojo.dtos.indextemplate.IndexTemplateDTO; import com.tenlion.twoduty.service.indextemplate.IIndexTemplateService; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.pojo.ListPage; @@ -19,6 +21,7 @@ import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.PathVariable; import java.util.*; @@ -37,6 +40,51 @@ public class IndexLibServiceImpl extends DefaultBaseService implements IIndexLib @Autowired private IIndexTemplateService indexTemplateService; + public IndexLibCountDTO countIndexLib(String indexLibParentId){ + Integer count1 = 0; + Integer count2 = 0; + Integer count3 = 0; + Integer count4 = 0; + Map params = new HashMap(); + params.put("indexLibParentId",indexLibParentId); + //查询指标分类树 + List listZTreeWeb = this.listZTreeWeb(params); + for (IndexLibZTreeDTO indexLibZTreeDTO : listZTreeWeb) { + params.clear(); + params.put("indexLibState",1); + params.put("indexLibParentId",indexLibZTreeDTO.getId()); + //查询具体指标 + List list = this.list(params); + for (IndexLibDTO indexLibDTO : list) { + String templateId = indexLibDTO.getIndexTemplateId(); + if (StringUtils.isBlank(templateId)) { + IndexTemplateDTO indexTemplateDTO = indexTemplateService.get(templateId); + String templateTableName = indexTemplateDTO.getIndexTemplateTableName(); + if (StringUtils.isBlank(templateTableName)) { + //统计 + Map counts = new HashMap(); + counts.put("tableName",templateTableName); + counts.put("indexLibId",indexLibZTreeDTO.getId()); + IndexLibCountDTO indexLibCountDTO = indexLibDao.countIndexLibAuditStatusNum(counts); + count1 += indexLibCountDTO.getCount1(); + count2 += indexLibCountDTO.getCount2(); + count3 += indexLibCountDTO.getCount3(); + count4 += indexLibCountDTO.getCount4(); + } + } + } + } + IndexLibCountDTO indexLibCountDTO = new IndexLibCountDTO(); + indexLibCountDTO.setCount1(count1); + indexLibCountDTO.setCount2(count2); + indexLibCountDTO.setCount3(count3); + indexLibCountDTO.setCount4(count4); + return indexLibCountDTO; + } + + + + public List listWebTags(Map params){ return indexLibDao.listZTreeWeb(params); } diff --git a/src/main/resources/mybatis/mapper/indexLib/indexLib-mapper.xml b/src/main/resources/mybatis/mapper/indexLib/indexLib-mapper.xml index 0f74884..6bdaf67 100644 --- a/src/main/resources/mybatis/mapper/indexLib/indexLib-mapper.xml +++ b/src/main/resources/mybatis/mapper/indexLib/indexLib-mapper.xml @@ -47,14 +47,21 @@ - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/indexTemplate/indexTemplate-mapper.xml b/src/main/resources/mybatis/mapper/indexTemplate/indexTemplate-mapper.xml index c3ab366..e57273b 100644 --- a/src/main/resources/mybatis/mapper/indexTemplate/indexTemplate-mapper.xml +++ b/src/main/resources/mybatis/mapper/indexTemplate/indexTemplate-mapper.xml @@ -8,6 +8,7 @@ + @@ -18,6 +19,7 @@ + @@ -33,6 +35,7 @@ + @@ -50,6 +53,7 @@ index_template_save_path, index_template_upload_path, index_template_list_path, + index_template_table_name, index_template_remark, index_template_state, gmt_create, @@ -63,6 +67,7 @@ #{indexTemplateSavePath}, #{indexTemplateUploadPath}, #{indexTemplateListPath}, + #{indexTemplateTableName} #{indexTemplateRemark}, #{indexTemplateState}, #{gmtCreate}, @@ -118,6 +123,9 @@ index_template_list_path = #{indexTemplateListPath}, + + + index_template_table_name = #{indexTemplateTableName}, index_template_remark = #{indexTemplateRemark}, @@ -138,6 +146,7 @@ t1.index_template_save_path, t1.index_template_upload_path, t1.index_template_list_path, + t1.index_template_table_name, t1.index_template_remark, t1.index_template_state, t1.index_template_id @@ -159,6 +168,7 @@ t1.index_template_save_path, t1.index_template_upload_path, t1.index_template_list_path, + t1.index_template_table_name, t1.index_template_remark, t1.index_template_state, t1.gmt_create, @@ -183,6 +193,7 @@ t1.index_template_save_path, t1.index_template_upload_path, t1.index_template_list_path, + t1.index_template_table_name, t1.index_template_remark, t1.index_template_state, t1.gmt_create, @@ -207,6 +218,7 @@ t1.index_template_save_path, t1.index_template_upload_path, t1.index_template_list_path, + t1.index_template_table_name, t1.index_template_remark, t1.index_template_state FROM @@ -236,6 +248,7 @@ t1.index_template_save_path, t1.index_template_upload_path, t1.index_template_list_path, + t1.index_template_table_name, t1.index_template_remark, t1.index_template_state, t1.gmt_create, @@ -269,6 +282,7 @@ t1.index_template_save_path, t1.index_template_upload_path, t1.index_template_list_path, + t1.index_template_table_name, t1.index_template_remark, t1.index_template_state, t1.gmt_create, diff --git a/src/main/resources/static/assets/js/vendor/ueditor/lang/zh-cn/images/localimage.png b/src/main/resources/static/assets/js/vendor/ueditor/lang/zh-cn/images/localimage.png index 7303c364318b6ac27dc4a8ae6717124d8dafaff9..e073553d2f1c300c09842523173df932540b13f9 100644 GIT binary patch literal 3367 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 +
+ +
+ +
+
diff --git a/src/main/resources/static/route/indexTemplate/update.html b/src/main/resources/static/route/indexTemplate/update.html index 0a97ffe..b19c912 100644 --- a/src/main/resources/static/route/indexTemplate/update.html +++ b/src/main/resources/static/route/indexTemplate/update.html @@ -46,6 +46,12 @@
+
+ +
+ +
+