Browse Source

Merge branch 'master' of http://39.98.153.250:9080/bowintek/GHSCPartyBuild

82064491C07A712AE32B5B57EC6EF136 5 months ago
parent
commit
7613c4ecb2
27 changed files with 939 additions and 34 deletions
  1. 72 5
      src/main/java/com/ghsc/partybuild/controller/PartyTwoController.java
  2. 5 5
      src/main/java/com/ghsc/partybuild/controller/app/AppPartyTwoExtController.java
  3. 8 1
      src/main/java/com/ghsc/partybuild/mapper/PartyTwoCQuery.java
  4. 1 1
      src/main/java/com/ghsc/partybuild/mapper/PartyUserCQuery.java
  5. 12 2
      src/main/java/com/ghsc/partybuild/service/PartyTwoService.java
  6. 6 0
      src/main/java/com/ghsc/partybuild/service/PartyUserService.java
  7. 250 5
      src/main/java/com/ghsc/partybuild/service/impl/PartyTwoServiceImpl.java
  8. 15 1
      src/main/java/com/ghsc/partybuild/service/impl/PartyUserServiceImpl.java
  9. 7 1
      src/main/java/com/ghsc/partybuild/vo/DjZtdrxxVo.java
  10. 1 0
      src/main/java/com/ghsc/partybuild/vo/ZzMzpyxxVo.java
  11. 7 4
      src/main/resources/application.yml
  12. 46 1
      src/main/resources/mapping/PartyTwoCQuery.xml
  13. 8 2
      src/main/resources/mapping/PartyUserCQuery.xml
  14. 1 1
      src/main/resources/static/app/js/setting/userRole/UserManageList.html
  15. 9 0
      src/main/resources/static/app/main/app.js
  16. 6 3
      src/main/resources/static/app/main/partyTwoExt/dnpxxx/list.html
  17. 55 1
      src/main/resources/static/app/main/partyTwoExt/dnpxxx/list.js
  18. 15 0
      src/main/resources/static/app/main/partyTwoExt/mzpyxx/edit.html
  19. 3 0
      src/main/resources/static/app/main/partyTwoExt/mzpyxx/list.html
  20. 65 1
      src/main/resources/static/app/main/partyTwoExt/mzpyxx/list.js
  21. 100 0
      src/main/resources/static/app/main/partyTwoExt/mzpyxx/mzpyTotal.html
  22. 91 0
      src/main/resources/static/app/main/partyTwoExt/mzpyxx/mzpyTotal.js
  23. 56 0
      src/main/resources/static/app/main/partyTwoExt/ztdrxx/edit.html
  24. 68 0
      src/main/resources/static/app/main/partyTwoExt/ztdrxx/edit.js
  25. 32 0
      src/main/resources/static/app/main/partyTwoExt/ztdrxx/view.html
  26. BIN
      src/main/resources/static/doc/template/党员民主评议导入模板.xlsx
  27. BIN
      src/main/resources/static/doc/template/党员评优导入模板.xlsx

+ 72 - 5
src/main/java/com/ghsc/partybuild/controller/PartyTwoController.java

@@ -120,6 +120,31 @@ public class PartyTwoController {
         return result;
         return result;
     }
     }
 
 
