完善会议签到查询,增加绑定设备、删除、人员设备查询功能,完善会议时间、设备冲突判断
diff --git a/src/main/java/com/supwisdom/dlpay/conference/bean/ConferenceShowBean.java b/src/main/java/com/supwisdom/dlpay/conference/bean/ConferenceShowBean.java
index 942b92c..8cb2278 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/bean/ConferenceShowBean.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/bean/ConferenceShowBean.java
@@ -1,6 +1,7 @@
package com.supwisdom.dlpay.conference.bean;
public class ConferenceShowBean {
+ private Integer confid;
private String confname;
private String conftype;
private String confdate;
@@ -11,6 +12,15 @@
private String attendtime;
private String timeperoid;
+
+ public Integer getConfid() {
+ return confid;
+ }
+
+ public void setConfid(Integer confid) {
+ this.confid = confid;
+ }
+
public String getConfname() {
return confname;
}
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 3455a5e..bba9829 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
@@ -7,10 +7,14 @@
import cn.afterturn.easypoi.view.PoiBaseView;
import com.supwisdom.dlpay.api.bean.JsonResult;
import com.supwisdom.dlpay.conference.bean.ConferenceShowBean;
+import com.supwisdom.dlpay.conference.domain.TConfPeople;
+import com.supwisdom.dlpay.conference.domain.TConferenceDevbind;
import com.supwisdom.dlpay.conference.service.ConferenceService;
import com.supwisdom.dlpay.conference.util.ConferenceConstant;
import com.supwisdom.dlpay.framework.domain.TOperator;
import com.supwisdom.dlpay.framework.util.*;
+import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
+import com.supwisdom.dlpay.ncmgr.service.NcService;
import com.supwisdom.dlpay.util.WebCheckException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -18,10 +22,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@@ -35,6 +36,9 @@
public class ConferenceController {
@Autowired
private ConferenceService conferenceService;
+ @Autowired
+ private NcService ncService;
+
@GetMapping("/conference/index")
@@ -58,15 +62,14 @@
}
}
- /* @PostMapping("/discountconf/deleteconf")
- @PreAuthorize("hasPermission('/discountconf/deleteconf','')")
+ @PostMapping("/conference/deleteconf")
@ResponseBody
- public JsonResult deleteDiscountRule(@RequestParam("confid") Integer confid) {
+ public JsonResult deleteConference(@RequestParam Integer id) {
try {
- if (null == confid) {
+ if (null == id) {
return JsonResult.error("参数传递错误");
}
- if (deviceDiscountRuleService.deleteDiscountRule(confid)) {
+ if (conferenceService.deleteConference(id)) {
return JsonResult.ok("删除成功!");
} else {
return JsonResult.error("删除失败!");
@@ -79,7 +82,7 @@
}
}
- @PostMapping("/discountconf/closeconf")
+ /* @PostMapping("/discountconf/closeconf")
@PreAuthorize("hasPermission('/discountconf/closeconf','')")
@ResponseBody
public JsonResult closeDiscountRule(@RequestParam("confid") Integer confid) {
@@ -105,6 +108,8 @@
public String load4addConference(Model model) {
String now=DateUtil.getNow("yyyyMMdd");
model.addAttribute("maxdate",DateUtil.reformatDatetime(now,"yyyyMMdd","yyyy-MM-dd"));
+ List<TNcDevice> devices=ncService.getSystemDevByType(ConferenceConstant.DEVICETYPE_CONFERENCE);
+ model.addAttribute("confdevice",devices);
return "conference/confform";
}
@@ -118,11 +123,13 @@
@RequestParam("starttime") String starttime,
@RequestParam("endtime") String endtime,
@RequestParam("attendtime") String attendtime,
+ @RequestParam("deviceid") Integer deviceid,
@RequestParam(value = "file", required = false) MultipartFile file,
@AuthenticationPrincipal UserDetails operUser,
HttpServletRequest request) {
try {
if (StringUtil.isEmpty(confname)
+ ||null==deviceid
|| (!ConferenceConstant.CONFTYPE_LIST.equals(conftype) && !ConferenceConstant.CONFTYPE_NOLIST.equals(conftype) )
|| !DateUtil.checkDatetimeValid(starttime, "HH:mm")
|| !DateUtil.checkDatetimeValid(endtime, "HH:mm")
@@ -151,7 +158,7 @@
fpath=path + "/" + fileName;
}
- if (conferenceService.saveNewConference(confname.trim(),DateUtil.unParseToDateFormat(confdate), conftype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime),DateUtil.unParseToDateFormat(attendtime), oper,fpath)) {
+ if (conferenceService.saveNewConference(confname.trim(),DateUtil.unParseToDateFormat(confdate), conftype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime),DateUtil.unParseToDateFormat(attendtime), oper,fpath,deviceid)) {
return JsonResult.ok("新增成功");
} else {
return JsonResult.error("新增失败");
@@ -194,4 +201,33 @@
}
}
+ @GetMapping("/conference/load4detail")
+ public String load4ConfDetails(@RequestParam("confid") Integer confid, Model model) {
+ model.addAttribute("detailConfid", confid);
+ TNcDevice device=conferenceService.getBindedDevice(confid);
+ String devname="未绑定";
+ if(null!=device){
+ devname=device.getDevname();
+ }
+ model.addAttribute("deviceName",devname);
+ return "conference/confdetail";
+ }
+
+ @GetMapping("/conference/load4detaillist")
+ @ResponseBody
+ public PageResult<TConfPeople> searchDiscountRules(@RequestParam("page") Integer pageNo,
+ @RequestParam("limit") Integer pageSize,
+ @RequestParam("confid") Integer confid,
+ @RequestParam(value = "searchkey", required = false) String searchkey) {
+ try {
+ if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+ if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+
+ return conferenceService.getConferenceDetails(searchkey, confid, pageNo, pageSize);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java b/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
index 1a7cf7a..2bb6128 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/dao/ConfPeopleDao.java
@@ -4,10 +4,15 @@
import com.supwisdom.dlpay.conference.domain.TConfPeople;
import com.supwisdom.dlpay.conference.domain.TConferenceDevbind;
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;
@Repository
public interface ConfPeopleDao extends JpaRepository<TConfPeople, String> {
+ @Modifying
+ @Query("delete from TConfPeople where confid=?1 ")
+ void deleteConfPeopleByconfid(int confid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDao.java b/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDao.java
index 4ef8249..381688f 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDao.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDao.java
@@ -9,6 +9,6 @@
@Repository
public interface ConferenceDao extends JpaRepository<TConference, Integer> , JpaSpecificationExecutor<TConference> {
-
+ TConference findByConfid(Integer confid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDevbindDao.java b/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDevbindDao.java
index ad6af9f..78b376f 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDevbindDao.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/dao/ConferenceDevbindDao.java
@@ -3,10 +3,17 @@
import com.supwisdom.dlpay.conference.domain.TConferenceDevbind;
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;
@Repository
public interface ConferenceDevbindDao extends JpaRepository<TConferenceDevbind, String> {
+ @Modifying
+ @Query("delete from TConferenceDevbind where confid=?1 ")
+ void deleteBindByConfid(int confid);
+
+ TConferenceDevbind findByConfid(int confid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/domain/TConfPeople.java b/src/main/java/com/supwisdom/dlpay/conference/domain/TConfPeople.java
index b52fc7b..2ef4af9 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/domain/TConfPeople.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/domain/TConfPeople.java
@@ -5,7 +5,7 @@
import javax.persistence.*;
@Entity
-@Table(name = "TB_ConfPeople",
+@Table(name = "TB_Conf_People",
indexes = {@Index(name = "ConfPeople_confid_idx", columnList = "confid")})
public class TConfPeople {
@Id
diff --git a/src/main/java/com/supwisdom/dlpay/conference/domain/TConference.java b/src/main/java/com/supwisdom/dlpay/conference/domain/TConference.java
index 4ce3b5e..f477f54 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/domain/TConference.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/domain/TConference.java
@@ -6,8 +6,8 @@
@Table(name = "TB_CONFERENCE")
public class TConference {
@Id
- @SequenceGenerator(name = "discount_ruleid", sequenceName = "SEQ_DISCOUNTRULEID", allocationSize = 1)
- @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "discount_ruleid")
+ @SequenceGenerator(name = "conference_confid", sequenceName = "SEQ_CONFERENCEID", allocationSize = 1)
+ @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "conference_confid")
@Column(name = "CONFID", nullable = false, precision = 9)
private Integer confid;
diff --git a/src/main/java/com/supwisdom/dlpay/conference/domain/TConferenceDevbind.java b/src/main/java/com/supwisdom/dlpay/conference/domain/TConferenceDevbind.java
index e33217a..ac3b683 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/domain/TConferenceDevbind.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/domain/TConferenceDevbind.java
@@ -14,7 +14,7 @@
@Column(name = "ID", nullable = false, length = 32)
private String id;
- @Column(name = "DEVICEID", nullable = false, precision = 9)
+ @Column(name = "DEVICEID", nullable = false, precision =20)
private Integer deviceid;
@Column(name = "CONFID", nullable = false, precision = 9)
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 6ae6352..b195406 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -1,8 +1,11 @@
package com.supwisdom.dlpay.conference.service;
import com.supwisdom.dlpay.conference.bean.ConferenceShowBean;
+import com.supwisdom.dlpay.conference.domain.TConfPeople;
+import com.supwisdom.dlpay.conference.domain.TConferenceDevbind;
import com.supwisdom.dlpay.framework.domain.TOperator;
import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -15,10 +18,13 @@
PageResult<ConferenceShowBean> getConferenceInfos(String confname, String conftype, int pageNo, int pageSize);
@Transactional(rollbackFor = Exception.class)
- boolean deleteConference(int confid) ;
+ boolean deleteConference(int confid) throws Exception;
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ TNcDevice getBindedDevice(int confid) ;
+/*
@Transactional(rollbackFor = Exception.class)
- boolean closeConference(int confid) ;
+ boolean closeConference(int confid) ;*/
/*
@Transactional(rollbackFor = Exception.class, readOnly = true)
@@ -26,12 +32,12 @@
@Transactional(rollbackFor = Exception.class)
boolean saveNewConference(String confname,String confdate, String conftype, String starttime,
- String endtime, String attendtime, TOperator oper, String filepath) throws Exception;
+ String endtime, String attendtime, TOperator oper, String filepath,Integer deviceid) throws Exception;
-/*
+
@Transactional(rollbackFor = Exception.class, readOnly = true)
- PageResult<TDiscountDetail> getConferenceDetails(String searchkey, int confid, int pageNo, int pageSize);
-
+ PageResult<TConfPeople> getConferenceDetails(String searchkey, int confid, int pageNo, int pageSize);
+/*
@Transactional(rollbackFor = Exception.class, readOnly = true)
PageResult<ConferenceShowBean> getCheckConferenceInfos(String status, int pageNo, int pageSize);
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 1186265..a807f2d 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
@@ -7,8 +7,10 @@
import com.supwisdom.dlpay.conference.bean.ConferenceShowBean;
import com.supwisdom.dlpay.conference.dao.ConfPeopleDao;
import com.supwisdom.dlpay.conference.dao.ConferenceDao;
+import com.supwisdom.dlpay.conference.dao.ConferenceDevbindDao;
import com.supwisdom.dlpay.conference.domain.TConfPeople;
import com.supwisdom.dlpay.conference.domain.TConference;
+import com.supwisdom.dlpay.conference.domain.TConferenceDevbind;
import com.supwisdom.dlpay.conference.service.ConferenceService;
import com.supwisdom.dlpay.conference.util.ConferenceConstant;
import com.supwisdom.dlpay.doorlist.bean.CustomerListBean;
@@ -20,7 +22,10 @@
import com.supwisdom.dlpay.mainservice.domain.TCard;
import com.supwisdom.dlpay.mainservice.domain.TCustomer;
import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;
+import com.supwisdom.dlpay.ncmgr.dao.NcDeviceDao;
+import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
import com.supwisdom.dlpay.util.WebCheckException;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -30,6 +35,9 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
@@ -47,6 +55,13 @@
private WebInterfaceService webInterfaceService;
@Autowired
private ConfPeopleDao confPeopleDao;
+ @Autowired
+ private ConferenceDevbindDao conferenceDevbindDao;
+ @Autowired
+ private NcDeviceDao deviceDao;
+
+ @PersistenceContext
+ private EntityManager entityManager;
@Override
public PageResult<ConferenceShowBean> getConferenceInfos(String confname, String conftype, int pageNo, int pageSize) {
@@ -74,9 +89,10 @@
for (TConference conf : page.getContent()) {
ConferenceShowBean bean = new ConferenceShowBean();
bean.setConfname(conf.getConfname());
- bean.setConfdate(conf.getConfdate());
+ bean.setConfdate(DateUtil.reformatDatetime(conf.getConfdate(),"yyyyMMdd","yyyy-MM-dd"));
bean.setConftype(conf.getConftype());
bean.setStatus(conf.getStatus());
+ bean.setConfid(conf.getConfid());
bean.setRemark(conf.getRemark());
bean.setStarttime(conf.getStarttime().substring(0, 2) + ":" + conf.getStarttime().substring(2));
bean.setEndtime(conf.getEndtime().substring(0, 2) + ":" + conf.getEndtime().substring(2));
@@ -89,17 +105,43 @@
}
@Override
- public boolean deleteConference(int confid) {
- return false;
+ public boolean deleteConference(int confid) throws Exception{
+ TConference conf = conferenceDao.findByConfid(confid);
+ if (null == conf) {
+ throw new WebCheckException("餐补规则不存在!");
+ } else if (!ConferenceConstant.CONFSTATUS_UNSTART.equals(conf.getStatus()) && !ConferenceConstant.CONFSTATUS_CLOSED.equals(conf.getStatus())) {
+ throw new WebCheckException("只能删除未进行的会议!");
+ }
+
+ confPeopleDao.deleteConfPeopleByconfid(confid); //名单
+ conferenceDevbindDao.deleteBindByConfid(confid); //绑定设备
+ conferenceDao.delete(conf);
+ return true;
}
@Override
+ public TNcDevice getBindedDevice(int confid) {
+ TConferenceDevbind bind=conferenceDevbindDao.findByConfid(confid);
+ if(null!=bind){
+ TNcDevice dev=deviceDao.findDevById(bind.getDeviceid());
+ return dev;
+ }
+ return null;
+ }
+/*
+ @Override
public boolean closeConference(int confid) {
return false;
- }
+ }*/
@Override
- public boolean saveNewConference(String confname,String confdate, String conftype, String starttime, String endtime,String attendtime, TOperator oper, String fpath) throws Exception {
+ public boolean saveNewConference(String confname,String confdate, String conftype, String starttime, String endtime,String attendtime, TOperator oper, String fpath,Integer deviceid) throws Exception {
+
+ String errdevname=checkTimeErrorDevice(attendtime,endtime,confdate,deviceid);
+ if(!StringUtil.isEmpty(errdevname)){
+ throw new WebCheckException("设备《"+ errdevname+"》存在时间冲突,请重新选择设备");
+ }
+
TConference conf = new TConference();
conf.setConftype(conftype);
conf.setConfname(confname);
@@ -115,6 +157,13 @@
conf.setLastsaved(systime);
conf = conferenceDao.save(conf);
+ TConferenceDevbind bind=new TConferenceDevbind();
+ bind.setConfid(conf.getConfid());
+ bind.setCreateOperid(oper.getOperid());
+ bind.setCreatetime(systime);
+ bind.setDeviceid(deviceid);
+ conferenceDevbindDao.save(bind);
+
if(ConferenceConstant.CONFTYPE_NOLIST.equals(conf.getConftype())){
return true;
}
@@ -140,7 +189,11 @@
if (StringUtil.isEmpty(name)) {
msg += ",姓名为空";
}
- TCustomerInfo customer = webInterfaceService.getAllTCustomerList(name,cardno,null).get(0);
+ TCustomerInfo customer=null;
+ List<TCustomerInfo> customerlist = webInterfaceService.getAllTCustomerList(null,cardno,null);
+ if(customerlist.size()>0){
+ customer=customerlist.get(0);
+ }
if (!StringUtil.isEmpty(cardno)) {
if (null == customer) {
msg += ",市民卡用户不存在";
@@ -151,7 +204,11 @@
if (!StringUtil.isEmpty(cardno) && successCardnos.contains(cardno)) {
msg += ",市民卡号重复!";
}
-
+ String errconfname=checkConfTimeError(attendtime,endtime,confdate,cardno);
+ if(!StringUtil.isEmpty(errconfname)){
+ // throw new WebCheckException("会议与《"+ StringUtils.join(errconfname.toArray(),",")+"》存在时间冲突,请重新设置会议时间");
+ msg += ",市民卡号[" + cardno + "]与会议:"+errconfname+"存在规则时间段冲突!";
+ }
if (!StringUtil.isEmpty(msg)) {
errmsgList.add("第" + (n + 1) + "行数据错误" + msg);
@@ -188,5 +245,66 @@
}
+ @Override
+ public PageResult<TConfPeople> getConferenceDetails(String searchkey, int confid, int pageNo, int pageSize) {
+ StringBuffer querySql = new StringBuffer("from TConfPeople t where t.confid=:confid ");
+ StringBuffer countSql = new StringBuffer("select count(t.id) as cnt from TConfPeople t where t.confid=:confid ");
+ if (!StringUtil.isEmpty(searchkey)) {
+ querySql.append(" and (t.cardno like :str or t.username like :str) ");
+ countSql.append(" and (t.cardno like :str or t.username like :str) ");
+ }
+ querySql.append(" order by t.cardno ");
+ Query query = entityManager.createQuery(querySql.toString());
+ Query countQuery = entityManager.createQuery(countSql.toString());
+ query.setParameter("confid", confid);
+ countQuery.setParameter("confid", confid);
+ if (!StringUtil.isEmpty(searchkey)) {
+ query.setParameter("str", "%" + searchkey.trim() + "%");
+ countQuery.setParameter("str", "%" + searchkey.trim() + "%");
+ }
+ query.setFirstResult((pageNo - 1) * pageSize);
+ query.setMaxResults(pageSize); //分页显示
+ List<TConfPeople> list = query.getResultList();
+ Long count = (Long) countQuery.getSingleResult();
+ return new PageResult<>(count.longValue(), list);
+ }
+
+
+ private String checkConfTimeError(String attendtime, String endtime,String confdate,String cardno) {
+ Query query = entityManager.createNativeQuery("select a.confname from tb_conference a,TB_Conf_People b where a.confid=b.confid " +
+ "and (a.status='unstart' or a.status='start') " +
+ "and b.cardno=:cardno " +
+ "and a.confdate=:confdate " +
+ "and ((:attendtime between a.attendtime and a.endtime) or (:endtime between a.attendtime and a.endtime) or (a.attendtime>:attendtime and a.endtime<:endtime)) ");
+ query.setParameter("cardno", cardno);
+ query.setParameter("confdate", confdate);
+ query.setParameter("attendtime", attendtime);
+ query.setParameter("endtime", endtime);
+ List<String> confname = query.getResultList();
+ if(!StringUtil.isEmpty(confname)){
+ return confname.get(0);
+ }
+ return null;
+ }
+
+ private String checkTimeErrorDevice(String attendtime, String endtime,String confdate,Integer deviceid) {
+ Query query = entityManager.createNativeQuery("select c.devname from tb_conference a " +
+ "left join tb_conference_devbind b on a.confid=b.confid " +
+ "left join t_nc_device c on b.deviceid=c.deviceid " +
+ "where (a.status='unstart' or a.status='start') " +
+ "and b.deviceid=:deviceid " +
+ "and a.confdate=:confdate " +
+ "and ((:attendtime between a.attendtime and a.endtime) or (:endtime between a.attendtime and a.endtime) or (a.attendtime>:attendtime and a.endtime<:endtime)) ");
+ query.setParameter("deviceid", deviceid);
+ query.setParameter("confdate", confdate);
+ query.setParameter("attendtime", attendtime);
+ query.setParameter("endtime", endtime);
+ List<String> confname = query.getResultList();
+ if(!StringUtil.isEmpty(confname)){
+ return confname.get(0);
+ }
+ return null;
+ }
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/util/ConferenceConstant.java b/src/main/java/com/supwisdom/dlpay/conference/util/ConferenceConstant.java
index 549358d..c69aa14 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/util/ConferenceConstant.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/util/ConferenceConstant.java
@@ -11,6 +11,8 @@
public static final String ATTENDSTATUS_CHECKED="checked";
public static final String ATTENDSTATUS_LATE="late";
public static final String ATTENDSTATUS_INSTEAD="instead";
+ public static final String DEVICETYPE_CONFERENCE="H";
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
index 6894c2f..3b58f7a 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
@@ -68,7 +68,7 @@
@Transactional
@Override
public List<TCustomerInfo> getAllTCustomerList(String perName, String cardno, String bankcardno) {
- String sql = "select 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 " +
+ String sql = "select a.custid,a.custname,b.cardno,b.bankcardno,b.cardphyid,b.expiredate,a.custtypeid,a.deptcode 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' ";
if (!StringUtil.isEmpty(perName)){
sql += " and a.custname like :perName ";
@@ -85,10 +85,10 @@
query.setParameter("perName", "%"+perName+"%");
}
if (!StringUtil.isEmpty(cardno)){
- query.setParameter("cardno", cardno);
+ query.setParameter("cardno", "%"+cardno+"%");
}
if (!StringUtil.isEmpty(bankcardno)){
- query.setParameter("bankcardno", bankcardno);
+ query.setParameter("bankcardno", "%"+bankcardno+"%");
}
List<TCustomerInfo> list = query.getResultList();
return list;
diff --git a/src/main/resources/templates/conference/confdetail.html b/src/main/resources/templates/conference/confdetail.html
new file mode 100644
index 0000000..58b8960
--- /dev/null
+++ b/src/main/resources/templates/conference/confdetail.html
@@ -0,0 +1,55 @@
+<div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form">
+ <span>绑定设备:</span>
+ <span th:text="${deviceName}"></span>
+
+ </div>
+ <div class="layui-form toolbar">
+ 搜索:
+ <input type="hidden" id="search-conference-detail-confid" th:value="${detailConfid}" />
+ <input id="search-conference-detail-searchkey" class="layui-input search-input" maxlength="20" type="text" style="width: 200px;"
+ placeholder="输入市民卡号或姓名查询"/> 
+ <button id="btn-search-conference-detail" class="layui-btn icon-btn" data-type="search"><i
+ class="layui-icon"></i>搜索
+ </button>
+ </div>
+ <table class="layui-table" id="conferenceDetailTable" lay-filter="conferenceDetailTable-filter"></table>
+ </div>
+</div>
+<script>
+
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var admin = layui.admin;
+ var element = layui.element;
+
+
+ // 渲染表格
+ var renderDetailTable = function (obj) {
+ table.render({
+ elem: '#conferenceDetailTable',
+ url: '[[@{/conference/load4detaillist}]]',
+ where: obj,
+ page: true,
+ height: 472,
+ cols: [
+ [
+ {field: 'cardno', title: '市民卡号', align: 'center'},
+ {field: 'custname', title: '姓名', align: 'center'}
+ ]
+ ]
+ });
+ }
+ renderDetailTable({confid: $("#search-conference-detail-confid").val()});
+
+ // 搜索按钮点击事件
+ $('#btn-search-conference-detail').click(function () {
+ var confid = $("#search-conference-detail-confid").val();
+ var searchkey = $("#search-conference-detail-searchkey").val();
+ table.reload('conferenceDetailTable', {where: {confid: confid, searchkey: searchkey}, page: {curr: 1}});
+ });
+
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/conference/confform.html b/src/main/resources/templates/conference/confform.html
index cfc45f0..3b29c0f 100644
--- a/src/main/resources/templates/conference/confform.html
+++ b/src/main/resources/templates/conference/confform.html
@@ -50,15 +50,19 @@
class="layui-input" lay-verify="required"/>
</div>
</div>
+ <div class="layui-form-item">
+ <label class="confinput-label layui-form-label"><span style="color: red">* </span>绑定设备</label>
+ <div class="layui-input-block">
+ <select lay-verify="required" name="deviceid" class="layui-select" id="conference-form-select-binddevice" lay-search>
+ <option th:each="lst:${confdevice}" th:value="${lst.deviceid}"
+ th:text="${lst.devname}"></option>
+ </select> 
+ </div>
+ </div>
<div class="layui-form-item" id="conference-conflist">
<label class="confinput-label layui-form-label"><span style="color: red">* </span>会议人员</label>
- <!-- <div class="layui-input-block">
- <select lay-verify="required" name="listid" class="layui-select" id="conference-form-select-listid">
- <option th:each="lst:${listbeans}" th:value="${lst.listid}"
- th:text="${lst.listname}"></option>
- </select> 
- </div>-->
+
<div class="layui-input-inline" style="width: auto;">
<button type="button" class="layui-btn upoadfile-btn">
<i class="layui-icon"></i>上传名单
@@ -87,6 +91,7 @@
var confType = 'list';
+
form.render("select");
laydate.render({
elem: '#form-conference-starttime',
@@ -131,6 +136,7 @@
debugger
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;
@@ -150,6 +156,7 @@
formData.append("endtime", vdata.endtime);
formData.append("attendtime", vdata.attendtime);
formData.append("confdate",vdata.confdate);
+ formData.append("deviceid",vdata.deviceid);
var flag=false;
var files = $('#form-conference-records').prop('files');
for (var i = 0; i < files.length; i++) {
diff --git a/src/main/resources/templates/conference/conflist.html b/src/main/resources/templates/conference/conflist.html
index e3e175d..71a4011 100644
--- a/src/main/resources/templates/conference/conflist.html
+++ b/src/main/resources/templates/conference/conflist.html
@@ -10,14 +10,17 @@
<div class="layui-form toolbar">
搜索:
<select id="search-conference-conftype">
- <option value=""> 选择会议类型 </option>
- <option value="list"> 有名单 </option>
- <option value="nolist"> 无名单 </option>
+ <option value=""> 选择会议类型</option>
+ <option value="list"> 有名单</option>
+ <option value="nolist"> 无名单</option>
</select> 
- <input id="search-conference-confname" class="layui-input search-input" maxlength="20" type="text" placeholder="输入名称查询"/> 
+ <input id="search-conference-confname" class="layui-input search-input" maxlength="20" type="text"
+ placeholder="输入名称查询"/> 
<button id="btn-search-conference" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
</button>
- <button id="btn-conference-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新 增</button>
+ <button id="btn-conference-add" class="layui-btn icon-btn" data-type="add"><i
+ class="layui-icon"></i>新 增
+ </button>
</div>
<table class="layui-table" id="conferenceTable" lay-filter="conferenceTable-filter"></table>
</div>
@@ -26,13 +29,14 @@
<!-- 表格操作列 -->
<script type="text/html" id="conference-table-bar">
- {{# if(d.conftype=='list' ){ }}
- <a class="layui-btn layui-btn layui-btn-xs" lay-event="detail">查看名单</a>
- {{# } }}
- {{# if(d.status=='closed' || d.status=='over'){ }}
- <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
- {{# } else if(d.status=='unstart'){ }}
- <a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="closed">关闭</a>
+
+ {{# 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="detail">查看明细</a>
+ {{# } else if(d.status=='unstart'&&d.conftype=='nolist'){ }}
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+ {{# } else if(d.status!='unstart'&&d.conftype=='list'){ }}
+ <a class="layui-btn layui-btn layui-btn-xs" lay-event="detail">查看明细</a>
{{# } }}
</script>
@@ -51,13 +55,17 @@
page: true,
cols: [
[
- {field: 'confname', title: '会议名称', align: 'center', fixed: 'left' },
- {field: 'confdate',width:150, title: '会议日期', align: 'center'},
- {field: 'timeperoid',width:150, title: '会议时间', align: 'center'},
- {field: 'attendtime',width:150, title: '签到时间', align: 'center'},
-
+ {field: 'confname', title: '会议名称', align: 'center', fixed: 'left'},
+ {field: 'confdate', width: 150, title: '会议日期', align: 'center'},
+ {field: 'timeperoid', width: 150, title: '会议时间', align: 'center'},
+ {field: 'attendtime', width: 150, title: '签到时间', align: 'center'},
{
- field: 'conftype', title: '会议类型', align: 'center', width: 120, sort: true, templet: function (d) {
+ field: 'conftype',
+ title: '会议类型',
+ align: 'center',
+ width: 120,
+ sort: true,
+ templet: function (d) {
if ('list' == d.conftype) {
return '有名单';
} else if ('nolist' == d.conftype) {
@@ -82,8 +90,8 @@
}
}
},
- /* {field: 'remark', title: '备注', align: 'center'},*/
- {align: 'center', title: '操作', width: 250, toolbar: '#conference-table-bar', fixed: 'right'}
+ /* {field: 'remark', title: '备注', align: 'center'},*/
+ {align: 'center', title: '操作', width: 250, toolbar: '#conference-table-bar', fixed: 'right'}
]
]
});
@@ -109,14 +117,16 @@
//监听单元格
table.on('tool(conferenceTable-filter)', function (obj) {
var data = obj.data;
- if('del' == obj.event){
- layer.confirm('确定直接删除会议【'+data.confname+'】吗?', {
+ console.log(data);
+ if ('del' == obj.event) {
+ layer.confirm('确定直接删除会议【' + data.confname + '】吗?', {
btn: ['确定', '取消']
- },function(){
+ }, function () {
layer.load(2);
- admin.go('[[@{/conference/deleterule}]]', {
- ruleid: data.ruleid,
- _csrf: $("meta[name='_csrf_token']").attr("value")
+ let token = $("meta[name='_csrf_token']").attr("value");
+ admin.go('[[@{/conference/deleteconf}]]', {
+ _csrf:token,
+ id: data.confid
}, function (data) {
console.log(data.code);
layer.closeAll('loading');
@@ -136,14 +146,13 @@
});
});
- }else if('closed' == obj.event){
- layer.confirm('确定关闭会议【'+data.confname+'】吗?', {
- btn: ['确定', '取消']
- },function(){
+ /*layer.confirm('确定直接删除会议【' + data.confname + '】吗?', function (i) {
+ layer.close(i);
layer.load(2);
- admin.go('[[@{/conference/closerule}]]', {
- ruleid: data.ruleid,
- _csrf: $("meta[name='_csrf_token']").attr("value")
+ let token = $("meta[name='_csrf_token']").attr("value");
+ admin.go('[[@{/conference/deleteconf}]]', {
+ _csrf: token,
+ id: 1234
}, function (data) {
console.log(data.code);
layer.closeAll('loading');
@@ -151,22 +160,23 @@
layer.msg(data.msg, {icon: 1});
} else if (data.code == 401) {
layer.msg(data.msg, {icon: 2, time: 1500}, function () {
- location.replace('[[@{/login}]]');
+ location.replace('/login');
}, 1000);
return;
} else {
layer.msg(data.msg, {icon: 2});
}
- table.reload('conferenceTable');
- }, function (err) {
- admin.errorBack(err)
+ table.reload('custtype-table', {});
+ }, function (ret) {
+ console.log(ret);
+ layer.closeAll('loading');
+ layer.msg('请求失败了,请稍后再试', {icon: 2});
});
- });
-
- }else if('detail' == obj.event){
+ });*/
+ } else if ('detail' == obj.event) {
admin.popupCenter({
title: "查看名单",
- path: '[[@{/conference/load4detail}]]?ruleid=' + data.ruleid,
+ path: '[[@{/conference/load4detail}]]?confid=' + data.confid,
area: '600px',
finish: function () {
table.reload('conferenceTable');
diff --git a/src/main/resources/templates/ncmgr/nc_dev.html b/src/main/resources/templates/ncmgr/nc_dev.html
index c09c728..20d89e1 100644
--- a/src/main/resources/templates/ncmgr/nc_dev.html
+++ b/src/main/resources/templates/ncmgr/nc_dev.html
@@ -343,7 +343,7 @@
<script>
var dev_validatePass = function (rule, value, callback) {
- //console.log(vue.devnoDis)
+ console.log(dev_vue.devnoDis)
if (!dev_vue.devnoDis) {
if (!value) {
return callback(new Error('请输入读头号'));
@@ -508,7 +508,7 @@
this.devnoDis = false;
//this.continueadd=true;
//this.checkvisible=true;
- } else if (value == 'C') {
+ } else if (value == 'C'||value=='H') {
this.devnoDis = true;
this.fdevDis = true;
this.devUpform.devno = '';
@@ -549,7 +549,10 @@
}
else if (row.devtype == 'R') {
return '读头';
- } else {
+ }
+ else if (row.devtype == 'H') {
+ return '会议平板';
+ } else {
return row.devtype;
}
},