Browse Source

项目转换统计详情界面

Wayne 3 tháng trước cách đây
mục cha
commit
a38d320ec0

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/StaticsMapper.java

@@ -320,4 +320,6 @@ public interface StaticsMapper {
 	List<SubInfoTjfxDataVo> getTjfxYearMoneyBySubIds(@Param("idList") List<String> idList, @Param("year") String year);
 
 	List<TLogOperateVo> getXmzhtjData(@Param("vo") RegisterListVO vo);
+
+    List<TLogOperateVo> getXmzhtjDetailData(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("kind") String kind, @Param("title") String title);
 }

+ 31 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/StaticsMapper.xml

@@ -189,4 +189,35 @@
 		    projectDate, kind, title
 	</select>
 
+    <select id="getXmzhtjDetailData" resultType="com.rtrh.projects.modules.projects.vo.TLogOperateVo">
+		select
+		    b.sub_name as subName,
+		    a.kind as kind,
+		    a.title as title,
+		    a.create_time as createTime,
+		    a.create_user_name as createUserName
+		from
+		t_log_operate a
+		left join sub_info b on a.sub_id = b.id
+		where
+		a.logic_delete_flag = 0
+		<if test="startDate != null and  startDate != ''">
+			AND a.zh_date &gt;= #{startDate}
+		</if>
+		<if test="endDate != null and endDate != ''">
+			AND a.zh_date &lt;= #{endDate}
+		</if>
+		<if test="kind != null and kind != ''">
+			AND a.kind = #{kind}
+		</if>
+		<if test="title != null and title != ''">
+			AND a.title = #{title}
+		</if>
+		<if test="title == null or title == ''">
+			AND a.title IS NULL
+		</if>
+		order by
+		a.create_time desc
+	</select>
+
 </mapper>

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/StaticsService.java

@@ -345,4 +345,6 @@ public interface StaticsService {
 	SubInfoTjfxVo getTjfxData(TzfxDataQueryVO queryVO);
 
 	Page getXmzhtjData(Page page, RegisterListVO vo);
+
+    Page getXmzhtjDetailData(Page page, XmzhtjDetailVo queryVO);
 }

+ 28 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/StaticsServiceImpl.java

@@ -1258,4 +1258,32 @@ public class StaticsServiceImpl implements StaticsService {
 
         return page;
     }
+
+    @Override
+    public Page getXmzhtjDetailData(Page page, XmzhtjDetailVo queryVO) {
+
+        String startDate = queryVO.getProjectDate() + "-01";
+
+        // 将字符串转换为 LocalDate 对象,获取该月的第一天
+        LocalDate firstDayOfMonth = LocalDate.parse(queryVO.getProjectDate() + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+
+        // 获取下个月的第一天
+        LocalDate firstDayOfNextMonth = firstDayOfMonth.plusMonths(1);
+
+        // 上个月的最后一天就是下个月第一天的前一天
+        LocalDate lastDayOfMonth = firstDayOfNextMonth.minusDays(1);
+
+        String endDate = lastDayOfMonth.toString();
+
+        if ("undefined".equals(queryVO.getTitle())){
+            queryVO.setTitle(null);
+        }
+
+        PageHelper.startPage(page.getPageNo(), page.getPageSize());
+        List<TLogOperateVo> list = staticsMapper.getXmzhtjDetailData(startDate,endDate,queryVO.getKind(),queryVO.getTitle());
+        PageInfo<TLogOperateVo> pageInfo = new PageInfo<>(list);
+        page.setList(list);
+        page.setTotalCount(pageInfo.getTotal());
+        return page;
+    }
 }

+ 8 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/TLogOperateVo.java

