From 5ce314bb05eef373bd25b0b2e289a01bf6e5b6c4 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 13 一月 2021 16:21:55 +0800 Subject: [PATCH] 添加危废信息展示以及app调用接口 --- src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java | 141 ++++ src/main/java/com/nanometer/smartlab/entity/handler/WasterHandler.java | 33 + src/main/java/com/nanometer/smartlab/service/SysUserService.java | 5 src/main/java/com/nanometer/smartlab/entity/dto/LaboratoryVo.java | 65 ++ src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java | 3 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java | 2 src/main/java/com/nanometer/smartlab/entity/HazardousWaste.java | 102 ++ src/main/webapp/sys_hazardous_waste.xhtml | 229 ++++-- src/main/webapp/user_mng.xhtml | 12 src/main/webapp/WEB-INF/config-mybatis.xml | 3 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml | 11 src/main/java/com/nanometer/smartlab/api/ApiAction.java | 397 ++++++++++++ src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml | 422 ++++++++++-- src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java | 15 src/main/java/com/nanometer/smartlab/entity/dto/HazardousWasteUser.java | 58 + src/main/java/com/nanometer/smartlab/converter/WasterConvert.java | 38 + src/main/java/com/nanometer/smartlab/controller/UserMngController.java | 10 src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java | 8 src/main/java/com/nanometer/smartlab/entity/SysUser.java | 12 src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java | 9 src/main/java/com/nanometer/smartlab/dao/SysUserDao.java | 6 src/main/java/com/nanometer/smartlab/entity/enumtype/Waster.java | 37 + src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java | 4 src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java | 23 src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml | 83 +- src/main/java/com/nanometer/smartlab/controller/HazardousWasteController.java | 145 ++++ 26 files changed, 1,602 insertions(+), 271 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java index 9fa2562..3e28bcc 100644 --- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java +++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java @@ -11,14 +11,8 @@ import com.nanometer.smartlab.dao.SysLaboratoryContainerDao; import com.nanometer.smartlab.dao.SysWarehouseContainerDao; import com.nanometer.smartlab.entity.*; -import com.nanometer.smartlab.entity.dto.HazardousWasteUser; -import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto; -import com.nanometer.smartlab.entity.dto.ReagentReceivingDto; -import com.nanometer.smartlab.entity.dto.SysWarehouseDto; -import com.nanometer.smartlab.entity.enumtype.ApiStatus; -import com.nanometer.smartlab.entity.enumtype.ArrivalStatus; -import com.nanometer.smartlab.entity.enumtype.ReplaceDictType; -import com.nanometer.smartlab.entity.enumtype.SeeFlag; +import com.nanometer.smartlab.entity.dto.*; +import com.nanometer.smartlab.entity.enumtype.*; import com.nanometer.smartlab.exception.ApiException; import com.nanometer.smartlab.exception.BusinessException; import com.nanometer.smartlab.exception.ExceptionEnumCode; @@ -32,6 +26,7 @@ import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; +import org.primefaces.context.RequestContext; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -41,6 +36,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -87,6 +83,10 @@ private DangerousEncodeService dangerousEncodeService; @Resource private EncodeReplaceDictService encodeReplaceDictService; + @Resource + private SysLaboratoryService sysLaboratoryService; + @Resource + private HazardousWasteService hazardousWasteService; @Value("${institute.url}") String instituteUrl; @@ -1359,26 +1359,174 @@ } /** + * @Description: 试剂转移到另一个柜子 + * @date 2020/12/24 14:19 + */ +// @ResponseBody +// @RequestMapping("reagentTransfer") +// public Object reagentReceiving(@RequestBody ReagentReceivingDto reagentReceiving) { +// try { +// if (this.selectedTmpList == null || this.selectedTmpList.size() == 0) { +// FacesUtils.warn("请选择申领试剂。"); +// return; +// } +// +// if (this.userId == null) { +// FacesUtils.warn("请选择申领人。"); +// return; +// } +// //领用单 +// printTable = null; +// printTable = new Hashtable(); +// List<ApplyListDto> applyList = new ArrayList<>(); +// Map applyPersonInfo = sysUserService.getUser(userId); +// printTable.put("head", instituteName); +// printTable.put("title", "领用单"); +// printTable.put("applyPerson", applyPersonInfo.get("name")); +// printTable.put("department", applyPersonInfo.get("meta_value")); +// printTable.put("date", Utils.now("yyyy-MM-dd")); +// printTable.put("phone", applyPersonInfo.get("phone")); +// +// //int size = 0; +// int sum = 0; +// List<OpeWarehouseReserve> list=new ArrayList<>(); +// List<OpeWarehouseReserve> list2=new ArrayList<>(); +// for (OpeWarehouseReserve selectWarehouseReserve : this.selectedTmpList) { +// if(selectWarehouseReserve.getFlag()==1){ +// list.add(selectWarehouseReserve); +// }else{ +// list2.add(selectWarehouseReserve); +// } +// } +// if(list.size()>0&&list!=null){ +// for (OpeWarehouseReserve selectWarehouseReserve : list) { +// List<String> reagentCodes = selectWarehouseReserve.getReagentCodes(); +// if (reagentCodes != null && reagentCodes.size() > 0) +// for (String opeReagentStatusId : reagentCodes) { +// OpeReagentStatus opeReagentStatus = this.opeReagentStatusService +// .getOpeReagentStatus(opeReagentStatusId); +// if (!this.opeReagentStatusService.isAllowWarehouseUse(opeReagentStatus)) { +// FacesUtils.warn("只能申领在仓库的试剂。"); +// return; +// }else { +// opeReagentStatus.setHouseId(laboratoryId); +// opeReagentStatus.setContainerId(laboratoryContainerId); +// this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);//更新试剂状态表 +// OpeLaboratoryReserve lr=new OpeLaboratoryReserve(); +// lr.setReagentId(selectWarehouseReserve.getReagentId()); +// lr.setHouseId(laboratoryId); +// lr.setContainerId(laboratoryContainerId); +// lr.setReserve(selectWarehouseReserve.getSelectNum()); +// lr.setUserId(userId); +// lr.setValidFlag(ValidFlag.VALID); +// this.opeLaboratoryReserveService.insert(lr); +// } +// //else { +// //size++; +// //} +// } +// ApplyListDto lis = new ApplyListDto(); +// Map reagentDetail = sysReagentService.getReagentDetail(selectWarehouseReserve.getReagentId()); +// lis.setNum(String.valueOf(selectWarehouseReserve.getSelectNum())); //数量 +// lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit"))); +// lis.setControlProducts((String) reagentDetail.get("controlProducts")); +// lis.setProductName((String) reagentDetail.get("name")); +// lis.setReagentFormat((String) reagentDetail.get("reagentFormat")); +// lis.setProductCode((String)reagentDetail.get("productCode")); +// lis.setMemo((String)reagentDetail.get("memo")); +// applyList.add(lis); +// sum += selectWarehouseReserve.getSelectNum(); +// } +// +// //if (size == 0) { +// //FacesUtils.warn("未选择一个条形码。"); +// //return; +// //} +// this.opeWarehouseReserveService.claim(list, userId,projectNum); +// } +// if(list2.size()>0&&list2!=null){ +// List<OpeApply> opeList=new ArrayList<>(); +// //this.opeApplyService.getOpeApplyList(null,null,null,null,null) +// for(int i=0;i<list2.size();i++){ +// OpeApply opeApply=new OpeApply(); +// opeApply.setArticleNumber(list2.get(i).getArticleNumber()); +// opeApply.setHouseId(laboratoryId); +// opeApply.setContainerId(laboratoryContainerId); +// opeApply.setReagent(this.sysReagentService.getSysReagent(list2.get(i).getReagentId())); +// opeApply.setStartReagentCode(list2.get(i).getStartReagentCode2()); +// opeApply.setEndReagentCode(list2.get(i).getEndReagentCode2()); +// opeList.add(opeApply); +// OpeLaboratoryReserve lr=new OpeLaboratoryReserve(); +// lr.setReagentId(list2.get(i).getReagentId()); +// lr.setHouseId(laboratoryId); +// lr.setContainerId(laboratoryContainerId); +// lr.setReserve(list2.get(i).getSelectNum()); +// lr.setUserId(userId); +// lr.setValidFlag(ValidFlag.VALID); +// this.opeLaboratoryReserveService.insert(lr); +// //opeList.add(this.opeApplyService.getOpeApply(list2.get(i).getId())); +// ApplyListDto lis = new ApplyListDto(); +// Map reagentDetail = sysReagentService.getReagentDetail(list2.get(i).getReagentId()); +// +// lis.setNum(String.valueOf(list2.get(i).getSelectNum())); //数量 +// lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit"))); +// lis.setControlProducts((String) reagentDetail.get("controlProducts")); +// lis.setProductName((String) reagentDetail.get("name")); +// lis.setReagentFormat((String) reagentDetail.get("reagentFormat")); +// lis.setProductCode((String)reagentDetail.get("productCode")); +// lis.setMemo((String)reagentDetail.get("memo")); +// applyList.add(lis); +// +// sum += list2.get(i).getSelectNum(); +// } +// this.opeWarehouseReserveService.reagentDStore2(opeList,userId); +// for(int i=0;i<list2.size();i++){ +// list2.get(i).setReserve(list2.get(i).getReserve()-list2.get(i).getSelectNum()); +// opeWarehouseReserveDao.updateOpeWarehouseReserve(list2.get(i)); +// } +// +// +// //opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve()-opeWarehouseReserve.getSelectNum()); +// //opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve); +// //this.opeWarehouseReserveService.claim(list2, userId,projectNum); +// } +// +// //领用票最后一行 +// applyList.add(new ApplyListDto("合计", "", "", "", "", String.valueOf(sum), "")); +// printTable.put("applyList", applyList); +// +// FacesUtils.info("申领成功。"); +// RequestContext.getCurrentInstance().execute("PF('printDialog').show()"); +//// this.menuController.goToPage(Constants.PAGE_WAREHOUSE_STOCK_MNG, Constants.PAGE_WAREHOUSE_REAGENT_USE_NEW); +// } catch (Exception e) { +// logger.error(e.getMessage(), e); +// FacesUtils.warn("操作失败。"); +// } +// } + + /** * @Description: 危废登录 * @date 2020/12/29 14:13 */ @ResponseBody @RequestMapping("hazardousWaste/login") public Object hazardousWaste(@RequestBody HazardousWasteUser user) { - try { String account = user.getAccount(); if (StringUtils.isBlank(account)){ return ResponseModel.getErrInstance("账户名为空"); } - SysUser sysUser = sysUserService.getUserByAccount(account); + HazardousWasteUser sysUser = sysUserService.getUserByAccount(account); if (sysUser == null){ return ResponseModel.getErrInstance("账户名不存在"); }else{ if (sysUser.getPassword().equals(MD5Utils.encode(user.getPassword()))){ - user.setId(sysUser.getId()); - user.setRoleName(sysUser.getRoleName()); + if (sysUser.getAdminFlag() != 0){ + user = sysUser; + }else{ + return ResponseModel.getErrInstance("用户不属于危废处理人员"); + } return ResponseModel.getOkInstence(user); }else{ return ResponseModel.getErrInstance("密码错误"); @@ -1390,7 +1538,230 @@ logger.info(e); return ResponseModel.getErrInstance("系统出错"); } - } + /** + * 修改密码 + * + */ + @ResponseBody + @RequestMapping("hazardousWaste/changePwd") + public Object changePwd(@RequestBody HazardousWasteUser user){ + try { + if (StringUtils.isBlank(user.getAccount())){ + return ResponseModel.getErrInstance("账户名为空"); + } + SysUser sysUser = sysUserService.getSysUserByAccount(user.getAccount()); + if (sysUser == null){ + return ResponseModel.getErrInstance("账户名不存在"); + }else{ + if (sysUser.getPassword().equals(MD5Utils.encode(user.getPassword()))){ + + SysUser newUser = new SysUser(); + newUser = sysUser; + String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}"; + if (!user.getNewpassword().matches(PW_PATTERN)){ + return ResponseModel.getErrInstance("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上"); + }else { + newUser.setPassword(MD5Utils.encode(user.getNewpassword())); + sysUserService.updateSysUser(newUser); + return ResponseModel.getOkInstence("修改成功"); + } + }else{ + return ResponseModel.getErrInstance("原密码错误"); + } + } + }catch (Exception e){ + e.printStackTrace(); + logger.info(e); + return ResponseModel.getErrInstance("系统出错"); + } + } + + /** + * 根据课题组名称获取部门、地址、所属人员 + * + */ + @ResponseBody + @RequestMapping("hazardousWaste/getLabAndUser") + public Object getLabAndUser(@RequestParam(required=true) String project){ + try { + if (StringUtils.isBlank(project)){ + return ResponseModel.getErrInstance("课题组不能为空"); + } + LaboratoryVo laboratoryVo = new LaboratoryVo(); + List<LaboratoryVo.Laboratory> laboratoryList = sysLaboratoryService.getLaboratoryByProject(project); + List<LaboratoryVo.LaboratoryUser> laboratoryUserList = sysUserService.getUserByProject(project); + laboratoryVo.setLaboratoryList(laboratoryList); + laboratoryVo.setLaboratoryUsers(laboratoryUserList); + return ResponseModel.getOkInstence(laboratoryVo); + }catch (Exception e){ + e.printStackTrace(); + logger.info(e); + return ResponseModel.getErrInstance("系统出错"); + } + } + + /** + * 录入危废信息 + * + */ + @ResponseBody + @RequestMapping("hazardousWaste/putWasteInfo") + public Object putWasteInfo(@RequestBody HazardousWaste hazardousWaste){ + try { + if (StringUtils.isBlank(hazardousWaste.getDepartment()) || StringUtils.isBlank(hazardousWaste.getApplyPerson()) + || StringUtils.isBlank(hazardousWaste.getProject()) || StringUtils.isBlank(hazardousWaste.getUnit()) + || StringUtils.isBlank(hazardousWaste.getCreator())){ + return ResponseModel.getErrInstance("部门、单位、课题组、确认者、创建者、不能为空"); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + hazardousWaste.setTid(sdf.format(new Date())); + hazardousWaste.setCreateTime(new Date()); + hazardousWaste.setStatus("待确认"); + if (hazardousWaste.getAcid()== null){ + hazardousWaste.setAcid(new BigDecimal(0)); + } + if (hazardousWaste.getAlkali()== null){ + hazardousWaste.setAlkali(new BigDecimal(0)); + } + if (hazardousWaste.getOrganic()== null){ + hazardousWaste.setOrganic(new BigDecimal(0)); + } + if (hazardousWaste.getSolid()== null){ + hazardousWaste.setSolid(new BigDecimal(0)); + } + if (hazardousWaste.getMedical()== null){ + hazardousWaste.setMedical(new BigDecimal(0)); + } + hazardousWaste.setUpdator(hazardousWaste.getCreator()); + hazardousWaste.setUpdatetime(new Date()); + hazardousWasteService.insertInfo(hazardousWaste); + return ResponseModel.getOkInstence("添加成功"); + }catch (Exception e){ + e.printStackTrace(); + logger.info(e); + return ResponseModel.getErrInstance("系统出错"); + } + } + + + /** + * 根据用户名和危废角色获取危废列表 + * + */ + @ResponseBody + @RequestMapping("hazardousWaste/getWasteInfo") + public Object getLabAndUser(@RequestParam(required=true) int adminFlag,@RequestParam(required=true) String name,@RequestParam(required=false) String status + ,@RequestParam(required=false) String starttime,@RequestParam(required=false) String endtime){ + try { + if (StringUtils.isBlank(name)){ + return ResponseModel.getErrInstance("姓名不能为空"); + } + List<HazardousWaste> hazardousWasters = new ArrayList<>(); + if (adminFlag == 2){ + hazardousWasters = hazardousWasteService.setAllWasters(starttime,endtime,status,null); + }else if (adminFlag == 1) { + hazardousWasters = hazardousWasteService.setAllWasters(starttime,endtime,status,name); + } + return ResponseModel.getOkInstence(hazardousWasters); + }catch (Exception e){ + e.printStackTrace(); + logger.info(e); + return ResponseModel.getErrInstance("系统出错"); + } + } + + /** + * 更新订单状态(确认订单、拒绝订单) + */ + @ResponseBody + @RequestMapping("hazardousWaste/changeStatus") + public Object getLabAndUser(@RequestParam(required=true) String tid,@RequestParam(required=true) String status, + @RequestParam(required=true) String updator){ + try { + if (StringUtils.isBlank(tid) || StringUtils.isBlank(status)){ + return ResponseModel.getErrInstance("单号、状态不能为空"); + } + HazardousWaste hazardousWaste = hazardousWasteService.selectByTid(tid); + if (hazardousWaste != null){ + if (!hazardousWaste.getStatus().equals("待确认")){ + return ResponseModel.getErrInstance("单据不为待确认无法修改"); + }else if (status.equals("已确认") || status.equals("已拒绝")){ + hazardousWaste.setStatus(status); + hazardousWaste.setUpdator(updator); + hazardousWaste.setUpdatetime(new Date()); + hazardousWasteService.updateWaste(hazardousWaste); + return ResponseModel.getOkInstence("修改成功"); + }else { + return ResponseModel.getErrInstance("单号状态不正确"); + } + }else { + return ResponseModel.getErrInstance("单号不存在"); + } + }catch (Exception e){ + e.printStackTrace(); + logger.info(e); + return ResponseModel.getErrInstance("系统出错"); + } + } + + /** + * 修改危废信息 + * + */ + @ResponseBody + @RequestMapping("hazardousWaste/editWasteInfo") + public Object editWasteInfo(@RequestBody HazardousWaste hazardousWaste){ + try { + if (StringUtils.isBlank(hazardousWaste.getTid()) ||StringUtils.isBlank(hazardousWaste.getUpdator())){ + return ResponseModel.getErrInstance("单号、更新人不能为空"); + } + HazardousWaste waste = hazardousWasteService.selectByTid(hazardousWaste.getTid()); + if (waste != null){ + if (!waste.getStatus().equals("已拒绝")){ + return ResponseModel.getErrInstance("单据不为已拒绝无法修改"); + }else { + waste.setStatus("待确认"); + if (hazardousWaste.getAcid()== null){ + waste.setAcid(new BigDecimal(0)); + }else { + waste.setAcid(hazardousWaste.getAcid()); + } + if (hazardousWaste.getAlkali()== null){ + waste.setAlkali(new BigDecimal(0)); + }else { + waste.setAlkali(hazardousWaste.getAlkali()); + } + if (hazardousWaste.getOrganic()== null){ + waste.setOrganic(new BigDecimal(0)); + }else { + waste.setOrganic(hazardousWaste.getOrganic()); + } + if (hazardousWaste.getSolid()== null){ + waste.setSolid(new BigDecimal(0)); + }else { + waste.setSolid(hazardousWaste.getSolid()); + } + if (hazardousWaste.getMedical()== null){ + waste.setMedical(new BigDecimal(0)); + }else { + waste.setMedical(hazardousWaste.getMedical()); + } + waste.setUpdator(hazardousWaste.getUpdator()); + waste.setUpdatetime(new Date()); + hazardousWasteService.updateWaste(waste); + return ResponseModel.getOkInstence("修改成功"); + } + }else { + return ResponseModel.getErrInstance("单号不存在"); + } + }catch (Exception e){ + e.printStackTrace(); + logger.info(e); + return ResponseModel.getErrInstance("系统出错"); + } + } + + } diff --git a/src/main/java/com/nanometer/smartlab/controller/HazardousWasteController.java b/src/main/java/com/nanometer/smartlab/controller/HazardousWasteController.java index bafb722..97b4c20 100644 --- a/src/main/java/com/nanometer/smartlab/controller/HazardousWasteController.java +++ b/src/main/java/com/nanometer/smartlab/controller/HazardousWasteController.java @@ -3,6 +3,7 @@ import com.nanometer.smartlab.entity.HazardousWaste; import com.nanometer.smartlab.service.HazardousWasteService; +import com.nanometer.smartlab.util.FacesUtils; import org.apache.log4j.Logger; import org.primefaces.model.LazyDataModel; import org.primefaces.model.SortOrder; @@ -10,10 +11,8 @@ import org.springframework.stereotype.Controller; import javax.annotation.Resource; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import javax.faces.event.ActionListener; +import java.util.*; @Controller @Scope("session") @@ -25,8 +24,15 @@ private Date startTime; private Date endTime; - - private boolean isSearch; + private String status; + private String applyPerson; + private String project; + private String department; + private String tid; + private List<String> statusList = new ArrayList<> (); + private boolean isSearch = false; + private boolean isAnalysSearch = false; + private LazyDataModel<HazardousWaste> analysisDataModel; @Resource private HazardousWasteService hazardousWasteService; @@ -40,16 +46,15 @@ List<HazardousWaste> list = null; try { - int pageCount = hazardousWasteService.countAll(startTime,endTime); + int pageCount = hazardousWasteService.countAll(startTime,endTime,status,applyPerson,project,department,tid); this.setRowCount(pageCount); if (pageCount > 0) - list = hazardousWasteService.selectAll(startTime,endTime, isSearch ? 0 : first, pageSize); + list = hazardousWasteService.selectAll(startTime,endTime,status,applyPerson,project,department,tid,first, pageSize); //查询更换模式 if (isSearch) { isSearch = false; } - } catch (Exception e) { logger.error("error occured.", e); } @@ -77,10 +82,58 @@ this.isSearch = true; } - - public void setDataModel(LazyDataModel<HazardousWaste> dataModel) { this.dataModel = dataModel; + } + + public LazyDataModel<HazardousWaste> getAnalysisDataModel() { + if (this.analysisDataModel == null) { + this.analysisDataModel = new LazyDataModel<HazardousWaste>() { + + public List<HazardousWaste> load + (int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { + + List<HazardousWaste> list = null; + try { + int pageCount = hazardousWasteService.countStatistics(startTime,endTime,status,applyPerson,project,department); + + this.setRowCount(pageCount); + if (pageCount > 0) + list = hazardousWasteService.selectStatistics(startTime,endTime,status,applyPerson,project,department,first, pageSize); + + //查询更换模式 + if (isAnalysSearch) { + isAnalysSearch = false; + } + } catch (Exception e) { + logger.error("error occured.", e); + } + return list; + } + + @Override + public HazardousWaste getRowData(String rowKey) { + Iterator<HazardousWaste> iterator = this.iterator(); + HazardousWaste su = null; + while (iterator.hasNext()) { + su = iterator.next(); + if ( su.getId().equals(Long.parseLong(rowKey))) { + return su; + } + } + return null; + } + }; + } + return analysisDataModel; + } + + public void modelAnalysisChange() { + this.isAnalysSearch = true; + } + + public void setAnalysisDataModel(LazyDataModel<HazardousWaste> dataModel) { + this.analysisDataModel = dataModel; } public Date getStartTime() { @@ -106,4 +159,74 @@ public void setSearch(boolean search) { isSearch = search; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getApplyPerson() { + return applyPerson; + } + + public void setApplyPerson(String applyPerson) { + this.applyPerson = applyPerson; + } + + public String getProject() { + return project; + } + + public void setProject(String project) { + this.project = project; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public List<String> getStatusList() { + statusList = new ArrayList<> (); + statusList.add("全部"); + statusList.add("待解决"); + statusList.add("已解决"); + statusList.add("已拒绝"); + return statusList; + } + + + public void export2Excel() { + List<Map> list = hazardousWasteService.exportList(startTime,endTime,status,applyPerson,project,department,tid); + try{ + hazardousWasteService.export2Excel(list); + }catch (Exception e){ + e.printStackTrace(); + FacesUtils.warn("导出失败"); + } + } + + public void exportStatistics2Excel(){ + List<Map> list = hazardousWasteService.exportStatisticsList(startTime,endTime,status,applyPerson,project,department); + try{ + hazardousWasteService.exportStatistics2Excel(list); + }catch (Exception e){ + e.printStackTrace(); + FacesUtils.warn("导出失败"); + } + } + + public String getTid() { + return tid; + } + + public void setTid(String tid) { + this.tid = tid; + } } diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java index d8b0f9a..9ef8dc1 100644 --- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java @@ -7,6 +7,7 @@ import com.nanometer.smartlab.entity.enumtype.ApproverFlag; import com.nanometer.smartlab.entity.enumtype.SeeFlag; import com.nanometer.smartlab.entity.enumtype.ValidFlag; +import com.nanometer.smartlab.entity.enumtype.Waster; import com.nanometer.smartlab.service.BaseMetaService; import com.nanometer.smartlab.service.BaseRoleService; import com.nanometer.smartlab.service.SysUserService; @@ -66,6 +67,7 @@ private String editPasswor; private List<BaseMeta> codeList; private List<BaseRole> roleList; + private List<Waster> wasterSelectList; public List<BaseRole> getRoleList() { return roleList; @@ -539,6 +541,14 @@ return seeFlagSelectList; } + public List<Waster> getWasterSelectList() { + if (this.wasterSelectList == null) { + this.wasterSelectList = Arrays.asList(Waster.values()); + } + + return wasterSelectList; + } + public String getArp() { return arp; } diff --git a/src/main/java/com/nanometer/smartlab/converter/WasterConvert.java b/src/main/java/com/nanometer/smartlab/converter/WasterConvert.java new file mode 100644 index 0000000..37d2545 --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/converter/WasterConvert.java @@ -0,0 +1,38 @@ +package com.nanometer.smartlab.converter; + +import com.nanometer.smartlab.entity.enumtype.Waster; +import org.apache.commons.lang.StringUtils; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("wasterConvert") +public class WasterConvert implements Converter { + + public Object getAsObject(FacesContext context, UIComponent component, String value) { + try { + if (StringUtils.isNotBlank(value)) { + return Waster.parse(Integer.parseInt(value)); + } + + return null; + } catch (Exception e) { + return null; + } + } + + public String getAsString(FacesContext context, UIComponent component, Object value) { + try { + if (value != null && value instanceof Waster) { + Waster Waster = (Waster) value; + return String.valueOf(Waster.getKey()); + } + + return null; + } catch (Exception e) { + return null; + } + } +} diff --git a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java index d2617df..1f24a3a 100644 --- a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java +++ b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.dao; import com.nanometer.smartlab.entity.HazardousWaste; +import org.apache.ibatis.annotations.Param; import java.util.*; @@ -20,4 +21,16 @@ List<HazardousWaste> selectAll(Map params); int countAll(Map params); -} \ No newline at end of file + + List<Map> selectExportList(Map params); + + int countStatistics(Map<String, Object> params); + + List<HazardousWaste> selectStatistics(Map<String, Object> params); + + List<Map> selectStatisticsExportList(Map<String, Object> params); + + List<HazardousWaste> setAllWasters(@Param("starttime") String starttime,@Param("endtime") String endtime,@Param("status") String status,@Param("applyPerson") String applyPerson); + + HazardousWaste selectByTid(@Param("tid") String tid); +} diff --git a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml index 91d1de3..b6b49f4 100644 --- a/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml +++ b/src/main/java/com/nanometer/smartlab/dao/HazardousWasteMapper.xml @@ -1,207 +1,441 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > -<mapper namespace="com.nanometer.smartlab.dao.HazardousWasteMapper" > - <resultMap id="BaseResultMap" type="com.nanometer.smartlab.entity.HazardousWaste" > +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.nanometer.smartlab.dao.HazardousWasteMapper"> + <resultMap id="BaseResultMap" type="com.nanometer.smartlab.entity.HazardousWaste"> <!-- --> - <id column="id" property="id" jdbcType="BIGINT" /> - <result column="acid" property="acid" jdbcType="REAL" /> - <result column="alkali" property="alkali" jdbcType="REAL" /> - <result column="organic" property="organic" jdbcType="REAL" /> - <result column="solid" property="solid" jdbcType="REAL" /> - <result column="medical" property="medical" jdbcType="REAL" /> - <result column="apply_person" property="applyPerson" jdbcType="VARCHAR" /> - <result column="project" property="project" jdbcType="VARCHAR" /> - <result column="department" property="department" jdbcType="VARCHAR" /> - <result column="unit" property="unit" jdbcType="VARCHAR" /> - <result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="acid" jdbcType="DECIMAL" property="acid" /> + <result column="alkali" jdbcType="DECIMAL" property="alkali" /> + <result column="organic" jdbcType="DECIMAL" property="organic" /> + <result column="solid" jdbcType="DECIMAL" property="solid" /> + <result column="medical" jdbcType="DECIMAL" property="medical" /> + <result column="apply_person" jdbcType="VARCHAR" property="applyPerson" /> + <result column="project" jdbcType="VARCHAR" property="project" /> + <result column="department" jdbcType="VARCHAR" property="department" /> + <result column="unit" jdbcType="VARCHAR" property="unit" /> + <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> + <result column="tid" jdbcType="VARCHAR" property="tid" /> + <result column="status" jdbcType="VARCHAR" property="status" /> + <result column="creator" jdbcType="VARCHAR" property="creator" /> + <result column="updator" jdbcType="VARCHAR" property="updator" /> + <result column="updatetime" jdbcType="TIMESTAMP" property="updatetime" /> </resultMap> - <sql id="Base_Column_List" > + <sql id="Base_Column_List"> <!-- --> - id, acid, alkali, organic, solid, medical, apply_person, project, department, unit, - create_time + id, acid, alkali, organic, solid, medical, apply_person, project, department, unit, + create_time, tid, status, creator, updator, updatetime </sql> - <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!-- --> - select + select <include refid="Base_Column_List" /> from sys_hazardous_waste where id = #{id,jdbcType=BIGINT} </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" > + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <!-- --> delete from sys_hazardous_waste where id = #{id,jdbcType=BIGINT} </delete> - <insert id="insert" parameterType="com.nanometer.smartlab.entity.HazardousWaste" > + <insert id="insert" parameterType="com.nanometer.smartlab.entity.HazardousWaste"> <!-- --> - insert into sys_hazardous_waste (id, acid, alkali, organic, - solid, medical, apply_person, - project, department, unit, - create_time) - values (#{id,jdbcType=BIGINT}, #{acid,jdbcType=REAL}, #{alkali,jdbcType=REAL}, #{organic,jdbcType=REAL}, - #{solid,jdbcType=REAL}, #{medical,jdbcType=REAL}, #{applyPerson,jdbcType=VARCHAR}, - #{project,jdbcType=VARCHAR}, #{department,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}) + insert into sys_hazardous_waste (id, acid, alkali, organic, + solid, medical, apply_person, + project, department, unit, + create_time, tid, status, + creator,updator, updatetime) + values (#{id,jdbcType=BIGINT}, #{acid,jdbcType=DECIMAL}, #{alkali,jdbcType=DECIMAL}, #{organic,jdbcType=DECIMAL}, + #{solid,jdbcType=DECIMAL}, #{medical,jdbcType=DECIMAL}, #{applyPerson,jdbcType=VARCHAR}, + #{project,jdbcType=VARCHAR}, #{department,jdbcType=VARCHAR}, #{unit,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{tid,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR}, + #{creator,jdbcType=VARCHAR},#{updator,jdbcType=VARCHAR},#{updatetime,jdbcType=TIMESTAMP}) </insert> - <insert id="insertSelective" parameterType="com.nanometer.smartlab.entity.HazardousWaste" > + <insert id="insertSelective" parameterType="com.nanometer.smartlab.entity.HazardousWaste"> <!-- --> insert into sys_hazardous_waste - <trim prefix="(" suffix=")" suffixOverrides="," > - <if test="id != null" > + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> id, </if> - <if test="acid != null" > + <if test="acid != null"> acid, </if> - <if test="alkali != null" > + <if test="alkali != null"> alkali, </if> - <if test="organic != null" > + <if test="organic != null"> organic, </if> - <if test="solid != null" > + <if test="solid != null"> solid, </if> - <if test="medical != null" > + <if test="medical != null"> medical, </if> - <if test="applyPerson != null" > + <if test="applyPerson != null"> apply_person, </if> - <if test="project != null" > + <if test="project != null"> project, </if> - <if test="department != null" > + <if test="department != null"> department, </if> - <if test="unit != null" > + <if test="unit != null"> unit, </if> - <if test="createTime != null" > + <if test="createTime != null"> create_time, </if> + <if test="tid != null"> + tid, + </if> + <if test="status != null"> + status, + </if> + <if test="creator != null"> + creator, + </if> + <if test="updator != null"> + creator, + </if> + <if test="updatetime != null"> + updatetime, + </if> </trim> - <trim prefix="values (" suffix=")" suffixOverrides="," > - <if test="id != null" > + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> #{id,jdbcType=BIGINT}, </if> - <if test="acid != null" > - #{acid,jdbcType=REAL}, + <if test="acid != null"> + #{acid,jdbcType=DECIMAL}, </if> - <if test="alkali != null" > - #{alkali,jdbcType=REAL}, + <if test="alkali != null"> + #{alkali,jdbcType=DECIMAL}, </if> - <if test="organic != null" > - #{organic,jdbcType=REAL}, + <if test="organic != null"> + #{organic,jdbcType=DECIMAL}, </if> - <if test="solid != null" > - #{solid,jdbcType=REAL}, + <if test="solid != null"> + #{solid,jdbcType=DECIMAL}, </if> - <if test="medical != null" > - #{medical,jdbcType=REAL}, + <if test="medical != null"> + #{medical,jdbcType=DECIMAL}, </if> - <if test="applyPerson != null" > + <if test="applyPerson != null"> #{applyPerson,jdbcType=VARCHAR}, </if> - <if test="project != null" > + <if test="project != null"> #{project,jdbcType=VARCHAR}, </if> - <if test="department != null" > + <if test="department != null"> #{department,jdbcType=VARCHAR}, </if> - <if test="unit != null" > + <if test="unit != null"> #{unit,jdbcType=VARCHAR}, </if> - <if test="createTime != null" > + <if test="createTime != null"> #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="tid != null"> + #{tid,jdbcType=VARCHAR}, + </if> + <if test="status != null"> + #{status,jdbcType=VARCHAR}, + </if> + <if test="creator != null"> + #{creator,jdbcType=VARCHAR}, + </if> + <if test="updator != null"> + #{updator,jdbcType=VARCHAR}, + </if> + <if test="updatetime != null"> + #{updatetime,jdbcType=TIMESTAMP}, </if> </trim> </insert> - <update id="updateByPrimaryKeySelective" parameterType="com.nanometer.smartlab.entity.HazardousWaste" > + <update id="updateByPrimaryKeySelective" parameterType="com.nanometer.smartlab.entity.HazardousWaste"> <!-- --> update sys_hazardous_waste - <set > - <if test="acid != null" > - acid = #{acid,jdbcType=REAL}, + <set> + <if test="acid != null"> + acid = #{acid,jdbcType=DECIMAL}, </if> - <if test="alkali != null" > - alkali = #{alkali,jdbcType=REAL}, + <if test="alkali != null"> + alkali = #{alkali,jdbcType=DECIMAL}, </if> - <if test="organic != null" > - organic = #{organic,jdbcType=REAL}, + <if test="organic != null"> + organic = #{organic,jdbcType=DECIMAL}, </if> - <if test="solid != null" > - solid = #{solid,jdbcType=REAL}, + <if test="solid != null"> + solid = #{solid,jdbcType=DECIMAL}, </if> - <if test="medical != null" > - medical = #{medical,jdbcType=REAL}, + <if test="medical != null"> + medical = #{medical,jdbcType=DECIMAL}, </if> - <if test="applyPerson != null" > + <if test="applyPerson != null"> apply_person = #{applyPerson,jdbcType=VARCHAR}, </if> - <if test="project != null" > + <if test="project != null"> project = #{project,jdbcType=VARCHAR}, </if> - <if test="department != null" > + <if test="department != null"> department = #{department,jdbcType=VARCHAR}, </if> - <if test="unit != null" > + <if test="unit != null"> unit = #{unit,jdbcType=VARCHAR}, </if> - <if test="createTime != null" > + <if test="createTime != null"> create_time = #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="tid != null"> + tid = #{tid,jdbcType=VARCHAR}, + </if> + <if test="status != null"> + status = #{status,jdbcType=VARCHAR}, + </if> + <if test="creator != null"> + creator = #{creator,jdbcType=VARCHAR}, + </if> + <if test="updator != null"> + updator = #{updator,jdbcType=VARCHAR}, + </if> + <if test="updatetime != null"> + updatetime = #{updatetime,jdbcType=TIMESTAMP}, </if> </set> where id = #{id,jdbcType=BIGINT} </update> - <update id="updateByPrimaryKey" parameterType="com.nanometer.smartlab.entity.HazardousWaste" > + <update id="updateByPrimaryKey" parameterType="com.nanometer.smartlab.entity.HazardousWaste"> <!-- --> update sys_hazardous_waste - set acid = #{acid,jdbcType=REAL}, - alkali = #{alkali,jdbcType=REAL}, - organic = #{organic,jdbcType=REAL}, - solid = #{solid,jdbcType=REAL}, - medical = #{medical,jdbcType=REAL}, + set acid = #{acid,jdbcType=DECIMAL}, + alkali = #{alkali,jdbcType=DECIMAL}, + organic = #{organic,jdbcType=DECIMAL}, + solid = #{solid,jdbcType=DECIMAL}, + medical = #{medical,jdbcType=DECIMAL}, apply_person = #{applyPerson,jdbcType=VARCHAR}, project = #{project,jdbcType=VARCHAR}, department = #{department,jdbcType=VARCHAR}, unit = #{unit,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP} + create_time = #{createTime,jdbcType=TIMESTAMP}, + tid = #{tid,jdbcType=VARCHAR}, + status = #{status,jdbcType=VARCHAR}, + creator = #{creator,jdbcType=VARCHAR}, + updator = #{updator,jdbcType=VARCHAR}, + updatetime = #{updatetime,jdbcType=TIMESTAMP} where id = #{id,jdbcType=BIGINT} </update> - - <select id="selectAll" resultMap="BaseResultMap" parameterType="java.util.Map" > + <select id="setAllWasters" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List" /> + from sys_hazardous_waste + <where> + 1 = 1 + <if test="starttime != null and starttime != ''"> + and create_time > #{starttime} + </if> + <if test="endtime != null and endtime != ''"> + and create_time < #{endtime} + </if> + <if test="status != null and status != ''"> + and status = #{status} + </if> + <if test="applyPerson != null and applyPerson != ''"> + and apply_person = #{applyPerson} + </if> + </where> + order by create_time desc + </select> + <select id="selectAll" parameterType="java.util.Map" resultMap="BaseResultMap"> <!-- --> select <include refid="Base_Column_List" /> from sys_hazardous_waste <where> 1 = 1 - <if test="startTime != null and startTime != ''" > + <if test="startTime != null and startTime != ''"> and create_time > #{startTime} </if> - <if test="endTime != null and endTime != ''" > + <if test="endTime != null and endTime != ''"> and create_time < #{endTime} </if> + <if test="status != null and status != ''"> + and status = #{status} + </if> + <if test="applyPerson != null and applyPerson != ''"> + and apply_person = #{applyPerson} + </if> + <if test="project != null and project != ''"> + and project = #{project} + </if> + <if test="department != null and department != ''"> + and department = #{department} + </if> + <if test="tid != null and tid != ''"> + and tid = #{tid} + </if> </where> - <if test="first != null and pageSize != null" > + order by create_time desc + <if test="first != null and pageSize != null"> limit #{first},#{pageSize} </if> - order by create_time </select> - <select id="countAll" resultType="java.lang.Integer" > + <select id="countAll" resultType="java.lang.Integer"> <!-- --> select count(0) from sys_hazardous_waste <where> 1 = 1 - <if test="startTime != null and startTime != ''" > + <if test="startTime != null and startTime != ''"> and create_time > #{startTime} </if> - <if test="endTime != null and endTime != ''" > + <if test="endTime != null and endTime != ''"> and create_time < #{endTime} + </if> + <if test="status != null and status != ''"> + and status = #{status} + </if> + <if test="applyPerson != null and applyPerson != ''"> + and apply_person = #{applyPerson} + </if> + <if test="project != null and project != ''"> + and project = #{project} + </if> + <if test="department != null and department != ''"> + and department = #{department} + </if> + <if test="tid != null and tid != ''"> + and tid = #{tid} </if> </where> </select> -</mapper> \ No newline at end of file + <select id="selectExportList" resultType="java.util.Map"> + select + id, acid, alkali, organic, solid, medical, apply_person as applyPerson, project, department, unit, + create_time as createTime, tid, status, creator + from sys_hazardous_waste + <where> + 1 = 1 + <if test="startTime != null and startTime != ''"> + and create_time > #{startTime} + </if> + <if test="endTime != null and endTime != ''"> + and create_time < #{endTime} + </if> + <if test="status != null and status != ''"> + and status = #{status} + </if> + <if test="applyPerson != null and applyPerson != ''"> + and apply_person = #{applyPerson} + </if> + <if test="project != null and project != ''"> + and project = #{project} + </if> + <if test="department != null and department != ''"> + and department = #{department} + </if> + <if test="tid != null and tid != ''"> + and tid = #{tid} + </if> + </where> + order by create_time desc + </select> + <select id="countStatistics" resultType="java.lang.Integer"> + select count(0) + from sys_hazardous_waste + <where> + 1 = 1 + <if test="startTime != null and startTime != ''"> + and create_time > #{startTime} + </if> + <if test="endTime != null and endTime != ''"> + and create_time < #{endTime} + </if> + <if test="status != null and status != ''"> + and status = #{status} + </if> + <if test="applyPerson != null and applyPerson != ''"> + and apply_person = #{applyPerson} + </if> + <if test="project != null and project != ''"> + and project = #{project} + </if> + <if test="department != null and department != ''"> + and department = #{department} + </if> + group by project,department,unit + </where> + </select> + <select id="selectStatistics" resultType="com.nanometer.smartlab.entity.HazardousWaste"> + select + id, sum(acid) as acid,sum(alkali) as alkali, sum(organic) as organic,sum(solid) as solid,sum(medical) as medical, + apply_person as applyPerson, project, department, unit,create_time as createTime, tid, status, creator + from sys_hazardous_waste + <where> + 1 = 1 + <if test="startTime != null and startTime != ''"> + and create_time > #{startTime} + </if> + <if test="endTime != null and endTime != ''"> + and create_time < #{endTime} + </if> + <if test="status != null and status != ''"> + and status = #{status} + </if> + <if test="applyPerson != null and applyPerson != ''"> + and apply_person = #{applyPerson} + </if> + <if test="project != null and project != ''"> + and project = #{project} + </if> + <if test="department != null and department != ''"> + and department = #{department} + </if> + </where> + group by project,department,unit + order by create_time desc + <if test="first != null and pageSize != null"> + limit #{first},#{pageSize} + </if> + </select> + <select id="selectStatisticsExportList" resultType="java.util.Map"> + select + id, sum(acid) as acid,sum(alkali) as alkali, sum(organic) as organic,sum(solid) as solid,sum(medical) as medical, + apply_person as applyPerson, project, department, unit,create_time as createTime, tid, status, creator + from sys_hazardous_waste + <where> + 1 = 1 + <if test="startTime != null and startTime != ''"> + and create_time > #{startTime} + </if> + <if test="endTime != null and endTime != ''"> + and create_time < #{endTime} + </if> + <if test="status != null and status != ''"> + and status = #{status} + </if> + <if test="applyPerson != null and applyPerson != ''"> + and apply_person = #{applyPerson} + </if> + <if test="project != null and project != ''"> + and project = #{project} + </if> + <if test="department != null and department != ''"> + and department = #{department} + </if> + </where> + group by project,department,unit + order by create_time desc + </select> + <select id="selectByTid" resultType="com.nanometer.smartlab.entity.HazardousWaste"> + select + <include refid="Base_Column_List" /> + from sys_hazardous_waste + <where> + 1 = 1 + and tid = #{tid} + </where> + </select> +</mapper> diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java index 0ceead8..ea7e094 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java +++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java @@ -1,6 +1,8 @@ package com.nanometer.smartlab.dao; import com.nanometer.smartlab.entity.SysLaboratory; +import com.nanometer.smartlab.entity.dto.LaboratoryVo; +import org.apache.ibatis.annotations.Param; import org.springframework.dao.DataAccessException; import java.util.List; @@ -29,4 +31,6 @@ public void updateLabExport(SysLaboratory sysLaboratory); List<Map> exportLabList(Map params); + + List<LaboratoryVo.Laboratory> getLaboratoryByProject(@Param("project") String project); } diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml index 49434e3..0a59ab5 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml @@ -112,7 +112,16 @@ where bar_code = #{barCode} and valid_flag=1 </select> - + <select id="getLaboratoryByProject" resultType="com.nanometer.smartlab.entity.dto.LaboratoryVo$Laboratory"> + SELECT + CONCAT('楼号:',sl.location1,'-地址号:',sl.location2) as address, + bm.meta_value as department + FROM + sys_laboratory as sl + LEFT JOIN base_meta bm on bm.id = sl.department + WHERE + sl.project LIKE CONCAT('%',#{project},'%') + </select> <update id="updateLabExport" parameterType="com.nanometer.smartlab.entity.SysLaboratory"> update sys_laboratory set type=#{type}, diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java index 7cd4783..581b524 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java +++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java @@ -1,6 +1,8 @@ package com.nanometer.smartlab.dao; import com.nanometer.smartlab.entity.SysUser; +import com.nanometer.smartlab.entity.dto.HazardousWasteUser; +import com.nanometer.smartlab.entity.dto.LaboratoryVo; import com.nanometer.smartlab.entity.dto.SysUserDto; import org.apache.ibatis.annotations.Param; import org.springframework.dao.DataAccessException; @@ -46,5 +48,7 @@ List<SysUserDto> selectUserInfo(); - SysUser getUserByAccount(Map params); + HazardousWasteUser getUserByAccount(Map params); + + List<LaboratoryVo.LaboratoryUser> getUserByProject(@Param("project") String project); } diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml index fb8a108..64b16c6 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml @@ -23,6 +23,7 @@ <result property="roleName" column="roleName"></result> <result property="containerCodeList" column="containerCodeList"></result> <result property="project" column="project"></result> + <result property="waster" column="waster" typeHandler="com.nanometer.smartlab.entity.handler.WasterHandler"></result> </resultMap> <resultMap id="SysUserDto" type="com.nanometer.smartlab.entity.dto.SysUserDto"> @@ -69,6 +70,9 @@ </if> <if test="editId != null and editId != ''"> and su.id != #{editId} + </if> + <if test="waster != null"> + and su.waster = #{waster} </if> </sql> @@ -155,13 +159,13 @@ </select> <insert id="insertSysUser" parameterType="com.nanometer.smartlab.entity.SysUser"> - insert into sys_user(id, arp, account, password, company, department, name, phone, email, memo, id_card, approver_flag, see_flag, role_id, valid_flag, create_time, update_time,project) - values (#{id}, #{arp}, #{account}, #{password}, #{company}, #{department}, #{name}, #{phone}, #{email}, #{memo}, #{idCard}, #{approverFlag}, #{seeFlag}, #{roleId}, 1, now(), now(),#{project}) + insert into sys_user(id, arp, account, password, company, department, name, phone, email, memo, id_card, approver_flag, see_flag, role_id, valid_flag, create_time, update_time,project,waster) + values (#{id}, #{arp}, #{account}, #{password}, #{company}, #{department}, #{name}, #{phone}, #{email}, #{memo}, #{idCard}, #{approverFlag}, #{seeFlag}, #{roleId}, 1, now(), now(),#{project},#{waster}) </insert> <update id="updateSysUser" parameterType="com.nanometer.smartlab.entity.SysUser"> update sys_user set arp=#{arp}, account=#{account}, password=#{password}, company=#{company}, department=#{department}, name=#{name}, phone=#{phone}, - email=#{email}, memo=#{memo}, id_card=#{idCard}, approver_flag=#{approverFlag}, see_flag=#{seeFlag}, role_id=#{roleId}, point=#{point},update_time=now(),project=#{project} + email=#{email}, memo=#{memo}, id_card=#{idCard}, approver_flag=#{approverFlag}, see_flag=#{seeFlag}, role_id=#{roleId}, point=#{point},update_time=now(),project=#{project},waster=#{waster} where id=#{id} </update> @@ -196,7 +200,7 @@ select * from sys_user where valid_flag=1 and account=#{account} </select> <select id="selectUserInfo" resultMap="SysUserDto"> - SELECT + SELECT su.id, su.arp, su.account, @@ -207,43 +211,58 @@ sl.`name` sl_name, slc.id slc_id, slc.`name` slc_name -FROM - sys_user su + FROM sys_user su LEFT JOIN base_meta bm1 on bm1.id = su.department LEFT JOIN sys_laboratory sl on sl.department = su.department LEFT JOIN sys_laboratory_container slc on slc.laboratory_id = sl.id - - - WHERE su.valid_flag = 1 and sl.valid_flag = 1 and slc.valid_flag = 1 </select> - <select id="getUserByAccount" resultMap="SysUser"> - select su.*, br.name as roleName from sys_user as su - left join base_role as br on su.role_id = br.id - left join base_meta bm on su.department = bm.id - where su.valid_flag = 1 - and su.account = #{account} - </select> - <select id="getUserListByProject" parameterType="java.util.Map" resultMap="SysUser"> - SELECT u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,bm2.meta_value department,bm1.meta_value company,u.arp,u.point,u.project - from sys_user u - left join base_meta bm1 on bm1.id = u.company - left join base_meta bm2 on bm2.id = u.department - where - u.project = #{0} - and u.valid_flag = 1 - and u.update_time >= #{1} and #{2} > u.update_time - </select> + <select id="getUserListByProject" parameterType="java.util.Map" resultMap="SysUser"> + SELECT u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,bm2.meta_value department,bm1.meta_value company,u.arp,u.point,u.project + from sys_user u + left join base_meta bm1 on bm1.id = u.company + left join base_meta bm2 on bm2.id = u.department + where + u.project = #{0} + and u.valid_flag = 1 + and u.update_time >= #{1} and #{2} > u.update_time + </select> + <select id="getUserByAccount" resultType="com.nanometer.smartlab.entity.dto.HazardousWasteUser"> + SELECT + su.id, + su.account, + su.`name`, + su.`password`, + su.waster as adminFlag, + su.project, + bm.meta_value as department, + com.meta_value as company + FROM sys_user AS su + LEFT JOIN base_meta bm ON su.department = bm.id + LEFT JOIN base_meta com on com.id = su.company + WHERE + su.valid_flag = 1 + AND su.account = #{account} + </select> + <select id="getUserByProject" resultType="com.nanometer.smartlab.entity.dto.LaboratoryVo$LaboratoryUser"> + SELECT + `name` as username + FROM sys_user + WHERE + valid_flag = '1' + AND waster = '1' + AND project = #{project}; + </select> <update id="updateUserPointBySelective" parameterType="java.util.Map"> - update sys_user set point=#{point} - <where> - <if test="id != null"> - id = #{id} - </if> - </where> + update sys_user set point=#{point} + <where> + <if test="id != null"> + id = #{id} + </if> + </where> </update> </mapper> diff --git a/src/main/java/com/nanometer/smartlab/entity/HazardousWaste.java b/src/main/java/com/nanometer/smartlab/entity/HazardousWaste.java index 52f79fc..17473d0 100644 --- a/src/main/java/com/nanometer/smartlab/entity/HazardousWaste.java +++ b/src/main/java/com/nanometer/smartlab/entity/HazardousWaste.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.entity; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; public class HazardousWaste implements Serializable { @@ -8,24 +9,24 @@ private Long id; /** 酸 acid **/ - private Float acid; + private BigDecimal acid; /** 碱 alkali **/ - private Float alkali; + private BigDecimal alkali; /** 有机 organic **/ - private Float organic; + private BigDecimal organic; /** 固废 solid **/ - private Float solid; + private BigDecimal solid; /** 医疗 medical **/ - private Float medical; + private BigDecimal medical; - /** 申请人 apply_person **/ + /** 确认者 apply_person **/ private String applyPerson; - /** 项目组 project **/ + /** 课题组 project **/ private String project; /** 部门 department **/ @@ -36,6 +37,21 @@ /** 创建时间 create_time **/ private Date createTime; + + /** 单号 tid **/ + private String tid; + + /** 状态 待解决、已解决、已拒绝 status **/ + private String status; + + /** 创建者 creator **/ + private String creator; + + /** 更新人 updator **/ + private String updator; + + /** 创建时间 updatetime **/ + private Date updatetime; /** id **/ public Long getId() { @@ -48,52 +64,52 @@ } /** 酸 acid **/ - public Float getAcid() { + public BigDecimal getAcid() { return acid; } /** 酸 acid **/ - public void setAcid(Float acid) { + public void setAcid(BigDecimal acid) { this.acid = acid; } /** 碱 alkali **/ - public Float getAlkali() { + public BigDecimal getAlkali() { return alkali; } /** 碱 alkali **/ - public void setAlkali(Float alkali) { + public void setAlkali(BigDecimal alkali) { this.alkali = alkali; } /** 有机 organic **/ - public Float getOrganic() { + public BigDecimal getOrganic() { return organic; } /** 有机 organic **/ - public void setOrganic(Float organic) { + public void setOrganic(BigDecimal organic) { this.organic = organic; } /** 固废 solid **/ - public Float getSolid() { + public BigDecimal getSolid() { return solid; } /** 固废 solid **/ - public void setSolid(Float solid) { + public void setSolid(BigDecimal solid) { this.solid = solid; } /** 医疗 medical **/ - public Float getMedical() { + public BigDecimal getMedical() { return medical; } /** 医疗 medical **/ - public void setMedical(Float medical) { + public void setMedical(BigDecimal medical) { this.medical = medical; } @@ -107,12 +123,12 @@ this.applyPerson = applyPerson == null ? null : applyPerson.trim(); } - /** 项目组 project **/ + /** 课题组 project **/ public String getProject() { return project; } - /** 项目组 project **/ + /** 课题组 project **/ public void setProject(String project) { this.project = project == null ? null : project.trim(); } @@ -146,4 +162,50 @@ public void setCreateTime(Date createTime) { this.createTime = createTime; } -} \ No newline at end of file + + /** 单号 tid **/ + public String getTid() { + return tid; + } + + /** 单号 tid **/ + public void setTid(String tid) { + this.tid = tid == null ? null : tid.trim(); + } + + /** 状态 待解决、已解决、已拒绝 status **/ + public String getStatus() { + return status; + } + + /** 状态 待解决、已解决、已拒绝 status **/ + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + /** 创建人 creator **/ + public String getCreator() { + return creator; + } + + /** 创建人 creator **/ + public void setCreator(String creator) { + this.creator = creator == null ? null : creator.trim(); + } + + public String getUpdator() { + return updator; + } + + public void setUpdator(String updator) { + this.updator = updator; + } + + public Date getUpdatetime() { + return updatetime; + } + + public void setUpdatetime(Date updatetime) { + this.updatetime = updatetime; + } +} diff --git a/src/main/java/com/nanometer/smartlab/entity/SysUser.java b/src/main/java/com/nanometer/smartlab/entity/SysUser.java index 9c29553..30c124f 100644 --- a/src/main/java/com/nanometer/smartlab/entity/SysUser.java +++ b/src/main/java/com/nanometer/smartlab/entity/SysUser.java @@ -6,6 +6,7 @@ import com.nanometer.smartlab.entity.enumtype.ApproverFlag; import com.nanometer.smartlab.entity.enumtype.SeeFlag; import com.nanometer.smartlab.entity.enumtype.ValidFlag; +import com.nanometer.smartlab.entity.enumtype.Waster; /** * Created by johnny on 17/11/18. @@ -33,6 +34,7 @@ private String containerCodeList; private String roleName; private String project; + private Waster waster; public String getId() { return id; @@ -49,7 +51,7 @@ public void setPoint(int point) { this.point = point; } - + public String getArp() { return arp; } @@ -201,4 +203,12 @@ public void setProject(String project) { this.project = project; } + + public Waster getWaster() { + return waster; + } + + public void setWaster(Waster waster) { + this.waster = waster; + } } diff --git a/src/main/java/com/nanometer/smartlab/entity/dto/HazardousWasteUser.java b/src/main/java/com/nanometer/smartlab/entity/dto/HazardousWasteUser.java index 8741a4c..0dc5902 100644 --- a/src/main/java/com/nanometer/smartlab/entity/dto/HazardousWasteUser.java +++ b/src/main/java/com/nanometer/smartlab/entity/dto/HazardousWasteUser.java @@ -3,12 +3,16 @@ import java.io.Serializable; public class HazardousWasteUser implements Serializable { - private String id; private String account; + private String name; private String password; - private String roleName; - + /**1危废处理人员 2危废管理员**/ + private int adminFlag; + private String project; + private String department; + private String company; + private String newpassword; public String getAccount() { return account; @@ -34,11 +38,51 @@ this.id = id; } - public String getRoleName() { - return roleName; + public int getAdminFlag() { + return adminFlag; } - public void setRoleName(String roleName) { - this.roleName = roleName; + public void setAdminFlag(int adminFlag) { + this.adminFlag = adminFlag; + } + + public String getProject() { + return project; + } + + public void setProject(String project) { + this.project = project; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNewpassword() { + return newpassword; + } + + public void setNewpassword(String newpassword) { + this.newpassword = newpassword; } } diff --git a/src/main/java/com/nanometer/smartlab/entity/dto/LaboratoryVo.java b/src/main/java/com/nanometer/smartlab/entity/dto/LaboratoryVo.java new file mode 100644 index 0000000..0bc0dfe --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/entity/dto/LaboratoryVo.java @@ -0,0 +1,65 @@ +package com.nanometer.smartlab.entity.dto; + +import java.util.ArrayList; +import java.util.List; + +public class LaboratoryVo { + private List<Laboratory> laboratoryList = new ArrayList<>(); + private List<LaboratoryUser> laboratoryUsers = new ArrayList<>(); + + public List<Laboratory> getLaboratoryList() { + return laboratoryList; + } + + public void setLaboratoryList(List<Laboratory> laboratoryList) { + this.laboratoryList = laboratoryList; + } + + public List<LaboratoryUser> getLaboratoryUsers() { + return laboratoryUsers; + } + + public void setLaboratoryUsers(List<LaboratoryUser> laboratoryUsers) { + this.laboratoryUsers = laboratoryUsers; + } + + public static class Laboratory{ + private String address; + private String department; + + public Laboratory(){ + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + } + + public static class LaboratoryUser{ + private String username; + + public LaboratoryUser(){ + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + } + +} diff --git a/src/main/java/com/nanometer/smartlab/entity/enumtype/Waster.java b/src/main/java/com/nanometer/smartlab/entity/enumtype/Waster.java new file mode 100644 index 0000000..f88ebd7 --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/entity/enumtype/Waster.java @@ -0,0 +1,37 @@ +package com.nanometer.smartlab.entity.enumtype; + +import java.util.HashMap; + +public enum Waster { + NULL(0, ""),NORMAL(1, "危废处理人员"),MANAGE(2, "危废管理员"); + private int key; + + private String text; + + private Waster(int key, String text) { + this.key = key; + this.text = text; + } + + public int getKey() { + return key; + } + + public String getText() { + return text; + } + + private static HashMap<Integer, Waster> map = new HashMap<Integer, Waster>(); + static { + for (Waster d : Waster.values()) { + map.put(d.key, d); + } + } + + public static Waster parse(Integer index) { + if (map.containsKey(index)) { + return map.get(index); + } + return null; + } +} diff --git a/src/main/java/com/nanometer/smartlab/entity/handler/WasterHandler.java b/src/main/java/com/nanometer/smartlab/entity/handler/WasterHandler.java new file mode 100644 index 0000000..6848320 --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/entity/handler/WasterHandler.java @@ -0,0 +1,33 @@ +package com.nanometer.smartlab.entity.handler; + +import com.nanometer.smartlab.entity.enumtype.Waster; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class WasterHandler extends BaseTypeHandler<Waster> { + + @Override + public Waster getNullableResult(ResultSet rs, String index) throws SQLException { + return Waster.parse(rs.getInt(index)); + } + + @Override + public Waster getNullableResult(ResultSet rs, int index) throws SQLException { + return Waster.parse(rs.getInt(index)); + } + + @Override + public Waster getNullableResult(CallableStatement cs, int index) throws SQLException { + return Waster.parse(cs.getInt(index)); + } + + @Override + public void setNonNullParameter(PreparedStatement ps, int index, Waster val, JdbcType arg3) throws SQLException { + ps.setInt(index, val.getKey()); + } +} diff --git a/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java b/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java index 32ef20e..55d5219 100644 --- a/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java +++ b/src/main/java/com/nanometer/smartlab/service/HazardousWasteService.java @@ -8,8 +8,27 @@ public interface HazardousWasteService { - List<HazardousWaste> selectAll(Date startTime, Date endTime, Integer offset, Integer pageSize); + List<HazardousWaste> selectAll(Date startTime, Date endTime,String status,String applyPerson,String project,String department,String tid,Integer offset, Integer pageSize); - int countAll(Date startTime, Date endTime); + int countAll(Date startTime, Date endTime,String status,String applyPerson,String project,String department,String tid); + List<Map> exportList(Date startTime, Date endTime, String status, String applyPerson, String project, String department,String tid); + + void export2Excel(List<Map> list) throws Exception; + + int countStatistics(Date startTime, Date endTime, String status, String applyPerson, String project, String department); + + List<HazardousWaste> selectStatistics(Date startTime, Date endTime, String status, String applyPerson, String project, String department, int first, int pageSize); + + List<Map> exportStatisticsList(Date startTime, Date endTime, String status, String applyPerson, String project, String department); + + void exportStatistics2Excel(List<Map> list)throws Exception; + + void insertInfo(HazardousWaste hazardousWaste); + + List<HazardousWaste> setAllWasters(String starttime, String endtime, String status, String applyPerson); + + HazardousWaste selectByTid(String tid); + + void updateWaste(HazardousWaste hazardousWaste); } diff --git a/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java index d32804f..5e8c800 100644 --- a/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/HazardousWasteServiceImpl.java @@ -2,13 +2,12 @@ import com.nanometer.smartlab.dao.HazardousWasteMapper; import com.nanometer.smartlab.entity.HazardousWaste; +import com.nanometer.smartlab.util.ExcelUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Service public class HazardousWasteServiceImpl implements HazardousWasteService{ @@ -17,20 +16,150 @@ private HazardousWasteMapper hazardousWasteMapper; @Override - public List<HazardousWaste> selectAll(Date startTime, Date endTime, Integer offset, Integer pageSize) { + public List<HazardousWaste> selectAll(Date startTime, Date endTime,String status,String applyPerson,String project,String department, + String tid, Integer offset, Integer pageSize) { Map<String, Object> params = new HashMap<>(); params.put("startTime", startTime); params.put("endTime", endTime); params.put("first", offset); params.put("pageSize", pageSize); + if (StringUtils.isNotBlank(status) && !status.equals("全部")){ + params.put("status", status); + } + params.put("applyPerson", applyPerson); + params.put("project", project); + params.put("department", department); + params.put("tid", tid); return hazardousWasteMapper.selectAll(params); } @Override - public int countAll(Date startTime, Date endTime) { + public int countAll(Date startTime, Date endTime,String status,String applyPerson,String project,String department,String tid) { Map<String, Object> params = new HashMap<>(); params.put("startTime", startTime); params.put("endTime", endTime); + if (StringUtils.isNotBlank(status) && !status.equals("全部")){ + params.put("status", status); + } + params.put("applyPerson", applyPerson); + params.put("project", project); + params.put("department", department); + params.put("tid", tid); return hazardousWasteMapper.countAll(params); } + + @Override + public List<Map> exportList(Date startTime, Date endTime, String status, String applyPerson, String project, String department,String tid) { + Map<String, Object> params = new HashMap<>(); + params.put("startTime", startTime); + params.put("endTime", endTime); + if (StringUtils.isNotBlank(status) && !status.equals("全部")){ + params.put("status", status); + } + params.put("applyPerson", applyPerson); + params.put("project", project); + params.put("department", department); + params.put("tid", tid); + return hazardousWasteMapper.selectExportList(params); + } + + @Override + public void export2Excel(List<Map> list) throws Exception { + Map<String,String> map = new LinkedHashMap<>(); + map.put("tid", "单号"); + map.put("status", "状态"); + map.put("acid", "酸性废液"); + map.put("alkali", "碱性废液"); + map.put("organic", "有机废液"); + map.put("solid", "固体废弃物"); + map.put("medical", "医疗废弃物"); + map.put("applyPerson", "确认者"); + map.put("project", "课题组"); + map.put("department", "部门"); + map.put("unit", "单位"); + map.put("creator", "创建者"); + map.put("createTime", "创建时间"); + ExcelUtils.export2Excel(list,"危废列表",map); + } + + @Override + public int countStatistics(Date startTime, Date endTime, String status, String applyPerson, String project, String department) { + Map<String, Object> params = new HashMap<>(); + params.put("startTime", startTime); + params.put("endTime", endTime); + if (StringUtils.isNotBlank(status) && !status.equals("全部")){ + params.put("status", status); + } + params.put("applyPerson", applyPerson); + params.put("project", project); + params.put("department", department); + return hazardousWasteMapper.countStatistics(params); + } + + @Override + public List<HazardousWaste> selectStatistics(Date startTime, Date endTime, String status, String applyPerson, String project, String department, int first, int pageSize) { + Map<String, Object> params = new HashMap<>(); + params.put("startTime", startTime); + params.put("endTime", endTime); + params.put("first", first); + params.put("pageSize", pageSize); + if (StringUtils.isNotBlank(status) && !status.equals("全部")){ + params.put("status", status); + } + params.put("applyPerson", applyPerson); + params.put("project", project); + params.put("department", department); + return hazardousWasteMapper.selectStatistics(params); + } + + @Override + public List<Map> exportStatisticsList(Date startTime, Date endTime, String status, String applyPerson, String project, String department) { + Map<String, Object> params = new HashMap<>(); + params.put("startTime", startTime); + params.put("endTime", endTime); + if (StringUtils.isNotBlank(status) && !status.equals("全部")){ + params.put("status", status); + } + params.put("applyPerson", applyPerson); + params.put("project", project); + params.put("department", department); + return hazardousWasteMapper.selectStatisticsExportList(params); + } + + @Override + public void exportStatistics2Excel(List<Map> list)throws Exception { + Map<String,String> map = new LinkedHashMap<>(); + map.put("status", "状态"); + map.put("acid", "酸性废液"); + map.put("alkali", "碱性废液"); + map.put("organic", "有机废液"); + map.put("solid", "固体废弃物"); + map.put("medical", "医疗废弃物"); + map.put("applyPerson", "确认者"); + map.put("project", "课题组"); + map.put("department", "部门"); + map.put("unit", "单位"); + ExcelUtils.export2Excel(list,"危废统计分析",map); + } + + @Override + public void insertInfo(HazardousWaste hazardousWaste) { + hazardousWasteMapper.insert(hazardousWaste); + } + + @Override + public List<HazardousWaste> setAllWasters(String starttime, String endtime, String status, String applyPerson) { + return hazardousWasteMapper.setAllWasters(starttime,endtime, status, applyPerson); + } + + @Override + public HazardousWaste selectByTid(String tid) { + return hazardousWasteMapper.selectByTid(tid); + } + + @Override + public void updateWaste(HazardousWaste hazardousWaste) { + hazardousWasteMapper.updateByPrimaryKeySelective(hazardousWaste); + } + } diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java index be5eac7..ab07a2d 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java @@ -283,7 +283,7 @@ @Override public List<String> selectProjectsByContainerCode(String containerCode) { String projects = sysLaboratoryContainerDao.selectProjectsByContainerCode(containerCode); - if (projects != null){ + if (projects != null){ return Arrays.asList(projects.split(",")); } return null; diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java index f8789fc..b7733c8 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java +++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java @@ -1,6 +1,7 @@ package com.nanometer.smartlab.service; import com.nanometer.smartlab.entity.SysLaboratory; +import com.nanometer.smartlab.entity.dto.LaboratoryVo; import java.util.List; import java.util.Map; @@ -35,4 +36,6 @@ void exportLab2Excel(List<Map> list) throws Exception; List<Map> exportLabList(String type, String name); + + List<LaboratoryVo.Laboratory> getLaboratoryByProject(String project); } diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java index e4c01c7..b169e9f 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java @@ -2,6 +2,7 @@ import com.nanometer.smartlab.dao.SysLaboratoryDao; import com.nanometer.smartlab.entity.SysLaboratory; +import com.nanometer.smartlab.entity.dto.LaboratoryVo; import com.nanometer.smartlab.exception.AlarmCode; import com.nanometer.smartlab.exception.AlarmException; import com.nanometer.smartlab.exception.BusinessException; @@ -251,7 +252,12 @@ return sysLaboratoryDao.exportLabList(params); } - @Override + @Override + public List<LaboratoryVo.Laboratory> getLaboratoryByProject(String project) { + return sysLaboratoryDao.getLaboratoryByProject(project); + } + + @Override @Transactional(propagation = Propagation.REQUIRED) public List<SysLaboratory> getSysLaboratoryListByDep(String depId) { try { diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserService.java b/src/main/java/com/nanometer/smartlab/service/SysUserService.java index 7902b02..89e4772 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysUserService.java +++ b/src/main/java/com/nanometer/smartlab/service/SysUserService.java @@ -2,6 +2,8 @@ import com.nanometer.smartlab.entity.SysReagent; import com.nanometer.smartlab.entity.SysUser; +import com.nanometer.smartlab.entity.dto.HazardousWasteUser; +import com.nanometer.smartlab.entity.dto.LaboratoryVo; import com.nanometer.smartlab.entity.dto.SysUserDto; import java.util.List; @@ -39,6 +41,7 @@ List<SysUserDto> getUserInfo(); - SysUser getUserByAccount(String account); + HazardousWasteUser getUserByAccount(String account); + List<LaboratoryVo.LaboratoryUser> getUserByProject(String project); } diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java index 58ffc46..449dc3d 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java @@ -4,6 +4,8 @@ import com.nanometer.smartlab.dao.SysUserDao; import com.nanometer.smartlab.entity.SysReagent; import com.nanometer.smartlab.entity.SysUser; +import com.nanometer.smartlab.entity.dto.HazardousWasteUser; +import com.nanometer.smartlab.entity.dto.LaboratoryVo; import com.nanometer.smartlab.entity.dto.SysUserDto; import com.nanometer.smartlab.entity.enumtype.ApproverFlag; import com.nanometer.smartlab.entity.enumtype.SeeFlag; @@ -351,11 +353,16 @@ } @Override - public SysUser getUserByAccount(String account) { + public HazardousWasteUser getUserByAccount(String account) { Map<String, String> params = new HashMap<>(); params.put("account", account); return sysUserDao.getUserByAccount(params); } + @Override + public List<LaboratoryVo.LaboratoryUser> getUserByProject(String project) { + return sysUserDao.getUserByProject(project); + } + } diff --git a/src/main/webapp/WEB-INF/config-mybatis.xml b/src/main/webapp/WEB-INF/config-mybatis.xml index 0635b1a..861a53f 100644 --- a/src/main/webapp/WEB-INF/config-mybatis.xml +++ b/src/main/webapp/WEB-INF/config-mybatis.xml @@ -30,8 +30,9 @@ <typeHandler handler="com.nanometer.smartlab.entity.handler.DangerousFlagHandler"/> <typeHandler handler="com.nanometer.smartlab.entity.handler.WarningLevelHandler"/> <typeHandler handler="com.nanometer.smartlab.entity.handler.ReplaceDictTypeHandler"/> + <typeHandler handler="com.nanometer.smartlab.entity.handler.WasterHandler"/> </typeHandlers> - + </configuration> diff --git a/src/main/webapp/sys_hazardous_waste.xhtml b/src/main/webapp/sys_hazardous_waste.xhtml index 4767b72..c3ec6f4 100644 --- a/src/main/webapp/sys_hazardous_waste.xhtml +++ b/src/main/webapp/sys_hazardous_waste.xhtml @@ -28,13 +28,39 @@ converter="timestampConvert" pattern="yyyy-MM-dd" locale="zh_CN"/> - <p:commandLink styleClass="search" process="@form" update="@form" actionListener="#{hazardousWasteController.modelChange}"/> + <p:outputLabel value="状态:"/> + <p:selectOneMenu value="#{hazardousWasteController.status}"> + <f:selectItems value="#{hazardousWasteController.statusList}" var="item" + itemLabel="#{item}" itemValue="#{item}"/> + </p:selectOneMenu> + <p:outputLabel value="确认者:"/> + <p:inputText value="#{hazardousWasteController.applyPerson}"/> + </p:panelGrid> + + <p:panelGrid styleClass="filter" columns="8"> + <p:outputLabel value="单号:"/> + <p:inputText value="#{hazardousWasteController.tid}"/> + <p:outputLabel value="课题组"></p:outputLabel> + <p:selectOneMenu value="#{hazardousWasteController.project}" filter="true" filterMatchMode="startsWith"> + <f:selectItem itemLabel="不选择课题组" /> + <f:selectItems value="#{sysProjectServiceImpl.getAll()}" + var="item" itemLabel="#{item.project}" itemValue="#{item.project}"/> + </p:selectOneMenu> + + <p:outputLabel value="部门"></p:outputLabel> + <p:selectOneMenu value="#{hazardousWasteController.department}" requiredMessage="请选择部门"> + <f:selectItem itemLabel="不选择部门"/> + <f:selectItems value="#{baseMetaService.getBaseMetaList(constants.BASE_META_GROUP_USER_DEPARTMENT)}" + var="item" itemLabel="#{item.metaValue}" itemValue="#{item.metaValue}"/> + </p:selectOneMenu> + + <p:commandLink styleClass="search" process="@form" update="@form" actionListener="#{hazardousWasteController.modelChange}"/> </p:panelGrid> </p:panel> <p:panel styleClass="center-body"> <p:panelGrid columns="5" styleClass="btn"> - <p:commandButton value="导出" styleClass="new-btn" ajax="false" actionListener="#{dangerousEncodeController.export2Excel}" /> + <p:commandButton value="导出" styleClass="new-btn" ajax="false" actionListener="#{hazardousWasteController.export2Excel}" /> </p:panelGrid> <p:dataTable id="hazardousWasteInfoMngDataTable" styleClass="data-table" @@ -48,26 +74,145 @@ rows="20" selectionMode="single" pageLinks="5"> - <p:column headerText="酸"> + <p:column headerText="单号" width="150"> + <h:outputText value="#{row.tid}"/> + </p:column> + <p:column headerText="状态"> + <h:outputText value="#{row.status}"/> + </p:column> + <p:column headerText="酸性废液"> <h:outputText value="#{row.acid}"/> </p:column> - <p:column headerText="碱"> + <p:column headerText="碱性废液"> <h:outputText value="#{row.alkali}"/> </p:column> - <p:column headerText="有机"> + <p:column headerText="有机废液"> <h:outputText value="#{row.organic}"/> </p:column> - <p:column headerText="固废"> + <p:column headerText="固体废弃物"> <h:outputText value="#{row.solid}"/> </p:column> - <p:column headerText="医疗"> + <p:column headerText="医疗废弃物"> <h:outputText value="#{row.medical}"/> </p:column> + <p:column headerText="确认者"> + <h:outputText value="#{row.applyPerson}"/> + </p:column> + <p:column headerText="课题组"> + <h:outputText value="#{row.project}"/> + </p:column> + <p:column headerText="部门"> + <h:outputText value="#{row.department}"/> + </p:column> + + <p:column headerText="单位"> + <h:outputText value="#{row.unit}"/> + </p:column> + + <p:column headerText="创建者"> + <h:outputText value="#{row.creator}"/> + </p:column> + + <p:column headerText="创建时间"> + <h:outputText value="#{row.createTime}"> + <f:convertDateTime pattern="yyyy-MM-dd" locale="zh_CN"></f:convertDateTime> + </h:outputText> + </p:column> + + </p:dataTable> + </p:panel> + </h:form> + </p:tab> + <p:tab title="统计分析"> + <h:form id="hazardousWasteAnalysisForm"> + <p:panel styleClass="center-header"> + <p:outputLabel styleClass="title" value="危废处理信息"/> + + <p:panelGrid styleClass="filter" columns="15"> + <p:outputLabel value="开始时间:"/> + <p:calendar value="#{hazardousWasteController.startTime}" + converter="timestampConvert" + pattern="yyyy-MM-dd" locale="zh_CN"/> + + <p:outputLabel value="结束时间:"/> + <p:calendar value="#{hazardousWasteController.endTime}" + converter="timestampConvert" + pattern="yyyy-MM-dd" locale="zh_CN"/> + + <p:outputLabel value="状态:"/> + <p:selectOneMenu value="#{hazardousWasteController.status}"> + <f:selectItems value="#{hazardousWasteController.statusList}" var="item" + itemLabel="#{item}" itemValue="#{item}"/> + </p:selectOneMenu> + + <p:outputLabel value="确认者:"/> + <p:inputText value="#{hazardousWasteController.applyPerson}"/> + + <p:outputLabel value="课题组"></p:outputLabel> + <p:selectOneMenu value="#{hazardousWasteController.project}" filter="true" filterMatchMode="startsWith"> + <f:selectItem itemLabel="不选择课题组" /> + <f:selectItems value="#{sysProjectServiceImpl.getAll()}" + var="item" itemLabel="#{item.project}" itemValue="#{item.project}"/> + </p:selectOneMenu> + + <p:outputLabel value="部门"></p:outputLabel> + <p:selectOneMenu value="#{hazardousWasteController.department}" requiredMessage="请选择部门"> + <f:selectItem itemLabel="不选择部门"/> + <f:selectItems value="#{baseMetaService.getBaseMetaList(constants.BASE_META_GROUP_USER_DEPARTMENT)}" + var="item" itemLabel="#{item.metaValue}" itemValue="#{item.metaValue}"/> + </p:selectOneMenu> + + <p:commandLink styleClass="search" process="@form" update="@form" actionListener="#{hazardousWasteController.modelAnalysisChange}"/> + + </p:panelGrid> + </p:panel> + <p:panel styleClass="center-body"> + <p:panelGrid columns="5" styleClass="btn"> + <p:commandButton value="导出" styleClass="new-btn" ajax="false" actionListener="#{hazardousWasteController.exportStatistics2Excel}" /> + </p:panelGrid> + <p:dataTable id="hazardousWasteInfoAnalysisDataTable" + styleClass="data-table" + paginator="true" + paginatorAlwaysVisible="false" + paginatorPosition="bottom" + lazy="true" value="#{hazardousWasteController.analysisDataModel}" + var="row" + rowKey="#{row.id}" + emptyMessage="无数据" + rows="20" + selectionMode="single" + pageLinks="5"> + + <p:column headerText="状态"> + <h:outputText value="#{row.status}"/> + </p:column> + <p:column headerText="酸性废液"> + <h:outputText value="#{row.acid}"/> + </p:column> + + <p:column headerText="碱性废液"> + <h:outputText value="#{row.alkali}"/> + </p:column> + + <p:column headerText="有机废液"> + <h:outputText value="#{row.organic}"/> + </p:column> + + <p:column headerText="固体废弃物"> + <h:outputText value="#{row.solid}"/> + </p:column> + + <p:column headerText="医疗废弃物"> + <h:outputText value="#{row.medical}"/> + </p:column> + <p:column headerText="确认者"> + <h:outputText value="#{row.applyPerson}"/> + </p:column> <p:column headerText="课题组"> <h:outputText value="#{row.project}"/> </p:column> @@ -83,76 +228,6 @@ </p:dataTable> </p:panel> </h:form> - </p:tab> - <p:tab title="统计分析"> - <h:form id="hazardousWasteAnalysisForm"> - <p:panel styleClass="center-header"> - <p:outputLabel styleClass="title" value="危废处理信息"/> - - <p:panelGrid styleClass="filter" columns="9"> - <p:outputLabel value="开始时间:"/> - <p:calendar value="#{hazardousWasteController.startTime}" - converter="timestampConvert" - pattern="yyyy-MM-dd" locale="zh_CN"/> - - <p:outputLabel value="结束时间:"/> - <p:calendar value="#{hazardousWasteController.endTime}" - converter="timestampConvert" - pattern="yyyy-MM-dd" locale="zh_CN"/> - - <p:commandLink styleClass="search" process="@form" update="@form" actionListener="#{hazardousWasteController.modelChange}"/> - - </p:panelGrid> - </p:panel> - <p:panel styleClass="center-body"> - </p:panel> - </h:form> - - <p:dataTable id="hazardousWasteInfoAnalysisDataTable" - styleClass="data-table" - paginator="true" - paginatorAlwaysVisible="false" - paginatorPosition="bottom" - lazy="true" value="#{hazardousWasteController.dataModel}" - var="row" - rowKey="#{row.id}" - emptyMessage="无数据" - rows="20" - selectionMode="single" - pageLinks="5"> - <p:column headerText="酸"> - <h:outputText value="#{row.acid}"/> - </p:column> - - <p:column headerText="碱"> - <h:outputText value="#{row.alkali}"/> - </p:column> - - <p:column headerText="有机"> - <h:outputText value="#{row.organic}"/> - </p:column> - - <p:column headerText="固废"> - <h:outputText value="#{row.solid}"/> - </p:column> - - <p:column headerText="医疗"> - <h:outputText value="#{row.medical}"/> - </p:column> - - <p:column headerText="课题组"> - <h:outputText value="#{row.project}"/> - </p:column> - - <p:column headerText="部门"> - <h:outputText value="#{row.department}"/> - </p:column> - - <p:column headerText="单位"> - <h:outputText value="#{row.unit}"/> - </p:column> - - </p:dataTable> </p:tab> </p:tabView> diff --git a/src/main/webapp/user_mng.xhtml b/src/main/webapp/user_mng.xhtml index 54f3911..09ccb1b 100644 --- a/src/main/webapp/user_mng.xhtml +++ b/src/main/webapp/user_mng.xhtml @@ -128,6 +128,10 @@ <h:outputText value="#{row.seeFlag!=null?row.seeFlag.text:''}"></h:outputText> </p:column> + <p:column headerText="危废人员"> + <h:outputText value="#{row.waster!=null?row.waster.text:''}"></h:outputText> + </p:column> + <p:column headerText="更新时间"> <h:outputText value="#{row.updateTime!=null?row.updateTime:''}"> <f:convertDateTime pattern="yyyy-M-d HH:mm" /></h:outputText> @@ -225,6 +229,14 @@ <p:inputTextarea autoResize="false" style="height: 80px" value="#{userMngController.sysUser.memo}" maxlength="200"></p:inputTextarea> + + <p:outputLabel value="危废角色"></p:outputLabel> + <p:selectOneMenu value="#{userMngController.sysUser.waster}" + required="true" requiredMessage="请选择危废角色"> + <f:converter converterId="wasterConvert"></f:converter> + <f:selectItems value="#{userMngController.wasterSelectList}" + var="item" itemLabel="#{item.text}" itemValue="#{item}"></f:selectItems> + </p:selectOneMenu> </p:panelGrid> <p:panel styleClass="btn"> <p:commandButton value="保存" actionListener="#{userMngController.onSaveBtnClick}" -- Gitblit v1.9.2