瀏覽代碼

Merge remote-tracking branch 'origin/master'

user5 3 年之前
父節點
當前提交
3a18a03a66
共有 20 個文件被更改,包括 559 次插入175 次删除
  1. 5 5
      src/main/java/com/jeeplus/modules/projectAccessory/web/ProjectAccessoryController.java
  2. 11 0
      src/main/java/com/jeeplus/modules/projectmaterialstorage/dao/ProjectMaterialStorageDao.java
  3. 14 13
      src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/ProjectMaterialStorage.java
  4. 63 0
      src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/projectMaterialStorageImport.java
  5. 46 8
      src/main/java/com/jeeplus/modules/projectmaterialstorage/service/ProjectMaterialStorageService.java
  6. 58 23
      src/main/java/com/jeeplus/modules/projectmaterialstorage/web/ProjectMaterialStorageController.java
  7. 221 18
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java
  8. 0 10
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  9. 16 17
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java
  10. 18 16
      src/main/java/com/jeeplus/modules/sys/web/WorkattachmentController.java
  11. 1 1
      src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java
  12. 27 6
      src/main/resources/mappings/modules/projectMaterialStorage/ProjectMaterialStorageDao.xml
  13. 2 2
      src/main/webapp/static/common/jeeplus.js
  14. 10 4
      src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageForm.jsp
  15. 19 20
      src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageList.jsp
  16. 6 6
      src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageTwoForm.jsp
  17. 7 5
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectMessageList.jsp
  18. 8 8
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsAdminModify.jsp
  19. 21 7
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsAdminModify.jsp
  20. 6 6
      src/main/webapp/webpage/modules/sys/gridMaterialProject.jsp

+ 5 - 5
src/main/java/com/jeeplus/modules/projectAccessory/web/ProjectAccessoryController.java

@@ -21,10 +21,8 @@ import com.jeeplus.modules.projectAccessory.service.CollectAccessoryService;
 import com.jeeplus.modules.projectAccessory.service.ProjectAccessoryService;
 import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
 import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
-import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorage;
-import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectmaterialstorage.service.ProjectMaterialStorageService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.web.RuralProjectRecordsController;
@@ -33,7 +31,6 @@ import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -78,6 +75,8 @@ public class ProjectAccessoryController extends BaseController {
 	private ProjectBasedDataService projectBasedDataService;
 	@Autowired
 	private RuralProjectRecordsController ruralProjectRecordsController;
+	@Autowired
+	private ProjectMaterialStorageService projectMaterialStorageService;
 
 	@ModelAttribute
 	public ProjectAccessoryInfo get(@RequestParam(required=false) String id) {
@@ -445,6 +444,7 @@ public class ProjectAccessoryController extends BaseController {
 			map.put("str","");
 		}
 
+		//cf70486864254239b3533eba5c19c19e 材料确认单id  (强耦合)
 		if("cf70486864254239b3533eba5c19c19e".equals(projectAccessory.getId())) {
 			RuralProjectRecords ruralProjectRecords =  ruralProjectRecordsController.get(projectAccessory.getProjectId());
 			Workattachment workattachment1 = new Workattachment();
@@ -455,7 +455,7 @@ public class ProjectAccessoryController extends BaseController {
 				ruralProjectRecords.setprojectMaterialStorageStatus("0");
 			}
 
-			ruralProjectRecordsController.modfiyRuralProjectRecordsMaterialStorageStatus(ruralProjectRecords);
+			projectMaterialStorageService.modifyProjectMaterialStorageStatus(ruralProjectRecords);
 		}
 
 		long t2 = System.currentTimeMillis();

+ 11 - 0
src/main/java/com/jeeplus/modules/projectmaterialstorage/dao/ProjectMaterialStorageDao.java

@@ -4,6 +4,7 @@ package com.jeeplus.modules.projectmaterialstorage.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.project.entity.Project;
 import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorage;
 
 
@@ -14,5 +15,15 @@ import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorage;
 public interface ProjectMaterialStorageDao extends CrudDao<ProjectMaterialStorage> {
 
 
+    /**
+     * 查询项目名称
+     * @param projectMaterialStorage
+     * @return
+     */
+    public String getProjectName(ProjectMaterialStorage projectMaterialStorage);
 
+    /**
+     * 查询同项目名称、价格、材料名称的数量
+     */
+    public Integer selectCountAboutProjectMaterialStorage(ProjectMaterialStorage projectMaterialStorage);
 }

+ 14 - 13
src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/ProjectMaterialStorage.java

@@ -1,23 +1,26 @@
 package com.jeeplus.modules.projectmaterialstorage.entity;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.DataEntity;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.modules.project.entity.Project;
 import com.jeeplus.modules.sys.entity.Area;
-import org.bouncycastle.asn1.cms.PasswordRecipientInfo;
 
 import java.util.Date;
+import java.util.List;
 
 public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
 
     private static final long serialVersionUID = 1707305231298038352L;
 
-    private String id;
-
     private String projectNumber;  //报告号
 
     private Double price ; //材料价格
 
+    //材料信息数据表集合
+    private List<projectMaterialStorageImport> projectMaterialStorageList = Lists.newArrayList();
+
+
     public Date getBeginDate() {
         return beginDate;
     }
@@ -72,16 +75,6 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
         return projectName;
     }
 
-    @Override
-    public String getId() {
-        return id;
-    }
-
-    @Override
-    public void setId(String id) {
-        this.id = id;
-    }
-
     public void setProjectName(String projectName) {
         this.projectName = projectName;
     }
@@ -145,4 +138,12 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
     public void setUnit(String unit) {
         this.unit = unit;
     }
+
+    public List<projectMaterialStorageImport> getProjectMaterialStorageList() {
+        return projectMaterialStorageList;
+    }
+
+    public void setProjectMaterialStorageList(List<projectMaterialStorageImport> projectMaterialStorageList) {
+        this.projectMaterialStorageList = projectMaterialStorageList;
+    }
 }

+ 63 - 0
src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/projectMaterialStorageImport.java

