From df47c9300bfe6c641c88707aa5b54591ab4c004c Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期五, 11 六月 2021 15:18:58 +0800 Subject: [PATCH] 订单领取:过期处理(确认和过期 状态处理),增加状态过期(需要将数据库字段加长) 实验室选中问题 仓库领取的仓库不存在问题 --- src/main/java/com/nanometer/smartlab/service/OpeApplyService.java | 4 src/main/webapp/warehouse_reagent_use.xhtml | 1 src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatus.java | 20 +++++- src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml | 38 +++++++++++- src/main/webapp/warehouse_reagent_use_person.xhtml | 1 src/main/webapp/warehouse_stock_mng.xhtml | 18 +++++ src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java | 16 ++++- src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java | 60 +++++++++++++++++++- 8 files changed, 137 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java index 7cff03d..1440034 100644 --- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java @@ -173,6 +173,8 @@ @Value("${institute.name}") String instituteName; + private boolean isExpired; + private Hashtable printTable; public Hashtable getPrintTable() { @@ -1518,6 +1520,10 @@ if(selectWarehouseReserve.getFlag()==1){ list.add(selectWarehouseReserve); }else{ + if (selectWarehouseReserve.getWarehouseId() == null) { + FacesUtils.warn("仓库不存在。"); + return; + } list2.add(selectWarehouseReserve); } } @@ -1782,11 +1788,11 @@ } try { - int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id, reagentId, userName, productSn, applyCode, status, isAllApply); + int count = opeApplyService.getOpeApplyReserveTotalCountByNameFor(id, reagentId, userName, productSn, applyCode, status, isAllApply,isExpired); this.setRowCount(count); if (count > 0) { list = opeApplyService.getOpeApplyReserveListByNameFor(id, reagentId, userName, first, - pageSize, productSn, applyCode, status, isAllApply); + pageSize, productSn, applyCode, status, isAllApply,isExpired); } } catch (Exception e) { logger.error(e); @@ -1891,7 +1897,7 @@ realDataList=selectedListForPerson; }else { realDataList = opeApplyService.getOpeApplyReserveListByNameFor(id,reagentId, userName, null, - null,productSn,applyCode,status,isAllApply); + null,productSn,applyCode,status,isAllApply,isExpired); } List<String> headerList = new ArrayList<>(); headerList.add("申购编号"); @@ -2744,6 +2750,7 @@ public void resetLaboratory(){ laboratory = null; + laboratoryId = null; laboratoryContainers = null; //getLaboratory(); //getLaboratoryContainers(); @@ -3094,4 +3101,51 @@ public void setIsAllApply(Integer isAllApply) { this.isAllApply = isAllApply; } + + public boolean getIsExpired() { + return isExpired; + } + + public void setIsExpired(boolean isExpired) { + this.isExpired = isExpired; + } + + //过期处理 + public void expireOrder() { + //1.判断当前订单是否是已入库的状态 + if (this.selectedListForPerson.size() < 1) { + FacesUtils.warn("请选择数据。"); + return; + } + ArrayList<String> ids = new ArrayList<>(); + for (OpeApplyReserve oa : this.selectedListForPerson) { + ids.add(oa.getId()); + if (oa.getStatus() != ApplyStatus.SUPPLIER_CONFIRM) { + FacesUtils.warn("只能让已确认状态的单子过期。"); + return; + } + } + + opeApplyService.updateOpeApplyStatus(ApplyStatus.EXPIRED, null, ids); + FacesUtils.warn("操作成功。"); + + + } + + public void recoverOrder(){ + if (this.selectedListForPerson.size() < 1) { + FacesUtils.warn("请选择数据。"); + return; + } + ArrayList<String> ids = new ArrayList<>(); + for (OpeApplyReserve oa : this.selectedListForPerson) { + ids.add(oa.getId()); + if (oa.getStatus() != ApplyStatus.EXPIRED) { + FacesUtils.warn("只能让过期单子恢复确认。"); + return; + } + } + opeApplyService.updateOpeApplyStatus(ApplyStatus.SUPPLIER_CONFIRM, null, ids); + FacesUtils.warn("操作成功。"); + } } diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml index d6b7303..f25e743 100644 --- a/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml @@ -232,7 +232,11 @@ </update> <update id="updateOpeApplyStatus" parameterType="java.util.Map" > - update ope_apply set status=#{status}, memo=#{memo}, update_time=now() + update ope_apply set status=#{status}, + <if test="memo !=null and memo != ''"> + memo=#{memo}, + </if> + update_time=now() where id in <foreach collection="applyIds" item="item" index="index" open="(" separator="," close=")"> #{item} @@ -360,7 +364,7 @@ LEFT JOIN base_meta AS bm1 ON sr.product_home = bm1.id LEFT JOIN sys_project as project on project.project = su.project LEFT JOIN sys_user as su1 on su1.id = project.sys_user_id - where oa.valid_flag = 1 and (oa.status=4 or oa.status=6) + where oa.valid_flag = 1 and (oa.status=4 or oa.status=6 or oa.status = 10) <include refid="getOpeApplyReserveList_queryWhereSql" /> <if test="isAllApply != null"> <choose> @@ -426,8 +430,34 @@ LEFT JOIN base_meta AS bm1 ON sr.product_home = bm1.id LEFT JOIN sys_project as project on project.project = su.project LEFT JOIN sys_user as su1 on su1.id = project.sys_user_id - where oa.valid_flag = 1 and (oa.status=4 or oa.status=6) - <include refid="getOpeApplyReserveList_queryWhereSql" /> + where oa.valid_flag = 1 and ( + <choose> + <when test="status == @com.nanometer.smartlab.entity.enumtype.ApplyStatus@EXPIRED"> + oa.status = 10 + </when> + <otherwise> + oa.status=4 or oa.status=6 + </otherwise> + </choose> + ) + <if test="reagentName != null and reagentName != ''"> + and sr.name like concat('%',#{reagentName},'%') + </if> + <if test="personName != null and personName != ''"> + and su.name like concat('%',#{personName},'%') + </if> + <if test="userId != null and userId != ''"> + and oa.apply_user_id =#{userId} + </if> + <if test="status != null and status != ''"> + and oa.status =#{status} + </if> + <if test="productSn != null and productSn != ''"> + and sr.product_sn like concat('%',#{productSn},'%') + </if> + <if test="applyCode != null and applyCode != ''"> + and oa.apply_code = #{applyCode} + </if> <if test="isAllApply != null"> <choose> <when test="isAllApply == 1"> diff --git a/src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatus.java b/src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatus.java index 2a6d0c5..dcddaa4 100644 --- a/src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatus.java +++ b/src/main/java/com/nanometer/smartlab/entity/enumtype/ApplyStatus.java @@ -3,7 +3,19 @@ import java.util.HashMap; public enum ApplyStatus { - REFUSE(0, "拒绝"), PENDING_APPROVAL(1, "待审批"), APPROVED(2, "已审批"), PENDING_PURCHASE(3, "待采购"), STORAGE(4, "已入库"), CANCEL(5, "取消"),SUPPLIER_CONFIRM(6,"已确认"),SUPPLIER_CANCEL(7,"已取消"),FINISHED(8,"已完成"),UNCOMPLETED(9,"未完成"); + REFUSE(0, "拒绝"), + PENDING_APPROVAL(1, "待审批"), + APPROVED(2, "已审批"), + PENDING_PURCHASE(3, "待采购"), + STORAGE(4, "已入库"), + CANCEL(5, "取消"), + SUPPLIER_CONFIRM(6,"已确认"), + SUPPLIER_CANCEL(7,"已取消"), + FINISHED(8,"已完成"), + UNCOMPLETED(9,"未完成"), + + + EXPIRED(10,"过期"),; private int key; private String text; @@ -27,13 +39,13 @@ map.put(d.key, d); } } - + public static ApplyStatus parse(Integer index) { if(map.containsKey(index)){ return map.get(index); } return null; } - - + + } diff --git a/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java b/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java index 63b4259..c2d18cd 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeApplyService.java @@ -55,9 +55,9 @@ int getOpeApplyReserveTotalCountByName(String id,String reagentName, String personName); List<OpeApplyReserve> getOpeApplyReserveListByName(String id,String reagentName, String personName, Integer first, Integer pageSize); - int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status,Integer isAllApply); + int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status,Integer isAllApply,boolean isExpired); List<OpeApplyReserve> getOpeApplyReserveListByNameFor(String id,String reagentName, String personName, Integer first, - Integer pageSize,String productSn,String applyCode,Integer status,Integer isAllApply); + Integer pageSize,String productSn,String applyCode,Integer status,Integer isAllApply,boolean isExpired); public boolean updaetOpeApplyPrice(BigDecimal applyPrice,String id); public boolean updaetOpeApplyStockFlag(int stockFlag,String id); public boolean cancelApply(ApplyStatus status,String id); diff --git a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java index e84cdfa..88d24c1 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java @@ -530,7 +530,7 @@ } @Override - public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status,Integer isAllApply) { + public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status,Integer isAllApply,boolean isExpired) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentName); @@ -538,7 +538,11 @@ params.put("userId",id); params.put("productSn",productSn); params.put("applyCode",applyCode); - params.put("status",status); + if (isExpired) { + params.put("status",ApplyStatus.EXPIRED); + }else{ + params.put("status", status); + } params.put("isAllApply",isAllApply); return this.opeApplyDao.getOpeApplyReserveTotalCountFor(params); } catch (DataAccessException e) { @@ -549,7 +553,7 @@ } @Override public List<OpeApplyReserve> getOpeApplyReserveListByNameFor(String id,String reagentName, String personName, Integer first, - Integer pageSize,String productSn,String applyCode,Integer status,Integer isAllApply) { + Integer pageSize,String productSn,String applyCode,Integer status,Integer isAllApply,boolean isExpired) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentName); @@ -559,7 +563,11 @@ params.put("pageSize", pageSize); params.put("productSn",productSn); params.put("applyCode",applyCode); - params.put("status",status); + if (isExpired) { + params.put("status",ApplyStatus.EXPIRED); + }else{ + params.put("status", status); + } params.put("isAllApply",isAllApply); return this.opeApplyDao.getOpeApplyReserveListFor(params); } catch (DataAccessException e) { diff --git a/src/main/webapp/warehouse_reagent_use.xhtml b/src/main/webapp/warehouse_reagent_use.xhtml index 69d8cb8..790913e 100644 --- a/src/main/webapp/warehouse_reagent_use.xhtml +++ b/src/main/webapp/warehouse_reagent_use.xhtml @@ -48,7 +48,6 @@ <p:outputLabel value="实验室试剂柜:"></p:outputLabel> <p:selectOneMenu value="#{warehouseStockMngController.laboratoryContainerId}" id="stacks" > -<!-- <f:ajax listener="#{warehouseStockMngController.setContainerId}"/>--> <f:selectItems value="#{warehouseStockMngController.laboratoryContainers}" var="item" itemLabel="#{item.name}" itemValue="#{item.id}"></f:selectItems> </p:selectOneMenu> diff --git a/src/main/webapp/warehouse_reagent_use_person.xhtml b/src/main/webapp/warehouse_reagent_use_person.xhtml index cb9d1d0..e580c46 100644 --- a/src/main/webapp/warehouse_reagent_use_person.xhtml +++ b/src/main/webapp/warehouse_reagent_use_person.xhtml @@ -45,7 +45,6 @@ <p:outputLabel value="实验室试剂柜:"></p:outputLabel> <p:selectOneMenu value="#{warehouseStockMngController.laboratoryContainerId}" id="stacks" > - <f:ajax listener="#{warehouseStockMngController.setContainerId}"/> <f:selectItems value="#{warehouseStockMngController.laboratoryContainers}" var="item" itemLabel="#{item.name}" itemValue="#{item.id}"></f:selectItems> </p:selectOneMenu> diff --git a/src/main/webapp/warehouse_stock_mng.xhtml b/src/main/webapp/warehouse_stock_mng.xhtml index de017d9..9978d02 100644 --- a/src/main/webapp/warehouse_stock_mng.xhtml +++ b/src/main/webapp/warehouse_stock_mng.xhtml @@ -360,7 +360,7 @@ <br/> <h:form id="warehouseStockMngFormForPerson"> <p:panel styleClass="center-header" style="border-bottom:none;"> - <p:panelGrid styleClass="filter" columns="14"> + <p:panelGrid styleClass="filter" columns="16"> <style type="text/css"> .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all{ min-width: 60px !important; @@ -384,6 +384,9 @@ <f:selectItems value="#{warehouseStockMngController.statusSelectList}" var="item" itemLabel="#{item.text}" itemValue="#{item.key}"></f:selectItems> </p:selectOneMenu> + <p:outputLabel value="过期:"></p:outputLabel> + <p:selectBooleanCheckbox value="#{warehouseStockMngController.isExpired}" + itemLabel=""/> <p:outputLabel value="已领用:"></p:outputLabel> <p:selectOneMenu value="#{warehouseStockMngController.isAllApply}" style="width: 60px;"> @@ -398,7 +401,7 @@ <p:panel styleClass="center-body"> - <p:panelGrid columns="3" styleClass="btn" rendered="#{warehouseStockMngController.editFlag==1}"> + <p:panelGrid columns="7" styleClass="btn" rendered="#{warehouseStockMngController.editFlag==1}"> <p:commandButton value="入库" styleClass="edit-btn" process="@form" actionListener="#{warehouseStockMngController.addInputStorageOrder}" disabled="#{warehouseStockMngController.editFlag==0}" @@ -411,6 +414,17 @@ oncomplete="$('#showTabOrder').css('display','block');$('#putInStorage').css('display','none');" update="@(.tmpOrder)" ></p:commandButton> + + <p:commandButton value="过期处理" styleClass="edit-btn" process="@form" + actionListener="#{warehouseStockMngController.expireOrder}" + disabled="#{warehouseStockMngController.editFlag==0}" + update=":centerRootPanel" + ></p:commandButton> + <p:commandButton value="恢复处理" styleClass="edit-btn" process="@form" + actionListener="#{warehouseStockMngController.recoverOrder}" + disabled="#{warehouseStockMngController.editFlag==0}" + update=":centerRootPanel" + ></p:commandButton> <p:commandButton update=":centerRootPanel" actionListener="#{warehouseStockMngController.onExportFileBtnClickOrder}" ajax="false" value="导出" styleClass="new-btn" /> </p:panelGrid> -- Gitblit v1.9.2