Browse Source

2022/7/7 代码优化

guoxu 2 years atrás
parent
commit
5d74e1f575

+ 15 - 9
src/main/java/com/jeeplus/modules/projectmaterialstorage/service/ProjectMaterialStorageService.java

@@ -68,49 +68,55 @@ public class ProjectMaterialStorageService extends CrudService<ProjectMaterialSt
     /**
      * 查询同项目名称、价格、材料名称的数量是否只有一个
      */
-    public String qureyCountAboutProjectMaterialStorage(List<ProjectMaterialStorageImport> projectMaterialStorageImports){
+    public Map qureyCountAboutProjectMaterialStorage(List<ProjectMaterialStorageImport> projectMaterialStorageImports){
         int i =0;
         HashMap map = new HashMap();
-        StringBuffer stringBuffer2 = new StringBuffer();
+        StringBuilder stringBuilder = new StringBuilder();
         List<String> list = new ArrayList();
         Set set = new HashSet();
         Boolean flag = false;
         //材料列表自身重复判断
         for (ProjectMaterialStorageImport projectMaterialStorageImport: projectMaterialStorageImports){
-            StringBuffer stringBuffer = new StringBuffer();
+            StringBuilder stringBuilder2 = new StringBuilder();
             String str = new String();
             str = projectMaterialStorageImport.getMaterialName()+projectMaterialStorageImport.getPrice()+projectMaterialStorageImport.getUnit();
             list.add(str);
-            stringBuffer.append(projectMaterialStorageImport.getMaterialName()).append(projectMaterialStorageImport.getPrice())
+            stringBuilder2.append(projectMaterialStorageImport.getMaterialName()).append(projectMaterialStorageImport.getPrice())
                     .append(projectMaterialStorageImport.getUnit());
             set.add(str);
             i++;
         }
+//        如果列表长度和set长度不符合,代表有不符合条件的参数
         if(projectMaterialStorageImports.size() != set.size()){
             if(list.size()>0){
                 for(int k =0;k< list.size();k++){
                     for(int j =0;j<list.size();j++){
                         if(list.get(k).toString().equals(list.get(j).toString())){
-                            stringBuffer2.append(" 在第"+i+"个的材料名、价格或单位重复");
+
+                            stringBuilder.append(" 在第"+i+"行的材料名、价格或单位重复");
+                            map.put("failure",stringBuilder);
                         }
                     }
                 }
             }
-            return stringBuffer2.toString();
+            return map;
         }
+//        数据库判断
         for(int j=0;j<projectMaterialStorageImports.size();j++){
             //材料列表数据库重复判断
             ProjectMaterialStorageImport projectMaterialStorageImport = projectMaterialStorageImports.get(j);
             if(projectMaterialStorageDao.selectCountAboutProjectMaterialStorage(projectMaterialStorageImport)!=0){
-                list.add("第"+j+"个的材料名、价格、单位重复,请重新添加");
+                stringBuilder.append("第"+j+"行的材料名、价格、单位重复,请重新添加");
                 flag = true;
             }
         }
         if(!flag){
             //如果重复,重复的材料名称以String形式抛出到前端  join方法
-            return  "successful";
+            map.put("successful",stringBuilder);
+            return  map;
         }else {
-            return StringUtils.join(list,",");
+            map.put("failure",stringBuilder);
+            return map;
         }
 
 

+ 20 - 15
src/main/java/com/jeeplus/modules/projectmaterialstorage/web/ProjectMaterialStorageController.java

@@ -17,6 +17,7 @@ import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workreceiptsregister.entity.ResponseEntity;
+import org.apache.commons.collections.IteratorUtils;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +32,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 
 @Controller
@@ -82,9 +82,11 @@ public class ProjectMaterialStorageController extends BaseController {
     @RequestMapping(value = "save")
     public String save(ProjectMaterialStorage projectMaterialStorage, Model model, RedirectAttributes redirectAttributes,String pageId) throws Exception {
         int i = 1;
-        List<ProjectMaterialStorageImport> projectMaterialStorageList = projectMaterialStorage.getProjectMaterialStorageList();
+        List<ProjectMaterialStorageImport> projectMaterialStorageList = new ArrayList<ProjectMaterialStorageImport>();
+        List<ProjectMaterialStorageImport> projectMaterialStorageList2 = projectMaterialStorage.getProjectMaterialStorageList();
+
         //        对于list的长度进行判断,判断小于0就根据来的位置进行返回
-        if(projectMaterialStorageList.size()<=0){
+        if(projectMaterialStorageList2.size()<=0){
             addMessage(redirectAttributes, "项目名称、材料名称、价格等获取失败,请重试");
 //            pageId 1代表这是从工程咨询进来的 2是从造价审核进来的
             if("1".equals(pageId)){
@@ -92,10 +94,18 @@ public class ProjectMaterialStorageController extends BaseController {
             }
             return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
         }
-        for(int k=0;k<projectMaterialStorageList.size();k++){
-            if(projectMaterialStorageList.get(k).getMaterialName() ==null&& projectMaterialStorageList.get(k).getPrice()==null && projectMaterialStorageList.get(k).getUnit()==null){
-                projectMaterialStorageList.remove(k);
+//        此处需要修改为迭代器形式
+        Iterator<ProjectMaterialStorageImport> iterator = projectMaterialStorageList2.iterator();
+        while (iterator.hasNext()){
+
+           ProjectMaterialStorageImport projectMaterialStorageImport = iterator.next();
+            if(projectMaterialStorageImport.getPrice() == null || projectMaterialStorageImport.getMaterialName() == null || projectMaterialStorageImport.getUnit()== null){
+                iterator.remove();
+            }else {
+                projectMaterialStorageList.add(projectMaterialStorageImport);
             }
+        }
+        for(int k=0;k<projectMaterialStorageList.size();k++){
             projectMaterialStorageList.get(k).setProjectNumber(projectMaterialStorage.getProjectNumber());
             projectMaterialStorageList.get(k).setIsNewRecord(true);
             //       判断项目名称、材料名称、价格是否为空
@@ -107,8 +117,9 @@ public class ProjectMaterialStorageController extends BaseController {
                 return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
             }
         }
-        if(!"successful".equals(projectMaterialStorageService.qureyCountAboutProjectMaterialStorage(projectMaterialStorageList))){
-            addMessage(redirectAttributes, projectMaterialStorageService.qureyCountAboutProjectMaterialStorage(projectMaterialStorageList));
+        Map map = projectMaterialStorageService.qureyCountAboutProjectMaterialStorage(projectMaterialStorageList);
+        if((map.containsKey("failure"))){
+            addMessage(redirectAttributes, map.get("failure").toString());
             if("1".equals(pageId)){
                 return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessageAll/?repage";
             }
@@ -352,9 +363,6 @@ public class ProjectMaterialStorageController extends BaseController {
 //        进行项目名称、材料名称、价格重复的判断
         if(projectMaterialStorage.getProjectNumber()==null && projectMaterialStorage.getMaterialName() ==null && projectMaterialStorage.getPrice() == null ){
             addMessage(redirectAttributes, "项目名称、材料名称、价格等获取失败,请重试");
-            if("1".equals(pageId)){
-                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessageAll/?repage";
-            }
             return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
         }
         projectMaterialStorage.setIsNewRecord(true);
@@ -364,9 +372,6 @@ public class ProjectMaterialStorageController extends BaseController {
         ruralProjectRecords.setprojectMaterialStorageStatus("2");
 
         projectMaterialStorageService.modifyProjectMaterialStorageStatus(ruralProjectRecords);
-        if("1".equals(pageId)){
-            return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessageAll/?repage";
-        }
         return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
     }
 

+ 27 - 9
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageList.jsp

@@ -304,16 +304,28 @@
 					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
 					<div class="commonQuery lw6">
 						<div class="layui-item query athird" style="margin-top: 10px">
-							<label class="layui-form-label">项目名称:</label>
+<%--							<label class="layui-form-label">项目名称:</label>--%>
+<%--							<div class="layui-input-block">--%>
+<%--								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>--%>
+<%--							</div>--%>
+
+							<label class="layui-form-label">项目名称</label>
 							<div class="layui-input-block">
-								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+										<sys:gridselectprojectmaterial url="${ctx}/project/projectMaterialStorage/selectproject" id="project" name="projectNumber"  value="${projectMaterialStorage.projectName}"  title="选择所属项目" labelName="projectName" cssStyle="background-color: #fff"
+									   labelValue="${projectMaterialStorage.projectName}" cssClass="form-control required layui-input" fieldLabels="项目名称" fieldKeys="projectName" searchLabel="项目名称" searchKey="projectName"  ></sys:gridselectprojectmaterial>
 							</div>
-					</div>
+						</div>
 					<div class="commonQuery lw6">
+<%--						<div class="layui-item query athird">--%>
+<%--							<label class="layui-form-label">材料名称:</label>--%>
+<%--							<div class="layui-input-block">--%>
+<%--								<form:input path="materialName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input" />--%>
+<%--						</div>--%>
 						<div class="layui-item query athird">
-							<label class="layui-form-label">材料名称:</label>
-							<div class="layui-input-block">
-								<form:input path="materialName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input" />
+							<label class="layui-form-label">报告号:</label>
+							<div class="layui-input-block with-icon">
+								<form:input path="projectId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
 						</div>
 					</div>
 
@@ -333,10 +345,16 @@
 					</div>
 					<div id="moresees" style="clear:both;display:none;" class="lw6">
 
+<%--						<div class="layui-item query athird">--%>
+<%--							<label class="layui-form-label">报告号:</label>--%>
+<%--							<div class="layui-input-block with-icon">--%>
+<%--								<form:input path="projectId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>--%>
+<%--							</div>--%>
+<%--						</div>--%>
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告号:</label>
-							<div class="layui-input-block with-icon">
-								<form:input path="projectId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							<label class="layui-form-label">材料名称:</label>
+							<div class="layui-input-block">
+								<form:input path="materialName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input" />
 							</div>
 						</div>