From 61b0fb5802f31e2f7673ddbf30e6d21220b6c7da Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期日, 07 二月 2021 09:05:42 +0800
Subject: [PATCH] 仓库货柜修改

---
 src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerService.java        |    6 +
 src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java             |   16 +++
 src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml                            |    8 
 src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java                 |    2 
 src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java |    2 
 src/main/java/com/nanometer/smartlab/dao/SysWarehouseContainerDao.xml                 |   11 +
 src/main/java/com/nanometer/smartlab/controller/WarehouseMngController.java           |   34 ++++++
 src/main/java/com/nanometer/smartlab/controller/WarehouseContainerMngController.java  |   20 +++-
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java                        |    2 
 src/main/java/com/nanometer/smartlab/entity/SysWarehouse.java                         |   10 ++
 src/main/java/com/nanometer/smartlab/dao/SysWarehouseDao.xml                          |    7 
 src/main/webapp/warehouse_mng.xhtml                                                   |   13 ++
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml                         |    6 +
 src/main/java/com/nanometer/smartlab/entity/SysWarehouseContainer.java                |   10 ++
 src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerServiceImpl.java    |   97 +++++++++++++++++++
 src/main/webapp/warehouse_container_mng.xhtml                                         |   10 +
 src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java      |    7 +
 17 files changed, 240 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
index ed60a29..5534258 100644
--- a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
@@ -471,7 +471,7 @@
 	}
 
 	public List<SysController> getControllers() {
-		this.controllers = sysControllerService.getAllControllerList();
+			this.controllers = sysControllerService.getAllControllerList();
 
 		return controllers;
 	}
diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseContainerMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseContainerMngController.java
index b9afd31..9cde196 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseContainerMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseContainerMngController.java
@@ -128,8 +128,11 @@
 					FacesUtils.warn("货柜条码已存在。");
 					return;
 				}
-
-				this.sysWarehouseContainerService.insertSysWarehouseContainer(sysWarehouseContainer);
+				if ("智能柜".equals(baseMetaService.getBaseMetaValue(sysWarehouseContainer.getType()))) {
+					sysWarehouseContainerService.insertSysWarehouseContainer2(sysWarehouseContainer);
+				}else{
+					this.sysWarehouseContainerService.insertSysWarehouseContainer(sysWarehouseContainer);
+				}
 
 				FacesUtils.info("新建成功。");
 				RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
@@ -166,8 +169,11 @@
 					FacesUtils.warn("货柜条码已存在。");
 					return;
 				}
-
-				this.sysWarehouseContainerService.updateSysWarehouseContainer(sysWarehouseContainer);
+				if ("智能柜".equals(baseMetaService.getBaseMetaValue(sysWarehouseContainer.getType()))) {
+					this.sysWarehouseContainerService.updateSysWarehouseContainer2(sysWarehouseContainer);
+				}else{
+					this.sysWarehouseContainerService.updateSysWarehouseContainer(sysWarehouseContainer);
+				}
 
 				FacesUtils.info("修改成功。");
 				RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
@@ -184,8 +190,12 @@
 				FacesUtils.warn("请选择数据。");
 				return;
 			}
+			if ("智能柜".equals(baseMetaService.getBaseMetaValue(sysWarehouseContainer.getType()))) {
+				this.sysWarehouseContainerService.deleteSysWarehouseContainer2(this.selectedList);
+			}else{
+				this.sysWarehouseContainerService.deleteSysWarehouseContainer(this.selectedList);
+			}
 
