From b6576a4db959d2551e343a8bb0045aa67387aacc Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期一, 28 二月 2022 13:12:44 +0800 Subject: [PATCH] 库房状态管理 --- src/main/java/com/nanometer/smartlab/controller/WarehouseStatusController.java | 77 +++++++++++++++ src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusService.java | 10 ++ src/main/webapp/WEB-INF/spring-menu.xml | 8 + src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java | 31 ++++++ src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.java | 10 ++ src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml | 50 ++++++++++ src/main/webapp/warehouse_status_mng.xhtml | 82 ++++++++++++++++ 7 files changed, 267 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStatusController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStatusController.java new file mode 100644 index 0000000..e1b1c9a --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStatusController.java @@ -0,0 +1,77 @@ +package com.nanometer.smartlab.controller; + + +import com.nanometer.smartlab.entity.SysWarehouse; +import com.nanometer.smartlab.entity.SysWarehouseStatus; +import com.nanometer.smartlab.service.SysWarehouseService; +import com.nanometer.smartlab.service.SysWarehouseStatusService; +import org.primefaces.model.LazyDataModel; +import org.primefaces.model.SortOrder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Controller +@Scope("session") +public class WarehouseStatusController extends BaseController{ + + + private LazyDataModel<SysWarehouseStatus> dataModel; + + @Resource + private SysWarehouseStatusService sysWarehouseStatusService; + + private String name; + private Date startTime; + private Date endTime; + + public LazyDataModel<SysWarehouseStatus> getDataModel() { + if (this.dataModel == null) { + this.dataModel = new LazyDataModel<SysWarehouseStatus>() { + @Override + public List<SysWarehouseStatus> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { + int count = sysWarehouseStatusService.getCount(name, startTime, endTime); + this.setRowCount(count); + return count != 0 ? sysWarehouseStatusService.selectList(name, startTime, endTime, first, pageSize) : new ArrayList<>(); + } + + @Override + public SysWarehouseStatus getRowData(String rowKey) { + return sysWarehouseStatusService.getById(rowKey); + } + }; + } + return dataModel; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } +} diff --git a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.java b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.java index e0a26a3..b62681e 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.java +++ b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.java @@ -2,8 +2,18 @@ import com.nanometer.smartlab.entity.SysWarehouse; import com.nanometer.smartlab.entity.SysWarehouseStatus; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; +import java.util.List; public interface SysWarehouseStatusDao { int insertOne(SysWarehouseStatus one); + + int selectCount(@Param("params") Map<String, Object> params); + + List<SysWarehouseStatus> selectList(@Param("params") Map<String, Object> params); + + SysWarehouseStatus selectById(String id); } diff --git a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml index 099ff6c..e851ad8 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseStatusDao.xml @@ -2,6 +2,17 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.nanometer.smartlab.dao.SysWarehouseStatusDao"> <resultMap id="BaseMap" type="com.nanometer.smartlab.entity.SysWarehouseStatus"> + <id property="id" column="id"/> + <result property="name" column="name" /> + <result property="type" column="type"/> + <result property="temperature" column="temperature"/> + <result property="humidity" column="humidity"/> + <result property="creator" column="creator"/> + <result property="createTime" column="create_time"/> + <result property="validFlag" column="valid_flag"/> + <result property="warehouseId" column="warehouse_id"/> + <result property="warning" column="warning"/> + <result property="selectDate" column="select_date"/> </resultMap> <insert id="insertOne" parameterType="com.nanometer.smartlab.entity.SysWarehouseStatus"> @@ -10,5 +21,44 @@ values (#{type},#{name},#{temperature},#{humidity},#{creator},#{createTime},1,#{warehouseId},#{selectDate},#{warning}) </insert> + <select id="selectCount" resultType="java.lang.Integer"> + select count(0) + from sys_warehouse_status + <where> + <if test="params.name != null and params.name != ''"> + name = #{params.name} + </if> + <if test="params.startTime != null and params.startTime != ''"> + and select_date >= #{params.startTime} + </if> + <if test="params.endTime != null and params.endTime != ''"> + and select_date <= #{params.endTime} + </if> + </where> + </select> + + <select id="selectList" resultMap="BaseMap"> + select * + from sys_warehouse_status + <where> + <if test="params.name != null and params.name != ''"> + and name = #{params.name} + </if> + <if test="params.startTime != null and params.startTime != ''"> + and select_date >= #{params.startTime} + </if> + <if test="params.endTime != null and params.endTime != ''"> + and select_date <= #{params.endTime} + </if> + </where> + <if test="params.first != null and params.pageSize != null"> + limit #{params.first},#{params.pageSize} + </if> + </select> + <select id="selectById" resultType="com.nanometer.smartlab.entity.SysWarehouseStatus"> + select * + from sys_warehouse_status + where id = #{id} + </select> </mapper> diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusService.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusService.java index a3d56e3..caa589b 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusService.java +++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusService.java @@ -1,8 +1,18 @@ package com.nanometer.smartlab.service; +import com.nanometer.smartlab.entity.SysWarehouse; import com.nanometer.smartlab.entity.SysWarehouseStatus; + +import java.util.Date; +import java.util.List; public interface SysWarehouseStatusService { void addOne(SysWarehouseStatus one); + + int getCount(String name, Date startTime, Date endTime); + + List<SysWarehouseStatus> selectList(String name, Date startTime, Date endTime, int first, int pageSize); + + SysWarehouseStatus getById(String rowKey); } diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java index 0479715..0d1db46 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseStatusServiceImpl.java @@ -11,8 +11,12 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; -@Service +@Service("sysWarehouseStatusService") public class SysWarehouseStatusServiceImpl implements SysWarehouseStatusService { @Resource @@ -64,4 +68,29 @@ one.setWarning(warningSb.toString()); sysWarehouseStatusDao.insertOne(one); } + + @Override + public int getCount(String name, Date startTime, Date endTime) { + Map<String,Object> params = new HashMap<>(); + params.put("name", name); + params.put("startTime", startTime); + params.put("endTime", endTime); + return sysWarehouseStatusDao.selectCount(params); + } + + @Override + public List<SysWarehouseStatus> selectList(String name, Date startTime, Date endTime, int first, int pageSize) { + Map<String,Object> params = new HashMap<>(); + params.put("name", name); + params.put("startTime", startTime); + params.put("endTime", endTime); + params.put("first", first); + params.put("pageSize", pageSize); + return sysWarehouseStatusDao.selectList(params); + } + + @Override + public SysWarehouseStatus getById(String rowKey) { + return sysWarehouseStatusDao.selectById(rowKey); + } } diff --git a/src/main/webapp/WEB-INF/spring-menu.xml b/src/main/webapp/WEB-INF/spring-menu.xml index b6b5713..590a754 100644 --- a/src/main/webapp/WEB-INF/spring-menu.xml +++ b/src/main/webapp/WEB-INF/spring-menu.xml @@ -102,6 +102,14 @@ <property name="privilegeCode" value="container_status_mng"></property> <property name="initMethod" value="initPage"></property> </bean> + + <bean class="com.nanometer.smartlab.model.MenuModel"> + <property name="id" value="warehouse_status_mng"></property> + <property name="title" value="库房状态管理"></property> + <property name="page" value="warehouse_status_mng"></property> + <property name="privilegeCode" value="warehouse_status_mng"></property> + <property name="initMethod" value="initPage"></property> + </bean> <bean class="com.nanometer.smartlab.model.MenuModel"> <property name="id" value="laboratory_store"></property> <property name="dispInMenuList" value="false"></property> diff --git a/src/main/webapp/warehouse_status_mng.xhtml b/src/main/webapp/warehouse_status_mng.xhtml new file mode 100644 index 0000000..ff49470 --- /dev/null +++ b/src/main/webapp/warehouse_status_mng.xhtml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" + xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" + xmlns:c="http://java.sun.com/jsp/jstl/core"> +<ui:composition> + <h:form id="warehouseStatusMngForm"> + <p:panel styleClass="center-header"> + <p:outputLabel styleClass="title" value="仓库状态管理"/> + <p:panelGrid styleClass="filter" columns="7"> + + <p:outputLabel value="仓库名:"/> + <p:selectOneMenu value="#{warehouseStatusController.name}"> + <f:selectItem itemLabel="全部" itemValue="#{null}" noSelectionOption="true"/> + <f:selectItems value="#{sysWarehouseService.getSysWarehouseList(null,null,null,null)}" + var="item" itemLabel="#{item.name}" itemValue="#{item.name}"/> + </p:selectOneMenu> + + <p:outputLabel for="startTime" value="开始时间:" /> + <p:calendar id="startTime" value="#{warehouseStatusController.startTime}" + pattern="yyyy-MM-dd HH:mm:ss" locale="zh_CN"/> + + <p:outputLabel for="endTime" value="结束时间:" /> + <p:calendar id="endTime" value="#{warehouseStatusController.endTime}" + pattern="yyyy-MM-dd HH:mm:ss" locale="zh_CN"/> + + <p:commandLink styleClass="search" process="@form" update="@form"/> + </p:panelGrid> + </p:panel> + <style type="text/css"> + .warning{color:red} + </style> + <p:panel styleClass="center-body"> + + <p:dataTable id="warehouseStatusMngDataTable" styleClass="data-table" + paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom" + lazy="true" value="#{warehouseStatusController.dataModel}" var="row" + rowKey="#{row.id}" emptyMessage="无数据" + rows="20" pageLinks="5"> + + + <p:column headerText="仓库类型" style="text-align: center;" styleClass="#{row.warning == null?'warning':''}"> + <h:outputText value="#{row.type}"/> + </p:column> + + <p:column headerText="仓库名" style="text-align: center" styleClass="#{row.warning == null?'warning':''}"> + <h:outputText value="#{row.name}" /> + </p:column> + + <p:column headerText="温度" style="text-align: center" styleClass="#{row.warning == null?'warning':''}"> + <h:outputText + value="#{row.temperature}" /> + </p:column> + + <p:column headerText="湿度" style="text-align: center" styleClass="#{row.warning == null?'warning':''}"> + <h:outputText + value="#{row.humidity}"/> + </p:column> + + <p:column headerText="提交人" style="text-align: center" styleClass="#{row.warning == null?'warning':''}"> + <h:outputText + value="#{row.creator}"/> + </p:column> + + <p:column headerText="日期" style="text-align: center" styleClass="#{row.warning == null?'warning':''}"> + <h:outputText + value="#{row.selectDate}"> + <f:convertDateTime pattern="yyyy-M-d HH:mm:ss" /></h:outputText> + </p:column> + + + + + </p:dataTable> + </p:panel> + </h:form> +</ui:composition> +</html> -- Gitblit v1.9.2