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

---
 src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java |  149 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 126 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
index a836046..75989d8 100644
--- a/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/ReagentMngController.java
@@ -7,6 +7,7 @@
 import com.nanometer.smartlab.util.Constants;
 import com.nanometer.smartlab.util.FacesUtils;
 import com.nanometer.smartlab.util.IDUtils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -25,6 +26,7 @@
 
 import javax.annotation.Resource;
 import javax.faces.context.FacesContext;
+import javax.faces.event.ActionListener;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -67,6 +69,7 @@
     private String cas;
     private List<SysSupplier> supplierSelectList;
     private List<Type> typeList;
+    private String productSn;
 
     public List<Type> getTypeList() {
         if (this.typeList == null) {
@@ -86,7 +89,7 @@
     private Integer type;
 
     public Integer getType() {
-        return type;
+        return type == null?0:type;
     }
 
     public void setType(Integer type) {
@@ -126,7 +129,6 @@
 
 
     public void query(){
-        System.out.println("start====================");
         List<SysReagent> list=this.sysReagentService.query();
         Map<String,SysReagent> map=new HashMap<>();
         List<SysReagent> list2 =new ArrayList<>();
@@ -520,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 = "";
@@ -592,10 +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() != 8){
+                    FacesUtils.warn("excel数据解析格式失败");
+                    return;
                 }
                 System.out.println("value :     "+valuesList);
                 sysReagent.setName(valuesList.get(0));//试剂名称
@@ -609,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);
@@ -616,16 +666,14 @@
                 sysReagentsList.add(sysReagent);
             }
             sysReagentService.insertSysReagentList2(sysReagentsList);
-            System.out.println("=========导入结束=====");
             FacesUtils.info("导入成功。");
         } catch (Exception ex) {
             ex.printStackTrace();
-            FacesUtils.info("导入失败。");
+            FacesUtils.info("导入失败,"+ex.getMessage());
         }
     }
     //导入
     public void uploadFile(FileUploadEvent event) {
-        System.out.println("=========导入开始=====");
         this.codeList=baseMetaService.getAllBaseMeta();
         this.sysSupplierList=sysSupplierService.getSysSupplierList();
         try{
@@ -661,7 +709,7 @@
 					throw new Exception("导入文件格式不正确");
 				}*/
 
-                for (int t = 0; t < totalCells; t++) {
+                for (int t = 0; t <= totalCells; t++) {
                     //System.out.println(row.getCell(t));
                     String cellInfo="";
                     String groupId = "";
@@ -747,11 +795,14 @@
                     }/*else if(t == 9){
                         valuesList.add(sysSupplierService.getSysSupplierIdByname(cellInfo));
                     }*/else{
-                        valuesList.add(cellInfo);
+                    	if(cellInfo!=null)
+                    		valuesList.add(cellInfo);
                     }
                 }
+/*                if (valuesList.size() != 13){
+                    break;
+                }*/
 
-                System.out.println("value :     "+valuesList);
                 sysReagent.setProductSn(valuesList.get(0));//产品编号
                 sysReagent.setName(valuesList.get(1));//试剂名称
                 sysReagent.setControlProducts(valuesList.get(2));//管制品
@@ -782,7 +833,6 @@
                 sysReagentsList.add(sysReagent);
             }
             sysReagentService.insertSysReagentList(sysReagentsList);
-            System.out.println("=========导入结束=====");
             FacesUtils.info("导入成功。");
         } catch (Exception ex) {
             ex.printStackTrace();
@@ -798,11 +848,12 @@
                 public List<SysReagent> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
                     List<SysReagent> list = null;
                     try {
-                        int count = sysReagentService.getSysReagentTotalCount(name, cas, supplierId,type);
+                        int count = sysReagentService.getSysReagentTotalCountNew(name, cas, supplierId,getType(),productSn);
                         this.setRowCount(count);
                         if (count > 0) {
-                            list = sysReagentService.getSysReagentList(name, cas, supplierId,type, first, pageSize);
+                            list = sysReagentService.getSysReagentListNew(name, cas, supplierId,getType(), first, pageSize,productSn);
                         }
+                        selectedList = new ArrayList<> ();
                     } catch (Exception e) {
                         logger.error(e);
                     }
@@ -811,22 +862,37 @@
 
                 @Override
                 public SysReagent getRowData(String rowKey) {
-                    Iterator<SysReagent> iterator = this.iterator();
-                    if (iterator != null) {
-                        SysReagent sr = null;
-                        while (iterator.hasNext()) {
-                            sr = iterator.next();
-                            if (rowKey.equals(sr.getId())) {
-                                return sr;
-                            }
-                        }
-                    }
-                    return null;
+//                    Iterator<SysReagent> iterator = this.iterator();
+//                    if (iterator != null) {
+//                        SysReagent sr = null;
+//                        while (iterator.hasNext()) {
+//                            sr = iterator.next();
+//                            if (rowKey.equals(sr.getId())) {
+//                                return sr;
+//                            }
+//                        }
+//                    }
+
+                    return sysReagentService.getSysReagent(rowKey);
                 }
             };
         }
 
         return dataModel;
+    }
+
+    public void export2Excel() {
+
+        List<Map> list = sysReagentService.selectAll(name, cas, supplierId,getType(), productSn);
+        try{
+            boolean isexport = sysReagentService.export2Excel(list,getType());
+            if (isexport){
+
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            FacesUtils.warn("导出失败");
+        }
     }
 
     public SysReagent getSysReagent() {
@@ -897,4 +963,41 @@
     public void setDangerousFlagSelectList(List<DangerousFlag> dangerousFlagSelectList) {
         this.dangerousFlagSelectList = dangerousFlagSelectList;
     }
+
+    public String getProductSn() {
+        return productSn;
+    }
+
+    public void setProductSn(String productSn) {
+        this.productSn = productSn;
+    }
+
+    public void openUpdateSafetyNumDialog() {
+        if (this.selectedList == null
+                || this.selectedList.size() == 0) {
+            FacesUtils.warn("请选择数据。");
+            return;
+        }
+        if (this.selectedList.size() > 1) {
+            FacesUtils.warn("只能选择一个数据进行修改。");
+            return;
+        }
+        this.sysReagent = this.sysReagentService.getSysReagent(this.selectedList.get(0).getId());
+        if (this.sysReagent.getType() != 1) {
+            FacesUtils.warn("只能选择试剂设置安全库存。");
+            return;
+        }
+        RequestContext.getCurrentInstance().execute("PF('dialog-setSafetynum').show()");
+    }
+
+    public void updateSafetyNum(){
+        if (this.sysReagent.getSafetynum() == null) {
+            FacesUtils.warn("请输入安全库存。");
+            return;
+        }
+        sysReagentService.updateSafetyNum(this.sysReagent);
+        FacesUtils.warn("修改成功。");
+        RequestContext.getCurrentInstance().execute("PF('dialog-setSafetynum').hide()");
+
+    }
 }

--
Gitblit v1.9.2