JiangPengLi 2 сар өмнө
parent
commit
fa2a5d30c0

+ 4 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/enums/SubInfoStatusEnum.java

@@ -41,4 +41,8 @@ public enum SubInfoStatusEnum {
     public static List<String> getValidCodeList() {
         return Arrays.stream(values()).filter(x -> !x.equals(REMOVE)).map(x -> x.code).collect(Collectors.toList());
     }
+
+    public static List<SubInfoStatusEnum> getValidEnumList() {
+        return Arrays.stream(values()).filter(x -> !x.equals(REMOVE)).collect(Collectors.toList());
+    }
 }

+ 2 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml

@@ -219,8 +219,8 @@
             </if>
             <if test="vo.statusRed!=null and vo.statusRed!=''">
                 <choose>
-                    <when test="vo.statusRed.toString() == '0'">
-                        and (s.status_red is null or s.status_red = '0')
+                    <when test="vo.statusRed==0">
+                        and (s.status_red = '0' or s.status_red is null)
                     </when>
                     <otherwise>
                         and s.status_red = #{vo.statusRed}

+ 11 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/ScaleMapper.java

@@ -0,0 +1,11 @@
+package com.rtrh.projects.modules.system.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.system.po.Scale;
+
+import java.util.List;
+
+@MyBatisRepository
+public interface ScaleMapper {
+    List<Scale> selectAll();
+}

+ 22 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/ScaleMapper.xml

@@ -0,0 +1,22 @@
+<?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.rtrh.projects.modules.system.mapper.ScaleMapper">
+<select id="selectAll" resultType="com.rtrh.projects.modules.system.po.Scale">
+    select
+        l.id as id,
+        l.code as code,
+        l.title as title,
+        l.amt_min as amtMin,
+        l.amt_max as amtMax,
+        l.create_user_id as createUserId,
+        l.create_user_name as createUserName,
+        l.create_time as createTime,
+        l.last_update_user_id as lastUpdateUserId,
+        l.last_update_user_name as lastUpdateUserName,
+        l.last_update_time as lastUpdateTime,
+        l.logic_delete_flag as logicDeleteFlag,
+        l.remark as remark
+    from
+        t_scale l
+</select>
+</mapper>

+ 53 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/po/Scale.java

@@ -0,0 +1,53 @@
+package com.rtrh.projects.modules.system.po;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 字典设置表
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-02-25
+ */
+@Getter
+@Setter
+// @TableName("t_scale")
+// @ApiModel(value = "Scale对象", description = "字典设置表")
+public class Scale implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String code;
+
+    private String title;
+
+    private BigDecimal amtMin;
+
+    private BigDecimal amtMax;
+
+    private String createUserId;
+
+    private String createUserName;
+
+    private Date createTime;
+
+    private String lastUpdateUserId;
+
+    private String lastUpdateUserName;
+
+    private Date lastUpdateTime;
+
+    private Boolean logicDeleteFlag;
+
+    private String remark;
+
+
+}

+ 16 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/ScaleService.java

@@ -0,0 +1,16 @@
+package com.rtrh.projects.modules.system.service;
+
+import com.rtrh.projects.modules.system.po.Scale;
+
+import java.util.List;
+
+/**
+ * 服务规模
+ *
+ * @author 1
+ * @date 2025/02/25
+ */
+public interface ScaleService {
+
+    List<Scale> selectAll();
+}

+ 24 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/ScaleServiceImpl.java

@@ -0,0 +1,24 @@
+package com.rtrh.projects.modules.system.service.impl;
+
+import com.rtrh.projects.modules.system.mapper.ScaleMapper;
+import com.rtrh.projects.modules.system.po.Scale;
+import com.rtrh.projects.modules.system.service.ScaleService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 规模
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class ScaleServiceImpl implements ScaleService {
+    private final ScaleMapper scaleMapper;
+
+    @Override
+    public List<Scale> selectAll() {
+        return scaleMapper.selectAll();
+    }
+}

+ 3 - 0
projects/src/main/java/com/rtrh/projects/web/controller/passport/api/LoginApiController.java

@@ -7,6 +7,8 @@ import com.rtrh.projects.modules.account.po.CommUser;
 import com.rtrh.projects.modules.account.service.CommLoginService;
 import com.rtrh.projects.modules.account.service.CommUserService;
 import com.rtrh.projects.modules.account.service.impl.CommUserChecker;
