Browse Source

基层治理

lchao 10 tháng trước cách đây
mục cha
commit
9f5b667be5

+ 12 - 8
zhsq_qk-admin/src/main/java/zhsq_qk/web/controller/system/QkJczlRecruitController.java

@@ -3,21 +3,17 @@ package zhsq_qk.web.controller.system;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import zhsq_qk.common.annotation.Log;
 import zhsq_qk.common.core.controller.BaseController;
 import zhsq_qk.common.core.domain.AjaxResult;
+import zhsq_qk.common.core.domain.R;
 import zhsq_qk.common.enums.BusinessType;
 import zhsq_qk.system.domain.QkJczlRecruit;
+import zhsq_qk.system.domain.SysCameraPolice;
 import zhsq_qk.system.service.IQkJczlRecruitService;
 import zhsq_qk.common.utils.poi.ExcelUtil;
 import zhsq_qk.common.core.page.TableDataInfo;
@@ -95,4 +91,12 @@ public class QkJczlRecruitController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(qkJczlRecruitService.deleteQkJczlRecruitByIds(ids));
     }
+
+    /**
+     * 查询招聘服务可视化
+     */
+    @GetMapping("/recruitList")
+    public AjaxResult recruitList() {
+        return success(qkJczlRecruitService.recruitList());
+    }
 }

+ 48 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/domain/vo/QkJczlRecruitVO.java

@@ -0,0 +1,48 @@
+package zhsq_qk.system.domain.vo;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import zhsq_qk.common.annotation.Excel;
+import zhsq_qk.common.core.domain.BaseEntity;
+
+/**
+ * 招聘服务对象 qk_jczl_recruit
+ *
+ * @author lc
+ * @date 2024-09-03
+ */
+
+public class QkJczlRecruitVO {
+
+    //数量
+    private String cm;
+    //月份
+    private String mc;
+    public String getCm() {
+        return cm;
+    }
+
+    public void setCm(String cm) {
+        this.cm = cm;
+    }
+
+
+    public String getMc() {
+        return mc;
+    }
+
+    public void setMc(String mc) {
+        this.mc = mc;
+    }
+
+    @Override
+    public String toString() {
+        return "QkJczlRecruitVO{" +
+                "cm='" + cm + '\'' +
+                ", mc='" + mc + '\'' +
+                '}';
+    }
+
+
+
+}

+ 4 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/mapper/QkJczlRecruitMapper.java

@@ -3,6 +3,8 @@ package zhsq_qk.system.mapper;
 import java.util.List;
 
 import zhsq_qk.system.domain.QkJczlRecruit;
+import zhsq_qk.system.domain.QkZwyxBusiness;
+import zhsq_qk.system.domain.vo.QkJczlRecruitVO;
 
 /**
  * 招聘服务Mapper接口
@@ -58,4 +60,6 @@ public interface QkJczlRecruitMapper {
      * @return 结果
      */
     public int deleteQkJczlRecruitByIds(Long[] ids);
+
+    List<QkJczlRecruitVO> recruitList();
 }

+ 4 - 0
zhsq_qk-system/src/main/java/zhsq_qk/system/service/IQkJczlRecruitService.java

@@ -1,6 +1,7 @@
 package zhsq_qk.system.service;
 
 import java.util.List;
+import java.util.Map;
 
 import zhsq_qk.system.domain .QkJczlRecruit;
 
@@ -58,4 +59,7 @@ public interface IQkJczlRecruitService {
      * @return 结果
      */
     public int deleteQkJczlRecruitById(Long id);
+
+    Map<String,List<String>> recruitList();
+
 }

+ 25 - 4
zhsq_qk-system/src/main/java/zhsq_qk/system/service/impl/QkJczlRecruitServiceImpl.java

@@ -1,9 +1,16 @@
 package zhsq_qk.system.service.impl;
 
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
 import java.util.List;
-        import zhsq_qk.common.utils.DateUtils;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import zhsq_qk.common.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import zhsq_qk.system.domain.QkZwyxBusiness;
+import zhsq_qk.system.domain.vo.QkJczlRecruitVO;
 import zhsq_qk.system.mapper.QkJczlRecruitMapper;
 import zhsq_qk.system.domain.QkJczlRecruit;
 import zhsq_qk.system.service.IQkJczlRecruitService;
