会议增加会议手机流水查询
diff --git a/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java b/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java
index d3a0f87..6c46563 100644
--- a/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java
+++ b/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java
@@ -1,6 +1,8 @@
package com.supwisdom.dlpay.api.controller;
import com.supwisdom.dlpay.api.bean.BaseResp;
+import com.supwisdom.dlpay.api.bean.DoorQRCodeParam;
+import com.supwisdom.dlpay.api.bean.DoorQrcodeResponse;
import com.supwisdom.dlpay.customer.bean.CustomerSearchBean;
import com.supwisdom.dlpay.doorlist.bean.TCustomerInfo;
import com.supwisdom.dlpay.framework.data.SystemDateTime;
@@ -10,6 +12,7 @@
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.StringUtil;
import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;
+import com.supwisdom.dlpay.paysdk.proxy.ConsumePropxy;
import com.supwisdom.dlpay.system.domain.TDept;
import com.supwisdom.dlpay.system.service.SystemService;
import com.supwisdom.dlpay.visitormanage.domain.EVisitorCheckDtl;
@@ -37,6 +40,8 @@
private WebInterfaceService webInterfaceService;
@Autowired
private VisitormanageService visitormanageService;
+ @Autowired
+ private ConsumePropxy consumePropxy;
@RequestMapping("/checkonline")
@ResponseBody
@@ -48,7 +53,19 @@
resp.setRetmsg("连接成功");
resp.setData(dt);
return resp;
- }@RequestMapping("/getdeptlist")
+ }
+
+
+ @RequestMapping("/checkqrcode")
+ @ResponseBody
+ public DoorQrcodeResponse resolveQrcode(@RequestParam(value = "qrcode",required = true,defaultValue = "")String qrcode) {
+ DoorQRCodeParam qrparam = new DoorQRCodeParam();
+ qrparam.setQrcode(qrcode);
+ DoorQrcodeResponse qrcoderesp = consumePropxy.qrcodequery(qrparam);
+ return qrcoderesp;
+ }
+
+ @RequestMapping("/getdeptlist")
@ResponseBody
public BaseResp getdeptlist() {
BaseResp resp = new BaseResp();
diff --git a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
index e5be303..a830922 100644
--- a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
+++ b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
@@ -6,6 +6,7 @@
import com.supwisdom.dlpay.app.domain.WechatResp;
import com.supwisdom.dlpay.app.service.AppService;
import com.supwisdom.dlpay.conference.bean.ConferenceShowBean;
+import com.supwisdom.dlpay.conference.bean.ConfpeopleShowBean;
import com.supwisdom.dlpay.conference.dao.ConferenceReviewDao;
import com.supwisdom.dlpay.conference.domain.TConferenceReview;
import com.supwisdom.dlpay.conference.service.ConferenceService;
@@ -44,6 +45,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.xml.crypto.Data;
import java.util.*;
@Controller
@@ -435,16 +437,22 @@
return "apph5/remoteMintUIH5";}
*/
- @RequestMapping("/conference/attendconference")
- public String doAttendConference( @RequestParam(value = "userId", required = true, defaultValue = "") String userId,
+ /**
+ * 手机会议报名
+ * @param userId
+ * @param model
+ * @return
+ */
+ @GetMapping("/conference/signupconference")
+ public String doSignupConference( @RequestParam(value = "userId", required = true, defaultValue = "") String userId,
Model model) {
- TConferenceReview review=conferenceService.getReviewerByuserid(userId);
- if(null==review){
- return null;
- }
TCustomer cust=webInterfaceService.findCustomerById(userId);
if(null==cust){
- return null;
+ return "/error/403";
+ }
+ TConferenceReview review=conferenceService.getReviewerByuserid(userId);
+ if(null==review){
+ return "/error/403";
}
model.addAttribute("deptcode",cust.getDeptcode());
@@ -517,6 +525,61 @@
}
/**
+ * 手机会议流水
+ * @param userId
+ * @param model
+ * @return
+ */
+ @GetMapping("/conference/conferencedtl")
+ public String ConferenceDtl( @RequestParam(value = "userId", required = true, defaultValue = "") String userId,
+ Model model) {
+ TConferenceReview review=conferenceService.getReviewerByuserid(userId);
+ if(null==review){
+ return "error/403";
+ }
+ TCustomer cust=webInterfaceService.findCustomerById(userId);
+ if(null==cust){
+ return "error/403";
+ }
+ /* String startdate= DateUtil.getNewDay(-7, "yyyy-MM-dd");
+ model.addAttribute("startdate", startdate);
+
+ String today = DateUtil.getNow("yyyy-MM-dd");
+ model.addAttribute("enddate", today);*/
+ model.addAttribute("custid",userId);
+
+ return "apph5/conference/conferencedtl";
+ }
+
+
+ @GetMapping("/conference/confdtllist")
+ @ResponseBody
+ public PageResult<ConfpeopleShowBean> searchConfdtllist(
+ @RequestParam(value = "custid" ) String custid ,
+ @RequestParam(value = "peroid" ) String peroid ) {
+ try {
+ if(StringUtil.isEmpty(custid)||StringUtil.isEmpty(peroid)){
+ throw new WebCheckException("查询参数不完整");
+ }
+ String startdate;
+ if("year".equals(peroid)){
+ startdate= DateUtil.getNewDay(-365, "yyyy-MM-dd");
+
+ }else if ("month".equals(peroid)){
+ startdate= DateUtil.getNewDay(-30, "yyyy-MM-dd");
+
+ }else{
+ startdate= DateUtil.getNewDay(-7, "yyyy-MM-dd");
+ }
+
+ return conferenceService.getPersonalConfDtl(custid, startdate,"");
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ /**
* App远程开门
*
* @param devId
diff --git a/src/main/java/com/supwisdom/dlpay/conference/bean/ConfpeopleShowBean.java b/src/main/java/com/supwisdom/dlpay/conference/bean/ConfpeopleShowBean.java
index b36dcd9..a873c5c 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/bean/ConfpeopleShowBean.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/bean/ConfpeopleShowBean.java
@@ -9,6 +9,7 @@
private String conftype;
private String cardno;
private String deptname;
+ private String confdate;
private String attstatus;
private String atttime;
private String remark;
@@ -128,4 +129,12 @@
public void setInsteadcustname(String insteadcustname) {
this.insteadcustname = insteadcustname;
}
+
+ public String getConfdate() {
+ return confdate;
+ }
+
+ public void setConfdate(String confdate) {
+ this.confdate = confdate;
+ }
}
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 bb40eb3..83f82c4 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
@@ -31,6 +31,8 @@
import com.supwisdom.dlpay.ncmgr.service.NcService;
import com.supwisdom.dlpay.paysdk.proxy.ApiCommonProxy;
import com.supwisdom.dlpay.paysdk.proxy.UserProxy;
+import com.supwisdom.dlpay.system.domain.TDept;
+import com.supwisdom.dlpay.system.service.SystemService;
import com.supwisdom.dlpay.util.RedisUtil;
import com.supwisdom.dlpay.util.WebCheckException;
import com.supwisdom.dlpay.visitormanage.domain.EVisitorConfDtl;
@@ -64,7 +66,7 @@
@Autowired
private WebInterfaceService webInterfaceService;
@Autowired
- private SystemUtilService systemUtilService;
+ private SystemService systemService;
@Autowired
private VisitormanageService visitormanageService;
@Autowired
@@ -153,6 +155,8 @@
model.addAttribute("maxdate", DateUtil.reformatDatetime(now, "yyyyMMdd", "yyyy-MM-dd"));
List<TNcDevice> devices = ncService.getSystemDevByType(ConferenceConstant.DEVICETYPE_CONFERENCE);
model.addAttribute("confdevice", devices);
+ List<TDept> depts=systemService.findAllDept();
+ model.addAttribute("depts",depts);
return "conference/confform";
}
@@ -182,6 +186,7 @@
@RequestParam("endtime") String endtime,
@RequestParam("attendtime") String attendtime,
@RequestParam("deviceids") List<Integer> deviceid,
+ @RequestParam("deptcodes") List<String> deptcodes,
@RequestParam("remark") String remark,
@AuthenticationPrincipal UserDetails operUser,
HttpServletRequest request) {
@@ -205,7 +210,7 @@
if (conferenceService.saveNewConference(confname.trim(), DateUtil.unParseToDateFormat(confdate), conftype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), DateUtil.unParseToDateFormat(attendtime), oper, deviceid, remark)) {
- List<TConferenceReview> review=conferenceService.getAllReviewer(oper.getDeptcode());
+ List<TConferenceReview> review=conferenceService.getReviewerByDeptcodes(deptcodes);
CommonSendMessageParam param=new CommonSendMessageParam();
param.setContent("您有新的会议需要分配,请确认");
param.setTitle("会议分配通知");
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 9ed6589..7a024ce 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -93,6 +93,9 @@
PageResult<ConfpeopleShowBean> getConfPeoplePage(Integer confid, String attstatus,String atttype, int pageNo, int pageSize);
@Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<ConfpeopleShowBean> getPersonalConfDtl(String custid, String startdate,String enddate );
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
PageResult<ConfpeopleReportBean> getConfPeopleReport(Integer confid, String searchkey,String attstatus, String deptcode,String attflag);
@Transactional(rollbackFor = Exception.class, readOnly = true)
@@ -126,6 +129,10 @@
List<TConferenceReview> getAllReviewer(String deptcode);
@Transactional(rollbackFor = Exception.class, readOnly = true)
+ List<TConferenceReview> getReviewerByDeptcodes(List<String> deptcode);
+
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
TConferenceReview getReviewerByuserid(String userid);
@Transactional(rollbackFor = Exception.class)
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 47f0bd5..f8c848a 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
@@ -643,6 +643,42 @@
}
@Override
+ public PageResult<ConfpeopleShowBean> getPersonalConfDtl(String custid, String startdate, String enddate) {
+
+ StringBuffer querySql = new StringBuffer("SELECT g.confname,g.confdate,g.attstatus from " +
+ "(SELECT c.confname,c.confdate,t.attstatus,t.custid,c.status from tb_conf_people t " +
+ "LEFT JOIN tb_conference c " +
+ "on t.confid=c.confid " +
+ "union " +
+ "SELECT c.confname,c.confdate,t.attstatus,t.custid,c.status from tb_nolist_conf_people t " +
+ "LEFT JOIN tb_conference c " +
+ "on t.confid=c.confid) g " +
+ "where g.custid=:custid " +
+ "and g.status='over' ") ;
+
+ if (!StringUtil.isEmpty(startdate)) {
+ querySql.append("and g.confdate >=:startdate ");
+ }
+ if (!StringUtil.isEmpty(enddate)) {
+ querySql.append("and g.confdate <=:enddate ");
+ }
+ querySql.append(" order by g.confdate desc");
+ Query query = entityManager.createNativeQuery(querySql.toString());
+
+ query.setParameter("custid", custid);
+ if (!StringUtil.isEmpty(startdate)) {
+ query.setParameter("startdate", startdate);
+
+ }
+ if (!StringUtil.isEmpty(enddate)) {
+ query.setParameter("enddate", enddate);
+ }
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(ConfpeopleShowBean.class));
+ List<ConfpeopleShowBean> list = query.getResultList();
+ return new PageResult<>(list);
+ }
+
+ @Override
public PageResult<ConfpeopleReportBean> getConfPeopleReport(Integer confid, String searchkey, String attstatus, String deptcode, String attflag) {
TConference conf = conferenceDao.findByConfid(confid);
if (null == conf) {
@@ -892,6 +928,21 @@
}
@Override
+ public List<TConferenceReview> getReviewerByDeptcodes(List<String> deptcode) {
+
+ StringBuffer querySql = new StringBuffer("select a.custid,a.opercode,a.updatetime from t_conference_review a " +
+ "left join t_customer c on a.custid=c.custid where 1=1" );
+
+ if (!StringUtil.isEmpty(deptcode)) {
+ querySql.append(" and c.deptcode in ('" + StringUtils.join(deptcode.toArray(), "','") + "') ");
+ }
+ Query query = entityManager.createNativeQuery(querySql.toString());
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TConferenceReview.class));
+ List<TConferenceReview> list = query.getResultList();
+ return list;
+ }
+
+ @Override
public TConferenceReview getReviewerByuserid(String userid) {
return conferenceReviewDao.getOne(userid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
index df6d311..8621dad 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java
@@ -81,6 +81,22 @@
}
/**
+ * 获取当天前后的时间
+ *
+ * @param intervalday
+ * @param format
+ * @return
+ */
+ public static String getNewDay(int intervalday, String format) {
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ calendar.add(Calendar.DATE, intervalday);
+ return sdf.format(calendar.getTime());
+ }
+
+
+ /**
* 得到两个日期相差的天数 格式 yyyyMMdd @return diffdays = secondDay - firstDay
*/
public static long getIntervalDay(String firstDay, String secondDay) {
diff --git a/src/main/resources/templates/apph5/conference/conferencedtl.html b/src/main/resources/templates/apph5/conference/conferencedtl.html
new file mode 100644
index 0000000..a73f48c
--- /dev/null
+++ b/src/main/resources/templates/apph5/conference/conferencedtl.html
@@ -0,0 +1,108 @@
+
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+
+<head>
+ <title>首页</title>
+ <meta name="_csrf_header" th:content="${_csrf.headerName}"/>
+ <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}"/>
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}"/>
+ <link rel="stylesheet" th:href="@{/static/custom/module/formSelects/formSelects-v4.css}"/>
+ <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}"/>
+ <link th:if="${session.theme != null}" rel="stylesheet" th:href="@{/static/custom/css/theme-blue.css}"/>
+
+</head>
+
+<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/q.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/zTree/js/jquery.ztree.all-3.5.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/custom.js}"></script>
+<script type="text/javascript" th:src="@{/static/res/assets/plugins/laydate/laydate.js}"></script>
+
+
+<div class="layui-card">
+ <input type="hidden" id="conferenceDtl-custid" th:value="${custid}"/>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ <div class="layui-inline">
+ <select lay-filter="onChange" id="conferenceDtl-peroid">
+ <option value="week"> 最近一周</option>
+ <option value="month"> 最近一个月</option>
+ <option value="year"> 最近一年</option>
+ </select> 
+ </div>
+ </button>
+ </div>
+ <table class="layui-table" id="conferenceDtlTable" lay-filter="conferenceDtlTable-filter"></table>
+ </div>
+</div>
+
+<script>
+ layui.use(['form', 'table', 'layer', 'element'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ form.render("select");
+ // 渲染表格
+ var renderDetailTable = function (obj) {
+ table.render({
+ where: obj,
+ elem: '#conferenceDtlTable',
+ url: '[[@{/app/conference/confdtllist}]]',
+ page: false,
+ cols: [
+ [
+ {field: 'confname', title: '会议名称', align: 'center', fixed: 'left'},
+ {field: 'confdate', title: '会议日期', align: 'center'},
+ {
+ field: 'attstatus', title: '状态', align: 'center', sort: true, templet: function (d) {
+ if ('uncheck' == d.attstatus) {
+ return '<span class="layui-badge layui-bg-orange">未签到</span>'
+ } else if ('checked' == d.attstatus) {
+ return '<span class="layui-badge layui-bg-green">已签到</span>';
+ } else if ('handcheck' == d.attstatus) {
+ return '<span class="layui-badge layui-bg-green">手工签到</span>';
+ } else if ('late' == d.attstatus) {
+ return '<span class="layui-badge layui-bg-cyan">迟到</span>';
+ } else if ('instead' == d.attstatus) {
+ return '<span class="layui-badge">被代签</span>';
+ } else if ('closed' == d.attstatus) {
+ return '<span class="layui-badge layui-bg-gray">关闭</span>';
+ }
+ else {
+ return d.attstatus;
+ }
+ }
+ },
+ ]
+ ]
+ });
+ }
+ var peroid=$("#conferenceDtl-peroid").val()
+ var custid=$("#conferenceDtl-custid").val()
+
+ renderDetailTable({custid:custid,peroid:peroid});
+
+ // 搜索按钮点击事件
+ $('#btn-search-conferenceDtl').click(function () {
+ var peroid=$("#conferenceDtl-peroid").val()
+ var custid=$("#conferenceDtl-custid").val()
+
+ table.reload('conferenceDtlTable',
+ {where: { custid:custid,peroid:peroid}});
+ });
+
+ form.on('select(onChange)', function(data){
+ var peroid=$("#conferenceDtl-peroid").val()
+ var custid=$("#conferenceDtl-custid").val()
+
+ table.reload('conferenceDtlTable',
+ {where: { custid:custid,peroid:peroid}});
+ });
+
+ });
+</script>
+
diff --git a/src/main/resources/templates/conference/confform.html b/src/main/resources/templates/conference/confform.html
index 8f84fc0..7c99fb7 100644
--- a/src/main/resources/templates/conference/confform.html
+++ b/src/main/resources/templates/conference/confform.html
@@ -59,6 +59,17 @@
</select> 
</div>
</div>
+
+ <div class="layui-form-item">
+ <label class="confinput-label layui-form-label"> </span>参会部门</label>
+ <div class="layui-input-block">
+ <select name="deptcode" class="layui-select" xm-select-height="36px" xm-select="deptcodes">
+ <option th:each="dept:${depts}" th:value="${dept.deptcode}"
+ th:text="${dept.deptname}"></option>
+ </select> 
+ </div>
+ </div>
+
<div class="layui-form-item">
<label class="layui-form-label confinput-label">会议概要</label>
<div class="layui-input-block">
@@ -93,12 +104,12 @@
var admin = layui.admin;
var form = layui.form;
var laydate = layui.laydate;
- var upload = layui.upload;
var confType = 'list';
var formSelects = layui.formSelects;
formSelects.btns('deviceids', []);
+ formSelects.btns('deptcodes', []);
// form.render("select");
laydate.render({
@@ -155,6 +166,8 @@
return;
}
var deviceids=formSelects.value('deviceids','val');
+ var deptcodes=formSelects.value('deptcodes','val');
+
if(deviceids.length==0){
layer.msg("请选择设备", {icon: 2, time: 1500});
return;
@@ -171,22 +184,7 @@
formData.append("remark",vdata.remark);
formData.append("deviceids",deviceids);
- /* var flag=false;
- var files = $('#form-conference-records').prop('files');
- for (var i = 0; i < files.length; i++) {
- var filename = files[i].name;
- var suffix = filename.substr(filename.lastIndexOf("."));
- if ('.xls' != suffix && '.xlsx' != suffix) {
- layer.msg("请选择excel文件", {icon: 2, time: 1500});
- return;
- }
- formData.append('file', files[i]);
- flag = true;
- }
- if (!flag&&"list"==vdata.conftype) {
- layer.msg("请选择名单", {icon: 2, time: 1500});
- return;
- }*/
+ formData.append("deptcodes",deptcodes);
layer.load(2);
$.ajax({