+import com.rtrh.projects.outapi.base.AuthenticateType;
+import com.rtrh.projects.outapi.base.TokenAuthenticate;
 import com.rtrh.projects.vo.passport.DoLoginVO;
 import com.rtrh.projects.web.controller.BaseController;
 import com.rtrh.projects.web.util.JwtUtil;
@@ -98,6 +100,7 @@ public class LoginApiController extends BaseController {
 	 * @return
 	 */
 	@PostMapping("jumpLogin")
+	@TokenAuthenticate(AuthenticateType.NONE)
 	public Message jumpLogin(@RequestParam String token) {
 		Message message = new Message();
 		try {

+ 19 - 3
projects/src/main/java/com/rtrh/projects/web/controller/statics/AnalysisScreenController.java

@@ -13,10 +13,14 @@ import cn.hutool.core.net.URLEncodeUtil;
 import com.rtrh.common.util.DateUtil;
 import com.rtrh.core.repository.Page;
 import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
+import com.rtrh.projects.modules.projects.enums.SubInfoStatusEnum;
 import com.rtrh.projects.modules.projects.enums.SubqestionStatus;
 import com.rtrh.projects.modules.projects.service.SubInfoQueryService;
 import com.rtrh.projects.modules.projects.service.WorkBenchService;
 import com.rtrh.projects.modules.projects.vo.SubInfoQueryTzVO;
+import com.rtrh.projects.modules.system.po.Scale;
+import com.rtrh.projects.modules.system.service.ISubInduService;
+import com.rtrh.projects.modules.system.service.ScaleService;
 import com.rtrh.projects.vo.statics.AmtMonthQueryVO;
 import com.rtrh.projects.vo.statics.YellowRedSubQueryVO;
 import com.rtrh.projects.web.log.Log;
@@ -55,6 +59,12 @@ public class AnalysisScreenController extends BaseController {
 	@Autowired
 	private SubInfoQueryService subInfoQueryService;
 
+	@Autowired
+	private ISubInduService subInduService;
+
+	@Autowired
+	private ScaleService scaleService;
+
 	/**
 	 * 大屏
 	 * @param model
@@ -87,12 +97,18 @@ public class AnalysisScreenController extends BaseController {
 		model.put("XMLX", XMLX);
 		List<TSystable> JSDD = tSysTableService.getByKind(SysTableKind.JSDD);
 		model.put("JSDD", JSDD);
-		List<TSystable> HYFL = tSysTableService.getByKind(SysTableKind.HYFL);
-		model.put("HYFL", HYFL);
+		// List<TSystable> HYFL = tSysTableService.getByKind(SysTableKind.HYFL);
+		// model.put("HYFL", HYFL);
+		model.put("HYFL", subInduService.queryTreeALl());   //行业分类
+
+		List<Scale> scales = scaleService.selectAll();
+		model.put("scales", scales);
+
 		List<TSystable> ZJLY = tSysTableService.getByKind(SysTableKind.ZJLY);
 		model.put("ZJLY", ZJLY);
+		List<SubInfoStatusEnum> validEnumList = SubInfoStatusEnum.getValidEnumList();
 		List<TSystable> JSXZ = tSysTableService.getByKind(SysTableKind.JSXZ);
-		model.put("JSXZ", JSXZ);
+		model.put("JSXZ", validEnumList);
 //		return new ModelAndView("/vmodules/statics/analysisScreen_two.jsp");
 		return new ModelAndView("/vmodules/statics/analysisScreen_four.jsp");
 	}

+ 5 - 1
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -1014,7 +1014,11 @@ public class SubInfoExportController extends BaseController {
                 List<RptCont> subRptConts = rptContGroup.getOrDefault(subInfoGxj.getSubId(),new ArrayList<>());
 
                 SubInfoZjVO.MonthNumBl monthNumBl = new SubInfoZjVO.MonthNumBl();
-                Map<String, BigDecimal> map = subRptConts.stream().collect(Collectors.toMap(RptCont::getKjMonth, RptCont::getNumBl, (a, b) -> a));
+
+                Map<String, BigDecimal> map = subRptConts.stream()
+                        .filter(Objects::nonNull)
+                        .filter(e->StringUtils.isNotBlank(e.getKjMonth()))
+                        .collect(Collectors.toMap(RptCont::getKjMonth, e -> Optional.ofNullable(e.getNumBl()).orElse(BigDecimal.ZERO), (a, b) -> a));
                 monthNumBl.setMonth1(map.getOrDefault(DateUtil.thisYear() + "01", BigDecimal.ZERO) + "%");
                 monthNumBl.setMonth2(map.getOrDefault(DateUtil.thisYear() + "02", BigDecimal.ZERO) + "%");
                 monthNumBl.setMonth3(map.getOrDefault(DateUtil.thisYear() + "03", BigDecimal.ZERO) + "%");

+ 124 - 37
projects/src/main/webapp/vmodules/statics/analysisScreen_four.jsp

@@ -1,4 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <!DOCTYPE html>
 <html lang="en">
 
@@ -55,7 +56,7 @@
                 <p>哈密市工业项目智慧平台</p>
             </div>
             <div class="right">
-                <img src="${WebSite.asset}/images/static/search.png" alt="">
+                <img onclick="search()" src="${WebSite.asset}/images/static/search.png" alt="">
                 <img id="fullscreenButton" src="${WebSite.asset}/images/static/header-1.png" alt="">
             </div>
             <img class="header-bgc" src="${WebSite.asset}/images/static/header.png" alt="">
@@ -68,6 +69,75 @@
             <img  class="img5" src="${WebSite.asset}/images/static/right-bottom-img.png" alt="">
             <div class="bgc-center"></div>
         </div>
+        <div id="searchData" style="display: none;height: 100%;padding:0 40px;box-sizing:border-box;">
+            <form class="layui-form" lay-filter="searchForm" id="searchForm">
+                <input type="hidden" name="queryType" value="3">
+                <div class="layui-row">
+                    <div class="layui-form-item">
+                        <label class="layui-form-label label-longer required" style="width: 120px"></label>
+                        <div class="layui-input-block">
+                            <input type="radio" lay-filter="statusSubject" name="varlx" value="0" title="所有" checked>
+                            <input type="radio" lay-filter="statusSubject" name="varlx" value="1" title="重点项目" >
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label required" style="width: 120px">年份</label>
+                        <div class="layui-input-block">
+                            <input type="text" id="year" readonly="readonly" name="year" class="layui-input">
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label required" style="width: 120px">建设地点</label>
+                        <div class="layui-input-block">
+                            <select name="jsdd">
+                                <option value="">请选择</option>
+                                <c:forEach items="${JSDD }" var="dd">
+                                    <option value="${dd.code }">${dd.title }</option>
+                                </c:forEach>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-form-item" style="height:28px;">
+                        <label class="layui-form-label required" style="width: 120px">四库</label>
+                        <div class="layui-input-block">
+                            <select id="var4k" name="var4k" lay-filter="kind"
+                                    style="width:150px; background: none;border: none;color: #fff; font-size:20px;">
+                                <option value="">全部</option>
+                                <c:forEach items="${JSXZ }" var="jd">
+                                    <option value="${jd.code }">${jd.desc }</option>
+                                </c:forEach>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label required" style="width: 120px">规模</label>
+                        <div class="layui-input-block">
+                            <select name="vargm" lay-search="">--%>
+                                <option value="">请选择</option>
+                                <c:forEach items="${scales }" var="item">
+                                    <option value="${item.id }">${item.title }</option>
+                                </c:forEach>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label required" style="width: 120px">所属行业</label>
+                        <div class="layui-input-block">
+                            <select name="indusKind">
+                                <option value="">请选择</option>
+                                <c:forEach items="${HYFL }" var="hy">
+                                    <option value="${hy.code }">${hy.title}
+                                    <c:forEach items="${hy.children }" var="hy2">
+                                        <option value="${hy2.code }">&ensp;&ensp;${hy2.title}
+                                    </c:forEach>
+                                    </option>
+                                </c:forEach>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+            </form>
+        </div>
         <main class="main">
 
             <div class="main-left">
@@ -618,6 +688,15 @@
     var stockRate=0;  //入规率
     var hyData=[]// 行业数据
 
+    let searchParams = {
+        varlx: '0',
+        varyear: '',
+        varqx: '',
+        var4k: '',
+        vargm: '',
+        varhy: ''
+    }
+
     function projDetailNew(status,subjectId,startAmt,endAmt,statusRed,indusKind) {
         var projTz = "/statics/subjectNew"
             + "?status=" + status
@@ -640,15 +719,7 @@
         App.openLayer(opt)
     }
     function loadDpGxjGmData() {
-        App.postJson('/api/statics/dp_gxj_gm', {
-            varlx: '0',
-            varyear: '2024',
-            varqx: '',
-            var4k: '',
-            vargm: '',
-            varhy: '',
-            varlogin: 'admin'
-        }, function(res) {
+        App.postJson('/api/statics/dp_gxj_gm', searchParams, function(res) {
             console.log('loadDpGxjAddreData', res);
             // 绑定数据到页面
             if (res.success) {
@@ -669,15 +740,7 @@
     }
     // 示例:获取 dp_gxj_addre 数据
     function loadDpGxjAddreData() {
-        App.postJson('/api/statics/dp_gxj_addre', {
-            varlx: '0',
-            varyear: '2024',
-            varqx: '',
-            var4k: '',
-            vargm: '',
-            varhy: '',
-            varlogin: 'admin'
-        }, function(res) {
+        App.postJson('/api/statics/dp_gxj_addre', searchParams, function(res) {
             // 绑定数据到页面
             if (res.success) {
                 addreData = res.data;
@@ -709,15 +772,7 @@
     }
     // 示例:获取 dp_gxj_hy 数据
     function loadDpGxjHyData() {
-        App.postJson('/api/statics/dp_gxj_hy', {
-            varlx: '0',
-            varyear: '2024',
-            varqx: '',
-            var4k: '',
-            vargm: '',
-            varhy: '',
-            varlogin: 'admin'
-        }, function(res) {
+        App.postJson('/api/statics/dp_gxj_hy', searchParams, function(res) {
             // 绑定数据到页面
             if (res.success) {
                 hyData = res.data.map(item => ({
@@ -834,15 +889,7 @@
     }
     // 示例:获取 dp_gxj_qt 数据
     function loadDpGxjQtData() {
-        App.postJson("/api/statics/dp_gxj_qt", {
-            varlx: '0',
-            varyear: '2024',
-            varqx: '',
-            var4k: '',
-            vargm: '',
-            varhy: '',
-            varlogin: 'admin'
-        }, function (res) {
+        App.postJson("/api/statics/dp_gxj_qt", searchParams, function (res) {
             if (res.success) {
                 qtData = res.data[0];
                 console.log(qtData)
@@ -887,6 +934,37 @@
         });
     }
 
+    function search() {
+        var self = this;
+        layer.open({
+            type: 1,
+            title: "查询条件",
+            content: $("#searchData"),
+            area: ['600px', ''],
+            btn: ["确定", "取消"],
+            yes: function (index) {
+                var searchData = layui.form.val("searchForm");
+                console.log("searchData====",searchData);
+                searchParams.varlx = searchData.varlx;// 所有、重点项目
+                searchParams.varyear = searchData.year;// 年份
+                searchParams.varqx = searchData.jsdd;// 区县
+                searchParams.var4k = searchData.var4k; // 4库
+                searchParams.vargm = searchData.vargm;  // 规模
+                searchParams.varhy = searchData.indusKind;// 行业
+
+                loadDpGxjGmData()
+                loadDpGxjQtData()
+                loadDpGxjHyData()
+                loadDpGxjAddreData()
+
+                layer.close(index);
+            },
+            close: function (index) {
+                layer.close(index);
+            }
+        })
+    }
+
     function  initHy(){
         var myChart5 = echarts.init(document.getElementById('bie-echarts'));
         var option = {
@@ -1094,7 +1172,16 @@
                         });*/
         });
     }
+
     onload = function () {
+        layui.laydate.render({
+            elem: '#year',
+            type: 'year',
+            theme: layDateTheme,
+            btns: ['now', 'confirm'],
+            value: new Date().getFullYear()
+        });
+
         loadDpGxjGmData()
         loadDpGxjAddreData()
         loadDpGxjQtData()