@@ -49,8 +56,8 @@ public class QkJczlRecruitServiceImpl implements IQkJczlRecruitService {
      */
     @Override
     public int insertQkJczlRecruit(QkJczlRecruit qkJczlRecruit) {
-                qkJczlRecruit.setCreateTime(DateUtils.getNowDate());
-            return qkJczlRecruitMapper.insertQkJczlRecruit(qkJczlRecruit);
+        qkJczlRecruit.setCreateTime(DateUtils.getNowDate());
+        return qkJczlRecruitMapper.insertQkJczlRecruit(qkJczlRecruit);
     }
 
     /**
@@ -61,7 +68,7 @@ public class QkJczlRecruitServiceImpl implements IQkJczlRecruitService {
      */
     @Override
     public int updateQkJczlRecruit(QkJczlRecruit qkJczlRecruit) {
-                qkJczlRecruit.setUpdateTime(DateUtils.getNowDate());
+        qkJczlRecruit.setUpdateTime(DateUtils.getNowDate());
         return qkJczlRecruitMapper.updateQkJczlRecruit(qkJczlRecruit);
     }
 
@@ -86,4 +93,18 @@ public class QkJczlRecruitServiceImpl implements IQkJczlRecruitService {
     public int deleteQkJczlRecruitById(Long id) {
         return qkJczlRecruitMapper.deleteQkJczlRecruitById(id);
     }
+
+    @Override
+    public Map<String, List<String>> recruitList() {
+        // 初始化结果的 Map
+        Map<String, List<String>> resultMap = new HashMap<>();
+        // 从数据库中获取数据
+        List<QkJczlRecruitVO> list = qkJczlRecruitMapper.recruitList();
+        List<String> months = list.stream().map(QkJczlRecruitVO::getMc).collect(Collectors.toList());
+        List<String> counts = list.stream().map(QkJczlRecruitVO::getCm).collect(Collectors.toList());
+        // 将结果放入 map 中
+        resultMap.put("labelData", months);
+        resultMap.put("recruitData", counts);
+        return resultMap;
+    }
 }

+ 34 - 15
zhsq_qk-system/src/main/resources/mapper/system/QkJczlRecruitMapper.xml

@@ -16,6 +16,11 @@
             <result property="updateTime" column="update_time"/>
     </resultMap>
 
+    <resultMap type="QkJczlRecruitVO" id="QkJczlRecruitVOResult">
+        <result property="cm" column="cm"/>
+        <result property="mc" column="mc"/>
+    </resultMap>
+
     <sql id="selectQkJczlRecruitVo">
         select id, recruitment_type, recruitment_title, recruitment_num, address, details, create_time, update_by, update_time
         from qk_jczl_recruit
@@ -24,21 +29,21 @@
     <select id="selectQkJczlRecruitList" parameterType="QkJczlRecruit" resultMap="QkJczlRecruitResult">
         <include refid="selectQkJczlRecruitVo"/>
         <where>
-                        <if test="recruitmentType != null  and recruitmentType != ''">
-                            and recruitment_type = #{recruitmentType}
-                        </if>
-                        <if test="recruitmentTitle != null  and recruitmentTitle != ''">
-                            and recruitment_title = #{recruitmentTitle}
-                        </if>
-                        <if test="recruitmentNum != null ">
-                            and recruitment_num = #{recruitmentNum}
-                        </if>
-                        <if test="address != null  and address != ''">
-                            and address = #{address}
-                        </if>
-                        <if test="details != null  and details != ''">
-                            and details = #{details}
-                        </if>
+            <if test="recruitmentType != null  and recruitmentType != ''">
+                and recruitment_type = #{recruitmentType}
+            </if>
+            <if test="recruitmentTitle != null  and recruitmentTitle != ''">
+                and recruitment_title = #{recruitmentTitle}
+            </if>
+            <if test="recruitmentNum != null ">
+                and recruitment_num = #{recruitmentNum}
+            </if>
+            <if test="address != null  and address != ''">
+                and address = #{address}
+            </if>
+            <if test="details != null  and details != ''">
+                and details = #{details}
+            </if>
         </where>
     </select>
 
@@ -134,4 +139,18 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="recruitList" parameterType="QkJczlRecruitVO" resultMap="QkJczlRecruitVOResult">
+        SELECT SUM(1) as cm,
+            MONTH (
+            create_time) as mc
+        FROM
+            qk_jczl_recruit
+        WHERE
+            YEAR ( create_time ) = YEAR (
+            CURDATE())
+        GROUP BY
+            MONTH (
+            create_time)
+    </select>
 </mapper>

+ 7 - 0
zhsq_qk-ui/src/api/system/discount.js

@@ -42,3 +42,10 @@ export function delDiscount(id) {
         method: 'delete'
     })
 }