-			this.sysWarehouseContainerService.deleteSysWarehouseContainer(this.selectedList);
 
 			FacesUtils.info("删除成功。");
 		} catch (Exception e) {
diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseMngController.java
index 9038eeb..86b00ef 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseMngController.java
@@ -6,6 +6,15 @@
 
 import javax.annotation.Resource;
 
+import com.nanometer.smartlab.dao.SysLaboratoryDao;
+import com.nanometer.smartlab.entity.SysLaboratory;
+import com.nanometer.smartlab.entity.SysLaboratoryContainer;
+import com.nanometer.smartlab.entity.SysWarehouseContainer;
+import com.nanometer.smartlab.exception.BusinessException;
+import com.nanometer.smartlab.exception.ExceptionEnumCode;
+import com.nanometer.smartlab.service.SysLaboratoryContainerService;
+import com.nanometer.smartlab.service.SysLaboratoryService;
+import com.nanometer.smartlab.service.SysWarehouseContainerService;
 import org.apache.log4j.Logger;
 import org.primefaces.context.RequestContext;
 import org.primefaces.model.LazyDataModel;
@@ -31,6 +40,12 @@
 
 	@Resource
 	private SysWarehouseService sysWarehouseService;
+	@Resource
+	private SysLaboratoryDao sysLaboratoryDao;
+	@Resource
+	private SysLaboratoryContainerService sysLaboratoryContainerService;
+	@Resource
+	private SysWarehouseContainerService sysWarehouseContainerService;
 
 	/**
 	 * 数据源
@@ -99,7 +114,13 @@
 					return;
 				}
 
-				this.sysWarehouseService.updateSysWarehouse(sysWarehouse);
+				SysLaboratory sysLaboratory = sysLaboratoryDao.getSysLaboratoryByName(sysWarehouse.getName());
+				if (sysLaboratory != null) {
+					this.sysWarehouseService.updateSysWarehouse2(sysWarehouse,sysLaboratory);
+				} else {
+					this.sysWarehouseService.updateSysWarehouse(sysWarehouse);
+				}
+
 
 				FacesUtils.info("修改成功。");
 				RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
@@ -116,10 +137,19 @@
 				FacesUtils.warn("请选择数据。");
 				return;
 			}
-
+			//判断下面是否有柜子,有就拒绝删除
+			for (SysWarehouse sysWarehouse : selectedList) {
+				List<SysWarehouseContainer> list = sysWarehouseContainerService.getSysWarehouseContainerList(sysWarehouse.getId());
+				if (list.size() > 0) {
+					throw new BusinessException(ExceptionEnumCode.SYS_ERR, "该仓库下还有货柜,请清除货柜后删除仓库");
+				}
+			}
 			this.sysWarehouseService.deleteSysWarehouse(this.selectedList);
 
 			FacesUtils.info("删除成功。");
+		} catch (BusinessException e) {
+			logger.error(e.getMessage());
+			FacesUtils.warn(e.getMessage());
 		} catch (Exception e) {
 			logger.error("操作失败。", e);
 			FacesUtils.warn("操作失败。");
diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
index 4b4decd..8f4bf0e 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -1637,6 +1637,13 @@
 	*/
 	public void onSaveInputWarehouseClick(){
 		try{
+		    //0.0输入校验
+            for (OpeApplyReserve opeApplyReserve : opeApplyList) {
+                if (StringUtils.isBlank(opeApplyReserve.getArticleNumber())) {
+                    throw new BusinessException(ExceptionEnumCode.PARAM_EXIST, opeApplyReserve.getReagent().getName() + ":批号不能为空");
+                }
+            }
+
 			//用来检验提交表单得试剂条码是否重复
 			Map<String,Boolean> checkTable= new HashMap<>();
 			if (opeApplyList != null && opeApplyList.size() > 0) {
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
index be2c5f2..c563009 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
@@ -128,10 +128,10 @@
         ss.name as supplierName,
         l.name as laboratoryName,
         w.name as warehouseName,
-        lc.name as warehouseContainerName,
-        wc.name as laboratoryContainerName,
-        lc.container_code as warehouseContainerCode,
-        wc.container_code as laboratoryContainerCode,
+        wc.name as warehouseContainerName,
+        lc.name as laboratoryContainerName,
+        wc.container_code as warehouseContainerCode,
+        lc.container_code as laboratoryContainerCode,
         bm1.meta_value as operatestateName
 	    from ope_use_flow as oa
         left join ope_reagent_status ors on ors.reagent_code = oa.reagent_code
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
index ea7e094..e9465fb 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
@@ -33,4 +33,6 @@
     List<Map> exportLabList(Map params);
 
     List<LaboratoryVo.Laboratory> getLaboratoryByProject(@Param("project") String project);
+
+    SysLaboratory getSysLaboratoryByName(String name);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
index 4e3e7c7..9480b33 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
@@ -129,6 +129,12 @@
     WHERE
 	sl.project LIKE CONCAT('%',#{project},'%')
   </select>
+  <select id="getSysLaboratoryByName"  resultMap="SysLaboratory">
+    select *
+    from  sys_laboratory
+    where name = #{0}
+    and valid_flag = 1
+  </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/SysWarehouseContainerDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseContainerDao.xml
index 158be80..b6c5ed4 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseContainerDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseContainerDao.xml
@@ -18,6 +18,7 @@
     <result property="characterLeft" column="character_left"></result>
     <result property="characterRight" column="character_right"></result>
     <result property="controllerCode" column="controller_code"></result>
+    <result property="controllerName" column="controller_name"></result>
   </resultMap>
 
   <select id="getSysWarehouseContainerInfoList" parameterType="java.util.Map" resultMap="SysWarehouseContainer">
@@ -31,9 +32,14 @@
   </select>
 
   <select id="getSysWarehouseContainerList" parameterType="java.util.Map" resultMap="SysWarehouseContainer">
-    select su.*,ss.name as warehouseName, ss.type as warehouseType  from sys_warehouse_container as su
+    select su.*,ss.name as warehouseName, ss.type as warehouseType
+    ,
+    sc.controller_name
+    from sys_warehouse_container as su
     left join sys_warehouse as ss on su.warehouse_id = ss.id
+    left join sys_controller sc on sc.controller_code = su.controller_code
     where su.valid_flag = 1
+    and sc.valid_flag = 1
     <if test="warehouseType != null and warehouseType != ''">
       and ss.type = #{warehouseType}
     </if>
@@ -75,7 +81,8 @@
   <update id="updateSysWarehouseContainer" parameterType="com.nanometer.smartlab.entity.SysWarehouseContainer">
     update sys_warehouse_container set warehouse_id=#{warehouseId}, type=#{type}, container_code=#{containerCode}, 
     info_code=#{infoCode}, structure=#{structure}, name=#{name}, character_left=#{characterLeft}, character_right=#{characterRight},
-    update_time=now()
+    update_time=now(),
+    controller_code=#{controllerCode}
     where id=#{id}
   </update>
 
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseDao.xml
index d3586fd..3192bd6 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysWarehouseDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysWarehouseDao.xml
@@ -12,6 +12,7 @@
     <result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result>
     <result property="createTime" column="create_time"></result>
     <result property="updateTime" column="update_time"></result>
+    <result property="department" column="department"></result>
   </resultMap>
 
   <resultMap id="SysWarehouseDto" type="com.nanometer.smartlab.entity.dto.SysWarehouseDto">
@@ -78,13 +79,13 @@
   </select>
 
   <insert id="insertSysWarehouse" parameterType="com.nanometer.smartlab.entity.SysWarehouse">
-    insert into sys_warehouse(id, type, name, info_code, bar_code, location1, location2, valid_flag, create_time, update_time)
-    values (#{id}, #{type}, #{name}, #{infoCode}, #{barCode}, #{location1}, #{location2}, 1, now(), now())
+    insert into sys_warehouse(id, type, name, info_code, bar_code, location1, location2, valid_flag, create_time, update_time,department)
+    values (#{id}, #{type}, #{name}, #{infoCode}, #{barCode}, #{location1}, #{location2}, 1, now(), now(),#{department})
   </insert>
 
   <update id="updateSysWarehouse" parameterType="com.nanometer.smartlab.entity.SysWarehouse">
     update sys_warehouse set type=#{type}, name=#{name}, info_code=#{infoCode}, bar_code=#{barCode}, location1=#{location1}, location2=#{location2},
-    update_time=now()
+    update_time=now(),department=#{department}
     where id=#{id}
   </update>
 
diff --git a/src/main/java/com/nanometer/smartlab/entity/SysWarehouse.java b/src/main/java/com/nanometer/smartlab/entity/SysWarehouse.java
index 880acb3..72e8730 100644
--- a/src/main/java/com/nanometer/smartlab/entity/SysWarehouse.java
+++ b/src/main/java/com/nanometer/smartlab/entity/SysWarehouse.java
@@ -21,6 +21,8 @@
     private Timestamp createTime;
     private Timestamp updateTime;
     private ValidFlag validFlag;
+    //新增负责部门
+    private String department;
 
     public String getId() {
         return id;
@@ -101,4 +103,12 @@
     public void setValidFlag(ValidFlag validFlag) {
         this.validFlag = validFlag;
     }
+
+    public String getDepartment() {
+        return department;
+    }
+
+    public void setDepartment(String department) {
+        this.department = department;
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/entity/SysWarehouseContainer.java b/src/main/java/com/nanometer/smartlab/entity/SysWarehouseContainer.java
index 98e08dd..636efa5 100644
--- a/src/main/java/com/nanometer/smartlab/entity/SysWarehouseContainer.java
+++ b/src/main/java/com/nanometer/smartlab/entity/SysWarehouseContainer.java
@@ -26,6 +26,8 @@
     private String characterLeft;
     private String characterRight;
     private String controllerCode;
+    private String controllerName;
+
 
 
     public String getId() {
@@ -147,4 +149,12 @@
     public void setControllerCode(String controllerCode) {
         this.controllerCode = controllerCode;
     }
+
+    public String getControllerName() {
+        return controllerName;
+    }
+
+    public void setControllerName(String controllerName) {
+        this.controllerName = controllerName;
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerService.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerService.java
index d88fb18..3769606 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerService.java
@@ -21,5 +21,11 @@
 
     public List<SysWarehouseContainer> getSysWarehouseContainerInfoList(String startTime, String endTime);
     SysWarehouseContainer getSysWarehouseContainerByContainerCode(String containerCode);
+    //智能柜插入
+    void insertSysWarehouseContainer2(SysWarehouseContainer sysWarehouseContainer);
+    //智能柜更新
+    void updateSysWarehouseContainer2(SysWarehouseContainer sysWarehouseContainer);
+
+    void deleteSysWarehouseContainer2(List<SysWarehouseContainer> selectedList);
 
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerServiceImpl.java
index f900c66..9dc584a 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseContainerServiceImpl.java
@@ -9,6 +9,12 @@
 
 import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.Maps;
+import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
+import com.nanometer.smartlab.dao.SysLaboratoryDao;
+import com.nanometer.smartlab.entity.SysLaboratory;
+import com.nanometer.smartlab.entity.SysLaboratoryContainer;
+import com.nanometer.smartlab.entity.SysWarehouse;
+import com.nanometer.smartlab.util.Constants;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.dao.DataAccessException;
@@ -37,6 +43,14 @@
 
     @Resource(name = "sysWarehouseContainerDao")
     SysWarehouseContainerDao sysWarehouseContainerDao;
+    @Resource
+    SysLaboratoryContainerDao sysLaboratoryContainerDao;
+    @Resource
+    SysLaboratoryDao sysLaboratoryDao;
+    @Resource
+    BaseMetaService baseMetaService;
+    @Resource
+    SysWarehouseService sysWarehouseService;
 
     @Transactional(propagation = Propagation.REQUIRED)
     public List<SysWarehouseContainer> getSysWarehouseContainerList(String warehouseType, String warehouseName, String warehouseId, Integer first, Integer pageSize) {
@@ -194,5 +208,88 @@
         }
     }
 
+    @Override
+    @Transactional
+    public void insertSysWarehouseContainer2(SysWarehouseContainer sysWarehouseContainer) {
+        //0.新建自己
+        this.insertSysWarehouseContainer(sysWarehouseContainer);
+        SysWarehouse sysWarehouse = sysWarehouseService.getSysWarehouse(sysWarehouseContainer.getWarehouseId());
+        //1.新建实验室
+        SysLaboratory sl = new SysLaboratory();
+
+        sl.setId(IDUtils.uuid());
+        sl.setType(baseMetaService.getBaseMetaList(Constants.BASE_META_GROUP_LABORATORY_TYPE).get(0).getId());
+        //判断是否已经存在该名称实验室
+        SysLaboratory sysLaboratory = sysLaboratoryDao.getSysLaboratoryByName(sysWarehouse.getName());
+        if (sysLaboratory == null) {
+            //新建实验室
+            sl.setName(sysWarehouse.getName());
+            sl.setInfoCode(sysWarehouse.getInfoCode());
+            sl.setBarCode(sysWarehouse.getBarCode());
+            sl.setLocation1(sysWarehouse.getLocation1());
+            sl.setLocation2(sysWarehouse.getLocation2());
+            sl.setDepartment(sysWarehouse.getDepartment());
+            sysLaboratoryDao.insertSysLaboratory(sl);
+        }else{
+            sl.setId(sysLaboratory.getId());
+        }
+
+        //新建临时存储库
+        Map<String,Object> params = new HashMap<>();
+        params.put("containerCode", sysWarehouseContainer.getContainerCode());
+        int count = sysLaboratoryContainerDao.getSysLaboratoryContainerTotalCount(params);
+        //判断是否已经存在该条码柜子
+        if (count < 1) {
+            SysLaboratoryContainer slc = new SysLaboratoryContainer();
+            slc.setId(IDUtils.uuid());
+            // (#{id}, #{laboratoryId}, #{type}, #{containerCode}, #{infoCode}, #{structure},
+            // #{name}, 1, #{characterLeft}, #{characterRight}, now(), now(), #{controllerCode},#{project})
+            slc.setLaboratoryId(sl.getId());
+            slc.setType(sysWarehouseContainer.getType());
+            slc.setContainerCode(sysWarehouseContainer.getContainerCode());
+            slc.setInfoCode(sysWarehouseContainer.getInfoCode());
+            slc.setStructure(sysWarehouseContainer.getStructure());
+            slc.setName(sysWarehouseContainer.getName());
+            slc.setCharacterLeft(sysWarehouseContainer.getCharacterLeft());
+            slc.setCharacterRight(sysWarehouseContainer.getCharacterRight());
+            slc.setControllerCode(sysWarehouseContainer.getControllerCode());
+            sysLaboratoryContainerDao.insertSysLaboratoryContainer(slc);
+        }
+
+    }
+
+    @Override
+    @Transactional
+    public void updateSysWarehouseContainer2(SysWarehouseContainer sysWarehouseContainer) {
+        //1.更新自己
+        this.updateSysWarehouseContainer(sysWarehouseContainer);
+        //2.更新实验室临时货柜 by ContainerCode
+        SysLaboratoryContainer sysLaboratoryContainer = sysLaboratoryContainerDao.getSysLaboratoryContainerByContainerCode(sysWarehouseContainer.getContainerCode());
+        sysLaboratoryContainer.setName(sysWarehouseContainer.getName());
+        sysLaboratoryContainer.setInfoCode(sysWarehouseContainer.getInfoCode());
+        sysLaboratoryContainer.setControllerCode(sysWarehouseContainer.getControllerCode());
+        sysLaboratoryContainer.setStructure(sysWarehouseContainer.getStructure());
+        sysLaboratoryContainer.setCharacterRight(sysWarehouseContainer.getCharacterRight());
+        sysLaboratoryContainer.setCharacterLeft(sysWarehouseContainer.getCharacterLeft());
+        sysLaboratoryContainerDao.updateSysLaboratoryContainer(sysLaboratoryContainer);
+
+    }
+
+    @Override
+    @Transactional
+    public void deleteSysWarehouseContainer2(List<SysWarehouseContainer> selectedList) {
+        //1.删除自己
+        this.deleteSysWarehouseContainer(selectedList);
+        List<String> ids = new ArrayList<>();
+        for (SysWarehouseContainer swc : selectedList) {
+            SysLaboratoryContainer slc = sysLaboratoryContainerDao.getSysLaboratoryContainerByContainerCode(swc.getContainerCode());
+            if (slc != null) {
+                ids.add(slc.getId());
+            }
+        }
+        //2.删除实验室临时存储柜
+        sysLaboratoryContainerDao.deleteSysLaboratoryContainers(ids);
+    }
+
 
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java
index 92550d7..16ccd1d 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java
@@ -1,5 +1,6 @@
 package com.nanometer.smartlab.service;
 
+import com.nanometer.smartlab.entity.SysLaboratory;
 import com.nanometer.smartlab.entity.SysWarehouse;
 import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto;
 import com.nanometer.smartlab.entity.dto.ReagentReceivingDto;
@@ -27,4 +28,5 @@
 
     void reagentReceiving(ReagentReceivingDto reagentReceiving);
 
+    void updateSysWarehouse2(SysWarehouse sysWarehouse, SysLaboratory sysLaboratory);
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
index 4a622b7..1a2f3fb 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
@@ -52,6 +52,8 @@
     OpeUseFlowService opeUseFlowService;
     @Resource
     OpeWarehouseReserveService opeWarehouseReserveService;
+    @Resource
+    private SysLaboratoryService sysLaboratoryService;
 
     @Transactional(propagation = Propagation.REQUIRED)
     public List<SysWarehouse> getSysWarehouseList(String type, String name, Integer first, Integer pageSize) {
@@ -338,4 +340,18 @@
         });
 
     }
+
+    @Override
+    @Transactional
+    public void updateSysWarehouse2(SysWarehouse sysWarehouse, SysLaboratory sysLaboratory) {
+        //1.0更新自己
+        this.updateSysWarehouse(sysWarehouse);
+        //2.更新实验室
+        sysLaboratory.setInfoCode(sysWarehouse.getInfoCode());
+        sysLaboratory.setBarCode(sysWarehouse.getBarCode());
+        sysLaboratory.setLocation1(sysWarehouse.getLocation1());
+        sysLaboratory.setLocation2(sysWarehouse.getLocation2());
+        sysLaboratory.setDepartment(sysWarehouse.getDepartment());
+        sysLaboratoryService.updateSysLaboratory(sysLaboratory);
+    }
 }
diff --git a/src/main/webapp/warehouse_container_mng.xhtml b/src/main/webapp/warehouse_container_mng.xhtml
index 0aba6e6..a5f388b 100644
--- a/src/main/webapp/warehouse_container_mng.xhtml
+++ b/src/main/webapp/warehouse_container_mng.xhtml
@@ -58,6 +58,10 @@
 					<h:outputText value="#{row.warehouseName}"></h:outputText>
 				</p:column>
 
+				<p:column headerText="主控名">
+					<h:outputText value="#{row.controllerName}"></h:outputText>
+				</p:column>
+
 				<p:column headerText="货柜条码">
 					<h:outputText value="#{row.containerCode}"></h:outputText>
 				</p:column>
@@ -90,7 +94,7 @@
 				<p:outputLabel value="仓库"></p:outputLabel>
 				<p:selectOneMenu
 					value="#{warehouseContainerMngController.sysWarehouseContainer.warehouseId}"
-					required="true" requiredMessage="请选择仓库">
+					required="true" requiredMessage="请选择仓库" disabled="#{warehouseContainerMngController.action==constants.ACTION_ADD?false:true}">
 					<f:selectItems value="#{sysWarehouseService.getAllSysWarehouseList()}"
 						var="item" itemLabel="#{item.name}" itemValue="#{item.id}"></f:selectItems>
 				</p:selectOneMenu>
@@ -104,12 +108,12 @@
 				<p:outputLabel value="货柜条码"></p:outputLabel>
 				<p:inputText
 					value="#{warehouseContainerMngController.sysWarehouseContainer.containerCode}"
-					maxlength="100"></p:inputText>
+					maxlength="100" disabled="#{warehouseContainerMngController.action==constants.ACTION_ADD?false:true}"></p:inputText>
 
 				<p:outputLabel value="货柜类型"></p:outputLabel>
 				<p:selectOneMenu
 					value="#{warehouseContainerMngController.sysWarehouseContainer.type}"
-					required="true" requiredMessage="请选择货柜类型">
+					required="true" requiredMessage="请选择货柜类型" disabled="#{warehouseContainerMngController.action==constants.ACTION_ADD?false:true}">
 					<p:ajax event="change" listener="#{warehouseContainerMngController.containerTypeChanged}" process="@form" update="@form"/>
 					<f:selectItems
 						value="#{baseMetaService.getBaseMetaList(constants.BASE_META_GROUP_CONTAINER_TYPE)}"
diff --git a/src/main/webapp/warehouse_mng.xhtml b/src/main/webapp/warehouse_mng.xhtml
index 15aabd3..391df19 100644
--- a/src/main/webapp/warehouse_mng.xhtml
+++ b/src/main/webapp/warehouse_mng.xhtml
@@ -67,6 +67,10 @@
 					<h:outputText
 						value="#{'楼号:'.concat(row.location1).concat(' - 地址号:'.concat(row.location2))}"></h:outputText>
 				</p:column>
+
+				<p:column headerText="负责部门">
+					<h:outputText value="#{baseMetaService.getBaseMetaValue(row.department)}"/>
+				</p:column>
 			</p:dataTable>
 		</p:panel>
 	</h:form>
@@ -87,7 +91,7 @@
 
 				<p:outputLabel value="仓库名"></p:outputLabel>
 				<p:inputText value="#{warehouseMngController.sysWarehouse.name}"
-					maxlength="100" required="true" requiredMessage="请输入仓库名"></p:inputText>
+					maxlength="100" required="true" requiredMessage="请输入仓库名" disabled="#{warehouseMngController.action==constants.ACTION_ADD?false:true}"></p:inputText>
 
 				<p:outputLabel value="状态码"></p:outputLabel>
 				<p:inputText value="#{warehouseMngController.sysWarehouse.infoCode}"
@@ -104,6 +108,13 @@
 				<p:outputLabel value="地址号"></p:outputLabel>
 				<p:inputText value="#{warehouseMngController.sysWarehouse.location2}"
 					maxlength="100"></p:inputText>
+
+				<p:outputLabel value="负责部门"></p:outputLabel>
+				<p:selectOneMenu value="#{warehouseMngController.sysWarehouse.department}"
+								 required="true" requiredMessage="请选择负责部门">
+					<f:selectItems value="#{baseMetaService.getBaseMetaList(constants.BASE_META_GROUP_USER_DEPARTMENT)}"
+								   var="item" itemLabel="#{item.metaValue}" itemValue="#{item.id}"></f:selectItems>
+				</p:selectOneMenu>
 			</p:panelGrid>
 			<p:panel styleClass="btn">
 				<p:commandButton value="保存"

--
Gitblit v1.9.2