会议签到增加人员报表,增加会议名称修改
diff --git a/src/main/java/com/supwisdom/dlpay/conference/controller/ConfViewController.java b/src/main/java/com/supwisdom/dlpay/conference/controller/ConfViewController.java
new file mode 100644
index 0000000..cb6f8ae
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/conference/controller/ConfViewController.java
@@ -0,0 +1,111 @@
+package com.supwisdom.dlpay.conference.controller;
+
+import com.supwisdom.dlpay.atte.service.AtteClassService;
+import com.supwisdom.dlpay.conference.service.ConferenceService;
+import com.supwisdom.dlpay.doorlist.bean.TCustomerInfo;
+import com.supwisdom.dlpay.framework.domain.TOperator;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.system.domain.TCustType;
+import com.supwisdom.dlpay.system.service.ManagerService;
+import com.supwisdom.dlpay.system.service.SystemService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/confreview")
+public class ConfViewController {
+ @Autowired
+ private AtteClassService atteClassService;
+ @Autowired
+ private ConferenceService conferenceService;
+ @Autowired
+ private SystemService systemService;
+
+ /**
+ * 审核人管理
+ * @param
+ */
+ @GetMapping("/index")
+ public String reviewindex(){
+ return "confreview/index";
+ }
+
+ /**
+ * 获取审核人员名单
+ * @param
+ */
+ @ResponseBody
+ @RequestMapping(value = "/custlist", method = RequestMethod.POST)
+ public Map getReviewerList(
+ @RequestParam(value = "perName", required = false, defaultValue = "") String perName,
+ @RequestParam(value = "custtypeid", required = false, defaultValue = "") String custtypeid,
+ @AuthenticationPrincipal TOperator operUser) {
+ Map map = new HashMap();
+ try {
+
+ String opertype=operUser.getOpertype();
+ String deptcode=operUser.getDeptcode();
+ if (!StringUtil.isEmpty(opertype) &&(opertype.equals("S")||opertype.equals("P"))){
+ deptcode=null;
+ }else {
+ if(StringUtil.isEmpty(deptcode)){
+ deptcode="-99";
+ }
+ }
+ List<TCustomerInfo> allcust=atteClassService.getAllCustomer(perName,deptcode,custtypeid);
+ List<TCustomerInfo> reviewlist=conferenceService.getConferenceReviewList(deptcode);
+ Boolean countIndex = false;
+ if (allcust.size() > 4000) {
+ countIndex = true;
+ }
+ allcust.removeAll(reviewlist);
+ List<TCustType> custtypelist=systemService.findAllCusttype();
+ map.put("custtypelist",custtypelist);
+ map.put("allcust",allcust);
+ map.put("reviewlist",reviewlist);
+ map.put("countIndex", countIndex);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return map;
+ }
+ /**
+ * 保存审核人员
+ * @param
+ */
+ @ResponseBody
+ @RequestMapping(value="/addreview", method = RequestMethod.POST)
+ public Map saveReview(@RequestParam(value = "idlist") List<String> custids,
+ @AuthenticationPrincipal TOperator operUser,
+ HttpServletRequest request, HttpServletResponse response) {
+ Map map=new HashMap();
+
+ try {
+ String opertype=operUser.getOpertype();
+ String deptcode=operUser.getDeptcode();
+ if (!StringUtil.isEmpty(opertype) &&(opertype.equals("S")||opertype.equals("P"))){
+ deptcode=null;
+ }else {
+ if(StringUtil.isEmpty(deptcode)){
+ deptcode="-99";
+ }
+ }
+ conferenceService.addConfReview(deptcode,operUser.getOpercode(),custids);
+ map.put("errStr","");
+ } catch (Exception e) {
+ e.printStackTrace();
+ map.put("errStr","保存信息异常!");
+ }
+
+ return map;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
index 735f54a..311fdbb 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
@@ -147,6 +147,22 @@
return "conference/confform";
}
+ @GetMapping("/conference/load4updateconf")
+ public String load4UpdateConference( @RequestParam("confid") Integer confid,
+ Model model) {
+ TConference conf=conferenceService.getConferenceById(confid);
+
+ String now = DateUtil.getNow("yyyyMMdd");
+ model.addAttribute("maxdate", DateUtil.reformatDatetime(now, "yyyyMMdd", "yyyy-MM-dd"));
+ model.addAttribute("starttime", DateUtil.reformatDatetime(conf.getStarttime(), "HHmm", "HH:mm"));
+ model.addAttribute("endtime", DateUtil.reformatDatetime(conf.getEndtime(), "HHmm", "HH:mm"));
+ model.addAttribute("attendtime", DateUtil.reformatDatetime(conf.getAttendtime(), "HHmm", "HH:mm"));
+ model.addAttribute("confname", conf.getConfname());
+ model.addAttribute("confid",conf.getConfid());
+ model.addAttribute("remark", conf.getRemark());
+ return "conference/confupdate";
+ }
+
@PostMapping("/conference/addconf")
@ResponseBody
@@ -193,6 +209,47 @@
}
}
+ @PostMapping("/conference/updateconf")
+ @ResponseBody
+ public JsonResult editConference(@RequestParam("confname") String confname,
+ @RequestParam("confid") Integer confid,
+ @RequestParam("confdate") String confdate,
+ @RequestParam("starttime") String starttime,
+ @RequestParam("endtime") String endtime,
+ @RequestParam("attendtime") String attendtime,
+ @RequestParam("remark") String remark,
+ @AuthenticationPrincipal UserDetails operUser,
+ HttpServletRequest request) {
+ try {
+ if (StringUtil.isEmpty(confname)
+ ||null==confid
+ || !DateUtil.checkDatetimeValid(starttime, "HH:mm")
+ || !DateUtil.checkDatetimeValid(endtime, "HH:mm")
+ || !DateUtil.checkDatetimeValid(attendtime, "HH:mm")) {
+ return JsonResult.error("参数传递错误");
+ } else if (DateUtil.compareDatetime(endtime, starttime, "HH:mm") <= 0) {
+ return JsonResult.error("时间范围错误,结束时间必须比起始时间大");
+ } else if (DateUtil.compareDatetime(starttime, attendtime, "HH:mm") <= 0) {
+ return JsonResult.error("时间范围错误,起始时间必须比签到时间大");
+ }
+ TOperator oper = (TOperator) operUser;
+ if (null == oper || StringUtil.isEmpty(oper.getOperid())) {
+ return JsonResult.error("登录过期,请重新登录");
+ }
+
+ if (conferenceService.saveConference(confid,confname.trim(), DateUtil.unParseToDateFormat(confdate), DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), DateUtil.unParseToDateFormat(attendtime), remark)) {
+ return JsonResult.ok("修改成功");
+ } else {
+ return JsonResult.error("修改失败");
+ }
+ } catch (WebCheckException e) {
+ return JsonResult.ok(599, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+ }
+
@GetMapping("/conference/downloadexcel")
@ResponseBody
diff --git a/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceReviewDao.java b/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceReviewDao.java
new file mode 100644
index 0000000..864f320
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceReviewDao.java
@@ -0,0 +1,17 @@
+package com.supwisdom.dlpay.conference.dao;
+
+
+import com.supwisdom.dlpay.conference.domain.TConfPeople;
+import com.supwisdom.dlpay.conference.domain.TConferenceReview;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ConferenceReviewDao extends JpaRepository<TConferenceReview, String> {
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/domain/TConferenceReview.java b/src/main/java/com/supwisdom/dlpay/conference/domain/TConferenceReview.java
new file mode 100644
index 0000000..decd59d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/conference/domain/TConferenceReview.java
@@ -0,0 +1,41 @@
+package com.supwisdom.dlpay.conference.domain;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name="t_conference_review")
+public class TConferenceReview {
+
+ private String custid;
+ private String opercode;
+ private String updatetime;
+
+ @Id
+ @Column(name="custid",length = 32)
+ public String getCustid() {
+ return custid;
+ }
+
+ public void setCustid(String custid) {
+ this.custid = custid;
+ }
+ @Column(name="opercode",length = 255)
+ public String getOpercode() {
+ return opercode;
+ }
+
+ public void setOpercode(String opercode) {
+ this.opercode = opercode;
+ }
+ @Column(name="updatetime",length = 14)
+ public String getUpdatetime() {
+ return updatetime;
+ }
+
+ public void setUpdatetime(String updatetime) {
+ this.updatetime = updatetime;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
index e2b54aa..75f1613 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -8,6 +8,7 @@
import com.supwisdom.dlpay.conference.bean.ConfpeopleReportBean;
import com.supwisdom.dlpay.conference.bean.ConfpeopleShowBean;
import com.supwisdom.dlpay.conference.domain.*;
+import com.supwisdom.dlpay.doorlist.bean.TCustomerInfo;
import com.supwisdom.dlpay.framework.domain.TOperator;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
@@ -56,6 +57,10 @@
@Transactional(rollbackFor = Exception.class)
boolean saveNewConference(String confname,String confdate, String conftype, String starttime,
String endtime, String attendtime, TOperator oper, List<Integer> deviceid,String remark) throws Exception;
+ @Transactional(rollbackFor = Exception.class)
+ boolean saveConference(Integer confid,String confname,String confdate, String starttime,
+ String endtime, String attendtime, String remark) throws Exception;
+
@Transactional(rollbackFor = Exception.class)
boolean saveConferencePeopleByExcel(Integer confid,String fpath) throws Exception;
@@ -114,4 +119,9 @@
@Transactional(rollbackFor = Exception.class, readOnly = true)
List<ConfPeopleApiBean> getConfPeopleListByConfid(Integer confid, String conftype) ;
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ public List<TCustomerInfo> getConferenceReviewList(String deptcode);
+
+ @Transactional(rollbackFor = Exception.class)
+ public boolean addConfReview(String deptcode, String opercode, List<String> custidlist);
}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
index b27841b..5685129 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
@@ -4,6 +4,7 @@
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.atte.domain.TAtteReview;
import com.supwisdom.dlpay.conference.api.bean.ConfPeopleApiBean;
import com.supwisdom.dlpay.conference.api.bean.ConferenceApiBean;
import com.supwisdom.dlpay.conference.bean.*;
@@ -68,7 +69,8 @@
private NolistConfPeopleDao nolistConfPeopleDao;
@Autowired
private CustomerDao customerDao;
-
+ @Autowired
+ private ConferenceReviewDao conferenceReviewDao;
@PersistenceContext
private EntityManager entityManager;
@@ -316,6 +318,23 @@
}
@Override
+ public boolean saveConference(Integer confid, String confname, String confdate, String starttime, String endtime, String attendtime, String remark) throws Exception {
+ TConference conf=conferenceDao.findByConfid(confid);
+ if(null==conf){
+ return false;
+ }
+ conf.setConfname(confname);
+ conf.setConfdate(confdate);
+ conf.setStarttime(starttime);
+ conf.setEndtime(endtime);
+ conf.setAttendtime(attendtime);
+ conf.setRemark(remark);
+ conferenceDao.save(conf);
+ return true;
+ }
+
+
+ @Override
public boolean saveConferencePeopleByExcel(Integer confid, String fpath) throws Exception {
TConference conference = conferenceDao.findByConfid(confid);
if (null == conference) {
@@ -841,5 +860,53 @@
return cnt.intValue();
}
+ @Override
+ public List<TCustomerInfo> getConferenceReviewList(String deptcode) {
+ String sql = "select a.deptcode,a.custtypeid,a.custid,a.custname,b.cardno,b.bankcardno,b.cardphyid,b.expiredate from T_Customer a left join t_card b on a.custid = b.custid " +
+ " where a.status='1' and b.status='normal' and b.transtatus='normal' ";
+ sql+= " and a.custid in ( select custid from t_conference_review ) ";
+ if(!StringUtil.isEmpty(deptcode)){
+ sql+=" and a.deptcode= :dcode ";
+ }
+ sql +=" order by b.cardno desc ";
+ Query query = entityManager.createNativeQuery(sql, TCustomerInfo.class);
+ if(!StringUtil.isEmpty(deptcode)){
+ query.setParameter("dcode",deptcode);
+ }
+ List<TCustomerInfo> list = query.getResultList();
+ return list;
+ }
+ @Override
+ public boolean addConfReview(String deptcode, String opercode, List<String> custidlist) {
+ delConfReview(deptcode);
+ for (String custid:custidlist){
+ TConferenceReview reviewer=new TConferenceReview();
+ reviewer.setCustid(custid);
+ reviewer.setOpercode(opercode);
+ reviewer.setUpdatetime(DateUtil.getNow());
+ conferenceReviewDao.save(reviewer);
+ }
+ return true;
+ }
+
+ public boolean delConfReview(String deptcode) {
+ String sql=" delete from TConferenceReview where custid in (select custid from TCustomer where 1=1 ";
+ if(!StringUtil.isEmpty(deptcode)){
+ sql+=" and deptcode = :dcode";
+ }
+ sql+=" ) ";
+ try {
+ Query query=entityManager.createQuery(sql);
+ if(!StringUtil.isEmpty(deptcode)){
+ query.setParameter("dcode",deptcode);
+ }
+ query.executeUpdate();
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return false;
+ }
}
diff --git a/src/main/resources/templates/conference/conflist.html b/src/main/resources/templates/conference/conflist.html
index 8c8276c..2165d8a 100644
--- a/src/main/resources/templates/conference/conflist.html
+++ b/src/main/resources/templates/conference/conflist.html
@@ -32,11 +32,13 @@
{{# if(d.status=='unstart'&&d.conftype=='list'){ }}
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+ <a class="layui-btn layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn layui-btn-xs" lay-event="excel">excel导入</a>
<a class="layui-btn layui-btn layui-btn-xs" lay-event="people">分配人员</a>
<a class="layui-btn layui-btn layui-btn-xs" lay-event="qrcode">申请开门码</a>
{{# } else if(d.status=='unstart'&&d.conftype=='nolist'){ }}
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+ <a class="layui-btn layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn layui-btn-xs" lay-event="qrcode">申请开门码</a>
{{# } }}
@@ -78,7 +80,7 @@
}
},
{
- field: 'status', title: '状态', align: 'center', width: 120, sort: true, templet: function (d) {
+ field: 'status', title: '状态', align: 'center', width: 100, sort: true, templet: function (d) {
if ('unstart' == d.status) {
return '<span class="layui-badge layui-bg-orange">未开始</span>'
} else if ('start' == d.status) {
@@ -93,7 +95,7 @@
}
},
/* {field: 'remark', title: '备注', align: 'center'},*/
- {align: 'center', title: '操作', width: 310, toolbar: '#conference-table-bar', fixed: 'right'}
+ {align: 'center', title: '操作', width: 340, toolbar: '#conference-table-bar', fixed: 'right'}
]
]
});
@@ -183,7 +185,18 @@
table.reload('conferenceTable');
}
});
- }else if ('people' == obj.event) {
+ } else if ('edit' == obj.event) {
+ admin.putTempData('t_conf', data);
+ admin.popupCenter({
+ title: "修改会议",
+ path: '[[@{/conference/load4updateconf}]]?confid='+ data.confid,
+ area: '500px',
+ finish: function () {
+ table.reload('conferenceTable');
+ }
+ });
+ }
+ else if ('people' == obj.event) {
admin.popupCenter({
title: "分配人员",
area: '900px',
diff --git a/src/main/resources/templates/conference/confupdate.html b/src/main/resources/templates/conference/confupdate.html
new file mode 100644
index 0000000..79b7356
--- /dev/null
+++ b/src/main/resources/templates/conference/confupdate.html
@@ -0,0 +1,188 @@
+<div id="confupdate-form" lay-filter="confupdate-form-filter" class="layui-form model-form" style="padding: 10px 25px;">
+ <input type="hidden" id="confupdate-hidden-maxdate" th:value="${maxdate}"/>
+ <input type="hidden" id="confupdate-hidden-confid" name="confid" th:value="${confid}"/>
+ <div class="layui-form-item">
+ <label class="confinput-label layui-form-label"><span style="color: red">* </span>会议名称</label>
+ <div class="layui-input-block">
+ <input type="text" class="layui-input" name="confname" id="form-confupdate-confname"
+ style="width: 90%;"
+ autocomplete="off" lay-verify="required|Confname" th:value="${confname}"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="confinput-label layui-form-label"><span style="color: red">* </span>会议日期</label>
+ <div class="layui-input-inline">
+ <input type="text" name="confdate" id="form-confupdate-confdate" placeholder="会议日期" th:value="${maxdate}"
+ autocomplete="off" class="layui-input"/>
+ </div>
+ </div>
+
+
+ <div class="layui-form-item">
+ <label class="confinput-label layui-form-label"><span style="color: red">* </span>会议时间段</label>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="starttime" placeholder="9:00" id="form-confupdate-starttime" autocomplete="off"
+ maxlength="5"
+ class="layui-input" lay-verify="required" th:value="${starttime}"/>
+ </div>
+ <div class="layui-form-mid">-</div>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="endtime" placeholder="12:00" id="form-confupdate-endtime" autocomplete="off"
+ maxlength="5"
+ class="layui-input" lay-verify="required" th:value="${endtime}"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="confinput-label layui-form-label"><span style="color: red">* </span>签到时间</label>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="attendtime" placeholder="8:30" id="form-confupdate-attendtime" autocomplete="off"
+ maxlength="5"
+ class="layui-input" lay-verify="required" th:value="${attendtime}"/>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label confinput-label">会议概要</label>
+ <div class="layui-input-block">
+ <textarea name="remark" placeholder="请输入" class="layui-textarea" th:value="${remark}"></textarea>
+ </div>
+ </div>
+
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+ <button class="layui-btn" lay-filter="confupdate-form-submit" lay-submit id="submitbtn">保存</button>
+ </div>
+</div>
+
+<script>
+ layui.use(['layer', 'admin', 'form', 'laydate', 'upload','formSelects'], function () {
+ var layer = layui.layer;
+ var admin = layui.admin;
+ var form = layui.form;
+ var laydate = layui.laydate;
+
+ laydate.render({
+ elem: '#form-confupdate-starttime',
+ type: 'time',
+ format: 'HH:mm',
+ trigger: 'click'
+ });
+ laydate.render({
+ elem: '#form-confupdate-endtime',
+ type: 'time',
+ format: 'HH:mm',
+ trigger: 'click'
+ });
+ laydate.render({
+ elem: '#form-confupdate-attendtime',
+ type: 'time',
+ format: 'HH:mm',
+ trigger: 'click'
+ });
+ laydate.render({
+ elem: '#form-confupdate-confdate',
+ min: $("#confupdate-hidden-maxdate").val(),
+ trigger: 'click'
+ });
+
+ /* form.on('radio(confupdate-conftype-filter)', function (data) {
+ changeDiscountRuletype(data.value);
+ confType = data.value;
+ });*/
+
+ /* var changeDiscountRuletype = function (val) {
+ if ('nolist' == val) {
+ $("#confupdate-conflist").hide();
+ } else {
+ $("#confupdate-conflist").show();
+ }
+ }*/
+
+ form.on('submit(confupdate-form-submit)', function (data) {
+ var token = $("meta[name='_csrf_token']").attr("value");
+ var vdata = data.field;
+
+ if (null == vdata.starttime || null == vdata.endtime) {
+ layer.msg("请选择时间段", {icon: 2, time: 1500});
+ return;
+ } else if (vdata.endtime <= vdata.starttime) {
+ layer.msg("请正确选择时间段", {icon: 2, time: 1500});
+ return;
+ } else if (vdata.starttime <= vdata.attendtime) {
+ layer.msg("签到时间必须早于开始时间", {icon: 2, time: 1500});
+ return;
+ }
+ var formData = new FormData();
+ formData.append("confid", vdata.confid);
+ formData.append("confname", vdata.confname);
+ formData.append("starttime", vdata.starttime);
+ formData.append("endtime", vdata.endtime);
+ formData.append("attendtime", vdata.attendtime);
+ formData.append("confdate",vdata.confdate);
+
+ formData.append("remark",vdata.remark);
+
+ layer.load(2);
+ $.ajax({
+ type: "POST",
+ url: '[[@{/conference/updateconf}]]',
+ dataType: 'json',
+ processData: false,
+ contentType: false,
+ data: formData,
+ headers: {
+ 'Accept': 'application/json',
+ 'X-CSRF-TOKEN': token,
+ },
+
+ success: function (result) {
+ layer.closeAll('loading');
+ if (result.code == 200) {
+ layer.msg(result.msg, {icon: 1, time: 1500});
+ admin.finishPopupCenter();
+ } else if (result.code == 401) {
+ layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else if (result.code == 599) {
+ //自定义错误
+ layer.open({
+ type: 0,
+ title: "错误信息",
+ icon: 2,
+ area: ['600px', '400px'],
+ content: result.msg
+ });
+
+ } else {
+ layer.msg(result.msg, {icon: 2, time: 1500});
+ }
+ },
+ error: function (err) {
+ admin.errorBack(err);
+ }
+ });
+ });
+ });
+</script>
+
+<style>
+ .confinput-label {
+ width: 24%;
+ }
+
+ .xm-select-parent .xm-select-title div.xm-select-label>span{
+ height: 22px;
+ }
+
+ .upoadfile-btn input {
+ position: absolute;
+ font-size: 100px;
+ right: 0;
+ top: 0;
+ opacity: 0;
+ width: 113px;
+ height: 34px;
+ }
+</style>
+
diff --git a/src/main/resources/templates/confreport/detail.html b/src/main/resources/templates/confreport/detail.html
index 0663470..71e3c06 100644
--- a/src/main/resources/templates/confreport/detail.html
+++ b/src/main/resources/templates/confreport/detail.html
@@ -278,7 +278,7 @@
LODOP = getLodop();
LODOP.PRINT_INIT("会议报表");
- LODOP.SET_PRINT_PAGESIZE(2, 0, 0,"A4");
+ LODOP.SET_PRINT_PAGESIZE(1, 0, 0,"A4");
LODOP.ADD_PRINT_URL(30, 20, "95%", "90%", encodeURI(url));
LODOP.ADD_PRINT_HTM("95%", "48%", 150, 50, "<font style='font-size:12px'><span tdata='pageNO'>##</span>/<span tdata='pageCount'> ##</span></font>");
LODOP.SET_PRINT_STYLEA(0, "ItemType", 1);
diff --git a/src/main/resources/templates/confreport/print/attindex.html b/src/main/resources/templates/confreport/print/attindex.html
index 6529dfd..5fe49c8 100644
--- a/src/main/resources/templates/confreport/print/attindex.html
+++ b/src/main/resources/templates/confreport/print/attindex.html
@@ -112,7 +112,7 @@
<td width="18%"
style="text-align: left;" ></td>
<td width="5%"> </td>
- <td width="12%" style="text-align: right;padding-right: 5px;">审核人签字:</td>
+ <td width="12%" style="text-align: right;padding-right: 5px;">审核签字:</td>
<td width="18%"
style="text-align: left;border-bottom: 1px solid #666;"></td>
<td width="5%"> </td>
diff --git a/src/main/resources/templates/confreview/index.html b/src/main/resources/templates/confreview/index.html
new file mode 100644
index 0000000..3310fa7
--- /dev/null
+++ b/src/main/resources/templates/confreview/index.html
@@ -0,0 +1,570 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">会议报名人管理</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#">会议报名</a>
+ <a><cite>会议报名人管理</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body" >
+ <div id="confreviewapp">
+
+
+ <div id="assign_custSelect" >
+ <div>
+ <el-form :inline="true" ref="devform" :model="person_person" data-parsley-validate
+ class="form-horizontal form-label-left">
+ <div class="col-md-3" >
+ <div class="form-group">
+ <label class="control-label col-md-4 col-sm-12 col-xs-12" style="font-size: 14px;">姓名:</span>
+ </label>
+ <div class="col-md-8 col-sm-12 col-xs-12">
+ <el-input v-model="person_person.custname" ></el-input>
+ </div>
+ </div>
+ </div>
+ <!--<div class="col-md-3" >-->
+ <!--<div class="form-group">-->
+ <!--<label class="control-label col-md-4 col-sm-12 col-xs-12" style="font-size: 14px;">部门:</span>-->
+ <!--</label>-->
+ <!--<div class="col-md-8 col-sm-12 col-xs-12">-->
+ <!--<el-select v-model="person_person.deptcode"-->
+ <!--filterable-->
+ <!--clearable-->
+ <!--placeholder="请选择">-->
+ <!--<el-option-->
+ <!--v-for="deptcode in deptlist"-->
+ <!--:key="deptcode.value"-->
+ <!--:label="deptcode.label"-->
+ <!--:value="deptcode.value">-->
+ <!--</el-option>-->
+ <!--</el-select>-->
+ <!--</div>-->
+ <!--</div>-->
+ <!--</div>-->
+ <div class="col-md-3" >
+ <div class="form-group">
+ <label class="control-label col-md-4 col-sm-12 col-xs-12" style="font-size: 14px;">人员类别:</span>
+ </label>
+ <div class="col-md-8 col-sm-12 col-xs-12">
+ <el-select v-model="person_person.custtypeid"
+ filterable
+ clearable
+ placeholder="请选择">
+ <el-option
+ v-for="custtypeid in custtypelist"
+ :key="custtypeid.value"
+ :label="custtypeid.label"
+ :value="custtypeid.value">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ </div>
+
+ <div class="col-md-3" >
+ <div class="form-group">
+ <button type="button" class="btn btn-info" @click="searchCust" id="cust_qrybtn">查 询</button>
+ </div>
+ </div>
+ </el-form>
+
+ </div>
+
+
+
+
+
+ <div id="assign_devSel">
+ <div class="layui-row layui-col-space15">
+ <div class="layui-col-md5" style="width: 45%">
+ <div class="layui-card">
+ <div class="layui-card-header" style="margin-bottom: 10px" v-if="person_lefttable">
+ 可分配人员({{person_lefttable.length}}人)
+ </div>
+ <div id="addDoorlist_pensonS-tb" class="layui-card-body">
+
+ <template>
+ <el-table
+ height="480"
+ ref="multipleTable"
+ :data="person_lefttable"
+ tooltip-effect="dark"
+ style="width: 100%;"
+ stripe
+ border
+ @selection-change="lefttableSelect">
+ <el-table-column
+ fixed
+ type="selection"
+ >
+ </el-table-column>
+ <el-table-column
+ sortable
+ prop="cardno"
+ label="卡号"
+ >
+ </el-table-column>
+ <el-table-column
+ sortable
+ prop="custname"
+ label="姓名"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="bankcardno"
+ label="银行卡号"
+ >
+ </el-table-column>
+ </el-table>
+ </template>
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md1" style="width: 10%">
+ <div style="width:5%;height:400px;display:inline-block;padding:0;margin-left: 5px; float:left">
+ <div style="position: absolute;top:55%;width:5%;padding:0;margin: 0;text-align: center;left: 28%">
+ <el-button class="el-icon-d-arrow-right" :disabled="per_addBtn_dis" @click="person_addBtn"></el-button>
+ </div>
+ <div style="position: absolute;top:80%;width:5%;padding:0;margin: 0;text-align: center;left: 28%">
+ <el-button class="el-icon-d-arrow-left" :disabled="per_delBtn_dis" @click="person_delBtn"></el-button>
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md5" style="width: 45%">
+ <div class="layui-card">
+
+ <div class="layui-card-header" style="margin-bottom: 10px" v-if="person_righttable">
+ 报名人员({{person_righttable.length}}人)
+ </div>
+ <div class="layui-card-body">
+ <template>
+ <el-table
+ height="480"
+ ref="multipleTable"
+ :data="person_righttable"
+ tooltip-effect="dark"
+ style="width: 100%;"
+ stripe
+ border
+ @selection-change="rightTableSelect">
+ <el-table-column
+ fixed
+ type="selection"
+ >
+ </el-table-column>
+ <el-table-column
+ sortable
+ prop="cardno"
+ label="卡号"
+ >
+ </el-table-column>
+ <el-table-column
+ sortable
+ prop="custname"
+ label="姓名"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="bankcardno"
+ label="银行卡号"
+ >
+ </el-table-column>
+ </el-table>
+ </template>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-row layui-col-space15">
+ <div style="float:left;margin:0px 0 0 30%;"></div>
+ <div style="float:left;margin:0px 0 0 10%;"><el-button style="margin-top: 12px;" @click="save_btn">保存</el-button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+</div>
+
+<script>
+ var review_vue = new Vue({
+ el: '#confreviewapp',
+ data:{
+ oper:'',
+ readonly:true,
+ dept:'',
+ tableData: [],
+ currPage: 1,
+ pageSize:10,
+ totSize:0,
+ sel_classid:'',
+ currentRow: null,
+ classform:{
+ classname:'',
+ },
+ person_person:{
+ custname:'',
+ custtypeid:'',
+ deptcode:''
+ },
+ devtypes:[],
+ typegrplist:[{value:1,label:'工作日'},{value:2,label:'节假日'},],
+ person_lefttable:[],
+ person_righttable:[],
+ custtypelist:[],
+ timelist:[],
+ deptlist:[],
+ leftTableSelection:[],
+ rightTableSelection:[],
+ per_addBtn_dis:true,
+ per_delBtn_dis:true,
+ dialogFormVisible: false,
+ dlgAllotDevVisible:false,
+ classtitle:'添加班次',
+
+ pickerOptions0: {
+ disabledDate:function(time) {
+ return time.getTime() <Date.now();
+ }
+ },
+ pickerOptions1: {
+ disabledDate:function(time) {
+ if(review_vue.classDiaForm.startdate !=''){
+
+ return time.getTime() < review_vue.classDiaForm.startdate.getTime();
+ }else {
+ return time.getTime() < Date.now();
+ }
+ }
+ },
+ rules:{
+ classname:[
+ { required: true, message: '请输入班次名称', trigger: 'blur' },
+ { min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur'}
+ ],
+ workorno:[
+ { required: true, message: ' ',},
+ ],
+ timegrpid:[
+ { required: true, message: ' '},
+ ],
+ startdate:[
+ { required: true,message: ' ', },
+ ],
+ enddate:[
+ { required: true ,message: ' ',},
+ ],
+ deptcode:[
+ { required: true ,message: ' ',},
+ ],
+ },
+
+ },
+ methods: {
+ handleSizeChange:function(val) {
+ this.pageSize=val;
+ class_commonQuery(this,this.currPage,val);
+ },
+ currPageChange:function(val) {
+ this.currPage=val;
+ class_commonQuery(this,this.currPage,this.pageSize);
+ },
+ currRowChange:function(val) {
+ this.currentRow = val;
+ },
+ query:function () {
+ this.pagesize=10;
+ this.currPage=1;
+ class_commonQuery(this,this.currPage,this.pageSize);
+ },
+ resetForm:function(formName) {
+ this.$refs[formName].resetFields();
+ this.dialogFormVisible = false
+ },
+ closeDialog:function(formName) {
+ this.$refs[formName].resetFields();
+ this.dialogFormVisible = false
+ },
+ saveClass:function (formName) {
+ var _that=this;
+ var vali = false;
+ this.$refs[formName].validate(
+ function(valid){
+ if (valid){
+ vali = true;
+ }else{
+ vali=false;
+ }
+ });
+ if (vali==true){
+ class_saveData(_that,formName);
+ }
+ },
+ editClass:function (id) {
+ class_getFillData(this,id);
+ this.dialogFormVisible = true;
+ this.classtitle="修改班次"
+ },
+ classtypefor:function (row) {
+
+ return classtype_grpname(row.workorno);
+ },
+ deptfor:function (row) {
+
+ return dept_grpname(row.deptcode);
+ },
+ timefor:function(row){
+ return timegrp_grpname(row.timegrpid);
+ },
+
+ startdatefor:function(row){
+ if(row.startdate != null) {
+ return dateformatter(row.startdate);
+ }
+ },
+ enddatefor:function(row){
+ if(row.enddate != null) {
+ return dateformatter(row.enddate);
+ }
+ },
+
+ assignCust:function(id){
+ this.sel_classid=id;
+ $("#classdiv").hide();
+ $("#assign_custSelect").show();
+ $("#cust_qrybtn").click();
+ },
+ searchCust:function(){
+ var that=this;
+ addAllCustList(that);
+ },
+ lefttableSelect:function(val) {
+ //console.log(val);
+ this.leftTableSelection = val;
+ this.per_addBtn_dis=this.leftTableSelection<=0;
+ },
+ rightTableSelect:function(val) {
+ this.rightTableSelection = val;
+ this.per_delBtn_dis=this.rightTableSelection<=0;
+ },
+ person_addBtn:function(){
+ var _self=this;
+ var left=_self.leftTableSelection;
+ var right=[];
+ right=left.splice(0,left.length);
+ var dev={};
+ for(var i=0;i<right.length;i++){
+ if($.inArray(right[i],_self.person_righttable)==-1) {
+ _self.person_righttable.push(right[i]);
+ }
+ }
+ var leftData=this.person_lefttable;
+ for(var i=0;i<right.length;i++){
+ var s = $.inArray(right[i],leftData );
+ if (s != -1) {
+ leftData.splice(s, 1);
+ }
+ }
+ this.per_addBtn_dis=true;
+ },
+ person_delBtn:function(){
+ var right=this.rightTableSelection;
+ var rightData=this.person_righttable;
+ for(var i=0;i<right.length;i++) {
+ var s = $.inArray(right[i], rightData);//判断是否在rightData中存在这个值,存在返回下标,不存在返回-1
+ if (s != -1) {
+ rightData.splice(s, 1);
+ }
+ }
+ for(var i=0;i<right.length;i++) {
+ this.person_lefttable.push(right[i]);
+ }
+ this.per_delBtn_dis = true;
+ },
+ save_btn: function () {
+ var that=this;
+ save_review(that);
+ },
+ prev_btn:function (){
+ $("#classdiv").show();
+ $("#assign_custSelect").hide();
+ this.person_lefttable=[];
+ this.person_righttable=[];
+ },
+ addClass:function(){
+ class_getFillData(this,"-1");
+ this.dialogFormVisible = true;
+ this.classtitle="添加班次";
+
+
+ },
+ delClass:function(id){
+ class_deletedata(id);
+ }
+ },
+ created:function(){
+ var that=this;
+
+ var token=$("meta[name='_csrf_token']").attr("value");
+ var custname=that.person_person.custname;
+ var custtypeid=that.person_person.custtypeid;
+ that.person_lefttable=[];
+ var url="[[@{/confreview/custlist?}]]"+"perName="+custname+"&custtypeid="+custtypeid
+ ;
+ $.ajax({
+ type: "POST",
+ url: url,
+ dataType: "json",
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ 'X-CSRF-TOKEN':token,
+ },
+ contentType: "application/json",
+ data: "",
+ success: function (data) {
+
+ if(data.countIndex){
+ layer.msg('人员数量过大,请输入查询条件!',{icon:2,time:3000});
+ }else{
+ // addDoorlist_vue.person_lefttable=data.pNotInResult;
+ var allcust=data.allcust;
+ var reviewlist=data.reviewlist;
+ that.person_righttable=reviewlist;
+ that.person_lefttable=allcust;
+ }
+ var custtypelist = [];
+ var types=data.custtypelist;
+ for (var i = 0; i < types.length; i++) {
+ custtypelist.push({
+ value: types[i].custtypeid,
+ label: types[i].custtypename
+ });
+ }
+ that.custtypelist=custtypelist;
+ }
+ });
+ }
+
+ })
+ function save_review(that){
+
+ var token=$("meta[name='_csrf_token']").attr("value");
+
+ var idlist=new Array();
+ var right=that.person_righttable;
+
+ for(var i=0;i<right.length;i++){
+ idlist.push(right[i].custid);
+ }
+
+ $.ajax({
+ type: "POST",
+ url:"[[@{confreview/addreview?}]]"+"idlist="+idlist,
+ dataType: "json",
+ contentType: "application/json",
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ 'X-CSRF-TOKEN':token,
+ },
+ success: function (data) {
+
+ if (data.errStr == undefined) {
+ layer.msg('用户认证已过期,请重新登录', {icon: 2, time: 1000});
+ window.location = "login";
+ return;
+ }
+ if(data.errStr != ''){
+ layer.msg(data.errStr, {icon: 2, time: 1000});
+ return ;
+ }
+ if (data.errStr == ''){
+ layer.msg('保存成功!', {icon: 1, time: 1000});
+ $("#cust_qrybtn").click();
+ return ;
+ }
+ }
+ });
+ }
+ function addAllCustList(that){
+
+ var token=$("meta[name='_csrf_token']").attr("value");
+ var custname=that.person_person.custname;
+ var custtypeid=that.person_person.custtypeid;
+ var url="[[@{/confreview/custlist?}]]"+"perName="+custname+"&custtypeid="+custtypeid;
+
+ $.ajax({
+ type: "POST",
+ url: url,
+ dataType: "json",
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ 'X-CSRF-TOKEN':token,
+ },
+ contentType: "application/json",
+ data: "",
+ success: function (data) {
+ if(data.countIndex){
+ layer.msg('人员数量过大,请输入查询条件!',{icon:2,time:3000});
+ }else{
+ // addDoorlist_vue.person_lefttable=data.pNotInResult;
+ var allcust=data.allcust;
+ var reviewlist=data.reviewlist;
+ var num=allcust.length;
+ that.person_righttable=reviewlist;
+ that.person_lefttable=allcust;
+ }
+ }
+ });
+
+ }
+
+
+
+
+
+/*
+
+
+
+ function class_commonQuery(_self,pageno,pagesize) {
+ var classname=_self.classform.classname;
+ $.ajax({
+ type:"get",
+ dataType:"json",
+ url:"[[@{/atte/class/list?classname=}]]"+classname+"&pageNo="+pageno+"&pageSize="+pagesize,
+ success:function(ret){
+ _self.totSize=ret.PageResult.totalCount;
+ _self.tableData=ret.PageResult.list;
+ if(_self.totSize == 0 ){
+ layer.msg("暂无数据", {icon: 2, time: 1000});
+ }
+ if (ret.errStr != ''){
+ lay.msg(ret.errStr,{icon: 2, time: 1000});
+ }
+ }
+ })
+ }
+
+
+
+
+
+
+
+
+ function class_refreshThisTable(){
+ class_commonQuery(review_vue,review_vue.currPage,review_vue.pageSize);
+ }*/
+
+
+
+
+
+</script>
\ No newline at end of file