From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期二, 28 十一月 2023 11:00:42 +0800
Subject: [PATCH] 修改课题管理bug

---
 src/main/webapp/WEB-INF/spring-db.xml                                            |    5 
 src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.xml                      |    5 +
 src/main/webapp/reagent_mng.xhtml                                                |    2 
 src/sql/update.sql                                                               |    6 +
 src/main/webapp/apply_mng_new.xhtml                                              |   18 ++--
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java           |    2 
 src/main/java/com/nanometer/smartlab/controller/ProjectMngController.java        |   11 ++
 src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java        |   53 ++++++++++++-
 src/main/java/com/nanometer/smartlab/service/SysSupplierServiceImpl.java         |    5 +
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml                    |    5 +
 src/main/webapp/WEB-INF/config.properties                                        |    4 
 src/main/webapp/index.xhtml                                                      |    2 
 src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java |   11 +-
 src/main/webapp/project_mng.xhtml                                                |    4 
 src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java   |    3 
 src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.java                     |    4 +
 src/main/java/com/nanometer/smartlab/controller/BaseController.java              |    7 +
 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java    |   11 ++
 src/main/webapp/WEB-INF/gslab/gslab.properties                                   |    2 
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java       |   23 +++--
 src/main/java/com/nanometer/smartlab/service/SysSupplierService.java             |    3 
 src/main/webapp/resources/template/耗材导入模板.xlsx                                   |    0 
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java                   |    3 
 src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java     |    4 
 src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java        |    4 
 src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java |    8 +-
 src/main/webapp/login.xhtml                                                      |    2 
 27 files changed, 156 insertions(+), 51 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/BaseController.java b/src/main/java/com/nanometer/smartlab/controller/BaseController.java
index 3a7426e..6dda207 100644
--- a/src/main/java/com/nanometer/smartlab/controller/BaseController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/BaseController.java
@@ -21,6 +21,9 @@
     @Value("${institute.logo}")
     private String logo;
 
+    @Value("${institute.copyright}")
+    private String copyright;
+
     @Value("${activeEnv}")
     private String activeEnv;
 
@@ -92,4 +95,8 @@
     public String getActiveEnv(){
         return this.activeEnv;
     }