@@ -1,7 +1,10 @@
 package com.rtrh.projects.modules.projects.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class TLogOperateVo {
 
@@ -11,4 +14,9 @@ public class TLogOperateVo {
     private String title;  //说明
     private String number;  //数量
 
+    private String subName; //项目名称
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;    //操作时间
+
 }

+ 14 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/XmzhtjDetailVo.java

@@ -0,0 +1,14 @@
+package com.rtrh.projects.modules.projects.vo;
+
+import lombok.Data;
+
+@Data
+public class XmzhtjDetailVo {
+
+    private String projectDate;
+
+    private String kind;
+
+    private String title;
+
+}

+ 15 - 1
projects/src/main/java/com/rtrh/projects/web/controller/projects/TjFxController.java

@@ -17,6 +17,7 @@ import com.rtrh.projects.modules.system.po.JUnit;
 import com.rtrh.projects.modules.system.service.ISubInduService;
 import com.rtrh.projects.modules.system.service.JUnitService;
 import org.apache.commons.io.IOUtils;
+import org.apache.ibatis.annotations.Param;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -69,7 +70,7 @@ public class TjFxController extends BaseController {
 	 * @return
 	 */
 	@RequestMapping(value="/xmzhtj",method= RequestMethod.GET)
-	public ModelAndView view(Model model) {
+	public ModelAndView xmzhtj(Model model) {
 		String currUserUnitId = getCurUser().getUnitId();
 		Boolean isSfgw = false;
 		if(StringUtil.isNotEmpty(currUserUnitId)) {
@@ -95,6 +96,19 @@ public class TjFxController extends BaseController {
 		return new ModelAndView("/vmodules/project/xmzhtj.jsp");
 	}
 
+	/**
+	 * 返回项目转换统计详情页面
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value="/xmzhtjDetail",method= RequestMethod.GET)
+	public ModelAndView xmzhtjDetail(ModelMap model, String projectDate, String kind, String title) {
+		model.addAttribute("projectDate", projectDate);
+		model.addAttribute("kind", kind);
+		model.addAttribute("title", title);
+		return new ModelAndView("/vmodules/subject/subInfo/xmzhtjDetail.jsp", model);
+	}
+
 
 	@GetMapping("reportWord")
 	public void reportWord(String year,String kind,String month) throws Exception {

+ 17 - 4
projects/src/main/java/com/rtrh/projects/web/controller/projects/api/TzfxApiController.java

@@ -10,9 +10,7 @@ import com.rtrh.core.repository.Page;
 import com.rtrh.core.vo.ListMessage;
 import com.rtrh.projects.modules.projects.mapper.ReportMapper;
 import com.rtrh.projects.modules.projects.po.TLogOperate;
-import com.rtrh.projects.modules.projects.vo.SubInfoTjfxDataVo;
-import com.rtrh.projects.modules.projects.vo.SubInfoTjfxVo;
-import com.rtrh.projects.modules.projects.vo.TLogOperateVo;
+import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.system.po.SecUser;
 import com.rtrh.projects.vo.passport.RegisterListVO;
 import com.team.security.TeamShiroUser;
@@ -25,7 +23,6 @@ import org.springframework.web.bind.annotation.RestController;
 import com.rtrh.common.util.StringUtil;
 import com.rtrh.core.vo.Message;
 import com.rtrh.projects.modules.projects.service.StaticsService;
-import com.rtrh.projects.modules.projects.vo.TzfxDataQueryVO;
 import com.rtrh.projects.web.controller.BaseController;
 
 @RestController
@@ -123,6 +120,22 @@ public class TzfxApiController extends BaseController {
 		return message;
 	}
 
+	/**
+	 * 项目转换统计详情数据
+	 */
+	@PostMapping("getXmzhtjDetailData")
+	public ListMessage getXmzhtjDetailData(@RequestBody Page page, @RequestBody XmzhtjDetailVo queryVO) {
+		ListMessage message = new ListMessage();
+		try {
+			Page pageData = staticsService.getXmzhtjDetailData(page, queryVO);
+			message.add(pageData.getList(), pageData.getTotalCount());
+		} catch (Exception e) {
+			logger.error("", e);
+			message.add("查询失败");
+		}
+		return message;
+	}
+
 
 
 

+ 8 - 1
projects/src/main/webapp/vmodules/project/xmzhtj.jsp

@@ -86,7 +86,7 @@
 
 <script type="text/html" id="currentTableBar">
     <div class="toolBar">
-        <span lay-event="edit2">明细</span>
+        <span lay-event="toDetail">明细</span>
     </div>
 </script>
 
@@ -315,6 +315,13 @@
                     var event = obj.event;
                     self[event].call(this, obj);
                 });
+            },
+            toDetail: function (obj) {
+                console.log("当前数据:",obj.data)
+                App.openLayer({
+                    title: "项目转换统计详情",
+                    content: App.getUrl("/tjfx/xmzhtjDetail?kind=" + obj.data.kind + "&title=" + obj.data.title + "&projectDate=" + obj.data.projectDate),
+                });
             }
         }
     });