@@ -0,0 +1,63 @@
+package com.jeeplus.modules.projectmaterialstorage.entity;
+
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.modules.project.entity.Project;
+
+/**
+ * @author: 徐滕
+ * @version: 2022-07-04 17:16
+ */
+public class projectMaterialStorageImport extends DataEntity<projectMaterialStorageImport> {
+
+
+
+    private String projectNumber;  //报告号
+
+    private Double price ; //材料价格
+
+    private String materialName; //材料名称
+
+    private Project project;  //项目
+
+    private String unit; //单位
+
+    public String getProjectNumber() {
+        return projectNumber;
+    }
+
+    public void setProjectNumber(String projectNumber) {
+        this.projectNumber = projectNumber;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public String getMaterialName() {
+        return materialName;
+    }
+
+    public void setMaterialName(String materialName) {
+        this.materialName = materialName;
+    }
+
+    public Project getProject() {
+        return project;
+    }
+
+    public void setProject(Project project) {
+        this.project = project;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+}

+ 46 - 8
src/main/java/com/jeeplus/modules/projectmaterialstorage/service/ProjectMaterialStorageService.java

@@ -1,23 +1,16 @@
 package com.jeeplus.modules.projectmaterialstorage.service;
 
 
-import afu.org.checkerframework.checker.igj.qual.I;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
-import com.jeeplus.common.utils.MenuStatusEnum;
 import com.jeeplus.modules.projectmaterialstorage.dao.ProjectMaterialStorageDao;
 import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorage;
-import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorageExport;
+import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordsDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsExport;
-import com.jeeplus.modules.sys.utils.UserUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
-
 /**
  * 项目表Service
  * @author gx
@@ -29,6 +22,8 @@ public class ProjectMaterialStorageService extends CrudService<ProjectMaterialSt
 
     @Autowired
     private ProjectMaterialStorageDao projectMaterialStorageDao;
+    @Autowired
+    private RuralProjectRecordsDao ruralProjectRecordsDao;
 
     public ProjectMaterialStorage get(String id){
         return super.get(id);
@@ -57,4 +52,47 @@ public class ProjectMaterialStorageService extends CrudService<ProjectMaterialSt
     public Integer update(ProjectMaterialStorage projectMaterialStorage){
        return projectMaterialStorageDao.update(projectMaterialStorage);
     }
+
+    /**
+     * 获取项目名字
+     */
+    public  String getProjectName(ProjectMaterialStorage projectMaterialStorage){
+       return projectMaterialStorageDao.getProjectName(projectMaterialStorage);
+    }
+
+    /**
+     * 查询同项目名称、价格、材料名称的数量是否只有一个
+     */
+    public Boolean qureyCountAboutProjectMaterialStorage(ProjectMaterialStorage projectMaterialStorage){
+        //材料列表自身重复判断
+
+        //材料列表数据库重复判断
+
+        //如果重复,重复的材料名称以String形式抛出到前端
+
+        if(projectMaterialStorageDao.selectCountAboutProjectMaterialStorage(projectMaterialStorage) != 1){
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 逻辑删除
+     */
+    @Transactional(readOnly = false)
+    public Integer delectBylogic(ProjectMaterialStorage projectMaterialStorage){
+        return dao.deleteByLogic(projectMaterialStorage);
+    }
+
+
+    /**
+     * 修改项目表中的材料库状态信息
+     */
+    @Transactional(readOnly = false)
+    public String modifyProjectMaterialStorageStatus(RuralProjectRecords ruralProjectRecords){
+        if(ruralProjectRecordsDao.modfiyProjectMaterialStorageStatus(ruralProjectRecords) == 1){
+            return "修改成功";
+        }
+        return "修改失败";
+    }
 }

+ 58 - 23
src/main/java/com/jeeplus/modules/projectmaterialstorage/web/ProjectMaterialStorageController.java

@@ -2,31 +2,22 @@ package com.jeeplus.modules.projectmaterialstorage.web;
 
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
-import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
-import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorage;
 import com.jeeplus.modules.projectmaterialstorage.service.ProjectMaterialStorageService;
-import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsExport;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
-import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
-import com.jeeplus.modules.sys.entity.Area;
 import com.jeeplus.modules.sys.utils.UserUtils;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
-import com.jeeplus.modules.workcontent.entity.WorkPreliminaryDesignEstimate;
-import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workreceiptsregister.entity.ResponseEntity;
-import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.annotation.Id;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
@@ -35,7 +26,8 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.text.SimpleDateFormat;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -47,7 +39,9 @@ public class ProjectMaterialStorageController extends BaseController {
     @Autowired
     private ProjectMaterialStorageService projectMaterialStorageService;
     @Autowired
-    private RuralProjectRecordsService projectRecordsService;
+    private RuralProjectRecordsService ruralProjectRecordsService;
+    @Autowired
+    protected ProjectRecordsService projectRecordsService;
 
     @ModelAttribute
     public ProjectMaterialStorage get(@RequestParam(required = false) String id){
@@ -86,18 +80,21 @@ public class ProjectMaterialStorageController extends BaseController {
     public String save(ProjectMaterialStorage projectMaterialStorage, Model model, RedirectAttributes redirectAttributes) throws Exception {
 
 //        projectNumber update_by  update_date create_by create_date
-        if(projectMaterialStorage.getProjectNumber()==null && projectMaterialStorage.getMaterialName() ==null  ){
-            addMessage(redirectAttributes, "上传失败,请重试");
+//       判断项目名称、材料名称、价格是否为空
+        if(projectMaterialStorage.getProjectNumber()==null && projectMaterialStorage.getMaterialName() ==null && projectMaterialStorage.getPrice() == null ){
+            addMessage(redirectAttributes, "项目名称、材料名称、价格等获取失败,请重试");
             return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
         }
+//        进行项目名称、材料名称、价格重复的判断
         projectMaterialStorage.setIsNewRecord(true);
-        if(" " ==projectMaterialStorage.getRemarks()){
-            projectMaterialStorage.setRemarks(" ");
+        if(!projectMaterialStorageService.qureyCountAboutProjectMaterialStorage(projectMaterialStorage)){
+            addMessage(redirectAttributes, "当前的项目名称、材料名称、价格重复,请重试");
+            return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
         }
         projectMaterialStorageService.save(projectMaterialStorage);
-        RuralProjectRecords ruralProjectRecords = projectRecordsService.get(projectMaterialStorage.getProjectNumber());
+        RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(projectMaterialStorage.getProjectNumber());
         ruralProjectRecords.setprojectMaterialStorageStatus("2");
-        projectRecordsService.modfiyProjectMaterialStorageStatus(ruralProjectRecords);
+        projectMaterialStorageService.modifyProjectMaterialStorageStatus(ruralProjectRecords);
         return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
     }
 
@@ -123,11 +120,12 @@ public class ProjectMaterialStorageController extends BaseController {
     /**
      * 删除材料库
      */
-    @RequiresPermissions("project:projectMaterialStorage:del")
     @RequestMapping(value = "delete")
     public String delete(ProjectMaterialStorage projectMaterialStorage, RedirectAttributes redirectAttributes) {
 
-            projectMaterialStorageService.delete(projectMaterialStorage);
+           if(projectMaterialStorageService.delectBylogic(projectMaterialStorage) != 1){
+               addMessage(redirectAttributes, "删除失败,请重试");
+           }
             return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
         }
 
@@ -161,7 +159,7 @@ public class ProjectMaterialStorageController extends BaseController {
     @RequestMapping(value = "form")
     public String form(RuralProjectRecords projectRecords, Model model) {
         if (projectRecords != null && StringUtils.isNotBlank(projectRecords.getId())) {
-            projectRecords = projectRecordsService.getQueryProjectUsers(projectRecords.getId());
+            projectRecords = ruralProjectRecordsService.getQueryProjectUsers(projectRecords.getId());
 //            RuralProjectcontentinfo ruralProjectcontentinfo = projectRecordsService.formAccessory(projectRecords);
 //            projectRecordsService.disposeData(ruralProjectcontentinfo);
 //            model.addAttribute("projectcontentinfo", ruralProjectcontentinfo);
@@ -225,10 +223,47 @@ public class ProjectMaterialStorageController extends BaseController {
             model.addAttribute("projectMaterialStorage", projectMaterialStorage1);
             return "modules/projectMaterialStorage/projectMaterialStorageTwoForm";
         }
+        if(StringUtils.isNotBlank(projectMaterialStorage.getProjectNumber())){
+            ProjectMaterialStorage projectMaterialStorage2 = projectMaterialStorageService.get(projectMaterialStorage.getId());
+            model.addAttribute("projectMaterialStorage", projectMaterialStorage2);
+        }
         model.addAttribute("projectMaterialStorage", projectMaterialStorage);
 
         return "modules/projectMaterialStorage/projectMaterialStorageTwoForm";
     }
 
 
+    /**
+     * 选择开票项目
+     */
+    @RequestMapping(value = "selectproject")
+    public String selectproject(ProjectRecords project, String url, String fieldLabels, String fieldKeys, String searchLabel, String searchKey, String ids, Integer isProject, Integer isProjectFalg, String details, HttpServletRequest request, HttpServletResponse response, Model model) {
+        project.setCompany(UserUtils.getSelectCompany());
+        project.setProjectStatus(ProjectStatusEnum.SIGNED.getValue());//已签状态
+        Page<ProjectRecords> page = projectRecordsService.ruralFindPage(new Page<ProjectRecords>(request, response), project);
+        List<ProjectRecords> list = page.getList();
+        try {
+            fieldLabels = URLDecoder.decode(fieldLabels, "UTF-8");
+            fieldKeys = URLDecoder.decode(fieldKeys, "UTF-8");
+            searchLabel = URLDecoder.decode(searchLabel, "UTF-8");
+            searchKey = URLDecoder.decode(searchKey, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+            logger.error("Exception e:"+e);
+        }
+        model.addAttribute("labelNames", fieldLabels.split("\\|"));
+        model.addAttribute("labelValues", fieldKeys.split("\\|"));
+        model.addAttribute("fieldLabels", fieldLabels);
+        model.addAttribute("fieldKeys", fieldKeys);
+        model.addAttribute("url", url);
+        model.addAttribute("searchLabel", searchLabel);
+        model.addAttribute("searchKey", searchKey);
+        project.setDetails(details);
+        model.addAttribute("obj", project);
+        model.addAttribute("isProject", isProject);
+        model.addAttribute("isProjectFalg", isProjectFalg);
+        model.addAttribute("page",page);
+        return "modules/sys/gridMaterialProject";
+    }
+
 }

+ 221 - 18
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java

@@ -1093,28 +1093,36 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
             //保存工作报告相关数据
             ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
             if(StringUtils.isNotBlank(projectReportData.getId())){
-                projectReportData = projectReportDataDao.get(projectReportData.getId());
-            }
-            projectReportData.setName(projectcontentinfo.getProjectOnRural().getProjectName());
-            projectReportData.setCompanyId(contentinfo.getCompanyId());
-            projectReportData.setOfficeId(contentinfo.getOfficeId());
-            projectReportData.setProject(contentinfo.getProject());
-            if(null == projectReportData.getAuditPassDate()){
-                projectReportData.setAuditPassDate(new Date());
-            }
-            projectReportData.setReportDate(new Date());
-            if (com.jeeplus.common.utils.StringUtils.isBlank(projectReportData.getId())){
-                projectReportData.setFileStatus("1");
-            }
-            //修改保存
-//            String num = projectReportData.getNumber();
+                ProjectReportData oldProjectReportData = projectReportDataDao.get(projectReportData.getId());
+                try {
+                    MyBeanUtils.copyBeanNotNull2Bean(projectReportData,oldProjectReportData);//将编辑表单中的非NULL值覆盖数据库记录中的值
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    logger.error("Exception e:"+e);
+                }
+
+                oldProjectReportData.setName(projectcontentinfo.getProjectOnRural().getProjectName());
+                oldProjectReportData.setCompanyId(contentinfo.getCompanyId());
+                oldProjectReportData.setOfficeId(contentinfo.getOfficeId());
+                oldProjectReportData.setProject(contentinfo.getProject());
+                if(null == oldProjectReportData.getAuditPassDate()){
+                    oldProjectReportData.setAuditPassDate(new Date());
+                }
+                oldProjectReportData.setReportDate(new Date());
+                if (com.jeeplus.common.utils.StringUtils.isBlank(oldProjectReportData.getId())){
+                    oldProjectReportData.setFileStatus("1");
+                }
+                //修改保存
+//            String num = oldProjectReportData.getNumber();
 //            if(com.jeeplus.common.utils.StringUtils.isNotBlank(num)){
 //                projectReportNumService.updateNum(num);
 //            }
-            projectReportDataService.save(projectReportData);
-//            contentinfo.setDictType(projectReportData.getType());
-//            contentinfo.setInfoId(projectReportData.getId());
+                projectReportDataService.save(oldProjectReportData);
+//            contentinfo.setDictType(oldProjectReportData.getType());
+//            contentinfo.setInfoId(oldProjectReportData.getId());
 //            projectcontentinfoDao.updateInfoId(contentinfo);
+            }
+
         }
         historicalService.save(historicalData);
         //上报修改
@@ -3979,6 +3987,201 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
 
 
     /**
+     * 根据项目id 和 documentId生成合同id
+     * @param projectId
+     * @param documentList
+     * @return
+     */
+    public HashMap getSignatureContractId1(String projectId, List<String> documentList ,String principalUserId,String generalManagerUserId){
+        HashMap hashMap = new HashMap();
+        Set<String> serialIdSet = new HashSet<>();
+        //根据项目id查询项目信息
+        RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(projectId);
+        //创建签署方信息
+        List<Action> actions = Lists.newArrayList();
+        Action companyAction = new Action();
+        companyAction.setType("CORPORATE");
+        companyAction.setName("公司印章");
+        companyAction.setSerialNo("1");
+        //公司圆章-竖
+        serialIdSet.add(COMPANYROUNDSEALIDVERTICAL);
+        //添加盖章位置
+        List<Location> locations = Lists.newArrayList();
+        for (String documentId: documentList) {
+            Location location = new Location();
+            location.setSealId(COMPANYROUNDSEALIDVERTICAL);
+            location.setDocumentId(documentId);
+            location.setPage("0");
+            location.setRectType("SEAL_CORPORATE");
+            location.setKeywordIndex(-1);
+            location.setOffsetX("0.5264");
+            location.setOffsetY("0.6787");
+            locations.add(location);
+        }
+
+        //根据角色信息录入签署方信息
+        //负责人
+        if(StringUtils.isNotBlank(principalUserId)){
+            User user = UserUtils.get(principalUserId);
+            if(null != user){
+                //获取成员印章id信息
+                String userSealId = SignaturePostUtil.getUserSealByMobile(user.getMobile(),"",user.getName() + "一级注册造价工程师章-竖");
+                if(StringUtils.isNotBlank(userSealId)){
+                    for (String documentId: documentList) {
+                        //添加盖章位置
+                        Location principalLocation = new Location();
+                        serialIdSet.add(userSealId);
+                        principalLocation.setSealId(userSealId);
+                        principalLocation.setDocumentId(documentId);
+                        principalLocation.setPage("0");
+                        principalLocation.setRectType("SEAL_CORPORATE");
+                        principalLocation.setKeywordIndex(-1);
+                        principalLocation.setOffsetX("0.5971");
+                        principalLocation.setOffsetY("0.8176");
+                        locations.add(principalLocation);
+                    }
+                }else{
+                    hashMap.put("code","2");
+                    hashMap.put("message","查询不到项目负责人 "+ user.getName() + " 的印章信息!请联系管理员");
+                    return hashMap;
+                }
+            }
+        }else{
+            hashMap.put("code","2");
+            hashMap.put("message","查询不到项目负责人信息!请联系管理员");
+            return hashMap;
+        }
+        //总经理
+        User technologyPrincipalUser = UserUtils.getByLoginName("陈红星");
+        if(null != technologyPrincipalUser){
+            //获取成员印章id信息
+            String userSealId = SignaturePostUtil.getUserSealByMobile(technologyPrincipalUser.getMobile(),"","陈红星个人签名章-竖");
+            if(StringUtils.isNotBlank(userSealId)){
+                for (String documentId: documentList) {
+                    //添加盖章位置
+                    Location principalLocation = new Location();
+                    serialIdSet.add(userSealId);
+                    principalLocation.setSealId(userSealId);
+                    principalLocation.setDocumentId(documentId);
+                    principalLocation.setPage("0");
+                    principalLocation.setRectType("SEAL_CORPORATE");
+                    principalLocation.setKeywordIndex(-1);
+                    principalLocation.setOffsetX("0.7758");
+                    principalLocation.setOffsetY("0.7339");
+                    locations.add(principalLocation);
+                }
+
+            }else{
+                hashMap.put("code","2");
+                hashMap.put("message","查询不到技术负责人 陈红星 的印章信息!请联系管理员");
+                return hashMap;
+            }
+        }else{
+            hashMap.put("code","2");
+            hashMap.put("message","查询不到技术负责人信息!请联系管理员");
+            return hashMap;
+        }
+        List<String> serialIdList = new ArrayList<String>(serialIdSet);
+        companyAction.setSealIds("[" + String.join(",", serialIdList) + "]");
+        companyAction.setAutoSign("true");
+        companyAction.setLocations(locations);
+        actions.add(companyAction);
+
+        //创建个人职业章参数
+        Action professionalChapterAction = new Action();
+        professionalChapterAction.setType("PRACTICE");
+        professionalChapterAction.setName("个人职业章");
+        professionalChapterAction.setSerialNo("1");
+
+        //添加盖章位置
+        List<Location> professionalChapterLocations = Lists.newArrayList();
+
+        Set<String> professionalChapterSerialIdSet = new HashSet<>();
+
+        //添加个人职业章人员信息
+        ActionOperatorInfo actionOperatorInfo = new ActionOperatorInfo();
+        actionOperatorInfo.setOperatorContact("15240492484");
+        List<ActionOperatorInfo> actionOperators = Lists.newArrayList();
+        professionalChapterAction.setActionOperators(actionOperators);
+
+        //获取成员印章id信息
+        String userSealId = SignaturePostUtil.getUserSealByMobile("15240492484","","杨荣华个人签名");
+        if(StringUtils.isNotBlank(userSealId)){
+            for (String documentId: documentList) {
+                //添加盖章位置
+                Location principalLocation = new Location();
+                professionalChapterSerialIdSet.add(userSealId);
+                principalLocation.setSealId(userSealId);
+                principalLocation.setDocumentId(documentId);
+                principalLocation.setPage("0");
+                principalLocation.setRectType("SEAL_CORPORATE");
+                principalLocation.setKeywordIndex(-1);
+                principalLocation.setOffsetX("0.5971");
+                principalLocation.setOffsetY("0.8176");
+                professionalChapterLocations.add(principalLocation);
+            }
+        }else{
+            hashMap.put("code","2");
+            hashMap.put("message","查询不到项目负责人 的印章信息!请联系管理员");
+            return hashMap;
+        }
+
+        /*//获取成员印章id信息
+        String userSealId2 = SignaturePostUtil.getUserSealByMobile("18351935168","","陈红星造价工程师章");
+        if(StringUtils.isNotBlank(userSealId2)){
+            for (String documentId: documentList) {
+                //添加盖章位置
+                Location principalLocation = new Location();
+                professionalChapterSerialIdSet.add(userSealId2);
+                principalLocation.setSealId(userSealId2);
+                principalLocation.setDocumentId(documentId);
+                principalLocation.setPage("0");
+                principalLocation.setRectType("SEAL_CORPORATE");
+                principalLocation.setKeywordIndex(-1);
+                principalLocation.setOffsetX("0.7758");
+                principalLocation.setOffsetY("0.7339");
+                professionalChapterLocations.add(principalLocation);
+            }
+
+        }*/
+
+        List<String> serialIdsList = new ArrayList<String>(professionalChapterSerialIdSet);
+        professionalChapterAction.setSealIds("[" + String.join(",", serialIdsList) + "]");
+        professionalChapterAction.setLocations(locations);
+        net.sf.json.JSONObject professionalChapterJson = net.sf.json.JSONObject.fromObject(professionalChapterAction);
+        System.out.println(professionalChapterJson.toString());
+        actions.add(professionalChapterAction);
+
+
+
+
+
+
+        //创建签署方信息表
+        List<SignatorieInfo> signatories = Lists.newArrayList();
+        SignatorieInfo signatorieInfo1 = new SignatorieInfo();
+        signatorieInfo1.setSerialNo("1");
+        signatorieInfo1.setTenantName("江苏兴光项目管理有限公司");
+        signatorieInfo1.setTenantType("COMPANY");
+        signatorieInfo1.setActions(actions);
+        signatories.add(signatorieInfo1);
+        SignatureContract signatureContract = new SignatureContract();
+        signatureContract.setDocuments(documentList);
+        //审定单用印流程id
+        signatureContract.setCategoryId(APPROVALCATEGORYID);
+        signatureContract.setSend(true);
+        signatureContract.setSignatories(signatories);
+        signatureContract.setSn("");
+        signatureContract.setSubject(ruralProjectRecords.getProjectName());//添加项目名称
+        net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(signatureContract);
+        String contractIdMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/createbycategory", json.toString());
+        hashMap = JSON.parseObject(contractIdMapStr, HashMap.class);
+
+        return hashMap;
+    }
+
+
+    /**
      * 根据项目id 和 documentId生成合同id(盐城)
      * @param projectId
      * @param documentList

+ 0 - 10
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -4785,15 +4785,5 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		return c.getTime();
 	}
 
-	/**
-	 * 修改项目表中的材料库状态信息
-	 */
-	@Transactional(readOnly = false)
-	public String modfiyProjectMaterialStorageStatus(RuralProjectRecords ruralProjectRecords){
-		 if(ruralProjectRecordsDao.modfiyProjectMaterialStorageStatus(ruralProjectRecords) == 1){
-		 	return "修改成功";
-		 }
-		 return "修改失败";
-	}
 
 }

+ 16 - 17
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java

@@ -50,7 +50,6 @@ import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import com.jeeplus.modules.workreimbursement.service.WorkReimbursementService;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
-import org.apache.regexp.RE;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.json.JSONArray;
@@ -449,6 +448,11 @@ public class RuralProjectRecordsController extends BaseController {
 	public String adminModify(RuralProjectRecords projectRecords, Model model) {
 		projectRecords=projectRecordsService.get(projectRecords.getId());
 		projectRecordsService.queryProjectDetail(projectRecords);
+
+		//根据归属部门Id查询归属部门名称显示
+		String belongingDepartmentName = projectRecordsService.getBelongingDepartmentNameByBelongingDepartment(projectRecords.getBelongingDepartment());
+		model.addAttribute("belongingDepartmentName",belongingDepartmentName);
+
 		ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
 		projectPlanInfo.setProjectId(projectRecords.getId());
 		if(null != projectRecords.getWorkContractInfo()){
@@ -1233,21 +1237,16 @@ public class RuralProjectRecordsController extends BaseController {
 			}
 		}
 	}
-	/**
-	 * 查询项目名称是否重复
-	 */
-	@RequestMapping(value = "reProjectName")
-	@ResponseBody
-	public Integer reProjectName(String projectName){
-		Integer count = projectRecordsService.reProjectName(projectName);
-		return count;
-	}
 
-	/**
-	 * 上传材料库文件修改项目材料库状态
-	 */
-	@RequestMapping(value = "")
-	public String modfiyRuralProjectRecordsMaterialStorageStatus(RuralProjectRecords ruralProjectRecords){
-		return projectRecordsService.modfiyProjectMaterialStorageStatus(ruralProjectRecords);
-	}
+//	/**
+//	 * 查询项目名称是否重复
+//	 */
+//	@RequestMapping(value = "reProjectName")
+//	@ResponseBody
+//	public Integer reProjectName(String projectName){
+//		Integer count = projectRecordsService.reProjectName(projectName);
+//		return count;
+//	}
+
+
 }

+ 18 - 16
src/main/java/com/jeeplus/modules/sys/web/WorkattachmentController.java

@@ -14,8 +14,9 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectmaterialstorage.service.ProjectMaterialStorageService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
-import com.jeeplus.modules.ruralprojectrecords.web.RuralProjectRecordsController;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.UserUtils;
@@ -23,7 +24,6 @@ import com.jeeplus.modules.utils.SftpClientUtil;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.method.P;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
@@ -52,7 +52,9 @@ public class WorkattachmentController extends BaseController {
 	@Autowired
 	private WorkattachmentService workattachmentService;
 	@Autowired
-	private RuralProjectRecordsController ruralProjectRecordsController;
+	private RuralProjectRecordsService ruralProjectRecordsService;
+	@Autowired
+	private ProjectMaterialStorageService projectMaterialStorageService;
 
 	@ModelAttribute
 	public Workattachment get(@RequestParam(required=false) String id) {
@@ -249,29 +251,29 @@ public class WorkattachmentController extends BaseController {
 						sftpClientUtil.delete(workattachment.getUrl());
 					}else{
 						sftpClientUtil.delete(url);
-					}
+						}
 
-					if(workattachment != null){
-						workattachmentService.delete(workattachment);
+						if(workattachment != null){
+							workattachmentService.delete(workattachment);
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
 					}
-				} catch (Exception e) {
-					e.printStackTrace();
 				}
 			}
-		}
-		HashMap<Object, Object> map = Maps.newHashMap();
-		map.put("str","success");
+			HashMap<Object, Object> map = Maps.newHashMap();
+			map.put("str","success");
 
-	if(StringUtils.isNotBlank(workAttachment1.getProjectId())){
-			if("cf70486864254239b3533eba5c19c19e".equals(workAttachment1.getAttachmentId())){
-				String proId = workAttachment1.getProjectId();
-				RuralProjectRecords ruralProjectRecords = ruralProjectRecordsController.get(proId);
+		if(StringUtils.isNotBlank(workAttachment1.getProjectId())){
+				//cf70486864254239b3533eba5c19c19e 材料确认单id  (强耦合)
+				if("cf70486864254239b3533eba5c19c19e".equals(workAttachment1.getAttachmentId())){
+				RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(workAttachment1.getProjectId());
 				if(workattachmentService.queryMaterialListFile(workAttachment1) != 0){
 					ruralProjectRecords.setprojectMaterialStorageStatus("1");
 				}else{
 					ruralProjectRecords.setprojectMaterialStorageStatus("0");
 				}
-				ruralProjectRecordsController.modfiyRuralProjectRecordsMaterialStorageStatus(ruralProjectRecords);
+				projectMaterialStorageService.modifyProjectMaterialStorageStatus(ruralProjectRecords);
 		}
 		}
 

+ 1 - 1
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java

@@ -921,7 +921,7 @@ public class WorkInvoiceTwoController extends BaseController {
 		model.addAttribute("isProject", isProject);
 		model.addAttribute("isProjectFalg", isProjectFalg);
 		model.addAttribute("page",page);
-		return "modules/sys/gridMaterialProject";
+		return "modules/sys/gridinvoiceproject";
 	}
 	/**
 	 * 选择开票项目

+ 27 - 6
src/main/resources/mappings/modules/projectMaterialStorage/ProjectMaterialStorageDao.xml

@@ -12,7 +12,9 @@
 		a.update_by AS "updateBy.id",
 		a.update_date AS "updateDate",
 		a.remarks AS "remarks",
-		a.del_flag AS "delFlag"
+		a.del_flag AS "delFlag",
+		r.project_name as "projectName",
+		a.unit as "unit"
 	</sql>
 
 	<sql id="projectJoins">
@@ -32,16 +34,17 @@
 		SELECT
 			<include refid="projectMaterialStorageColumns"/>
 		FROM project_material_storage a
+		left join rural_project_records r on a.project_number = r.id
 <!--		<include refid="projectJoins"/>-->
 		WHERE a.id = #{id}
 	</select>
 
 	<select id="findList" resultType="com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorage" >
 		SELECT
-		a.id,a.material_name,a.price,a.create_date as createDate,r.project_name,sys_area.name as 'areaName',a.project_number as 'projectNumber',a.unit as 'unit'
+		a.id,a.material_name,a.price,a.create_date as createDate,r.project_name,sys_area.name as 'areaName',a.project_number as 'projectNumber',a.unit as 'unit',r.project_id as 'projectId'
 		FROM project_material_storage a
 		left join rural_project_records as r
-		on a.project_number = r.project_id
+		on a.project_number = r.id
 		LEFT JOIN sys_area
 		on sys_area.id = r.area_id
 		<where>
@@ -67,13 +70,16 @@
 			<if test="endDate !=null">
 				AND a.create_date &lt; #{endDate}
 			</if>
+			<if test="projectId !=null">
+				AND r.project_id like concat(concat('%',#{projectId}),'%')
+			</if>
 		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}
 			</when>
 			<otherwise>
-				ORDER BY a.update_date DESC
+				ORDER BY r.create_date DESC,a.create_date DESC
 			</otherwise>
 		</choose>
 	</select>
@@ -107,7 +113,8 @@
 			project_number,
 			update_by,
 			update_date,
-			create_by
+			create_by,
+			unit
 		) VALUES (
 			#{id},
 			#{createDate},
@@ -118,7 +125,8 @@
 			#{projectNumber},
 			#{updateBy.id},
 			#{updateDate},
-			#{createBy.id}
+			#{createBy.id},
+			#{unit}
 		)
 	</insert>
 
@@ -148,8 +156,21 @@
 		WHERE id = #{id}
 	</update>
 
+	<select id="getProjectName" resultType="string">
+		select DISTINCT(r.project_name)
+		 from project_material_storage s left join rural_project_records r
+		 on s.project_number = r.id
+		 where s.project_number = #{projectNumber}
+	</select>
 
 
+	<select id="selectCountAboutProjectMaterialStorage" resultType="integer">
+		select count(1)
+		from project_material_storage
+		where project_number = #{projectNumber}
+		and material_name = #{materialName}
+		and price = #{price}
+	</select>
 
 
 

+ 2 - 2
src/main/webapp/static/common/jeeplus.js

@@ -526,8 +526,8 @@ function getProjectMaterialStorageStatus(id)
     switch(id)
     {
         case "0":result.label = "tempstore";result.status="无文件";result.action = false;break;
-        case "1":result.label = "tempstore";result.status="有文件";result.action = false;break;
-        case "2":result.label = "auditing";result.status="已处理";break;
+        case "1":result.label = "auditing";result.status="有文件";result.action = false;break;
+        case "2":result.label = "signed";result.status="已处理";result.action = false;break;
         default:
             result.label = "unknown";result.status="未知";break;
     }

+ 10 - 4
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageForm.jsp

@@ -138,6 +138,13 @@
 				addRow1('#projectMaterialStorageList', projectMaterialStorageListRowIdx, projectMaterialStorageListTpl, data[i])
 			}
 		}
+		function num(obj){
+			obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
+			obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字
+			obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个, 清除多余的
+			obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
+			obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
+		}
 	</script>
 </head>
 <body>
@@ -168,18 +175,17 @@
 				<script type="text/template" id="projectMaterialStorageListTpl">//<!--
                     <tr id="projectMaterialStorageList{{idx}}">
                         <td class="hide">
-                            <input id="projectMaterialStorageList{{idx}}_invoiceId" name="projectMaterialStorageList[{{idx}}].invoiceId" type="hidden" value="{{row.invoiceId}}"/>
 							<input id="projectMaterialStorageList{{idx}}_projectId" name="projectMaterialStorageList[{{idx}}].projectId" type="hidden" value="{{row.projectId}}"/>
 							<input id="projectMaterialStorageList{{idx}}_delFlag" name="projectMaterialStorageList[{{idx}}].delFlag" type="hidden" value="0"/>
                         </td>
                         <td>
-							<input id="projectMaterialStorageList{{idx}}_materialName" name = "materialName"  type="text" value="{{row.materialName}}"  class="form-control"/>
+							<input id="projectMaterialStorageList{{idx}}_materialName" name = "projectMaterialStorageList[{{idx}}].materialName"  type="text" value="{{row.materialName}}"  class="form-control"/>
                         </td>
                         <td>
-							<input id="projectMaterialStorageList{{idx}}_price" name = "price"   type="text" value="{{row.price}}"  class="form-control"/>
+							<input id="projectMaterialStorageList{{idx}}_price" name = "projectMaterialStorageList[{{idx}}].price"   type="text" value="{{row.price}}"   onkeyup="num(this)" class="form-control"/>
                         </td>
                         <td>
-							<input id="projectMaterialStorageList{{idx}}_unit" name = "unit"  type="text" value="{{row.unit}}"  class="form-control"/>
+							<input id="projectMaterialStorageList{{idx}}_unit" name = "projectMaterialStorageList[{{idx}}].unit"  type="text" value="{{row.unit}}"  class="form-control"/>
                         </td>
                         <td class="text-center op-td" >
                             {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delRow(this, '#projectMaterialStorageList{{idx}}')" title="删除"><i class="glyphicon glyphicon-remove"></i>&nbsp;删除</span>{{/delBtn}}

+ 19 - 20
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageList.jsp

@@ -303,7 +303,7 @@
 					<input id="toflag" name="toflag" type="hidden" value="1"/>
 					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
 					<div class="commonQuery lw6">
-						<div class="layui-item query athird">
+						<div class="layui-item query athird" style="margin-top: 10px">
 							<label class="layui-form-label">项目名称:</label>
 							<div class="layui-input-block">
 								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
@@ -313,7 +313,7 @@
 						<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"/>
+								<form:input path="materialName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input" />
 						</div>
 					</div>
 
@@ -332,6 +332,14 @@
 						<div style="    clear:both;"></div>
 					</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">
@@ -370,8 +378,8 @@
 				<div class="nav-btns">
 					<%--此处按钮样式包括 nav-btn-add nav-btn-refresh nav-btn-import nav-btn-export nav-btn-query nav-btn-reset--%>
 					<div class="layui-btn-group">
-						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
 						<table:addRow url="${ctx}/project/projectMaterialStorage/formTwoPage" title="添加材料"></table:addRow><!-- 增加按钮 -->
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
 						</div>
 <%--					<shiro:hasPermission name="ruralProject:ruralProjectRecords:add">--%>
 <%--						<table:addRow url="${ctx}/ruralProject/ruralProjectRecords/form" title="项目"></table:addRow><!-- 增加按钮 -->--%>
@@ -408,31 +416,22 @@
             ,cols: [[
 				{checkbox: true, fixed: true},
                 {field:'index',align:'center', title: '序号',width:55}
-				,{field:'projectNumber',align:'center', title: '报告号',  width:150}
-				,{field:'materialName',align:'center', title: '材料名称',  width:150}
-				,{field:'unit',align:'center', title: '单位',  width:80}
-				,{field:'price',align:'center', title: '价格',  width:150}
-				// ,{field:'areaName',align:'center', title: '项目地点',  width:150}
-                ,{field:'projName',align:'center', title: '项目名称',minWidth:100,templet:function(d){
+				,{field:'projName',align:'center', title: '项目名称',minWidth:100,templet:function(d){
 						if(1 == d.showView && d.showView != undefined){
 							return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectView/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
 						}else{
 							return "<span title='"+ d.projName +"'>" +d.projName+ "</span>";
 						}
-                    }}
-
-                /*,{field:'projId',align:'center', title: '项目编号',minWidth:150,templet:function(d){
-                        return "<a class=\"attention-info\" title=\"" + d.projId + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id + "','95%', '95%')\">" + d.projId + "</a>";
-                    }}*/
-
-
-
+					}}
+				,{field:'projectId',align:'center', title: '报告号',  width:150}
+				,{field:'materialName',align:'center', title: '材料名称',  width:150}
+				,{field:'unit',align:'center', title: '单位',  width:80}
+				,{field:'price',align:'center', title: '价格',  width:150}
+				// ,{field:'areaName',align:'center', title: '项目地点',  width:150}
                 ,{field:'createDate',align:'center', title: '创建日期',  width:150}
                 ,{field:'op',align:'center',title:"操作",width:240,templet:function(d){
                         ////对操作进行初始化
                         var xml="<div class=\"layui-btn-group\">";
-
-
                          xml+="<a href=\"#\" onclick=\"openDialogre('修改项目', '${ctx}/project/projectMaterialStorage/formTwoPage?id=" + d.id +"','95%', '95%','','提交,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改</a>";
 						 xml+="<a href=\"${ctx}/project/projectMaterialStorage/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该材料信息吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\"> 删除</a>";
 
@@ -450,7 +449,7 @@
                 {
                     "index":"${index.index+1}"
                     ,"id":"${projectMaterialStorage.id}"
-					,"projectNumber":"${projectMaterialStorage.projectNumber}"
+					,"projectId":"${projectMaterialStorage.projectId}"
 					,"unit":"${projectMaterialStorage.unit}"
 					,"materialName":"${projectMaterialStorage.materialName}"
 					,"price":"${projectMaterialStorage.price}"

+ 6 - 6
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageTwoForm.jsp

@@ -93,26 +93,26 @@
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>项目名称</label>
 					<div class="layui-input-block">
-						<sys:gridselectprojectmaterial url="${ctx}/workinvoiceTwo/workinvoiceTwo/selectproject" id="project" name="projectId"  value="${ruralProjectRecords.id}"  title="选择所属项目" labelName="projectName" cssStyle="background-color: #fff"
-													  labelValue="${ruralProjectRecords.projectName}" cssClass="form-control required layui-input" fieldLabels="项目名称" fieldKeys="projectName" searchLabel="项目名称" searchKey="projectName"></sys:gridselectprojectmaterial>
+						<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 class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>材料名称</label>
 					<div class="layui-input-block">
-						<form:input id="materialName" path="materialName" htmlEscape="false"  placeholder="请输入材料名称"  class="form-control layui-input"/>
+						<form:input id="materialName" path="materialName" htmlEscape="false"  placeholder="请输入材料名称"  class="form-control layui-input"  value="${projectMaterialStorage.materialName}" required="true"/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
-					<label class="layui-form-label"><span class="require-item invoicetype">*</span>材料单位</label>
+					<label class="layui-form-label"><span class="require-item invoicetype" >*</span>材料单位</label>
 					<div class="layui-input-block">
-						<form:input id="unit" path="unit" htmlEscape="false"  placeholder="请输入材料单位"  class="form-control layui-input"/>
+						<form:input id="unit" path="unit" htmlEscape="false"  placeholder="请输入材料单位"  class="form-control layui-input" value="${projectMaterialStorage.unit}"  />
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>单价(元)</label>
 					<div class="layui-input-block">
-						<form:input id="price" path="price" htmlEscape="false"  placeholder="请输入单价"  class="form-control layui-input"/>
+						<form:input id="price" path="price" htmlEscape="false"  placeholder="请输入单价"  class="form-control layui-input"  value="${projectMaterialStorage.price}" required="true" />
 					</div>
 				</div>
 

+ 7 - 5
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectMessageList.jsp

@@ -177,7 +177,7 @@
 			});
 		}
 
-		function openDialogre(title,url,width,height,target,buttons) {
+		function openDialogreMaterialStorage(title,url,width,height,target,buttons) {
 
 			if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
 				width = 'auto';
@@ -1006,10 +1006,6 @@
 					xml+="<a href=\"#\" onclick=\"projectUpgrade('"+d.id+"','"+d.projectReportRecordStatus+"','"+d.filingProjectStatus+"','"+d.projectReportStatus+"','"+d.projectReportStatusTwo+"')\" class=\"layui-btn layui-btn-xs layui-bg-green\" style='height: 32px;margin-top: 5px;margin-bottom: 5px;' > 项目升级</a>";
 				}
 			}
-			//材料库处理按钮
-			if (d.projectMaterialStorageStatus==1){
-				xml+="<a href=\"#\" onclick=\"openDialogre('添加项目材料信息', '${ctx}/project/projectMaterialStorage/form?id=" + d.id +"','95%', '95%','','提交,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" style='height: 32px;margin-top: 5px;margin-bottom: 5px;' > 材料库处理</a>";
-			}
 			</shiro:hasPermission>
 			<shiro:hasPermission name="ruralProject:ruralCostProjectMessage:reportedProvincialStanding">
 			if(d.reportedState == 5 || d.reportedState == 7){
@@ -1017,6 +1013,12 @@
 			}
 			</shiro:hasPermission>
 
+			<shiro:hasPermission name="ruralProject:ruralCostProjectMessage:projectMaterialStorage">
+				//材料库处理按钮
+				if (d.projectMaterialStorageStatus==1){
+					xml+="<a href=\"#\" onclick=\"openDialogreMaterialStorage('添加项目材料信息', '${ctx}/project/projectMaterialStorage/form?id=" + d.id +"','95%', '95%','','提交,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" style='height: 32px;margin-top: 5px;margin-bottom: 5px;' > 材料库处理</a>";
+				}
+			</shiro:hasPermission>
 
 
 			xml+="</div>";

+ 8 - 8
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsAdminModify.jsp

@@ -140,10 +140,10 @@
                 // })
             });
             //默认打开判断是否时紧急项目
-            var submitMoney="${ruralProjectRecords.submitMoney}"
+            var submitMoney="${projectRecords.submitMoney}"
             if(submitMoney==1){
                 // $("#emergencyProject").parent().parent().parent().show();
-                var emergencyProject="${ruralProjectRecords.emergencyProject}"
+                var emergencyProject="${projectRecords.emergencyProject}"
                 if (emergencyProject=="1"){
                     $("#emergencyProjectFlag").val("1");
                     // $("#emergencyProject").prop("checked",true);
@@ -678,7 +678,7 @@
 		    <form:hidden path="id"/>
             <form:hidden path="workContractInfo.client.id" id="contractClientId" value="${workContractInfo.client.id}"/>
             <input type="hidden" id="flagFile" value="">
-            <input type="hidden" id="emergencyProjectFlag" name="emergencyProject" value="${ruralProjectRecords.emergencyProject}">
+            <input type="hidden" id="emergencyProjectFlag" name="emergencyProject" value="${projectRecords.emergencyProject}">
 
             <input type="hidden" id="workClientLinkmanInfo" value="${projectRecords.workClientLinkmanList}">
             <div class="form-group layui-row first">
@@ -831,7 +831,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>投资性质:</label>
                     <div class="layui-input-block readOnlyFFF">
-                        <form:select placeholder="请选择" path="projectProperties" class="form-control required editable-select layui-input" id="projectProperties" value="${ruralProjectRecords.projectProperties}">
+                        <form:select placeholder="请选择" path="projectProperties" class="form-control required editable-select layui-input" id="projectProperties" value="${projectRecords.projectProperties}">
                             <form:option value=""/>
                             <form:options items="${fns:getMainDictList('project_properties')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
                         </form:select>
@@ -889,7 +889,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">项目归属部门:</label>
                     <div class="layui-input-block  with-icon">
-                        <sys:treeselectbelongingDepartment id="belongingDepartment" name="belongingDepartment" value="${ruralProjectRecords.belongingDepartment}" labelName="belongingDepartmentName" labelValue="${belongingDepartmentName}"
+                        <sys:treeselectbelongingDepartment id="belongingDepartment" name="belongingDepartment" value="${projectRecords.belongingDepartment}" labelName="belongingDepartmentName" labelValue="${belongingDepartmentName}"
                                                            cssStyle="background-color:#fff" title="项目归属部门" url="/sys/office/treeDataAllByBelongingDepartment?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
                     </div>
                 </div>
@@ -907,7 +907,7 @@
                     <label class="layui-form-label"><span class="require-item">*</span>项目等级:</label>
                     <div class="layui-input-block">
                         <c:forEach items="${fns:getMainDictListOnProjectAdvent('attachment_project_grade')}" var="v">
-                            <input type="radio" name="submitMoney" id="submitMoney" value="${v.value}" lay-filter="submitMoney"  title="${v.label}" <c:if test="${ruralProjectRecords.submitMoney==v.value}">checked</c:if>>
+                            <input type="radio" name="submitMoney" id="submitMoney" value="${v.value}" lay-filter="submitMoney"  title="${v.label}" <c:if test="${projectRecords.submitMoney==v.value}">checked</c:if>>
                         </c:forEach>
                         <p style="color: red;font-size: 12px;">500万及500万以上为A级,500万以下为B级</p>
                     </div>
@@ -929,13 +929,13 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作开始日期:</label>
                     <div class="layui-input-block">
-                        <input placeholder="请选择工作开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="startDate" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+                        <input placeholder="请选择工作开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作结束日期:</label>
                     <div class="layui-input-block">
-                        <input placeholder="请输入工作结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="endingDate" name="endingDate" value="<fmt:formatDate value="${ruralProjectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+                        <input placeholder="请输入工作结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="endingDate" name="endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">

+ 21 - 7
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsAdminModify.jsp

@@ -606,7 +606,7 @@
         }
         function reProjectName(obj) {
             var name=$(obj).val()
-            var proName='${ruralProjectRecords.projectName}'
+            var proName='${projectRecords.projectName}'
             $.ajax({
                 type : "POST",
                 url : "${ctx}/ruralProject/ruralProjectRecords/reProjectName",
@@ -774,7 +774,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>投资性质:</label>
                     <div class="layui-input-block readOnlyFFF">
-                        <form:select placeholder="请选择" path="projectProperties" class="form-control required editable-select layui-input" id="projectProperties" value="${ruralProjectRecords.projectProperties}">
+                        <form:select placeholder="请选择" path="projectProperties" class="form-control required editable-select layui-input" id="projectProperties" value="${projectRecords.projectProperties}">
                             <form:option value=""/>
                             <form:options items="${fns:getMainDictList('project_properties')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
                         </form:select>
@@ -830,6 +830,13 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label double-line">项目归属部门:</label>
+                    <div class="layui-input-block  with-icon">
+                        <sys:treeselectbelongingDepartment id="belongingDepartment" name="belongingDepartment" value="${projectRecords.belongingDepartment}" labelName="belongingDepartmentName" labelValue="${belongingDepartmentName}"
+                                                           cssStyle="background-color:#fff" title="项目归属部门" url="/sys/office/treeDataAllByBelongingDepartment?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>工程类型:</label>
                     <div class="layui-input-block">
                         <button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">
@@ -840,23 +847,30 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
-                    <label class="layui-form-label"><span class="require-item">*</span>送审规模:</label>
+                    <label class="layui-form-label"><span class="require-item">*</span>项目等级:</label>
                     <div class="layui-input-block">
-                        <c:forEach items="${fns:getMainDictListOnProjectAdvent('attachment_project_approval_money')}" var="v">
-                            <input type="radio" name="submitMoney" id="submitMoney" value="${v.value}" title="${v.label}" <c:if test="${ruralProjectRecords.submitMoney==v.value}">checked</c:if>>
+                        <c:forEach items="${fns:getMainDictListOnProjectAdvent('attachment_project_grade')}" var="v">
+                            <input type="radio" name="submitMoney" id="submitMoney" value="${v.value}" lay-filter="submitMoney"  title="${v.label}" <c:if test="${projectRecords.submitMoney==v.value}">checked</c:if>>
                         </c:forEach>
+                        <p style="color: red;font-size: 12px;">500万及500万以上为A级,500万以下为B级</p>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label double-line"><span class="require-item">*</span>送审规模(万元):</label>
+                    <div class="layui-input-block">
+                        <form:input path="submitScale" id="submitScale" maxlength="12" htmlEscape="false" onkeyup="wirteNum(this)" placeholder="请输入送审规模" class="form-control required layui-input number"/>
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作开始日期:</label>
                     <div class="layui-input-block">
-                        <input class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="startDate" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+                        <input placeholder="请选择工作开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作结束日期:</label>
                     <div class="layui-input-block">
-                        <input class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="endingDate" name="endingDate" value="<fmt:formatDate value="${ruralProjectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+                        <input placeholder="请输入工作结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="endingDate" name="endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">

+ 6 - 6
src/main/webapp/webpage/modules/sys/gridMaterialProject.jsp

@@ -38,8 +38,8 @@
 
 		function getSelectedItem(){
 			var array = new Array();
-			var size = $("#contentTable tbody tr td input.i-checks:radio:checked").size();
-			var sizeChecked = $("#contentTable tbody tr td input.i-checks:radio:checked");
+			var size = $("#contentTable tbody tr td input.i-checks:checkbox:checked").size();
+			var sizeChecked = $("#contentTable tbody tr td input.i-checks:checkbox:checked");
 
 			for (var i=0;i<size;i++){
 				array.push(sizeChecked[i].id);
@@ -53,9 +53,9 @@
 				return "-1";
 			}
 			$("#projectFlag").val(1);
-			var id =  $("#contentTable tbody tr td input.i-checks:radio:checked").attr("id");
-			var label = $("#contentTable tbody tr td input.i-checks:radio:checked").parent().parent().parent().find(".codelabel").html();
-			var number = $("#contentTable tbody tr td input.i-checks:radio:checked").parent().parent().parent().find(".codenumber").html();
+			var id =  $("#contentTable tbody tr td input.i-checks:checkbox:checked").attr("id");
+			var label = $("#contentTable tbody tr td input.i-checks:checkbox:checked").parent().parent().parent().find(".codelabel").html();
+			var number = $("#contentTable tbody tr td input.i-checks:checkbox:checked").parent().parent().parent().find(".codenumber").html();
 			var details = $("#details").val();
 			var projectFlag = $("#projectFlag").val();
 			return id+"_item_"+label+"_item_"+number+"_item_"+details+"_item_"+projectFlag;
@@ -144,7 +144,7 @@
 						<c:when test="${not empty page.list}">
 							<c:forEach items="${page.list}" var="obj">
 								<tr>
-									<td> <input type="radio" id="${fns:getValue(obj, 'id')}" class="i-checks"></td>
+									<td> <input type="checkbox" id="${fns:getValue(obj, 'id')}" class="i-checks"></td>
 									<td class="codelabel">${obj.projectName}</td>
 									<td class="codelabel">${obj.projectId}</td>
 									<td class="codenumber">${obj.reportData.number}</td>