+
+    public String getCopyright() {
+        return copyright;
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
index 8e06384..91bfc1b 100644
--- a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
@@ -168,7 +168,8 @@
 		printTable.put("phone", selectOne.getPhone());
 		printTable.put("receiptNumber", selectOne.getReceiptNumber());
 		printTable.put("project", selectOne.getProject());
-		SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratory(selectOne.getHouseId());
+
+		SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratorySimpleInfo(selectOne.getHouseId());
 		printTable.put("lab", sysLaboratory.getName());
 		printTable.put("note",selectOne.getNote() == null?"":selectOne.getNote());
 		//整理数据
diff --git a/src/main/java/com/nanometer/smartlab/controller/ProjectMngController.java b/src/main/java/com/nanometer/smartlab/controller/ProjectMngController.java
index f6897d0..c3fc2b5 100644
--- a/src/main/java/com/nanometer/smartlab/controller/ProjectMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/ProjectMngController.java
@@ -6,6 +6,7 @@
 import com.nanometer.smartlab.service.*;
 import com.nanometer.smartlab.util.Constants;
 import com.nanometer.smartlab.util.FacesUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.shiro.subject.Subject;
 import org.primefaces.context.RequestContext;
@@ -19,6 +20,7 @@
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Controller
 @Scope("session")
@@ -60,7 +62,12 @@
 
     public SysUser getSelectedUserById(String userId) {
         System.out.println(userId);
-        return userSelectList.stream().filter(u->u.getId().equals(userId)).findFirst().get();
+       List<SysUser> userList= userSelectList.stream().filter(u -> u.getId().equals(userId)).collect(Collectors.toList());
+       if(userList.size()>0){
+            return userList.get(0);
+       }else{
+           return new SysUser();
+       }
     }
 
     public List<SysUser> getUserSelectList(String keyword) {
@@ -163,7 +170,7 @@
                     return;
                 }
 
-                if (this.sysProject.getSysUserId() == null) {
+                if (StringUtils.isBlank(this.sysProject.getSysUserId())) {
                     FacesUtils.warn("请选择课题负责人。");
                     return;
                 }
diff --git a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
index 6114f90..75989d8 100644
--- a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
@@ -522,15 +522,25 @@
             Sheet sheet=wb.getSheetAt(0);
             List<SysReagent> sysReagentsList = new ArrayList<>();
             int totalRows = sheet.getPhysicalNumberOfRows();
+
             Row row=null;
             int totalCells=0;
             String dangours = "";
+            totalCells=sheet.getRow(0).getLastCellNum();
+            if(totalCells>7){
+                    FacesUtils.warn("导入表格格式不正确");
+                    return;
+            }
             for (int i = 1; i < totalRows; i++) {
                 SysReagent sysReagent = new SysReagent();
                 List<String> valuesList=new ArrayList<String>();
                 row=sheet.getRow(i);
 
-                totalCells= row.getLastCellNum();
+              //  totalCells= row.getLastCellNum();
+//                if(totalCells>7){
+//                    FacesUtils.warn("导入表格格式不正确");
+//                    return;
+//                }
                 for (int t = 0; t < totalCells; t++) {
                     String cellInfo="";
                     String groupId = "";
@@ -594,13 +604,42 @@
                             this.codeList.add(baseMeta);
                         }
                         valuesList.add(id);
+                    }else if(t==5){
+                        String id="";
+                        if(!StringUtils.isBlank(cellInfo)){
+                            SysSupplier sysSupplier=sysSupplierService.getSysSupplierByName(cellInfo);
+                            if(sysSupplier==null){//新建供应商
+                                FacesUtils.warn("未查询到供该应商信息-"+cellInfo);
+                                return;
+                            }
+                            id=sysSupplier.getId();
+                        }
+                        valuesList.add(id);
+                    }else if(t==6){
+                        String id="";
+                        if(!StringUtils.isBlank(cellInfo)){
+                            groupId = "reagent_format";
+                            id=getId(groupId,cellInfo);
+                            if(StringUtils.isBlank(id)){
+                                BaseMeta baseMeta = new BaseMeta();
+                                baseMeta.setId(IDUtils.uuid());
+                                baseMeta.setGroupId(groupId);
+                                baseMeta.setMetaValue(cellInfo);
+                                baseMeta.setMetaKey(cellInfo);
+                                baseMetaService.insertBaseMeta(baseMeta);
+                                id = baseMeta.getId();
+                                this.codeList.add(baseMeta);
+                            }
+                        }
+                        valuesList.add(id);
                     }else {
                         valuesList.add(cellInfo);
                     }
 
                 }
-                if (valuesList.size() != 6){
-                    break;
+                if (valuesList.size() != 8){
+                    FacesUtils.warn("excel数据解析格式失败");
+                    return;
                 }
                 System.out.println("value :     "+valuesList);
                 sysReagent.setName(valuesList.get(0));//试剂名称
@@ -614,6 +653,12 @@
                 if(!valuesList.get(5).equals("")){
                     sysReagent.setPrice(BigDecimal.valueOf(Double.parseDouble(valuesList.get(5))));//含税单价
                 }
+                if(StringUtils.isNotBlank(valuesList.get(6))){
+                    sysReagent.setSupplierId(valuesList.get(6));//供应商id
+                }
+                if(StringUtils.isNotBlank(valuesList.get(7))){
+                    sysReagent.setReagentFormat(valuesList.get(7));//规格id
+                }
                 DangerousFlag d;
                 d = DangerousFlag.NORMAL;
                 sysReagent.setDangerousFlag(d);
@@ -624,7 +669,7 @@
             FacesUtils.info("导入成功。");
         } catch (Exception ex) {
             ex.printStackTrace();
-            FacesUtils.info("导入失败。");
+            FacesUtils.info("导入失败,"+ex.getMessage());
         }
     }
     //导入