+ 115 - 0
projects/src/main/webapp/vmodules/subject/subInfo/xmzhtjDetail.jsp

@@ -0,0 +1,115 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>项目转换统计详情</title>
+    <jsp:include page="../../common/common-meta-include.jsp"></jsp:include>
+    <link rel="stylesheet" type="text/css" href="${WebSite.asset}/lib/layui-v2.5.5/css/layui.css?version=${version}" media="all"/>
+    <link rel="stylesheet" type="text/css" href="${WebSite.asset}/lib/layui-v2.5.5/css/public.css?version=${version}" media="all"/>
+</head>
+<body>
+    <div class="layuimini-container">
+    <div class="layuimini-main">
+        <div class="table_box" style="padding-top: 0;">
+            <div class="table_process">
+                <table id="meeting" lay-filter="meeting"></table>
+                <div class="pagination-box" id="pagination"></div>
+            </div>
+        </div>
+    </div>
+
+    <jsp:include page="../../common/common-js-include.jsp"></jsp:include>
+
+    <script type="text/javascript">
+
+        // 将传递的参数存储到 JavaScript 变量中
+        var projectDate = "${projectDate}";
+        var kind = "${kind}";
+        var title = "${title}";
+
+
+        App.namespace("App.projects.meeting.xhzhtjDetail");
+        (function ($, mod) {
+            mod = mod || {}; //对象声明
+
+            // ---------------变量声明--------------
+            var _table = layui.table,
+                pageNo = 1,
+                pageSize = 10,
+                _tableName = "meeting";
+
+            // ---------------私有方法定义---------------
+            var methods = {
+                init: function () {
+                    methods.getData();
+                },
+                getData: function () {
+                    var searchForm = {};
+                    searchForm.pageNo = pageNo;
+                    searchForm.pageSize = pageSize;
+                    searchForm.projectDate = projectDate; // 将项目日期加入查询参数
+                    searchForm.kind = kind; // 将类型加入查询参数
+                    searchForm.title = title; // 将说明加入查询参数
+                    //查询当前没有被纳入的
+                    App.postJson("/api/tzfx/getXmzhtjDetailData", searchForm, function (res) {
+                        methods.initTable(res.rows);
+                        methods.loadPage(res.total);
+                    });
+                },
+                initTable: function (data) {
+                    layui.table.render({
+                        elem: "#" + _tableName, // 指定原始表格元素选择器(推荐id选择器)
+                        even: true,
+                        defaultToolbar: [],
+                        cols: [[ // 设置表头
+                            {type: 'numbers', title: '序号', align: 'center', width: 80},
+                            {field: 'subName', title: '项目名称', minwidth: 80,},
+                            {
+                                field: 'kind',
+                                title: '类型',
+                                minWidth: 80,
+                                templet: function (row) {
+                                    // 判断 kind 的值,进行转换
+                                    return row.kind === '1' ? '正转' : (row.kind === '2' ? '逆转' : '未知');
+                                }
+                            },
+                            {field: 'title', title: '说明', minwidth: 80,},
+                            {field: 'createTime', title: '操作时间', minwidth: 80,},
+                            {field: 'subName', title: '操作人', minwidth: 80,}
+                        ]],
+                        limit: pageSize,
+                        data: data
+                    });
+                    layui.table.on('tool(' + _tableName + ')', function (obj) {
+                        var event = obj.event;
+                        methods[event].call(this, obj);
+                    });
+                },
+                loadPage: function (totalCount) {
+                    var self = this;
+                    layui.laypage.render({
+                        elem: 'pagination',
+                        count: totalCount,
+                        curr: pageNo,
+                        limit: pageSize,
+                        layout: ['count', 'prev', 'page', 'next', 'skip'],
+                        jump: function (obj, first) {
+                            //首次不执行
+                            if (!first) {
+                                pageNo = obj.curr;
+                                methods.getData();
+                            }
+                        }
+                    });
+                },
+            };
+
+            // ---------------初始化---------------
+            $(function () {
+                methods.init();
+            });
+
+        })(jQuery, App.projects.meeting.xhzhtjDetail)
+    </script>
+</div>
+</body>
+</html>