+    @ResponseBody
+    @RequestMapping("/importDnpxxx")
+    public RequsetData<List<Map<String, Object>>> importDnpxxx(@RequestBody Map<String, Object> reqMap) {
+        RequsetData<List<Map<String, Object>>> res = new RequsetData<>();
+        List<Map<String, Object>> errorInfo = new ArrayList<>();
+        String message = "";
+        try {
+            List<Map<String, Object>> dataList = JsonMapper.jsonToObject(reqMap.get("dnpxxxList").toString(), new TypeReference<List<Map<String, Object>>>() {
+            });
+            partyTwoService.importDnpxxx(dataList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            message = e.toString();
+        }
+        if (errorInfo.size() <= 0 && stringUtils.IsNullOrEmpty(message)) {
+            res.setSuccess(true);
+            res.setMsg("操作成功!");
+        } else {
+            res.setSuccess(false);
+            res.setMsg("操作失败!" + message);
+            res.setItem(errorInfo);
+        }
+        return res;
+    }
+
     @RequestMapping(value = "/exportDnpxxx", method = RequestMethod.GET)
     @RequestMapping(value = "/exportDnpxxx", method = RequestMethod.GET)
     public void exportDnpxxx(HttpServletResponse response,
     public void exportDnpxxx(HttpServletResponse response,
                              @RequestParam(required = false) String dzzmc,
                              @RequestParam(required = false) String dzzmc,
@@ -366,16 +391,17 @@ public class PartyTwoController {
 
 
     @ResponseBody
     @ResponseBody
     @RequestMapping("/getZtdrxx")
     @RequestMapping("/getZtdrxx")
-    public RequsetData<DjZtdrxx> getZtdrxx(@RequestParam("id") String id, @RequestParam("dzzdm") String dzzdm, @RequestParam("dzzmc") String dzzmc) {
-        RequsetData<DjZtdrxx> res = new RequsetData<>();
+    public RequsetData<DjZtdrxxVo> getZtdrxx(@RequestParam("id") String id, @RequestParam("dzzdm") String dzzdm, @RequestParam("dzzmc") String dzzmc) {
+        RequsetData<DjZtdrxxVo> res = new RequsetData<>();
 
 
-        DjZtdrxx model = partyTwoService.getZtdrxx(id);
+        DjZtdrxxVo model = partyTwoService.getZtdrxx(id);
         if (model == null) {
         if (model == null) {
             UUID uuid = UUID.randomUUID();
             UUID uuid = UUID.randomUUID();
-            model = new DjZtdrxx();
+            model = new DjZtdrxxVo();
             model.setId(uuid.toString());
             model.setId(uuid.toString());
             model.setDzzdm(dzzdm);
             model.setDzzdm(dzzdm);
             model.setDzzmc(dzzmc);
             model.setDzzmc(dzzmc);
+            model.setPersonnellist(new ArrayList<>());
         }
         }
         res.setItem(model);
         res.setItem(model);
         return res;
         return res;
@@ -383,7 +409,7 @@ public class PartyTwoController {
 
 
     @ResponseBody
     @ResponseBody
     @RequestMapping("/saveZtdrxx")
     @RequestMapping("/saveZtdrxx")
-    public RequsetData<String> saveZtdrxx(@RequestBody DjZtdrxx model) {
+    public RequsetData<String> saveZtdrxx(@RequestBody DjZtdrxxVo model) {
 
 
         RequsetData<String> res = partyTwoService.saveZtdrxx(model);
         RequsetData<String> res = partyTwoService.saveZtdrxx(model);
 
 
@@ -1173,6 +1199,14 @@ public class PartyTwoController {
         return result;
         return result;
     }
     }
 
 
+    @ResponseBody
+    @GetMapping("/getMzpybhgclqkList")
+    public RequsetData<List<HashMap<String, Object>>> getMzpybhgclqkList() {
+        RequsetData<List<HashMap<String, Object>>> result = new RequsetData<>();
+        result.setItem(partyTwoService.getMzpybhgclqkList());
+        return result;
+    }
+
     @ResponseBody
     @ResponseBody
     @GetMapping("/getMzpyxxList")
     @GetMapping("/getMzpyxxList")
     public RequsetData<PageInfo<HashMap<String, Object>>> getMzpyxxList(@RequestParam("pageindex") int pageIndex, @RequestParam("pagesize") int pageSize,
     public RequsetData<PageInfo<HashMap<String, Object>>> getMzpyxxList(@RequestParam("pageindex") int pageIndex, @RequestParam("pagesize") int pageSize,
@@ -1280,6 +1314,39 @@ public class PartyTwoController {
         return result;
         return result;
     }
     }
 
 
+    @ResponseBody
+    @RequestMapping("/importMzpy")
+    public RequsetData<List<Map<String, Object>>> importMzpy(@RequestBody Map<String, Object> reqMap) {
+        RequsetData<List<Map<String, Object>>> res = new RequsetData<>();
+        List<Map<String, Object>> errorInfo = new ArrayList<>();
+        String message = "";
+        try {
+            List<ZzMzpyxxVo> dataList = JsonMapper.jsonToObject(reqMap.get("mzpyList").toString(), new TypeReference<List<ZzMzpyxxVo>>() {
+            });
+            partyTwoService.importMzpy(dataList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            message = e.toString();
+        }
+        if (errorInfo.size() <= 0 && stringUtils.IsNullOrEmpty(message)) {
+            res.setSuccess(true);
+            res.setMsg("操作成功!");
+        } else {
+            res.setSuccess(false);
+            res.setMsg("操作失败!" + message);
+            res.setItem(errorInfo);
+        }
+        return res;
+    }
+
+    @ResponseBody
+    @GetMapping("/getMzpyTotalList")
+    public RequsetData<List<HashMap<String, Object>> > getMzpyTotalList(@RequestParam(required = false) String dzzdm) {
+        RequsetData<List<HashMap<String, Object>> > result = new RequsetData<>();
+        result.setItem(partyTwoService.getMzpyTotalList(dzzdm));
+        return result;
+    }
+
     @ResponseBody
     @ResponseBody
     @GetMapping("/getleaderUserList")
     @GetMapping("/getleaderUserList")
     public RequsetData<PageInfo<HashMap<String, Object>> > getleaderUserList(@RequestParam("pageindex") int pageIndex, @RequestParam("pagesize") int pageSize,@RequestParam(required = false) String username,@RequestParam(required = false) Integer usertype) {
     public RequsetData<PageInfo<HashMap<String, Object>> > getleaderUserList(@RequestParam("pageindex") int pageIndex, @RequestParam("pagesize") int pageSize,@RequestParam(required = false) String username,@RequestParam(required = false) Integer usertype) {

+ 5 - 5
src/main/java/com/ghsc/partybuild/controller/app/AppPartyTwoExtController.java

@@ -64,13 +64,13 @@ public class AppPartyTwoExtController {
 
 
     @ResponseBody
     @ResponseBody
     @RequestMapping("/getZtdrxx")
     @RequestMapping("/getZtdrxx")
-    public RequsetData<DjZtdrxx> getZtdrxx(@RequestParam("id") String id, @RequestParam("dzzdm") String dzzdm, @RequestParam("dzzmc") String dzzmc) {
-        RequsetData<DjZtdrxx> res = new RequsetData<>();
+    public RequsetData<DjZtdrxxVo> getZtdrxx(@RequestParam("id") String id, @RequestParam("dzzdm") String dzzdm, @RequestParam("dzzmc") String dzzmc) {
+        RequsetData<DjZtdrxxVo> res = new RequsetData<>();
 
 
-        DjZtdrxx model = partyTwoService.getZtdrxx(id);
+        DjZtdrxxVo model = partyTwoService.getZtdrxx(id);
         if (model == null) {
         if (model == null) {
             UUID uuid = UUID.randomUUID();
             UUID uuid = UUID.randomUUID();
-            model = new DjZtdrxx();
+            model = new DjZtdrxxVo();
             model.setId(uuid.toString());
             model.setId(uuid.toString());
             model.setDzzdm(dzzdm);
             model.setDzzdm(dzzdm);
             model.setDzzmc(dzzmc);
             model.setDzzmc(dzzmc);
@@ -88,7 +88,7 @@ public class AppPartyTwoExtController {
         String message = "";
         String message = "";
 
 
         try {
         try {
-            DjZtdrxx dataModel = mapper.readValue(mapper.writeValueAsString(reqMap.get("dataModel")).toString(), DjZtdrxx.class);
+            DjZtdrxxVo dataModel = mapper.readValue(mapper.writeValueAsString(reqMap.get("dataModel")).toString(), DjZtdrxxVo.class);
             res = partyTwoService.saveZtdrxx(dataModel);
             res = partyTwoService.saveZtdrxx(dataModel);
         } catch (JsonProcessingException e) {
         } catch (JsonProcessingException e) {
             e.printStackTrace();
             e.printStackTrace();

+ 8 - 1
src/main/java/com/ghsc/partybuild/mapper/PartyTwoCQuery.java

@@ -35,7 +35,7 @@ public interface PartyTwoCQuery {
     List<DjZtdrxxVo> selectZtdrxxList(@Param("dzzdm") String dzzdm, @Param("dzzmc") String dzzmc, @Param("title") String title,
     List<DjZtdrxxVo> selectZtdrxxList(@Param("dzzdm") String dzzdm, @Param("dzzmc") String dzzmc, @Param("title") String title,
                                       @Param("location") String location,
                                       @Param("location") String location,
                                       @Param("subjectType") Integer subjectType, @Param("beginTime") String beginTime,
                                       @Param("subjectType") Integer subjectType, @Param("beginTime") String beginTime,
-                                      @Param("endTime") String endTime, @Param("zzfbType") Integer zzfbType);
+                                      @Param("endTime") String endTime, @Param("zzfbType") Integer zzfbType, @Param("ztdrxxID") String ztdrxxID);
 
 
     List<DjZzsrVo> selectZzsrList(@Param("dzzdm") String dzzdm, @Param("dzzmc") String dzzmc, @Param("title") String title,
     List<DjZzsrVo> selectZzsrList(@Param("dzzdm") String dzzdm, @Param("dzzmc") String dzzmc, @Param("title") String title,
                                   @Param("location") String location,
                                   @Param("location") String location,
@@ -86,10 +86,17 @@ public interface PartyTwoCQuery {
 
 
     List<HashMap<String, Object>> selectMzpyjgList();
     List<HashMap<String, Object>> selectMzpyjgList();
 
 
+    List<HashMap<String, Object>> selectMzpybhgclqkList();
+
     List<HashMap<String, Object>> selectleaderUserList(@Param("username") String username,
     List<HashMap<String, Object>> selectleaderUserList(@Param("username") String username,
                                                        @Param("usertype") Integer usertype);
                                                        @Param("usertype") Integer usertype);
 
 
     int batchInsertDnghbf(@Param("dnghbfList") List<DjDnghbf> dnghbfList);
     int batchInsertDnghbf(@Param("dnghbfList") List<DjDnghbf> dnghbfList);
 
 
     int batchInsertDnghbfmx(@Param("dnghbfmxList") List<DjDnghbfmx> dnghbfmxList);
     int batchInsertDnghbfmx(@Param("dnghbfmxList") List<DjDnghbfmx> dnghbfmxList);
+
+    /**
+     * 查询民主评议结果统计数据
+     */
+    List<HashMap<String, Object>> selectMzpyjgCountList(@Param("dzzdm") String dzzdm);
 }
 }

+ 1 - 1
src/main/java/com/ghsc/partybuild/mapper/PartyUserCQuery.java

@@ -279,7 +279,7 @@ public interface PartyUserCQuery {
 
 
     int deleteUser(@Param("userCode") String userCode);
     int deleteUser(@Param("userCode") String userCode);
 
 
-    HashMap<String, Object> selectPartyUserSingleExt(@Param("rybm") String rybm);
+    HashMap<String, Object> selectPartyUserSingleExt(@Param("rybm") String rybm, @Param("xm") String xm);
 
 
     Integer batchInsertUserPartyOfMonth(@Param("yearMonth") Integer yearMonth);
     Integer batchInsertUserPartyOfMonth(@Param("yearMonth") Integer yearMonth);
 
 

+ 12 - 2
src/main/java/com/ghsc/partybuild/service/PartyTwoService.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
 import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
 import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
 import com.ghsc.partybuild.model.*;
 import com.ghsc.partybuild.model.*;
 import com.ghsc.partybuild.vo.*;
 import com.ghsc.partybuild.vo.*;
+import org.springframework.web.bind.annotation.RequestBody;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
@@ -39,9 +40,9 @@ public interface PartyTwoService {
 
 
     List<Map<String, Object>> importDnghbf(List<Map<String, Object>> dnghbflist) throws Exception;
     List<Map<String, Object>> importDnghbf(List<Map<String, Object>> dnghbflist) throws Exception;
 
 
-    DjZtdrxx getZtdrxx(String id);
+    DjZtdrxxVo getZtdrxx(String id);
 
 
-    RequsetData<String> saveZtdrxx(DjZtdrxx model);
+    RequsetData<String> saveZtdrxx(DjZtdrxxVo model);
 
 
     int delZtdrxx(String id);
     int delZtdrxx(String id);
 
 
@@ -108,10 +109,19 @@ public interface PartyTwoService {
 
 
     List<HashMap<String, Object>> getMzpyjgList();
     List<HashMap<String, Object>> getMzpyjgList();
 
 
+    List<HashMap<String, Object>> getMzpybhgclqkList();
+
     PageInfo<HashMap<String, Object>> getMzpyxxList(int page, int rows, String username, String rybm, String dzzdm, String beginTime, String endTime, String pyjg);
     PageInfo<HashMap<String, Object>> getMzpyxxList(int page, int rows, String username, String rybm, String dzzdm, String beginTime, String endTime, String pyjg);
     ZzMzpyxxVo getMzpyById(String id);
     ZzMzpyxxVo getMzpyById(String id);
     int saveMzpy(ZzMzpyxxVo data);
     int saveMzpy(ZzMzpyxxVo data);
     int deleteMzpyById(String id);
     int deleteMzpyById(String id);
+    // 导入民主评议
+    List<ZzMzpyxxVo> importMzpy(List<ZzMzpyxxVo> dataList) throws Exception;
+    // 查询民主评议统计报表数据
+    List<HashMap<String,Object>> getMzpyTotalList(String dzzdm);
 
 
     PageInfo<HashMap<String, Object>> getleaderUserList(int page, int rows, String username, Integer usertype);
     PageInfo<HashMap<String, Object>> getleaderUserList(int page, int rows, String username, Integer usertype);
+
+    // 导入党员评先
+    List<Map<String, Object>> importDnpxxx(List<Map<String, Object>> dataList) throws Exception;
 }
 }

+ 6 - 0
src/main/java/com/ghsc/partybuild/service/PartyUserService.java

@@ -90,6 +90,12 @@ public interface PartyUserService {
      */
      */
     HashMap<String, Object> getPartyUserExt(String rybm);
     HashMap<String, Object> getPartyUserExt(String rybm);
 
 
+    /**
+     * 党员信息(包含入党申请人)
+     * @param xm 人员姓名
+     */
+    HashMap<String, Object> getPartyUserExtByName(String xm);
+
     /**
     /**
      * 查询人员党组织代码
      * 查询人员党组织代码
      * @param rybm
      * @param rybm

+ 250 - 5
src/main/java/com/ghsc/partybuild/service/impl/PartyTwoServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ghsc.partybuild.service.impl;
 package com.ghsc.partybuild.service.impl;
 
 
+import com.ghsc.partybuild.vo.partyLife.PartyLifeMeetingVo;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
 import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
@@ -84,6 +85,15 @@ public class PartyTwoServiceImpl implements PartyTwoService {
     @Autowired
     @Autowired
     private PartyService partyService;
     private PartyService partyService;
 
 
+    @Autowired
+    private com.ghsc.partybuild.util.StringUtils stringUtils;
+
+    @Autowired
+    private PfPartylifemeetingPersonnelMapper pfPartylifemeetingPersonnelMapper;
+
+    @Autowired
+    private PartyLifeMeetingCQuery partyLifeMeetingCQuery;
+
     @Override
     @Override
     public DjDnpxxx getDnpxxx(String id) {
     public DjDnpxxx getDnpxxx(String id) {
         return dnpxxxMapper.selectByPrimaryKey(id);
         return dnpxxxMapper.selectByPrimaryKey(id);
@@ -409,18 +419,54 @@ public class PartyTwoServiceImpl implements PartyTwoService {
     }
     }
 
 
     @Override
     @Override
-    public RequsetData<String> saveZtdrxx(DjZtdrxx model) {
+    public RequsetData<String> saveZtdrxx(DjZtdrxxVo data) {
         RequsetData<String> res = new RequsetData<String>();
         RequsetData<String> res = new RequsetData<String>();
         int result;
         int result;
+
+        DjZtdrxx model = ztdrxxMapper.selectByPrimaryKey(data.getId());
+        boolean isSave = model == null;
+        if (model == null) {
+            model = new DjZtdrxx();
+            model.setId(data.getId());
+        }
+
         //同步数据
         //同步数据
         model.setOperatestate("A");
         model.setOperatestate("A");
         model.setOperatetime(new Date());
         model.setOperatetime(new Date());
         model.setSyncstate("N");
         model.setSyncstate("N");
-        if (ztdrxxMapper.selectByPrimaryKey(model.getId()) == null) {
+        // 从Vo类中同步字段
+        model.setDzzdm(data.getDzzdm());
+        model.setDzzmc(data.getDzzmc());
+        model.setTitle(data.getTitle());
+        model.setActivitytime(data.getActivitytime());
+        model.setLocation(data.getLocation());
+        model.setSubjecttype(data.getSubjecttype());
+        model.setSubjectcontent(data.getSubjectcontent());
+
+        if (isSave) {
             result = ztdrxxMapper.insert(model);
             result = ztdrxxMapper.insert(model);
         } else {
         } else {
             result = ztdrxxMapper.updateByPrimaryKeyWithBLOBs(model);
             result = ztdrxxMapper.updateByPrimaryKeyWithBLOBs(model);
         }
         }
+
+        //出席人员
+        PfPartylifemeetingPersonnelExample perExp = new PfPartylifemeetingPersonnelExample();
+        perExp.or().andPartylifemeetingidEqualTo(data.getId());
+        pfPartylifemeetingPersonnelMapper.deleteByExample(perExp);
+        if(data.getPersonnellist().size() > 0){
+            data.getPersonnellist().forEach(item -> {
+                PfPartylifemeetingPersonnel perModel = new PfPartylifemeetingPersonnel();
+                perModel.setId(UUID.randomUUID().toString());
+                perModel.setRybm(item.getRybm());
+                perModel.setPartylifemeetingid(data.getId());
+                perModel.setIsabsenteeism(item.getIsabsenteeism());
+                perModel.setAbsenteeismcause(item.getAbsenteeismcause());
+                perModel.setCreatetime(new Date());
+
+                pfPartylifemeetingPersonnelMapper.insert(perModel);
+            });
+        }
+
         if (result > 0) {
         if (result > 0) {
             res.setSuccess(true);
             res.setSuccess(true);
             res.setMsg("提交成功!");
             res.setMsg("提交成功!");
@@ -439,15 +485,24 @@ public class PartyTwoServiceImpl implements PartyTwoService {
     @Override
     @Override
     public PageInfo<DjZtdrxxVo> getZtdrxxList(int page, int rows, String dzzdm, String dzzmc, String title, Integer subjectType, String location, String beginTime, String endTime, Integer zzfbType) {
     public PageInfo<DjZtdrxxVo> getZtdrxxList(int page, int rows, String dzzdm, String dzzmc, String title, Integer subjectType, String location, String beginTime, String endTime, Integer zzfbType) {
         PageHelper.startPage(page, rows);
         PageHelper.startPage(page, rows);
-        List<DjZtdrxxVo> list = partyTwoCquery.selectZtdrxxList(dzzdm, dzzmc, title, location, subjectType, beginTime, endTime, zzfbType);
+        List<DjZtdrxxVo> list = partyTwoCquery.selectZtdrxxList(dzzdm, dzzmc, title, location, subjectType, beginTime, endTime, zzfbType, null);
 
 
         PageInfo<DjZtdrxxVo> result = new PageInfo(list);
         PageInfo<DjZtdrxxVo> result = new PageInfo(list);
         return result;
         return result;
     }
     }
 
 
     @Override
     @Override
-    public DjZtdrxx getZtdrxx(String id) {
-        return ztdrxxMapper.selectByPrimaryKey(id);
+    public DjZtdrxxVo getZtdrxx(String id) {
+        if (stringUtils.IsNullOrEmpty(id))
+            return null;
+
+        List<DjZtdrxxVo> list = partyTwoCquery.selectZtdrxxList(null, null, null, null, null, null, null, null, null);
+        DjZtdrxxVo data = list.size() > 0 ? list.get(0) : null;
+        if(data != null){
+            // 查询出席人员列表
+            data.setPersonnellist(partyLifeMeetingCQuery.selectMeetingPersonnelList(data.getId()));
+        }
+        return data;
     }
     }
 
 
     @Override
     @Override
@@ -846,6 +901,12 @@ public class PartyTwoServiceImpl implements PartyTwoService {
         return list;
         return list;
     }
     }
 
 
+    @Override
+    public List<HashMap<String, Object>> getMzpybhgclqkList() {
+        List<HashMap<String, Object>> list = partyTwoCquery.selectMzpybhgclqkList();
+        return list;
+    }
+
     public ZzMzpyxxVo getMzpyById(String id) {
     public ZzMzpyxxVo getMzpyById(String id) {
         if (!StringUtils.isNotBlank(id))
         if (!StringUtils.isNotBlank(id))
             return null;
             return null;
@@ -901,6 +962,106 @@ public class PartyTwoServiceImpl implements PartyTwoService {
         return zzMzpyxxMapper.deleteByExample(exp);
         return zzMzpyxxMapper.deleteByExample(exp);
     }
     }
 
 
+    @Override
+    public List<ZzMzpyxxVo> importMzpy(List<ZzMzpyxxVo> dataList) throws Exception {
+        if (dataList.size() <= 0) {
+            throw new Exception("请添加导入数据");
+        }
+        List<ZzMzpyxxVo> errorList = new ArrayList<>();
+        List<HashMap<String, Object>> mzpyjgList = getMzpyjgList(); // 民主评议结果字典
+        List<HashMap<String, Object>> mzpybhgclqkList = getMzpybhgclqkList(); // 民主评议不合格处理情况字典
+
+        for (int i = 0; i < dataList.size(); i++) {
+            String errorInfo = "";
+            HashMap<String, Object> pyjg = null;
+            HashMap<String, Object> pyjcqk = null;
+            HashMap<String, Object> partyUserInfo = new HashMap<>();
+
+            int finalI = i;
+            if (stringUtils.IsNullOrEmpty(dataList.get(i).getUserName())) {
+                errorInfo += "请填写党员姓名!";
+            } else {
+                partyUserInfo = partyUserService.getPartyUserExtByName(dataList.get(i).getUserName()); // 按名字查询出党员信息
+                if (partyUserInfo == null || partyUserInfo.isEmpty()) {
+                    errorInfo += "该党员不存在!";
+                }
+            }
+            if (stringUtils.IsNullOrEmpty(dataList.get(i).getKzpyrq())) {
+                errorInfo += "请填写评议开始日期!";
+            }
+            if (stringUtils.IsNullOrEmpty(dataList.get(i).getJspyrq())) {
+                errorInfo += "请填写评议结束日期!";
+            }
+            if (stringUtils.IsNullOrEmpty(dataList.get(i).getPyjg())) {
+                errorInfo += "请填写评议结果!";
+            } else {
+                pyjg = mzpyjgList.stream().filter(it -> it.get("HZMC").equals(dataList.get(finalI).getPyjg())).findFirst().orElse(null);
+                if (pyjg == null) {
+                    errorInfo += "评议结果不存在!";
+                } else {
+                    dataList.get(i).setPyjg((String) pyjg.get("BM"));
+                }
+            }
+            if (!stringUtils.IsNullOrEmpty(dataList.get(i).getPyjcqk())) {
+                pyjcqk = mzpybhgclqkList.stream().filter(it -> it.get("HZMC").equals(dataList.get(finalI).getPyjcqk())).findFirst().orElse(null);
+                if (pyjcqk == null) {
+                    errorInfo += "不合格处理情况不存在!";
+                } else {
+                    dataList.get(i).setPyjcqk((String) pyjcqk.get("BM"));
+                }
+            }
+
+            if (stringUtils.IsNullOrEmpty(errorInfo)) {
+                // 初始化数据
+                dataList.get(i).setRybm((String) partyUserInfo.get("RYBM"));
+                dataList.get(i).setSzdzbdm((String) partyUserInfo.get("SZDZBDM"));
+                dataList.get(i).setKzpyrq(dateUtils.strFormat_short(dataList.get(i).getKzpyrq()));
+                dataList.get(i).setJspyrq(dateUtils.strFormat_short(dataList.get(i).getJspyrq()));
+                dataList.get(i).setMzpyxxbs(UUID.randomUUID().toString());
+            } else {
+                dataList.get(i).setErrorInfo(errorInfo);
+                errorList.add(dataList.get(i));
+            }
+        }
+
+        if (errorList.isEmpty()) {
+            for (ZzMzpyxxVo zzMzpyxxVo : dataList) {
+                saveMzpy(zzMzpyxxVo);
+            }
+        }
+        return errorList;
+    }
+
+    @Override
+    public List<HashMap<String, Object>> getMzpyTotalList(String dzzdm) {
+        // 查询计数统计
+        List<HashMap<String, Object>> hashMaps = partyTwoCquery.selectMzpyjgCountList(dzzdm);
+        HashMap<String, Object> countMap = new HashMap<>();
+        // 初始化 countMap 中的累加字段
+        if (!hashMaps.isEmpty()) {
+            // 初始化countMap的字段,假设所有map中的字段名是一致的
+            hashMaps.get(0).forEach((key, value) -> {
+                if (value instanceof Number) {
+                    countMap.put(key, 0); // 初始化为0
+                }
+            });
+            countMap.put("DZZMC", "合计");
+        }
+        // 计算合计数据
+        hashMaps.forEach(map -> {
+            map.forEach((key, value) -> {
+                if (value instanceof Number) {
+                    // 获取countMap中当前累加的值
+                    int currentCount = (int) countMap.getOrDefault(key, 0);
+                    // 将当前值累加到countMap中
+                    countMap.put(key, currentCount + ((Number) value).intValue());
+                }
+            });
+        });
+        hashMaps.add(countMap);
+        return hashMaps;
+    }
+
     @Override
     @Override
     public PageInfo<HashMap<String, Object>> getleaderUserList(int page, int rows, String username, Integer usertype) {
     public PageInfo<HashMap<String, Object>> getleaderUserList(int page, int rows, String username, Integer usertype) {
         PageHelper.startPage(page, rows);
         PageHelper.startPage(page, rows);
@@ -909,4 +1070,88 @@ public class PartyTwoServiceImpl implements PartyTwoService {
         PageInfo<HashMap<String, Object>> result = new PageInfo(list);
         PageInfo<HashMap<String, Object>> result = new PageInfo(list);
         return result;
         return result;
     }
     }
+
+    @Override
+    public List<Map<String, Object>> importDnpxxx(List<Map<String, Object>> dataList) throws Exception {
+        if (dataList.size() <= 0) {
+            throw new Exception("请添加导入数据");
+        }
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        List<Map<String, Object>> errorList = new ArrayList<>();
+        List<CfDictionary> positionLevelList = dictionaryService.getDictionaryListByDicTypeKey("positionLevel");
+        List<CfDictionary> honourTypeList = dictionaryService.getDictionaryListByDicTypeKey("honourType");
+
+        for (int i = 0; i < dataList.size(); i++) {
+            String errorInfo = "";
+            Integer honourlevel = null;
+            Integer honourtype = null;
+            HashMap<String, Object> partyUserInfo = new HashMap<>();
+
+            int finalI = i;
+            if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("userName"))) {
+                errorInfo += "请填写党员姓名!";
+            } else {
+                partyUserInfo = partyUserService.getPartyUserExtByName((String) dataList.get(i).get("userName")); // 按名字查询出党员信息
+                if (partyUserInfo == null || partyUserInfo.isEmpty()) {
+                    errorInfo += "该党员不存在!";
+                }
+            }
+            if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourname"))) {
+                errorInfo += "请填写荣誉名称!";
+            }
+            if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourlevel"))) {
+                errorInfo += "请填写荣誉等级!";
+            } else {
+                honourlevel = positionLevelList.stream().filter(it -> it.getDicvalue().equals(dataList.get(finalI).get("honourlevel"))).findFirst().orElse(new CfDictionary()).getDickey();
+                if (honourlevel == null) {
+                    errorInfo += "荣誉等级不存在!";
+                }
+            }
+            if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourtime"))) {
+                errorInfo += "请填写获得荣誉时间!";
+            }
+            if (stringUtils.IsNullOrEmpty((String) dataList.get(i).get("honourtype"))) {
+                errorInfo += "请填写荣誉类型!";
+            } else {
+                honourtype = honourTypeList.stream().filter(it -> it.getDicvalue().equals(dataList.get(finalI).get("honourtype"))).findFirst().orElse(new CfDictionary()).getDickey();
+                if (honourtype == null) {
+                    errorInfo += "荣誉等级不存在!";
+                }
+            }
+
+            if (stringUtils.IsNullOrEmpty(errorInfo)) {
+                // 处理数据
+                // 创建实体类
+                DjDnpxxx model = new DjDnpxxx();
+                model.setId(UUID.randomUUID().toString());
+                model.setDzzdm((String) partyUserInfo.get("DZZDM"));
+                model.setDzzmc((String) partyUserInfo.get("DZZMC"));
+                model.setHonourlevel(honourlevel);
+                model.setHonourtype(honourtype);
+                model.setHonourname((String) dataList.get(i).get("honourname"));
+                model.setHonourtime(dateUtils.strToDateExt((String) dataList.get(i).get("honourtime")));
+                model.setPxlx("1");
+
+                UserItemVo userItem = new UserItemVo();
+                userItem.setRybm((String) partyUserInfo.get("RYBM"));
+                userItem.setXm((String) partyUserInfo.get("XM"));
+                UserItemVo[] vos = new UserItemVo[]{userItem};
+
+                Map<String, Object> result = new HashMap<>();
+                result.put("model", model);
+                result.put("userItemVo", vos);
+                resultList.add(result);
+            } else {
+                dataList.get(i).put("errorInfo", errorInfo);
+                errorList.add(dataList.get(i));
+            }
+        }
+
+        if (errorList.isEmpty()) {
+            resultList.forEach(item -> {
+                RequsetData<String> stringRequsetData = saveDnpxxx((DjDnpxxx) item.get("model"), (UserItemVo[]) item.get("userItemVo"));
+            });
+        }
+        return errorList;
+    }
 }
 }

+ 15 - 1
src/main/java/com/ghsc/partybuild/service/impl/PartyUserServiceImpl.java

@@ -194,7 +194,21 @@ public class PartyUserServiceImpl implements PartyUserService {
     public HashMap<String, Object> getPartyUserExt(String rybm) {
     public HashMap<String, Object> getPartyUserExt(String rybm) {
         HashMap<String, Object> result = new HashMap<>();
         HashMap<String, Object> result = new HashMap<>();
         if (!stringUtils.IsNullOrEmpty(rybm)) {
         if (!stringUtils.IsNullOrEmpty(rybm)) {
-            result = partyUserCquery.selectPartyUserSingleExt(rybm);
+            result = partyUserCquery.selectPartyUserSingleExt(rybm, null);
+        }
+        return result;
+    }
+
+    /**
+     * 党员信息(包含入党申请人)
+     *
+     * @param xm 人员姓名
+     */
+    @Override
+    public HashMap<String, Object> getPartyUserExtByName(String xm) {
+        HashMap<String, Object> result = new HashMap<>();
+        if (!stringUtils.IsNullOrEmpty(xm)) {
+            result = partyUserCquery.selectPartyUserSingleExt(null, xm);
         }
         }
         return result;
         return result;
     }
     }

+ 7 - 1
src/main/java/com/ghsc/partybuild/vo/DjZtdrxxVo.java

@@ -1,9 +1,11 @@
 package com.ghsc.partybuild.vo;
 package com.ghsc.partybuild.vo;
 
 
+import com.ghsc.partybuild.vo.partyLife.PartyLifeMeetingPersonnelVo;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @Data
 @Data
 public class DjZtdrxxVo {
 public class DjZtdrxxVo {
@@ -19,7 +21,7 @@ public class DjZtdrxxVo {
 
 
     private String location;
     private String location;
 
 
-    private BigDecimal subjecttype;
+    private Integer subjecttype;
 
 
     private String createuserid;
     private String createuserid;
 
 
@@ -46,4 +48,8 @@ public class DjZtdrxxVo {
     private String fileurl;
     private String fileurl;
 
 
     private String dwmc;
     private String dwmc;
+
+    private Integer absentcount;//缺勤人数
+    private Integer attendance;//出席人员数量
+    public List<PartyLifeMeetingPersonnelVo> personnellist;
 }
 }

+ 1 - 0
src/main/java/com/ghsc/partybuild/vo/ZzMzpyxxVo.java

@@ -7,4 +7,5 @@ import lombok.Data;
 public class ZzMzpyxxVo extends ZzMzpyxx {
 public class ZzMzpyxxVo extends ZzMzpyxx {
     private String userName;
     private String userName;
     private String partyName;
     private String partyName;
+    private String errorInfo;
 }
 }

+ 7 - 4
src/main/resources/application.yml

@@ -3,10 +3,10 @@ server:
   tomcat:
   tomcat:
     max-connections: 100000
     max-connections: 100000
 spring:
 spring:
-  profiles:
-    include: user
-    #resources:
-    #static-locations: file:F:/IDEA/demo/schoolparty_mysql/src/main/resources/static/
+#  profiles:
+#    include: user
+  resources:
+    static-locations: file:D:\Code\Project\WSZYDangJian\GHSCPartyBuild\src\main\resources\static\
   datasource:
   datasource:
     name: party_build_db
     name: party_build_db
     type: com.alibaba.druid.pool.DruidDataSource
     type: com.alibaba.druid.pool.DruidDataSource
@@ -67,6 +67,9 @@ spring:
   mvc:
   mvc:
     async:
     async:
       request-timeout: 300000
       request-timeout: 300000
+    view:
+      prefix: /app/main/
+      suffix: .html
 
 
 logging:
 logging:
   config: classpath:logback-spring.xml
   config: classpath:logback-spring.xml

+ 46 - 1
src/main/resources/mapping/PartyTwoCQuery.xml

@@ -488,11 +488,16 @@
         select *
         select *
         from ZZZD_PYJG
         from ZZZD_PYJG
     </select>
     </select>
+    <select id="selectMzpybhgclqkList" resultType="java.util.HashMap">
+        select *
+        from ZZZD_PXBHGCLQK
+    </select>
     <select id="selectMzpyxxList" resultType="java.util.HashMap">
     <select id="selectMzpyxxList" resultType="java.util.HashMap">
-        select zz.DZZMC,ry.XM, p.*,pyjg.HZMC as PYJGMC from ZZ_MZPYXX p
+        select zz.DZZMC,ry.XM, p.*,pyjg.HZMC as PYJGMC, pxbhgcl.HZMC AS PXBHGCLMC from ZZ_MZPYXX p
         inner join ZZ_ZZQKXX zz on p.SZDZBDM=ZZ.DZZDM
         inner join ZZ_ZZQKXX zz on p.SZDZBDM=ZZ.DZZDM
         inner join VM_RYJBXX ry on p.RYBM = ry.RYBM
         inner join VM_RYJBXX ry on p.RYBM = ry.RYBM
         inner join ZZZD_PYJG pyjg on p.PYJG=pyjg.BM
         inner join ZZZD_PYJG pyjg on p.PYJG=pyjg.BM
+        LEFT JOIN ZZZD_PXBHGCLQK pxbhgcl ON p.PYJCQK = pxbhgcl.BM
         where 1=1
         where 1=1
         <if test="rybm != null and rybm != ''">
         <if test="rybm != null and rybm != ''">
             and p.rybm = #{rybm}
             and p.rybm = #{rybm}
@@ -560,4 +565,44 @@
             select #{c.id},#{c.dnghbfid},#{c.caredate},#{c.carecontent},#{c.helpformtype},#{c.amount} FROM DUAL
             select #{c.id},#{c.dnghbfid},#{c.caredate},#{c.carecontent},#{c.helpformtype},#{c.amount} FROM DUAL
         </foreach>
         </foreach>
     </insert>
     </insert>
+
+    <select id="selectMzpyjgCountList" resultType="java.util.HashMap">
+        SELECT
+            zzqk.ZZQKXXBS,
+            zzqk.DZZDM,
+            zzqk.DZZMC,
+            COUNT( yxpy.MZPYXXBS ) AS yxCount,
+            COUNT( hgpy.MZPYXXBS ) AS hgCount,
+            COUNT( jbhgpy.MZPYXXBS ) AS jbhgCount,
+            COUNT( bhgpy.MZPYXXBS ) AS bhgCount,
+            COUNT( kcdjcf.MZPYXXBS ) AS kcdjcfCount,
+            COUNT( qqtdcf.MZPYXXBS ) AS qqtdcfCount,
+            COUNT( qxgzcf.MZPYXXBS ) AS qxgzcfCount,
+            COUNT( dncmcf.MZPYXXBS ) AS dncmcfCount,
+            COUNT( qtdjcf.MZPYXXBS ) AS qtdjcfCount,
+            COUNT( qtcf.MZPYXXBS ) AS qtcfCount,
+            GROUP_CONCAT( yxry.XM SEPARATOR ', ' ) AS yxmd,
+            GROUP_CONCAT( hgry.XM SEPARATOR ', ' ) AS hgmd
+        FROM
+            zz_zzqkxx zzqk
+                LEFT JOIN zz_mzpyxx yxpy ON zzqk.DZZDM = yxpy.SZDZBDM AND yxpy.PYJG = 10
+                LEFT JOIN zz_mzpyxx hgpy ON zzqk.DZZDM = hgpy.SZDZBDM AND hgpy.PYJG = 20
+                LEFT JOIN zz_mzpyxx bhgpy ON zzqk.DZZDM = bhgpy.SZDZBDM AND bhgpy.PYJG = 30
+                LEFT JOIN zz_mzpyxx jbhgpy ON zzqk.DZZDM = jbhgpy.SZDZBDM AND jbhgpy.PYJG = 40
+                LEFT JOIN zz_mzpyxx kcdjcf ON zzqk.DZZDM = kcdjcf.SZDZBDM AND kcdjcf.PYJCQK = 10
+                LEFT JOIN zz_mzpyxx qqtdcf ON zzqk.DZZDM = qqtdcf.SZDZBDM AND qqtdcf.PYJCQK = 20
+                LEFT JOIN zz_mzpyxx qxgzcf ON zzqk.DZZDM = qxgzcf.SZDZBDM AND qxgzcf.PYJCQK = 30
+                LEFT JOIN zz_mzpyxx dncmcf ON zzqk.DZZDM = dncmcf.SZDZBDM AND dncmcf.PYJCQK = 40
+                LEFT JOIN zz_mzpyxx qtdjcf ON zzqk.DZZDM = qtdjcf.SZDZBDM AND qtdjcf.PYJCQK = 50
+                LEFT JOIN zz_mzpyxx qtcf ON zzqk.DZZDM = qtcf.SZDZBDM AND qtcf.PYJCQK = 60
+                LEFT JOIN vm_ryjbxx_all yxry ON yxpy.RYBM = yxry.RYBM
+                LEFT JOIN vm_ryjbxx_all hgry ON hgpy.RYBM = hgry.RYBM
+        WHERE ZZQKXXBS != '9991000222'
+        and zzqk.DZZDM like concat('',#{dzzdm},'%')
+        GROUP BY
+            zzqk.ZZQKXXBS,
+            zzqk.DZZDM,
+            zzqk.DZZMC
+        ORDER BY DZZDM
+    </select>
 </mapper>
 </mapper>

+ 8 - 2
src/main/resources/mapping/PartyUserCQuery.xml

@@ -425,7 +425,7 @@
         select us.USERTYPE,us.RYJBXXBS,us.RYBM,us.XM,us.SZDZBDM,us.RYZT,us.SQRDRQ,
         select us.USERTYPE,us.RYJBXXBS,us.RYBM,us.XM,us.SZDZBDM,us.RYZT,us.SQRDRQ,
         uszw.dnzw as ZWMC,
         uszw.dnzw as ZWMC,
         us.DNZWMC,us.XJSZWMC,us.XB,us.JG,us.MZ,us.CSRQ,us.XL,us.SFZH,
         us.DNZWMC,us.XJSZWMC,us.XB,us.JG,us.MZ,us.CSRQ,us.XL,us.SFZH,
-        p.DZZMC,
+        p.DZZMC, p.DZZDM,
         ryzt.HZMC as RYZTMC,
         ryzt.HZMC as RYZTMC,
         xb.HZMC as XBMC,mz.HZMC as MZMC,xl.HZMC as XLMC,jszw.HZMC as JSZWMC,
         xb.HZMC as XBMC,mz.HZMC as MZMC,xl.HZMC as XLMC,jszw.HZMC as JSZWMC,
         userinfo.USERNAME as MOBILE,us.DNZWMC as POST,
         userinfo.USERNAME as MOBILE,us.DNZWMC as POST,
@@ -450,7 +450,13 @@
         left join vw_partyduty uszw on us.RYBM=uszw.RYBM -- 党内职务名称
         left join vw_partyduty uszw on us.RYBM=uszw.RYBM -- 党内职务名称
         left join ZZ_ZZQKXX dw on SUBSTR(p.DZZDM,1,12)=dw.DZZDM
         left join ZZ_ZZQKXX dw on SUBSTR(p.DZZDM,1,12)=dw.DZZDM
         left join VM_PARTYGROUP partyGroup on dw.DZZDM = partyGroup.DZZDM
         left join VM_PARTYGROUP partyGroup on dw.DZZDM = partyGroup.DZZDM
-        where 1=1 and us.RYBM = #{rybm}
+        where 1=1
+            <if test="rybm != null and rybm != ''">
+                and us.RYBM = #{rybm}
+            </if>
+            <if test="xm != null and xm != ''">
+                and us.XM = #{xm}
+            </if>
     </select>
     </select>
 
 
     <!--党小组成员信息(已取消)-->
     <!--党小组成员信息(已取消)-->

+ 1 - 1
src/main/resources/static/app/js/setting/userRole/UserManageList.html

@@ -98,7 +98,7 @@
                             <td>{{userRole.DZZMC}}</td>
                             <td>{{userRole.DZZMC}}</td>
                             <td>
                             <td>
                                 <button class="btn td-btn bg-pink waves-effect"
                                 <button class="btn td-btn bg-pink waves-effect"
-                                        ng-click="deleteUserRole(userRole.USERID,userRole.ROLEID)" title="删除">
+                                        ng-click="deleteUserRole(userRole.UserId,userRole.RoleId)" title="删除">
                                     <!--<i class="material-icons td-icon">delete_forever</i>-->
                                     <!--<i class="material-icons td-icon">delete_forever</i>-->
                                     删除
                                     删除
                                 </button>
                                 </button>

+ 9 - 0
src/main/resources/static/app/main/app.js

@@ -1725,6 +1725,15 @@
                     return $ocLazyLoad.load(['../main/partyTwoExt/mzpyxx/list.js?' + window.sysVersion]);
                     return $ocLazyLoad.load(['../main/partyTwoExt/mzpyxx/list.js?' + window.sysVersion]);
                 }]
                 }]
             }
             }
+        }).state("home.mzpxyTotalList", {
+            url: "mzpxyTotalList?dzzdm",
+            templateUrl: "../main/partyTwoExt/mzpyxx/mzpyTotal.html?" + window.sysVersion,
+            controller: "mzpxyTotalCtrl",
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                    return $ocLazyLoad.load(['../main/partyTwoExt/mzpyxx/mzpyTotal.js?' + window.sysVersion]);
+                }]
+            }
         }).state("home.dnghbf", {
         }).state("home.dnghbf", {
             url: "dnghbf",
             url: "dnghbf",
             templateUrl: "../main/partyTwoExt/dnghbf/list.html?" + window.sysVersion,
             templateUrl: "../main/partyTwoExt/dnghbf/list.html?" + window.sysVersion,

+ 6 - 3
src/main/resources/static/app/main/partyTwoExt/dnpxxx/list.html

@@ -134,12 +134,15 @@
                     </div>
                     </div>
                     <div class="search-btn" style="margin-right: 20px;">
                     <div class="search-btn" style="margin-right: 20px;">
                         <div style="float: right">
                         <div style="float: right">
-                            <button class="btn  btn-default1"
-                                    ng-click="export()">导出
-                            </button>
                             <button class="btn btn-default1" role-permission-code="dnpxxx.btn.btnAdd"
                             <button class="btn btn-default1" role-permission-code="dnpxxx.btn.btnAdd"
                                     ng-click="add()">新增
                                     ng-click="add()">新增
                             </button>
                             </button>
+                            <button class="btn btn-default1" ng-if="selectparams.pxlx==1"
+                                    ng-click="import()">导入
+                            </button>
+                            <button class="btn  btn-default1"
+                                    ng-click="export()">导出
+                            </button>
                         </div>
                         </div>
                     </div>
                     </div>
                 </div>
                 </div>

+ 55 - 1
src/main/resources/static/app/main/partyTwoExt/dnpxxx/list.js

@@ -1,5 +1,5 @@
 (function ($app) {
 (function ($app) {
-    $app.module('gtPartyApp').controller('dnpxxxCtrl', function ($scope, $http, $modal, $ocLazyLoad, $timeout, $alert, $loading, $state, AuthUser, $stateParams, $bsRouterState) {
+    $app.module('gtPartyApp').controller('dnpxxxCtrl', function ($scope, $http, $modal, $ocLazyLoad, $timeout, $alert, $loading, $state, AuthUser, $stateParams, $bsRouterState, $excel) {
         $state.params = $bsRouterState.$params($scope);
         $state.params = $bsRouterState.$params($scope);
         $scope.isShow = false;
         $scope.isShow = false;
         $scope.moreTxt = "更多";
         $scope.moreTxt = "更多";
@@ -173,6 +173,60 @@
             }
             }
         };
         };
 
 
+        // 导入参数设置
+        $scope.excelDnpxxxConfig = {
+            filetype: 1,
+            columns: {
+                '姓名': 'userName',
+                '荣誉名称': 'honourname',
+                '等级': 'honourlevel',
+                '获得荣誉时间': 'honourtime',
+                '是否及时性表彰': 'iscommend',
+                '荣誉类型': 'honourtype',
+            },
+            errorcolumns: {
+                'userName': '姓名',
+                'honourname': '荣誉名称',
+                'honourlevel': '等级',
+                'honourtime': '获得荣誉时间',
+                'iscommend': '是否及时性表彰',
+                'honourtype': '荣誉类型',
+                'errorInfo': '错误信息'
+            },
+            readonly: false,
+            templateUrl: '/doc/template/党员评优导入模板.xlsx'
+        };
+
+        $scope.import = function () {
+            $excel.addFile($scope.excelDnpxxxConfig).then(function (items) {
+                $loading.show();
+                $http({
+                    method: "post",
+                    url: "../../api/partyTowExt/importDnpxxx",
+                    data: {
+                        dnpxxxList: JSON.stringify(items)
+                    }
+                }).then(function (result) {
+                    $loading.hide();
+                    if (result.data.success) {
+                        $scope.loadData();
+                        $scope.showMsg('成功', result.data.msg, 3);
+                    } else {
+                        if (result.data.item.length > 0) {
+                            $scope.showMsg('错误', '导入失败,存在错误数据,请修改后重新导入!', 20);
+                            $excel.showErrorInfo(result.data.item);
+                        } else {
+                            $scope.showMsg(result.data.msg);
+                        }
+                    }
+
+                }, function (resp) {
+                    $loading.hide();
+                    $scope.showMsg('错误', '服务器错误');
+                })
+            });
+        };
+
         $scope.export = function () {
         $scope.export = function () {
             if ($scope.selectparams.dzzdm != "") {
             if ($scope.selectparams.dzzdm != "") {
                 var params = "?1=1";
                 var params = "?1=1";

+ 15 - 0
src/main/resources/static/app/main/partyTwoExt/mzpyxx/edit.html

@@ -64,6 +64,21 @@
                                           class="error">必填.</span>
                                           class="error">必填.</span>
                                 </td>
                                 </td>
                             </tr>
                             </tr>
+                            <tr ng-if="dataModel.pyjg == '30'">
+                                <th>
+                                    不合格处置情况
+                                </th>
+                                <td ng-class="{ 'has-error' : this.editForm.pyjcqk.$invalid && this.editForm.$submitted}">
+                                    <select class="form-control form-control show-tick"
+                                            ng-model="dataModel.pyjcqk"
+                                            ng-options="type.BM as type.HZMC for type in pyczqkList"
+                                            name="pyjcqk">
+                                        <option value="">--请选择--</option>
+                                    </select>
+                                    <span ng-show="this.editForm.pyjcqk.$invalid &&  this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                            </tr>
                         </table>
                         </table>
                     </div>
                     </div>
                     <div class="form_foot">
                     <div class="form_foot">

+ 3 - 0
src/main/resources/static/app/main/partyTwoExt/mzpyxx/list.html

@@ -126,6 +126,9 @@
                             <button class="btn  btn-default1"
                             <button class="btn  btn-default1"
                                     ng-click="edit()">新增
                                     ng-click="edit()">新增
                             </button>
                             </button>
+                            <button class="btn btn-default1"
+                                    ng-click="import()">导入
+                            </button>
                             <button class="btn  btn-default1"
                             <button class="btn  btn-default1"
                                     ng-click="export()">导出
                                     ng-click="export()">导出
                             </button>
                             </button>

+ 65 - 1
src/main/resources/static/app/main/partyTwoExt/mzpyxx/list.js

@@ -1,5 +1,5 @@
 (function ($app) {
 (function ($app) {
-    $app.module('gtPartyApp').controller('mzpyxxCtrl', function ($scope, $http, $modal, $ocLazyLoad, $timeout, $alert, $loading, $state, AuthUser, $stateParams, $bsRouterState) {
+    $app.module('gtPartyApp').controller('mzpyxxCtrl', function ($scope, $http, $modal, $ocLazyLoad, $timeout, $alert, $loading, $state, AuthUser, $stateParams, $bsRouterState, $excel) {
         $state.params = $bsRouterState.$params($scope);
         $state.params = $bsRouterState.$params($scope);
         $scope.isShow = false;
         $scope.isShow = false;
         $scope.moreTxt = "更多";
         $scope.moreTxt = "更多";
@@ -121,6 +121,17 @@
 
 
             });
             });
         };
         };
+        $scope.getPyczqkList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/partyTowExt/getMzpybhgclqkList',
+                params: { }
+            }).then(function (result) {
+                $scope.pyczqkList = result.data.item;
+            }, function (resp) {
+
+            });
+        };
 
 
         $scope.edit = function (id) {
         $scope.edit = function (id) {
             editModal.params = {
             editModal.params = {
@@ -151,6 +162,58 @@
             }
             }
         };
         };
 
 
+        // 导入参数设置
+        $scope.excelDnpxxxConfig = {
+            filetype: 1,
+            columns: {
+                '姓名': 'userName',
+                '评议开始日期': 'kzpyrq',
+                '评议结束日期': 'jspyrq',
+                '评议结果': 'pyjg',
+                '不合格处理情况': 'pyjcqk',
+            },
+            errorcolumns: {
+                'userName': '姓名',
+                'kzpyrq': '评议开始日期',
+                'jspyrq': '评议结束日期',
+                'pyjg': '评议结果',
+                'pyjcqk': '不合格处理情况',
+                'errorInfo': '错误信息'
+            },
+            readonly: false,
+            templateUrl: '/doc/template/党员民主评议导入模板.xlsx'
+        };
+
+        $scope.import = function () {
+            $excel.addFile($scope.excelDnpxxxConfig).then(function (items) {
+                $loading.show();
+                $http({
+                    method: "post",
+                    url: "../../api/partyTowExt/importMzpy",
+                    data: {
+                        mzpyList: JSON.stringify(items)
+                    }
+                }).then(function (result) {
+                    $loading.hide();
+                    if (result.data.success) {
+                        $scope.loadData();
+                        $scope.showMsg('成功', result.data.msg, 3);
+                    } else {
+                        if (result.data.item.length > 0) {
+                            $scope.showMsg('错误', '导入失败,存在错误数据,请修改后重新导入!', 20);
+                            $excel.showErrorInfo(result.data.item);
+                        } else {
+                            $scope.showMsg(result.data.msg);
+                        }
+                    }
+
+                }, function (resp) {
+                    $loading.hide();
+                    $scope.showMsg('错误', '服务器错误');
+                })
+            });
+        };
+
         $scope.export = function () {
         $scope.export = function () {
             if ($scope.selectparams.dzzdm != "") {
             if ($scope.selectparams.dzzdm != "") {
                 var params = "?1=1";
                 var params = "?1=1";
@@ -163,6 +226,7 @@
         };
         };
         //数据初始化
         //数据初始化
         $scope.getPyjgList();
         $scope.getPyjgList();
+        $scope.getPyczqkList();
 
 
         $scope.showMsg = function (title, content) {
         $scope.showMsg = function (title, content) {
             $alert({
             $alert({

+ 100 - 0
src/main/resources/static/app/main/partyTwoExt/mzpyxx/mzpyTotal.html

@@ -0,0 +1,100 @@
+<titlemenu></titlemenu>
+<div class="dj-list">
+    <div class="dj-list-body">
+        <div party-tree data-selectdzzdm="treeparams.selectdzzdm" data-selectdzzmc="treeparams.selectdzzmc"
+             data-defaultselected="treeparams.defaultselected" data-isunfold="treeparams.isunfold"
+             data-showdxz="treeparams.showdxz"></div>
+        <div class="dj-list-content">
+            <div class="card">
+                <div activate-input activate-select class="header search-header">
+                    <div fold-partytree data-isunfold="treeparams.isunfold"></div>
+                    <div class="search-param-panel">
+                        <div class="search-input">
+                            <form class="form-horizontal">
+                                <div class="row clearfix form-inline">
+                                    <div class="col-lg-2 col-md-2 dj-label">
+                                        <label>当前选中组织</label>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <div class="form-group">
+                                            <div class="form-line">
+                                                <div class="input-group input-group-search">
+                                                    <input name="selectdzzmc" type="text" style="min-width: 90px"
+                                                           ng-model="treeparams.selectdzzmc" class="form-control"
+                                                           ng-disabled="true"/>
+                                                    <span class="input-group-addon"
+                                                          ng-click="setisunfold()">选择</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                        <div class="search-btn" style="margin-right: 20px;">
+                            <div style="min-width: 13em">
+                                <button class="btn btn-default1"
+                                        ng-click="search()">查询
+                                </button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="search-btn" style="margin-right: 20px;">
+                        <div style="float: right">
+
+                        </div>
+                    </div>
+                </div>
+                <div class="body">
+                    <div class="zero-list-table-panel">
+                        <div class="zero-source-table-div">
+                            <table class="table table-bordered table-striped table-hover js-basic-example dataTable text-nowrap">
+                                <thead>
+                                <tr>
+                                    <!-- 第一行 -->
+                                    <th rowspan="2">序号</th>
+                                    <th rowspan="2">基层党组织</th>
+                                    <th colspan="6">党员评议结果</th>
+                                    <th rowspan="2">不合格党员处理情况</th>
+                                </tr>
+                                <tr>
+                                    <!-- 第二行 -->
+                                    <th>优秀名额</th>
+                                    <th>优秀名单</th>
+                                    <th>合格名额</th>
+                                    <th>合格名单</th>
+                                    <th>基本合格名额</th>
+                                    <th>不合格名额</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                    <tr ng-repeat="it in dataList">
+                                        <th>{{$index + 1}}</th>
+                                        <th>{{it.DZZMC}}</th>
+                                        <th>{{it.yxCount}}</th>
+                                        <th>{{it.yxmd}}</th>
+                                        <th>{{it.hgCount}}</th>
+                                        <th>{{it.hgmd}}</th>
+                                        <th>{{it.jbhgCount}}</th>
+                                        <th>{{it.bhgCount}}</th>
+                                        <th>
+                                            <p>开除党籍{{it.kcdjcfCount}}人</p>
+                                            <p>劝其退党{{it.qqtdcfCount}}人</p>
+                                            <p>限期改正{{it.qxgzcfCount}}人</p>
+                                            <p>党内除名{{it.dncmcfCount}}人</p>
+                                            <p>受其他党纪处分{{it.qtdjcfCount}}人</p>
+                                            <p>受其他处置{{it.qtcfCount}}人</p>
+                                        </th>
+                                    </tr>
+                                    <tr ng-if="dataList.length==0">
+                                        <td colspan="13" style="text-align:center">暂无数据</td>
+                                    </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 91 - 0
src/main/resources/static/app/main/partyTwoExt/mzpyxx/mzpyTotal.js

@@ -0,0 +1,91 @@
+(function ($app) {
+    $app.module('gtPartyApp').controller('mzpxyTotalCtrl', function ($scope, $http, $modal, $ocLazyLoad, $alert, $loading, $state, $bsRouterState, AuthUser) {
+        $state.params = $bsRouterState.$params($scope);
+        $scope.isShow = false;
+        $scope.moreTxt = "更多";
+
+        //定义数据集合
+        $scope.loginUserId = AuthUser.getUser().Id;
+        $scope.dataList = []; //列表数据
+
+        //组织树参数
+        $scope.treeparams = {
+            isunfold: false,//组织结构树展开收缩
+            selectdzzdm: "",
+            selectdzzmc: "",
+            defaultselected: $state.params.dzzdm,
+            showdxz: 0
+        };
+
+        //查询参数
+        $scope.selectparams = {
+            pageindex: 1,
+            pagesize: 10,
+            dzzdm: '',//党组织代码
+        };
+        $scope.resetparams = {};
+        angular.extend($scope.resetparams, $scope.selectparams);
+
+        $scope.$watch("treeparams.selectdzzdm", function (newVal, oldVal) {
+            if (newVal != "") {
+
+                if ($scope.treeparams.defaultselected != "" && $scope.treeparams.defaultselected != null &&
+                    $scope.treeparams.defaultselected != $scope.treeparams.selectdzzdm)
+                    return;
+
+                $scope.selectparams.dzzdm = $scope.treeparams.selectdzzdm;
+                $scope.resetparams.dzzdm = $scope.treeparams.selectdzzdm;
+
+                $scope.loadData();
+            }
+        });
+
+        //查询
+        $scope.search = function () {
+            $scope.loadData();
+        };
+
+        //加载列表数据
+        $scope.loadData = function () {
+            $http
+            ({
+                method: 'get', url: '../../api/partyTowExt/getMzpyTotalList', params: $scope.selectparams
+            }).then(function (result) {
+                $scope.dataList = result.data.item;
+            });
+        };
+
+        $scope.showMsg = function (title, content) {
+            $alert({
+                title: title + ':',
+                content: content,
+                placement: 'top',
+                type: 'info',
+                show: true,
+                duration: 3
+            });
+
+        };
+
+        $scope.isShowClick = function () {
+            $scope.isShow = !$scope.isShow;
+            if ($scope.moreTxt == "更多") {
+                $scope.moreTxt = "收起";
+            } else if ($scope.moreTxt == "收起") {
+                $scope.moreTxt = "更多";
+            }
+        };
+        $scope.setisunfold = function () {
+            $scope.treeparams.isunfold = !$scope.treeparams.isunfold;
+            $scope.$emit('menudatas.toggle', !$scope.treeparams.isunfold);
+        };
+        $scope.resetSearch = function () {
+            $scope.selectparams = {};
+
+            angular.extend($scope.selectparams, $scope.resetparams);
+            $scope.loadData();
+        }
+
+        $scope.search();
+    });
+})(angular);

+ 56 - 0
src/main/resources/static/app/main/partyTwoExt/ztdrxx/edit.html

@@ -81,6 +81,62 @@
                     </tr>
                     </tr>
                 </table>
                 </table>
             </div>
             </div>
+            <div class="dj-formtable">
+                <div class="table-responsive list-table-panel">
+                    <div class="list-table-title">
+                        <div class="table-title">
+                            出席人员列表({{dataModel.personnellist.length}}人)
+                        </div>
+                        <div class="table-tool">
+                            <button type="button" class="btn btn-primary dropdown-toggle"
+                                    data-dataoptions="selectUserlist" title="新增"
+                                    ng-click="selectUser()"
+                                    bsselectdata-pro>
+                                新增
+                            </button>
+                        </div>
+                    </div>
+                    <div class="outoflow" style="max-height: 300px;">
+                        <table class="table table-bordered table-striped table-hover js-basic-example dataTable text-nowrap">
+                            <thead>
+                            <tr>
+                                <th>序号</th>
+                                <th>姓名</th>
+                                <th>是否缺勤</th>
+                                <th>缺勤原因</th>
+                                <th>操作</th>
+                            </tr>
+                            </thead>
+                            <tbody>
+                            <tr ng-repeat="it in dataModel.personnellist">
+                                <td scope="row">{{$index+1}}</td>
+                                <td>{{it.xm}}</td>
+                                <td>
+                                    <input type="checkbox" id="{{pageId}}_checkbox_{{$index+1}}"
+                                           class="filled-in chk-col-red" ng-checked="it.isabsenteeism==1"
+                                           ng-click="it.isabsenteeism==1?it.isabsenteeism=0:it.isabsenteeism=1"/>
+                                    <label class="checkbox_lable" style="height: 10px;"
+                                           for="{{pageId}}_checkbox_{{$index+1}}">{{it.isabsenteeism == 1 ? "是" : "否"}}</label>
+                                </td>
+                                <td>
+                                            <textarea name="absenteeismcause" ng-model="it.absenteeismcause"
+                                                      class="form-control" rows="3"></textarea>
+                                </td>
+                                <td class="text-center">
+                                    <button class="btn td-btn bg-pink waves-effect"
+                                            ng-click="deleteUser($index)" title="删除">
+                                        删除
+                                    </button>
+                                </td>
+                            </tr>
+                            <tr ng-if="dataModel.personnellist.length<=0">
+                                <td colspan="7" style="text-align:center">暂无数据</td>
+                            </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
             <div class="form_foot" >
             <div class="form_foot" >
                 <button type="button" class="btn btn-default" ng-click="pagechange();">取消</button>
                 <button type="button" class="btn btn-default" ng-click="pagechange();">取消</button>
                 <button type="submit"
                 <button type="submit"

+ 68 - 0
src/main/resources/static/app/main/partyTwoExt/ztdrxx/edit.js

@@ -59,6 +59,74 @@
             }
             }
         }, true);
         }, true);
 
 
+        // 弹窗选择出席人员
+        $scope.selectUserlist = {
+            url: "../../api/partyUser/getPartyUserList",
+            title: '人员选择',
+            isMulti: true,
+            selectData: {xm: '姓名', szdzb: '所在组织架构'},
+            columns: {XM: '姓名', XBMC: '性别', JG: '籍贯', DZZMC: '所在组织架构'},
+            selectLabelKey: 'XM',
+            selectValuekey: 'RYJBXXBS',
+            selectedValueData: '',
+            selectedLabeData: '',
+            selectedJData: [],
+            selectParams: {
+                dzzdm: $scope.dataModel.partycode,
+                removeUsers: '',
+                //szdzbdm: $scope.dataModel.shyktype == 2 ? $scope.dataModel.partycode : '',
+                ryzt: '2,3' //预备党员,正式党员
+            }
+        };
+        $scope.$watch('selectUserlist.selectedValueData', function (newVal) {
+            if (newVal != '' && newVal != undefined) {
+                $http({
+                    method: 'get',
+                    url: '../../api/partyUser/getPartyUserList',
+                    params: {
+                        userIds: newVal,
+                        pageindex: 1,
+                        pagesize: 10000
+                    }
+                }).then(function (result) {
+                    $loading.hide();
+                    result.data.item.list.forEach(item => {
+                        item.SIGNINSTATUS = 2;
+                    });
+                    let data = [];
+                    result.data.item.list.forEach(x=>{
+                        data.push({rybm: x.RYBM, ryjbxxbs: x.RYJBXXBS, xm: x.XM, isabsenteeism: 0, absenteeismcause: ''});
+                    })
+                    $scope.dataModel.personnellist = $scope.dataModel.personnellist.concat(data);
+
+                    $scope.selectUserlist.selectedValueData = "";
+                    $scope.selectUserlist.selectedLabeData = "";
+                }, function (resp) {
+                    $loading.hide();
+                    $scope.showMsg('错误', '服务器错误');
+                });
+            }
+        });
+        $scope.$watch('dataModel.personnellist', function (newVal) {
+            if($scope.dataModel.personnellist){
+                $scope.setRemoveUser();
+            }
+        }, true);
+
+        $scope.setRemoveUser = function () {
+            $scope.selectUserlist.selectParams.removeUsers = "";
+            angular.forEach($scope.dataModel.personnellist, function (val, index) {
+                $scope.selectUserlist.selectParams.removeUsers += val.ryjbxxbs + ','
+            });
+        };
+
+        //人员操作
+        $scope.deleteUser = function (index) {
+            if (confirm("请确认是否需要移除参会人员!")) {
+                $scope.dataModel.personnellist.splice(index, 1);
+            }
+        };
+
         $scope.loadData = function () {
         $scope.loadData = function () {
             $http.get("../../api/partyTowExt/getZtdrxx", {
             $http.get("../../api/partyTowExt/getZtdrxx", {
                 params: {
                 params: {

+ 32 - 0
src/main/resources/static/app/main/partyTwoExt/ztdrxx/view.html

@@ -47,6 +47,38 @@
                     </tr>
                     </tr>
                 </table>
                 </table>
             </div>
             </div>
+            <div class="dj-formtable">
+                <div class="table-responsive list-table-panel">
+                    <div class="list-table-title">
+                        <div class="table-title">
+                            出席人员列表({{dataModel.personnellist.length}}人)
+                        </div>
+                    </div>
+                    <div class="outoflow" style="max-height: 300px;">
+                        <table class="table table-bordered table-striped table-hover js-basic-example dataTable text-nowrap">
+                            <thead>
+                            <tr>
+                                <th>序号</th>
+                                <th>姓名</th>
+                                <th>是否缺勤</th>
+                                <th>缺勤原因</th>
+                            </tr>
+                            </thead>
+                            <tbody>
+                            <tr ng-repeat="it in dataModel.personnellist">
+                                <td scope="row">{{$index+1}}</td>
+                                <td>{{it.xm}}</td>
+                                <td>{{it.isabsenteeismname}}</td>
+                                <td style="min-width: 150px !important;word-wrap: break-word;word-break: break-all;white-space: normal;">{{it.absenteeismcause}}</td>
+                            </tr>
+                            <tr ng-if="userList.length<=0">
+                                <td colspan="7" style="text-align:center">暂无数据</td>
+                            </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
             <div class="form_foot">
             <div class="form_foot">
                 <button type="button" class="btn btn-default" ng-click="pagechange();">关闭</button>
                 <button type="button" class="btn btn-default" ng-click="pagechange();">关闭</button>
             </div>
             </div>

BIN
src/main/resources/static/doc/template/党员民主评议导入模板.xlsx


BIN
src/main/resources/static/doc/template/党员评优导入模板.xlsx