diff --git a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
index 231bd26..53c5a7d 100644
--- a/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/WarehouseStockMngController.java
@@ -1135,6 +1135,7 @@
 			checkReserve(list2);
 			//1.2判断提交的条码是否重复(只有补贴条码需要判断)
 			checkReagentCode(list2);
+			String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
 			//库中领取
 			if(list.size()>0&&list!=null){
 				//扣库存 对象中的reagentCode存的是id
@@ -1152,7 +1153,7 @@
 					}
 				}
 
-				this.opeWarehouseReserveService.claimForPerson(list, userId,projectNum,laboratoryId,laboratoryContainerId);
+				this.opeWarehouseReserveService.claimForPerson(list, userId,projectNum,laboratoryId,laboratoryContainerId,receiptNum);
 			}
 
 			//补贴条码
@@ -1233,7 +1234,7 @@
 			printTable.put("applyPerson", applyPersonInfo.getName());
 			printTable.put("department", applyPersonInfo.getDepartment());
 			printTable.put("date", Utils.now("yyyy-MM-dd"));
-			String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
+
 			printTable.put("receiptNumber", receiptNum);
 			if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){
 				printTable.put("phone", applyPersonInfo.getPhone());
@@ -1493,6 +1494,8 @@
 		}
 
 	}
+
+
 	public  void  onSaveBtnClick() {
 		try {
 			if (this.selectedTmpList == null || this.selectedTmpList.size() == 0) {
@@ -1524,7 +1527,7 @@
 			if (StringUtils.isNotBlank(applyPersonInfo.getProject())){
 				printTable.put("project", applyPersonInfo.getProject());
 			}
-			SysLaboratory lab = sysLaboratoryService.getSysLaboratory(laboratoryId);
+			SysLaboratory lab = sysLaboratoryService.getSysLaboratorySimpleInfo(laboratoryId);
 			String receiptNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
 			printTable.put("receiptNumber", receiptNum);
 			printTable.put("lab", lab.getName());
@@ -1615,7 +1618,7 @@
 				//FacesUtils.warn("未选择一个条形码。");
 				//return;
 				//}
-				this.opeWarehouseReserveService.claim(list, userId,projectNum);
+				this.opeWarehouseReserveService.claim(list, userId,projectNum,receiptNumber);
 			}
 
 			if(list2.size()>0&&list2!=null){
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
index 956522a..e8b68c5 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
@@ -14,6 +14,9 @@
 public interface SysLaboratoryDao {
 
     public SysLaboratory getSysLaboratory(String id) throws DataAccessException;
+
+    public SysLaboratory getSysLaboratorySimpleInfo(String id) throws DataAccessException;
+
     @SuppressWarnings("rawtypes")
 	public List<SysLaboratory> getSysLaboratoryList(Map params) throws DataAccessException;
 
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
index 20828af..b2323cf 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
@@ -42,6 +42,11 @@
     where id = #{id} and valid_flag = 1
   </select>
 
+  <select id="getSysLaboratorySimpleInfo" parameterType="java.lang.String"  resultMap="SysLaboratory">
+    select id,name from sys_laboratory
+    where id = #{id} and valid_flag = 1
+  </select>
+
   <select id="getSysLaboratoryList" parameterType="java.util.Map" resultMap="SysLaboratory">
     select su.* from sys_laboratory as su
     where su.valid_flag = 1
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.java b/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.java
index a1e5f29..8e6854b 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.java
@@ -2,6 +2,7 @@
 
 import com.nanometer.smartlab.entity.SysSupplier;
 import org.apache.ibatis.annotations.Param;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
 import org.springframework.dao.DataAccessException;
 
 import java.util.List;
@@ -26,4 +27,7 @@
     void insertBatch(List<?> list);
 
     List<Map> exportExcelList(Map<String, String> params);
+
+
+    public SysSupplier getSysSupplierByName(@Param("name") String name);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.xml
index d54e15d..c8daa8a 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysSupplierDao.xml
@@ -82,6 +82,11 @@
     select id From sys_supplier where name = #{name}
   </select>
 
+  <select id="getSysSupplierByName" resultType="com.nanometer.smartlab.entity.SysSupplier"
+          parameterType="java.lang.String">
+    select * from sys_supplier where name=#{name} and valid_flag=1 limit 1
+  </select>
+
 
   <update id="deleteSysSupplier" parameterType="java.util.List">
     update sys_supplier set valid_flag=0, update_time=now()
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
index a8eca2e..42c2adb 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
@@ -66,10 +66,10 @@
 
 	boolean isAllowWarehouseUseByIds(List<String> ids);
 
-	boolean updateReagentStatus(OpeReagentStatus opeReagentStatus);
+	boolean updateReagentStatus(OpeReagentStatus opeReagentStatus,String receiptNumber);
 	boolean updateReagentStatus2(OpeReagentStatus opeReagentStatus);
 
-	boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId);
+	boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber);
 
 	int getLogOpeReagentStatusTotalCount(String reagentLogId, Integer status, String userLogId, String loginId);
 
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
index 962fcf0..c94b1cc 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
@@ -528,7 +528,7 @@
 	}
 
 	@Override
-	public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId) {
+	public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber) {
 		try {
 			for (String opeReagentStatusId : reagentCodes) {
 				OpeReagentStatus opeReagentStatus = this.getOpeReagentStatus(opeReagentStatusId);
@@ -561,6 +561,7 @@
 				opeUseFlow.setUserId(opeReagentStatus.getUserId());
 				opeUseFlow.setPlace(opeReagentStatus.getPlace());
 				opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
+				opeUseFlow.setReceiptNumber(receiptNumber);
 
 				Map<String, String> metaMap = new HashMap<>();
 				metaMap.put("groupId", "operate_status");
@@ -589,9 +590,12 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public boolean updateReagentStatus(OpeReagentStatus opeReagentStatus) {
+	public boolean updateReagentStatus(OpeReagentStatus opeReagentStatus,String receiptNumber) {
 		try {
-
+			if(StringUtils.isBlank(receiptNumber)){
+				throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST,
+						MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "领用单号为空"));
+			}
 			if (isAllowWarehouseUse(opeReagentStatus)) {
 				// 减少库存
 				OpeWarehouseReserve opeWarehouseReserve = this.opeWarehouseReserveService.getOpeWarehouseReserve(
@@ -612,6 +616,7 @@
 			opeUseFlow.setUserId(opeReagentStatus.getUserId());
 			opeUseFlow.setPlace(opeReagentStatus.getPlace());
 			opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
+			opeUseFlow.setReceiptNumber(receiptNumber);
 
 			Map<String, String> metaMap = new HashMap<>();
 			metaMap.put("groupId", "operate_status");
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java
index 7f3b285..8ae6466 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveService.java
@@ -26,8 +26,8 @@
 
 	OpeWarehouseReserve insertOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve);
 	boolean updateOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve);
-	void claim(List<OpeWarehouseReserve> selectedList, String userId,String projectNum);
-	void claimForPerson(List<OpeApplyReserve> selectedListForPerson, String userId,String projectNum,String laboratoryId,String laboratoryContainerId);
+	void claim(List<OpeWarehouseReserve> selectedList, String userId,String projectNum,String receiptNumber);
+	void claimForPerson(List<OpeApplyReserve> selectedListForPerson, String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber);
 	void reagentDStore(List<OpeApply> reagentDStoreList, String loginUserId);
 	void reagentDStore2(List<OpeApply> reagentDStoreList, String loginUserId);
 
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
index 67dd27b..16c0ca7 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
@@ -226,12 +226,12 @@
 	}
 
 	@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
-	public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum,String laboratoryId,String laboratoryContainerId){
+	public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber){
 		try{
 			for(OpeApplyReserve app:selectedListForPerson){
 				List<String> reagentCodes = app.getReagentCode();
 				if (reagentCodes != null && reagentCodes.size() > 0) {
-					this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectNum,laboratoryId,laboratoryContainerId);
+					this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectNum,laboratoryId,laboratoryContainerId,receiptNumber);
 
 					//更新是现实库存
 					OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
@@ -291,7 +291,7 @@
 
 	// 仓库领用
 	@Transactional(propagation = Propagation.REQUIRED)
-	public void claim(List<OpeWarehouseReserve> selectedList, String userId,String projectNum) {
+	public void claim(List<OpeWarehouseReserve> selectedList, String userId,String projectNum,String receiptNumber) {
 		try {
 			for (OpeWarehouseReserve opeWarehouseReserve : selectedList) {
 				List<String> reagentCodes = opeWarehouseReserve.getReagentCodes();
@@ -302,7 +302,7 @@
 						opeReagentStatus.setUserId(userId);
 						opeReagentStatus.setProjectNum(projectNum);
 						//boolean flag = this.opeReagentStatusService.updateReagentStatus(opeReagentStatus);
-						this.opeReagentStatusService.updateReagentStatus(opeReagentStatus);
+						this.opeReagentStatusService.updateReagentStatus(opeReagentStatus,receiptNumber);
 						//if (flag) {
 							//opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() - 1);
 							//opeWarehouseReserve.setSelectNum(0);
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
index 712b918..11ca396 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
@@ -26,6 +26,8 @@
 
 	SysLaboratory getSysLaboratory(String id);
 
+	SysLaboratory getSysLaboratorySimpleInfo(String id);
+
 	SysLaboratory insertSysLaboratory(SysLaboratory sysLaboratory);
 
 	boolean updateSysLaboratory(SysLaboratory sysLaboratory);
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
index 9e81db0..2fe86b9 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
@@ -38,7 +38,6 @@
 	@Resource
 	SysUserDao sysUserDao;
 
-	@Transactional(propagation = Propagation.REQUIRED)
 	public List<SysLaboratory> getSysLaboratoryList(String type, String name,String project,Integer first, Integer pageSize) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -87,7 +86,7 @@
 		return commonPage;
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+
 	public int getSysLaboratoryTotalCount(String type, String name,String project) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -106,7 +105,6 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
 	public SysLaboratory getSysLaboratory(String id) {
 		try {
 			return this.sysLaboratoryDao.getSysLaboratory(id);
@@ -117,7 +115,16 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+	public SysLaboratory getSysLaboratorySimpleInfo(String id) {
+		try {
+			return this.sysLaboratoryDao.getSysLaboratorySimpleInfo(id);
+		} catch (DataAccessException e) {
+			logger.error(e.getMessage(), e);
+			throw new BusinessException(ExceptionEnumCode.DB_ERR,
+					MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
+		}
+	}
+
 	public SysLaboratory insertSysLaboratory(SysLaboratory sysLaboratory) {
 		try {
 			if (sysLaboratory.getId() == null) {
@@ -139,7 +146,6 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
 	public boolean updateSysLaboratory(SysLaboratory sysLaboratory) {
 		try {
 			int row = this.sysLaboratoryDao.updateSysLaboratory(sysLaboratory);
@@ -159,7 +165,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+
 	public boolean deleteSysLaboratory(List<SysLaboratory> sysLaboratoryList) {
 		try {
 			if (sysLaboratoryList == null || sysLaboratoryList.size() == 0) {
@@ -193,7 +199,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+
 	public boolean isSysLaboratoryExist(String barCode, String editId) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -209,7 +215,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+
 	public SysLaboratory getSysLaboratoryByBarCode(String barCode) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -322,7 +328,6 @@
 	}
 
 	@Override
-	@Transactional(propagation = Propagation.REQUIRED)
 	public List<SysLaboratory> getSysLaboratoryListByDep(String depId) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
diff --git a/src/main/java/com/nanometer/smartlab/service/SysSupplierService.java b/src/main/java/com/nanometer/smartlab/service/SysSupplierService.java
index c8a263a..e57d758 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysSupplierService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysSupplierService.java
@@ -28,4 +28,7 @@
     List<Map> exportExcelList(String name);
 
     void export2Excel(List<Map> list) throws Exception;
+
+
+    SysSupplier getSysSupplierByName(String name);
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysSupplierServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysSupplierServiceImpl.java
index f194a80..0ab77b4 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysSupplierServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysSupplierServiceImpl.java
@@ -260,4 +260,9 @@
         ExcelUtils.export2Excel(list,"供应商信息",map);
     }
 
+    @Override
+    public SysSupplier getSysSupplierByName(String name) {
+        return sysSupplierDao.getSysSupplierByName(name);
+    }
+
 }
diff --git a/src/main/webapp/WEB-INF/config.properties b/src/main/webapp/WEB-INF/config.properties
index 1c09ba1..c1b136e 100644
--- a/src/main/webapp/WEB-INF/config.properties
+++ b/src/main/webapp/WEB-INF/config.properties
@@ -57,9 +57,9 @@
 
 institute.id = ${institute.id}
 institute.name = ${institute.name}
-#institute.logo = ${institute.logo}
-institute.logo = /resources/images/\u59D1\u82CF\u5B9E\u9A8C\u5BA4logo2.png
+institute.logo = ${institute.logo}
 institute.url = ${institute.url}
+institute.copyright = ${institute.copyright}
 message.url = ${message.url}
 
 reagent.detail.price.api = ${reagent.detail.price.api}
diff --git a/src/main/webapp/WEB-INF/gslab/gslab.properties b/src/main/webapp/WEB-INF/gslab/gslab.properties
index 948007c..c307205 100644
--- a/src/main/webapp/WEB-INF/gslab/gslab.properties
+++ b/src/main/webapp/WEB-INF/gslab/gslab.properties
@@ -5,7 +5,7 @@
 
 institute.id = 38
 institute.name = \u59D1\u82CF\u5B9E\u9A8C\u5BA4
-institute.logo = /resources/images/\u59D1\u82CF\u5B9E\u9A8C\u5BA4logo.png
+institute.logo = /resources/images/\u59D1\u82CF\u5B9E\u9A8C\u5BA4logo2.png
 institute.url  = http://222.92.16.2:18082
 institute.app.id =
 institute.app.secret =
diff --git a/src/main/webapp/WEB-INF/spring-db.xml b/src/main/webapp/WEB-INF/spring-db.xml
index 40b236e..6bf1e6c 100644
--- a/src/main/webapp/WEB-INF/spring-db.xml
+++ b/src/main/webapp/WEB-INF/spring-db.xml
@@ -15,9 +15,8 @@
           init-method="init" destroy-method="close">
         <!--mysql 5连接驱动-->
         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
-<!--        <property name="url" value="jdbc:mysql://222.92.213.22:13306/smartlabdb?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai&amp;useSSL=false" />-->
-<!--&lt;!&ndash;        <property name="url" value="jdbc:mysql://124.221.143.185:23306/smartlb?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true&amp;useSSL=false" />&ndash;&gt;-->
-<!--        <property name="username" value="root" />-->
+<!--        <property name="url" value="jdbc:mysql://222.92.213.22:13306/smartlabdb?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true&amp;useSSL=false" />-->
+<!--                <property name="username" value="root" />-->
 <!--        <property name="password" value="Sinanoaq#415" />-->
 
         <property name="url" value="${jdbc.url}" />
diff --git a/src/main/webapp/apply_mng_new.xhtml b/src/main/webapp/apply_mng_new.xhtml
index b169d24..ee2bafd 100644
--- a/src/main/webapp/apply_mng_new.xhtml
+++ b/src/main/webapp/apply_mng_new.xhtml
@@ -47,12 +47,12 @@
 
                		<p:column selectionMode="multiple" style="width: 30px;text-align: center;"/>
 
-                    <p:column headerText="产品编号">
+                    <p:column headerText="产品编号" style="white-space:normal;">
                         <h:outputText value="#{row.reagent!=null?row.reagent.productSn:''}"></h:outputText>
                     </p:column>
 
-	                <p:column headerText="试剂名称">
-	                    <h:outputText value="#{row.reagent!=null?row.reagent.name:''}"></h:outputText>
+	                <p:column headerText="试剂名称" style="white-space:normal;">
+	                    <h:outputText value="#{row.reagent!=null?row.reagent.name:''}" ></h:outputText>
 	                </p:column>
 
                     <p:column headerText="管制品">
@@ -307,7 +307,7 @@
                         <p:column headerText="产品编号">
                             <h:outputText value="#{row.productSn}"></h:outputText>
                         </p:column>
-                        <p:column headerText="试剂名称">
+                        <p:column headerText="试剂名称"  style="white-space:normal;">
                             <h:outputText value="#{row.name}"></h:outputText>
                             <h:outputText value="收藏" readonly="true" rendered="#{row.favor!=null}" styleClass="favor"></h:outputText>
                         </p:column>
@@ -460,11 +460,11 @@
                         <p:column selectionMode="multiple" style="width: 30px;text-align: center;"/>
 
                         <p:ajax event="rowDblselect" listener="#{applyMngController.onApplyHistoryRowSelect}" update=":applyMngNewForm,:applyDialog"></p:ajax>
-                        <p:column headerText="申购编号" width="120">
+                        <p:column headerText="申购编号" width="120" style="white-space:normal;">
                             <h:outputText value="#{row.applyCode}"></h:outputText>
                         </p:column>
 
-                        <p:column headerText="申购产品">
+                        <p:column headerText="申购产品" style="white-space:normal;">
                             <h:outputText value="#{row.reagent!=null?row.reagent.name:''}"></h:outputText>
                         </p:column>
 
@@ -534,11 +534,11 @@
                                  rows="50" pageLinks="5">
 
                         <p:ajax event="rowDblselect" listener="#{applyMngController.onReagentRowSelect}" update=":applyMngNewForm,:applyDialog"></p:ajax>
-                        <p:column headerText="产品编号">
+                        <p:column headerText="产品编号" style="white-space:normal;">
                             <h:outputText value="#{row.productSn}"></h:outputText>
                         </p:column>
-                        <p:column headerText="试剂名称">
-                            <h:outputText value="#{row.name}"></h:outputText>
+                        <p:column headerText="试剂名称" style="white-space:normal;">
+                            <h:outputText value="#{row.name}" ></h:outputText>
                             <h:outputText value="收藏" readonly="true" rendered="#{row.favor!=null}" styleClass="favor"></h:outputText>
                         </p:column>
                         <p:column headerText="管制品">
diff --git a/src/main/webapp/index.xhtml b/src/main/webapp/index.xhtml
index 22e051a..c9e980c 100644
--- a/src/main/webapp/index.xhtml
+++ b/src/main/webapp/index.xhtml
@@ -151,7 +151,7 @@
     </ui:define>
 
     <ui:define name="south">
-        <a style="text-align: center;display: block" href="http://beian.miit.gov.cn" target="_Blank">Copyright©2017 中国科学院苏州纳米技术与纳米仿生研究所 苏ICP备10220403号-6</a>
+        <a style="text-align: center;display: block" href="http://beian.miit.gov.cn" target="_Blank">${institute.copyright}</a>
     </ui:define>
 </ui:composition>
 </html>
diff --git a/src/main/webapp/login.xhtml b/src/main/webapp/login.xhtml
index 998cdbb..b564f00 100644
--- a/src/main/webapp/login.xhtml
+++ b/src/main/webapp/login.xhtml
@@ -60,6 +60,6 @@
 		</h:form>
 	</div>
 
-	<a style="text-align: center;display: block" href="http://beian.miit.gov.cn" target="_Blank">Copyright©2017 中国科学院苏州纳米技术与纳米仿生研究所 苏ICP备10220403号-6</a>
+	<a style="text-align: center;display: block" href="http://beian.miit.gov.cn" target="_Blank">${institute.copyright}</a>
 </h:body>
 </html>
diff --git a/src/main/webapp/project_mng.xhtml b/src/main/webapp/project_mng.xhtml
index 238c70e..5d4ed3b 100644
--- a/src/main/webapp/project_mng.xhtml
+++ b/src/main/webapp/project_mng.xhtml
@@ -116,8 +116,8 @@
                                         var="item"
                                         dropdown="true"
                                         styleClass="apply-user-autocomplete"
-                                        itemLabel="#{!empty projectMngController.sysProject.sysUserId ?projectMngController.getSelectedUserById(projectMngController.sysProject.sysUserId).name : item.name}"
-                                        itemValue="#{item.id}" forceSelection="true">
+                                        itemLabel="#{!empty projectMngController.sysProject and !empty projectMngController.sysProject.sysUserId ? projectMngController.getSelectedUserById(projectMngController.sysProject.sysUserId).name: (!empty item?item.name:'')}"
+                                        itemValue="#{!empty item ? item.id:''}" forceSelection="true">
                             <p:ajax event="itemSelect" process="@this" update="@this" />
                             <p:column>
                                 <h:outputText value="#{item.name}" required="true" requiredMessage="请填写课题负责人"/>
diff --git a/src/main/webapp/reagent_mng.xhtml b/src/main/webapp/reagent_mng.xhtml
index c7f94c7..c893130 100644
--- a/src/main/webapp/reagent_mng.xhtml
+++ b/src/main/webapp/reagent_mng.xhtml
@@ -392,7 +392,7 @@
                     </p:column>
                     <p:column>
                         <p:inputNumber value="#{reagentMngController.sysReagent.price}"
-                                       decimalPlaces="2" minValue="0" maxlength="10"
+                                       decimalPlaces="4" minValue="0" maxlength="10"
                                        required="true" requiredMessage="请输入含税售价"></p:inputNumber>
                     </p:column>
                     <p:column>
diff --git "a/src/main/webapp/resources/template/\350\200\227\346\235\220\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/src/main/webapp/resources/template/\350\200\227\346\235\220\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
index 9d92ecb..be8dc20 100644
--- "a/src/main/webapp/resources/template/\350\200\227\346\235\220\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
+++ "b/src/main/webapp/resources/template/\350\200\227\346\235\220\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git a/src/sql/update.sql b/src/sql/update.sql
new file mode 100644
index 0000000..f746a00
--- /dev/null
+++ b/src/sql/update.sql
@@ -0,0 +1,6 @@
+--2023-11-10
+ALTER TABLE `smartlabdb`.`sys_reagent`
+MODIFY COLUMN `price` decimal(16, 4) NULL DEFAULT NULL COMMENT '含税售价' AFTER `reagent_unit`;
+
+ALTER TABLE `smartlb`.`ope_apply`
+MODIFY COLUMN `apply_price` decimal(16, 4) NULL DEFAULT NULL COMMENT '申购价格' AFTER `apply_goal`;
\ No newline at end of file

--
Gitblit v1.9.2