+
+export function discountList() {
+  return request({
+    url: '/system/discount/discountList',
+    method: 'get'
+  })
+}

+ 7 - 0
zhsq_qk-ui/src/api/system/recruit.js

@@ -42,3 +42,10 @@ export function delRecruit(id) {
         method: 'delete'
     })
 }
+
+export function recruitList() {
+  return request({
+    url: '/system/recruit/recruitList',
+    method: 'get'
+  })
+}

+ 33 - 18
zhsq_qk-ui/src/views/fusion/jczl.vue

@@ -266,6 +266,8 @@ import "@/assets/images/qkq_sprh.css";
 import supermap from "@/views/supermap/supermap";
 import jczlDetails from "@/views/fusion/jczlDetails";
 import {getAppeal, selectPeopleAppealCount} from "@/api/system/appeal";
+import {recruitList} from "@/api/system/recruit";
+import {discountList} from "@/api/system/discount";
 
 export default {
   name: "jczl",
@@ -276,7 +278,9 @@ export default {
       sltProps: null,
       btnOne: true,
       btnTwo: false,
-      appeal: {}
+      appeal: {},
+      recruit: {},
+      discount: {}
     }
   },
 
@@ -284,9 +288,9 @@ export default {
   },
   mounted() {
     this.selectPeopleAppealCount();
+    this.recruitList();
+    this.discountList();
     this.regionTop();
-    this.trend();
-    this.matterUpTop();
     this.matterTop();
     this.tsrqqktj();
     this.xbbl();
@@ -298,6 +302,18 @@ export default {
     }, 1000);
   },
   methods: {
+    recruitList() {
+      recruitList().then(response => {
+        this.recruit = response.data;
+        this.matterUpTop(this.recruit)
+      });
+    },
+    discountList() {
+      discountList().then(response => {
+        this.discount = response.data;
+        this.trend(this.discount)
+      });
+    },
     selectPeopleAppealCount() {
       selectPeopleAppealCount().then(response => {
         this.appeal = response.data;
@@ -473,7 +489,7 @@ export default {
       }
     },
 
-    trend() {
+    trend(e) {
       //就业服务
       var myChart = echarts.init(document.getElementById('sprh-zpfw'));
       var monthData = [];
@@ -481,13 +497,12 @@ export default {
       let data = []
       let arr1 = []
       let coords = {}
-      for (var i = 1; i <= 12; i++) {
+      for (var i = 0; i < e.labelData.length; i++) {
         let arr = []
-        monthData.push(i + '月');
-        var lineNumber = Math.floor(Math.random() * 10000);
-        lineData.push(lineNumber);
-        arr.push(i + "月")
-        arr.push(lineNumber)
+        monthData.push(e.labelData[i] + '月');
+        lineData.push(e.recruitData[i]);
+        arr.push(e.labelData[i] + "月")
+        arr.push(e.recruitData[i])
         arr1.push(arr)
       }
       this.$set(coords, "coords", arr1)
@@ -666,7 +681,8 @@ export default {
         myChart.setOption(option);
       }
     },
-    matterUpTop() {
+
+    matterUpTop(e) {
       // 便民招聘
       var myChart = echarts.init(document.getElementById('sprh-ymcxfw'));
       var monthData = [];
@@ -674,13 +690,12 @@ export default {
       let data = []
       let arr1 = []
       let coords = {}
-      for (var i = 1; i <= 12; i++) {
+      for (var i = 0; i < e.labelData.length; i++) {
         let arr = []
-        monthData.push(i + '月');
-        var lineNumber = Math.floor(Math.random() * 10000) / 100;
-        lineData.push(lineNumber);
-        arr.push(i + "月")
-        arr.push(lineNumber)
+        monthData.push(e.labelData[i] + '月');
+        lineData.push(e.recruitData[i]);
+        arr.push(e.labelData[i] + "月")
+        arr.push(e.recruitData[i])
         arr1.push(arr)
       }
       this.$set(coords, "coords", arr1)
@@ -695,7 +710,7 @@ export default {
       var option = {
         grid: {
           left: '15%',
-          top: '5%',
+          top: '10%',
           bottom: '30%',
           right: '5%',
         },