Selaa lähdekoodia

2022/7/1 材料库提交

guoxu 3 vuotta sitten
vanhempi
commit
527a2f546f

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

@@ -4,6 +4,7 @@ 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;
 
@@ -13,9 +14,9 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
 
     private String id;
 
-    private String projectNumber;  //项目id
+    private String projectNumber;  //报告号
 
-    private double price ; //材料价格
+    private Double price ; //材料价格
 
     public Date getBeginDate() {
         return beginDate;
@@ -33,7 +34,6 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
         this.endDate = endDate;
     }
 
-
     private String materialName; //材料名称
 
     private Date beginDate;  //开始时间
@@ -44,13 +44,12 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
 
     private String unit; //单位
 
-    @ExcelField(title="报告号", type=1, align=2, sort=1)
-    public String getReportId() {
-        return reportId;
+    public String getProjectId() {
+        return projectId;
     }
 
-    public void setReportId(String reportId) {
-        this.reportId = reportId;
+    public void setProjectId(String reportId) {
+        this.projectId = reportId;
     }
 
     private String projectName; //项目名称
@@ -67,7 +66,7 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
 
     private Area area;
 
-    private String reportId; //报告号
+    private String projectId; //报告号
 
     public String getProjectName() {
         return projectName;
@@ -112,16 +111,16 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
     public ProjectMaterialStorage(String id){
         super(id);
     }
-    @ExcelField(title="价格", type=1, align=2, sort=3)
-    public double getPrice() {
+    @ExcelField(title="价格", align=2, sort=3)
+    public Double getPrice() {
         return price;
     }
 
-    public void setPrice(double price) {
+    public void setPrice(Double price) {
         this.price = price;
     }
 
-    @ExcelField(title="材料名称", type=1, align=2, sort=2)
+    @ExcelField(title="材料名称", align=2, sort=1)
     public String getMaterialName() {
         return materialName;
     }
@@ -138,7 +137,7 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
         this.project = project;
     }
 
-    @ExcelField(title="单位", type=1, align=2, sort=4)
+    @ExcelField(title="材料单位", align=2, sort=2)
     public String getUnit() {
         return unit;
     }

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

@@ -5,6 +5,7 @@ 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;
@@ -17,12 +18,15 @@ 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.*;
@@ -72,35 +76,29 @@ public class ProjectMaterialStorageController extends BaseController {
         Page<ProjectMaterialStorage> page =  projectMaterialStorageService.findPage(new Page<ProjectMaterialStorage>(request,response),projectMaterialStorage);
         model.addAttribute("page",page);
         model.addAttribute("projectMaterialStorage",projectMaterialStorage);
+
         return "modules/projectMaterialStorage/projectMaterialStorageList";
     }
 
-//    /**
-//     * 材料库新增跳转页面功能
-//     */
-//    @RequiresPermissions(value={"project:projectMaterialStorage:view","project:projectMaterialStorage:add","project:projectMaterialStorage:edit"},logical= Logical.OR)
-//    @RequestMapping(value = "form")
-//    public String form(ProjectMaterialStorage projectMaterialStorage, Model model) {
-//        if(StringUtils.isBlank(projectMaterialStorage.getId())){
-//            ProjectMaterialStorage projectMaterialStorage1=new ProjectMaterialStorage();
-//            Area area=new Area();
-//            area.setId("9AF3266E03384019BFE935DD9F35332F");
-//            area.setName("南京");
-//            projectMaterialStorage1.setArea(area);
-//            model.addAttribute("projectMaterialStorage", projectMaterialStorage1);
-//            return "modules/projectMaterialStorage/workClientInfoForm";
-//        }
-//
-//        model.addAttribute("projectMaterialStorage", projectMaterialStorage);
-//
-//        return "modules/projectMaterialStorage/workClientInfoForm";
-//    }
 
     //@RequiresPermissions(value={"project:projectMaterialStorage:add","project:projectMaterialStorage:edit"},logical=Logical.OR)
     @RequestMapping(value = "save")
     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, "上传失败,请重试");
+            return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
+        }
+        projectMaterialStorage.setIsNewRecord(true);
+        if(" " ==projectMaterialStorage.getRemarks()){
+            projectMaterialStorage.setRemarks(" ");
+        }
         projectMaterialStorageService.save(projectMaterialStorage);
-        return "redirect:"+Global.getAdminPath()+"/projectMaterialStorage/projectMaterialStorageList/?repage";
+        RuralProjectRecords ruralProjectRecords = projectRecordsService.get(projectMaterialStorage.getProjectNumber());
+        ruralProjectRecords.setprojectMaterialStorageStatus("2");
+        projectRecordsService.modfiyProjectMaterialStorageStatus(ruralProjectRecords);
+        return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
     }
 
 
@@ -112,6 +110,7 @@ public class ProjectMaterialStorageController extends BaseController {
         try {
             ProjectMaterialStorage t = projectMaterialStorageService.get(projectMaterialStorage.getId());//从数据库取出记录的值
             MyBeanUtils.copyBeanNotNull2Bean(projectMaterialStorage, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+            projectMaterialStorage.preUpdate();
             if(projectMaterialStorageService.update(t) == 1){
                 addMessage(redirectAttributes, "修改成功");
             }
@@ -119,7 +118,7 @@ public class ProjectMaterialStorageController extends BaseController {
             logger.error("修改项目异常:",e);
             addMessage(redirectAttributes, "修改项目:"+e.getMessage());
         }
-        return "redirect:"+Global.getAdminPath()+"/projectMaterialStorage/projectMaterialStorageList/?repage";
+        return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
     }
     /**
      * 删除材料库
@@ -129,7 +128,7 @@ public class ProjectMaterialStorageController extends BaseController {
     public String delete(ProjectMaterialStorage projectMaterialStorage, RedirectAttributes redirectAttributes) {
 
             projectMaterialStorageService.delete(projectMaterialStorage);
-            return "redirect:"+Global.getAdminPath()+"/projectMaterialStorage/projectMaterialStorageList/?repage";
+            return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
         }
 
 
@@ -184,7 +183,7 @@ public class ProjectMaterialStorageController extends BaseController {
             List<ProjectMaterialStorage> list = ei.getDataList(ProjectMaterialStorage.class);
             List<ProjectMaterialStorage> listAll = new ArrayList<>();
             for (ProjectMaterialStorage materialStorage : list) {
-                if(StringUtils.isNotBlank(materialStorage.getMaterialName()) && null != new Double(materialStorage.getPrice() ) && null != materialStorage.getReportId() ){
+                if(StringUtils.isNotBlank(materialStorage.getMaterialName()) && null != materialStorage.getPrice()  && null != materialStorage.getUnit() ){
                     listAll.add(materialStorage);
                 }
             }
@@ -197,4 +196,39 @@ public class ProjectMaterialStorageController extends BaseController {
         return responseEntity;
     }
 
+    @RequestMapping(value = "import/template")
+    public String importFileTemplate(HttpServletResponse response, HttpServletRequest request, RedirectAttributes redirectAttributes) {
+        try {
+            ThisLocalityDownloadUtil download = new ThisLocalityDownloadUtil();
+            download.download("材料库处理表模板.xlsx",request,response);
+        } catch (Exception e) {
+            logger.error("材料库处理表模板下载失败!",e);
+        }
+    	/*try {
+            String fileName = "设计概算编制审核调整数据导入模板.xlsx";
+    		List<WorkPreliminaryDesignEstimate> list = Lists.newArrayList();
+    		new ExportExcel("设计概算编制审核调整数据", WorkPreliminaryDesignEstimate.class, 1).setDataList(list).write(response, fileName).dispose();
+    		return null;
+		} catch (Exception e) {
+			addMessage(redirectAttributes, "导入模板下载失败!失败信息:"+e.getMessage());
+		}*/
+        return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
+    }
+
+    /**
+     * 查看,增加,编辑客户管理表单页面
+     */
+    @RequestMapping(value = "formTwoPage")
+    public String form(ProjectMaterialStorage projectMaterialStorage, Model model) {
+        if(StringUtils.isBlank(projectMaterialStorage.getId())){
+            ProjectMaterialStorage projectMaterialStorage1=new ProjectMaterialStorage();
+            model.addAttribute("projectMaterialStorage", projectMaterialStorage1);
+            return "modules/projectMaterialStorage/projectMaterialStorageTwoForm";
+        }
+        model.addAttribute("projectMaterialStorage", projectMaterialStorage);
+
+        return "modules/projectMaterialStorage/projectMaterialStorageTwoForm";
+    }
+
+
 }

+ 2 - 1
src/main/java/com/jeeplus/modules/workprojectcompletion/dao/WorkProjectCompletionDao.java

@@ -17,7 +17,8 @@ public interface WorkProjectCompletionDao extends CrudDao<WorkProjectCompletionI
 
     public List<WorkProjectCompletionInfo> findWaitAndFinishList(Map<Object,Object> map);
 
-    public int  insert(WorkProjectCompletionInfo workProjectCompletionInfo);
+    public int
+    insert(WorkProjectCompletionInfo workProjectCompletionInfo);
     public int  update(WorkProjectCompletionInfo workProjectCompletionInfo);
     public int  updateStatus(WorkProjectCompletionInfo workProjectCompletionInfo);
 

+ 4 - 5
src/main/resources/mappings/modules/projectMaterialStorage/ProjectMaterialStorageDao.xml

@@ -38,7 +38,7 @@
 
 	<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.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'
 		FROM project_material_storage a
 		left join rural_project_records as r
 		on a.project_number = r.project_id
@@ -116,15 +116,14 @@
 			#{price},
 			#{remarks},
 			#{projectNumber},
-			#{updateBy},
+			#{updateBy.id},
 			#{updateDate},
-			#{createBy}
+			#{createBy.id}
 		)
 	</insert>
 
 	<update id="update">
-		UPDATE project SET
-			status = 1,
+		UPDATE project_material_storage SET
 			project_number = #{projectNumber},
 			material_name = #{materialName},
 			price = #{price},

BIN
src/main/webapp/dot/材料库处理表模板.xlsx


+ 65 - 39
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageForm.jsp

@@ -5,7 +5,7 @@
 	<title>材料库处理</title>
 	<meta name="decorator" content="default"/>
 	<style>
-		#workInvoiceProjectRelationList td{
+		#projectMaterialStorageList td{
 			padding-left: 0px;
 			padding-right: 0px;
 		}
@@ -41,11 +41,10 @@
 					}
 				}
 			});
-
 		});
 		function addRow1(list, idx, tpl, row){
-			var idx1 = $("#workInvoiceProjectRelationList tr").length;
-			if(list == '#workInvoiceProjectRelationList'){
+			var idx1 = $("#projectMaterialStorageList tr").length;
+			if(list == '#projectMaterialStorageList'){
 				bornTemplete1(list, idx, tpl, row, idx1);
 			}
 		}
@@ -99,27 +98,57 @@
 				}
 			});
 		}
+
+		function delRow(obj, prefix) {
+			var id = $(prefix + "_invoiceId");
+			var delFlag = $(prefix + "_delFlag");
+			if (id.val() == "") {
+				$(obj).parent().parent().remove();
+			} else if (delFlag.val() == "0") {
+				delFlag.val("1");
+				$(obj).html("&divide;").attr("title", "撤回删除");
+				$(obj).parent().parent().addClass("error");
+				$(obj).parent().parent().addClass("hide");
+			} else if (delFlag.val() == "1") {
+				delFlag.val("0");
+				$(obj).html("&times;").attr("title", "删除");
+				$(obj).parent().parent().removeClass("error");
+			}
+			var length=$("#projectMaterialStorageList tr").length;
+			var count=length;
+			for (var i=1;i<=length;i++) {
+				var delFlag = $("#projectMaterialStorageList").find("tr").eq(i-1).find("input").eq(1).val();
+				if (delFlag == "1") {
+					count =count-1;
+				}
+			}
+			if(count==1){
+				$("#chargeType").val("2")
+				layui.form.render();
+			}else if (count>1){
+				$("#chargeType").val("1")
+				layui.form.render();
+			}else if(count == 0){
+				$("#projectFlag").val("");
+			}
+		}
+
+		function genRow(data) {
+			for (var i = 0; i < data.length; i++) {
+				addRow1('#projectMaterialStorageList', projectMaterialStorageListRowIdx, projectMaterialStorageListTpl, data[i])
+			}
+		}
 	</script>
 </head>
 <body>
 <div class="single-form">
 	<div class="container">
-	<form:form id="inputForm" modelAttribute="projectRecords" action="" method="post" class="form-horizontal">
-		<form:hidden path="id"/>
-		<form:hidden path="home"/>
-		<form:hidden path="act.taskId"/>
-		<form:hidden path="act.taskName"/>
-		<form:hidden path="act.taskDefKey"/>
-		<form:hidden path="act.procInsId"/>
-		<form:hidden path="act.procDefId"/>
-		<form:hidden id="flag" path="act.flag"/>
-		<c:set var="status" value="${workInvoice.act.status}" />
-		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
-
+	<form:form id="inputForm" modelAttribute="projectRecords" action="${ctx}/project/projectMaterialStorage/save?projectNumber=${projectRecords.id}"  method="post" class="form-horizontal">
+<%--		<form:hidden path="id" name = "projectNumber"/>--%>
 		<div class="form-group layui-row first lw14">
 			<div class="form-group-label"><h2>材料处理</h2></div>
 			<div class="layui-item nav-btns">
-				<a class="nav-btn nav-btn-add" onclick="addRow1('#workInvoiceProjectRelationList', workInvoiceProjectRelationListRowIdx, workInvoiceProjectRelationListTpl);workInvoiceProjectRelationListRowIdx = workInvoiceProjectRelationListRowIdx + 1;" title="新增"><i class="fa fa-plus"></i>&nbsp;新增</a>
+				<a class="nav-btn nav-btn-add" onclick="addRow1('#projectMaterialStorageList', projectMaterialStorageListRowIdx, projectMaterialStorageListTpl);projectMaterialStorageListRowIdx = projectMaterialStorageListRowIdx + 1;" title="新增"><i class="fa fa-plus"></i>&nbsp;新增</a>
 				<table:importExcelA url="${ctx}/project/projectMaterialStorage/import"></table:importExcelA><!-- 导入按钮 -->
 			</div>
 			<div class="layui-table-body layui-item layui-col-xs12 form-table-container"  style="padding:0px">
@@ -127,49 +156,46 @@
 					<thead>
 					<tr>
 						<th width="200px"><font color="red">*</font>材料名称</th>
-						<th width="200px">价格</th>
+						<th width="200px"><font color="red">*</font>价格</th>
 <%--						<th width="200px">单位</th>--%>
-						<th width="200px">项目名称</th>
-						<th width="200px">项目地点</th>
+						<th width="200px"><font color="red">*</font>单位</th>
+						<th width="200px">操作</th>
 					</tr>
 					</thead>
-					<tbody id="workInvoiceProjectRelationList">
+					<tbody id="projectMaterialStorageList">
 					</tbody>
 				</table>
-				<script type="text/template" id="workInvoiceProjectRelationListTpl">//<!--
-                    <tr id="workInvoiceProjectRelationList{{idx}}">
+				<script type="text/template" id="projectMaterialStorageListTpl">//<!--
+                    <tr id="projectMaterialStorageList{{idx}}">
                         <td class="hide">
-                            <input id="workInvoiceProjectRelationList{{idx}}_invoiceId" name="workInvoiceProjectRelationList[{{idx}}].invoiceId" type="hidden" value="{{row.invoiceId}}"/>
-							<input id="workInvoiceProjectRelationList{{idx}}_projectId" name="workInvoiceProjectRelationList[{{idx}}].projectId" type="hidden" value="{{row.projectId}}"/>
-							<input id="workInvoiceProjectRelationList{{idx}}_delFlag" name="workInvoiceProjectRelationList[{{idx}}].delFlag" type="hidden" value="0"/>
+                            <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="workInvoiceProjectRelationList{{idx}}_projectName"   type="text" value="{{row.materialName}}" readonly="readonly"  class="form-control"/>
+							<input id="projectMaterialStorageList{{idx}}_materialName" name = "materialName"  type="text" value="{{row.materialName}}"  class="form-control"/>
                         </td>
                         <td>
-							<input id="workInvoiceProjectRelationList{{idx}}_workContractName"   type="text" value="{{row.price}}" readonly="readonly"  class="form-control"/>
-                        </td>
-                        <td style="text-align:center;">
-							<input id="workInvoiceProjectRelationList{{idx}}_projectNum"  type="text" value="{{row.projectName}}" readonly="readonly"  class="form-control"/>
+							<input id="projectMaterialStorageList{{idx}}_price" name = "price"   type="text" value="{{row.price}}"  class="form-control"/>
                         </td>
                         <td>
-							<input id="workInvoiceProjectRelationList{{idx}}_clientName"  type="text" value="{{row.areaName}}" readonly="readonly"  class="form-control"/>
+							<input id="projectMaterialStorageList{{idx}}_unit" name = "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}}
                         </td>
-<%--                        <td>--%>
-<%--							<input id="workInvoiceProjectRelationList{{idx}}_reportDataNum"  type="text" value="{{row.reportDataNum}}" readonly="readonly"  class="form-control"/>--%>
-<%--                        </td>--%>
                     </tr>//-->
 				</script>
 				<script type="text/javascript">
-					var workInvoiceProjectRelationListRowIdx = 0, workInvoiceProjectRelationListTpl = $("#workInvoiceProjectRelationListTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+					var projectMaterialStorageListRowIdx = 0, projectMaterialStorageListTpl = $("#projectMaterialStorageListTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
 					/*if($("#id").val()){
                         workInvoiceProjectRelationListRowIdx = ${fn:length(workInvoice.workInvoiceProjectRelationList)};
 						}*/
 					$(document).ready(function() {
-						var data = ${fns:toJson(workInvoice.workInvoiceProjectRelationList)};
+						<%--var data = ${fns:toJson(projectMaterialStorage.projectMaterialStorageList)};--%>
 						for (var i=0; i<data.length; i++){
-							addRow1('#workInvoiceProjectRelationList', workInvoiceProjectRelationListRowIdx, workInvoiceProjectRelationListTpl, data[i])
-							workInvoiceProjectRelationListRowIdx = workInvoiceProjectRelationListRowIdx + 1;
+							addRow1('#projectMaterialStorageList', projectMaterialStorageListRowIdx, projectMaterialStorageListTpl, data[i])
+							projectMaterialStorageListRowIdx = projectMaterialStorageListRowIdx + 1;
 						}
 					});
 				</script>

+ 16 - 57
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageList.jsp

@@ -370,14 +370,9 @@
 				<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">
-<%--						<shiro:hasPermission name="ruralProject:ruralProjectRecords:add">--%>
-<%--							<table:addRow url="${ctx}/ruralProject/ruralProjectRecords/form" title="项目"></table:addRow><!-- 增加按钮 -->--%>
-<%--						</shiro:hasPermission>--%>
-						<shiro:hasPermission name="ruralProject:ruralProjectRecords:export">
-							<table:exportExcel url="${ctx}/ruralProject/ruralProjectRecords/export"></table:exportExcel><!-- 导出按钮 -->
-						</shiro:hasPermission>
 						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
-					</div>
+						<table:addRow url="${ctx}/project/projectMaterialStorage/formTwoPage" title="添加材料"></table:addRow><!-- 增加按钮 -->
+						</div>
 <%--					<shiro:hasPermission name="ruralProject:ruralProjectRecords:add">--%>
 <%--						<table:addRow url="${ctx}/ruralProject/ruralProjectRecords/form" title="项目"></table:addRow><!-- 增加按钮 -->--%>
 <%--					</shiro:hasPermission>--%>
@@ -413,10 +408,12 @@
             ,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:200,templet:function(d){
+				// ,{field:'areaName',align:'center', title: '项目地点',  width:150}
+                ,{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{
@@ -430,57 +427,17 @@
 
 
 
-                ,{field:'createDate',align:'center', title: '创建日期',  width:80}
+                ,{field:'createDate',align:'center', title: '创建日期',  width:150}
                 ,{field:'op',align:'center',title:"操作",width:240,templet:function(d){
                         ////对操作进行初始化
                         var xml="<div class=\"layui-btn-group\">";
-                        if(d.notifyFlag != undefined && d.notifyFlag !=null && "" != d.notifyFlag && d.notifyFlag == 1)
-                        {
-							xml+="<a href=\"#\" onclick=\"notifyDialogre('项目审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.notifyId +"&home=project','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
-                        }
-                        if(d.canedit1 != undefined && d.canedit1 =="1")
-                        {
-                            xml+="<a href=\"#\" onclick=\"openDialogre('修改项目', '${ctx}/ruralProject/ruralProjectRecords/form?id=" + d.id +"','95%', '95%','','提交,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改</a>";
-                        }
-                        if(d.canedit2 != undefined && d.canedit2 =="1")
-                        {
-                            xml+="<a href=\"#\" onclick=\"openDialogre('调整项目', '${ctx}/ruralProject/ruralProjectRecords/modify?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改</a>";
-                        }
-                        if(d.canrecall != undefined && d.canrecall =="1")
-                        {
-                            xml+="<a href=\"#\" onclick=\"openDialogre('调整项目', '${ctx}/ruralProject/ruralProjectRecords/form?id=" + d.id + "','95%', '95%','','提交,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改</a>";
-                        }
-                        if(d.candel != undefined && d.candel =="1")
-                        {
-                            xml+="<a href=\"${ctx}/ruralProject/ruralProjectRecords/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要作废该项目信息吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\"> 作废</a>";
-                        }
-                        if(d.cancancel != undefined && d.cancancel =="1")
-                        {
-                            xml+="<a href=\"${ctx}/ruralProject/ruralProjectRecords/revoke?id=" + d.id + "&processInstanceId=" + d.procId + "&projectStatus="+d.projectStatus+"\" onclick=\"return confirmx('确认要撤回该项目审批吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 撤回</a>";
-                        }
-                        //项目在没有归档完成之前可对文档进行操作
-                        if(d.recordStatus != undefined && d.recordStatus =="1")
-                        {
-							xml+="<a href=\"#\" onclick=\"openDialogView('文件上传', '${ctx}/ruralProject/ruralProjectRecords/formAccessory?id=" + d.id + "','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 上传文件</a>";
-                        }
-						if(d.reportDataFlag != undefined && d.reportDataFlag =="1")
-						{
-							xml+="<a href=\"${ctx}/ruralProject/ruralCostProjectRecords/createReportDataId?id=" + d.id + "&projectType=1"+"\" onclick=\"return confirmx('确认要生成报告号吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-orange\"> 生成报告号</a>";
-						}
-                        if(d.canedit3 != undefined && d.canedit3 =="1")
-                        {
-                            //xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogre('项目变更管理', '${ctx}/ruralProject/ruralProjectRecordsAlter/form?alterBeforeRecords.id='+encodeURIComponent('" + d.id + "'),'95%','95%','','送审,暂存,关闭')\" style=\"color: white;background: darkseagreen\" class=\"op-btn op-btn-op-btn-revert\" ><i class=\"fa fa-edit\"></i> 变更</a>";
-                        }
-                        if(d.deleteAdmin != undefined && d.deleteAdmin =="1")
-                        {
-							xml+="<a href=\"#\" onclick=\"openDialogre('修改项目', '${ctx}/ruralProject/ruralProjectRecords/adminModify?id=" + d.id + "','95%', '95%','','提交,关闭')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改</a>";
-							xml+="<a href=\"${ctx}/ruralProject/ruralProjectRecords/adminDelete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目信息吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\"> 删除</a>";
-                        }
-						if(d.modifyRecords != undefined && d.modifyRecords =="1")
-						{
-							xml+="<a href=\"#\" onclick=\"openDialogre('修改项目', '${ctx}/ruralProject/ruralProjectRecords/form?id=" + d.id +"','95%', '95%','','提交,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改</a>";
-							xml+="<a href=\"${ctx}/ruralProject/ruralProjectRecords/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要作废该项目信息吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\"> 作废</a>";
-						}
+
+
+                         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>";
+
+
+
                         xml+="</div>"
                         return xml;
 
@@ -493,6 +450,8 @@
                 {
                     "index":"${index.index+1}"
                     ,"id":"${projectMaterialStorage.id}"
+					,"projectNumber":"${projectMaterialStorage.projectNumber}"
+					,"unit":"${projectMaterialStorage.unit}"
 					,"materialName":"${projectMaterialStorage.materialName}"
 					,"price":"${projectMaterialStorage.price}"
                     ,"projName":"<c:out value="${projectMaterialStorage.projectName}" escapeXml="true"/>"

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

@@ -0,0 +1,843 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>材料库</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<script src="${ctxStatic}/common/html/js/script.js"></script>
+	<style>
+		#contractTypeDoc-error{
+			top:80px;
+			left:0;
+		}
+		 /*超过5个汉字,调整label的长度,以下是配套的*/
+		 .layui-item .layui-form-label{
+			 width:90px;
+		 }
+		.form-group .layui-item .layui-input-block,
+		.query .layui-input-block {
+			margin-left: 116px;
+		}
+		#workInvoiceProjectRelationList td{
+			padding-left: 0px;
+			padding-right: 0px;
+		}
+	</style>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            //debugger
+            if(validateForm.form()){
+				var invoiceType=$('input:radio[name="invoiceType"]:checked').val();
+				if(null == invoiceType || undefined == invoiceType || '' == invoiceType){
+					parent.layer.msg("请选择发票类型",{icon:0});
+					return false;
+				}
+				if(invoiceType == 1){
+					var bank = $("#bank").val();
+					if(null == bank || undefined == bank || '' == bank){
+						parent.layer.msg("请选择开户银行",{icon:0});
+						return false;
+					}
+					var bankNumber = $("#bankNumber").val();
+					if(null == bankNumber || undefined == bankNumber || '' == bankNumber){
+						parent.layer.msg("银行账号不可为空",{icon:0});
+						return false;
+					}
+				}
+
+				var leng=$("#workInvoiceProjectRelationList tr").length;
+				if (leng>1){
+					var count=0;
+					var count1=leng;
+					for (var i=0;i<leng;i++) {
+						var delFlag = $("#workInvoiceProjectRelationList").find("tr").eq(i).find("input").eq(1).val();
+						if (delFlag == "1") {
+							count = i+1;
+							count1 = count1-1;
+						}
+					}
+					if (count1!=1){
+						var id=$("#workInvoiceProjectRelationList").find("tr").eq(count).find("input").eq(5).val();
+						if (id==undefined || id == ''){
+							parent.layer.msg("非项目,只能有一条非项目数据,请删除其余项目数据",{icon:6});
+							return false;
+						}
+					}
+				}
+				if(obj == 2){
+                    $("#inputForm").attr("action","${ctx}/workinvoiceTwo/workinvoiceTwo/store");
+                }else{
+					var flag=judgment();
+					if (leng==0){
+						flag=2;
+					}
+					if (flag==2){
+						parent.layer.msg("先添加项目信息!", {icon: 5});
+						return false;
+					}
+
+					if (flag){
+						$("#inputForm").attr("action","${ctx}/workinvoiceTwo/workinvoiceTwo/save");
+					}else if (!flags){
+						return flag;
+					}
+                }
+				$("#chargeType").removeAttr("disabled")
+				$("#inputForm").submit();
+                return true;
+            }else {
+				parent.layer.msg("信息未填写完整!", {icon: 5});
+			}
+            return false;
+        }
+
+        $(document).ready(function() {
+        	var billingContent = $("#billingContent").val();
+        	if(8 != billingContent){
+				$(".contractType").hide();
+				$("#contractTypeDoc").attr("class","form-control");
+			}else{
+				$(".contractType").show();
+				$("#contractTypeDoc").attr("class","form-control judgment");
+			}
+
+			var newDrawerRadio = '${workInvoice.newDrawer}';//后端获取值
+			if(undefined == newDrawerRadio || null == newDrawerRadio || '' == newDrawerRadio || newDrawerRadio == "1"){
+				document.getElementsByName("newDrawer")[0].checked = true;
+				$(".count2").hide();
+				$(".count1").show();
+			}else{
+				document.getElementsByName("newDrawer")[1].checked = true;
+				$(".count1").hide();
+				$(".count2").show();
+			}
+			setValuee('${workInvoice.client.id}')
+
+			layui.use(['form', 'layer'], function () {
+				var form = layui.form;
+
+				form.on("radio(invoiceType)", function(event){
+					var radioVal = $(this).val();
+					//专票必填
+					if(radioVal == 1){
+						$(".invoicetype").show();
+						$("#bank").attr("class","form-control judgment layui-input");
+						$("#bankNumber").attr("class","form-control judgment layui-input");
+						$("#orUnicode").attr("class","form-control isUscCode judgment layui-input");
+						$("#address").attr("class","form-control judgment layui-input");
+						$("#telephone").attr("class","form-control isTel judgment layui-input");
+					}else if(radioVal == 2){
+						$(".invoicetype").hide();
+						$("#bank").attr("class","form-control layui-input");
+						$("#bankNumber").attr("class","form-control layui-input");
+						$("#orUnicode").attr("class","form-control isUscCode layui-input");
+						$("#address").attr("class","form-control layui-input");
+						$("#telephone").attr("class","form-control isTel layui-input");
+					}
+				});
+
+				form.on('radio(newDrawerRadio)',function (event) {
+					var radioVal = $(this).val();
+					if(radioVal == 1 || radioVal == 1){
+						$(".count2").hide();
+						$(".count1").show();
+					}else if(radioVal == 2 || radioVal == 2){
+						$(".count1").hide();
+						$(".count2").show();
+					}
+					form.render();
+				})
+
+				form.on('select(billingContent)', function(data){
+					if(data.value == 8){
+						$(".contractType").show();
+						$("#contractTypeDoc").attr("class","form-control judgment");
+					}else{
+						$(".contractType").hide();
+						$("#contractTypeDoc").attr("class","form-control");
+					}
+				});
+
+				window.bankShow = function (data){
+					$('#bank').html('<option value="">请选择开户行信息</option>')
+					//对选中开票单位的银行做级联操作
+					for (var info in data){
+						if(data[info].ourBank == '${workInvoice.bank}'){
+							$('#bank').append(new Option(data[info].ourBank,data[info].ourBank,true,true));
+							$("#bankNumber").val(data[info].bankNumber);
+							if(null != data[info].remarks && undefined != data[info].remarks && '' != data[info].remarks){
+								$('#bankRemarks').html('备注:' + data[info].remarks);
+							}else{
+								$('#bankRemarks').html('');
+							}
+						}else{
+							$('#bank').append(new Option(data[info].ourBank,data[info].ourBank));
+						}
+					}
+
+					layui.form.render("select");
+					form.render();
+				}
+
+				layui.form.on('select(bankFilter)',function(d) {
+					if(null == d.value || undefined == d.value || '' == d.value){
+						$('#bankNumber').val("");
+						$('#bankRemarks').html('');
+					}else{
+						var clientId = $("#clientId").val();
+						$.ajax({
+							type:"post",
+							url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getBankInfo',
+							data:{"bankName":d.value,"clientId":clientId},
+							dataType:"json",
+							async: false,
+							success:function(data){
+								var info = data.data
+								$('#bankNumber').val(info.bankNumber);
+								if(null != info.remarks && undefined != info.remarks && '' != info.remarks){
+									$('#bankRemarks').html('备注:' + info.remarks);
+								}else{
+									$('#bankRemarks').html('');
+								}
+							}
+						})
+					}
+				});
+			});
+            /*$('#money').keyup(function(){
+                var c=$(this);
+                if(/[^\d]/.test(c.val())){//替换非数字字符
+                    var temp_amount=c.val().replace(/[^\d]/g,'');
+                    $(this).val(temp_amount);
+                }
+            })*/
+
+            jQuery.validator.addMethod("isUscCode", function(value, element) {
+                if (this.optional(element)){
+                    return true;
+                }
+                var uscCode = /^((\w{15})|(\w{18})|(\w{20}))$/;
+                return uscCode.test(value);
+            }, "请填写正确的纳税人识别号");
+
+            /* $("input[name='ext']").on('ifChecked', function(event){
+                 var radioVal = $(this).val();
+                 if(radioVal == 0){
+                     $("#td1").removeClass("hide");
+                     $("#td2").addClass("hide");
+                     $("#tr1").show()
+                 }else{
+                     $("#td1").addClass("hide");
+                     $("#td2").removeClass("hide");
+                     $("#tr1").hide()
+                 }
+             });*/
+            if("${workInvoice.ext}" == "1"){
+                $("#ext1").iCheck('check')
+            }else{
+                $("#ext").iCheck('check')
+            }
+            if(null != '${workInvoice.id}' && undefined != '${workInvoice.id}' && '' != '${workInvoice.id}'){
+				if("${workInvoice.invoiceType}" == "1"){
+					$("#invoiceType1").iCheck('check');
+					$(".invoicetype").show();
+				}else{
+					$("#invoiceType").iCheck('check');
+					$(".invoicetype").hide();
+				}
+			}
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+
+            /*--------------*/
+			$("#attachment_btn").click(function () {
+				$("#attachment_file").click();
+			});
+        });
+
+		function setValuee (obj){
+			$("#bankNumber").val("");
+			$('#bankRemarks').html('');
+            $.ajax({
+                type:'post',
+                url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getWorkClientInfo',
+                data:{
+                    "obj":obj
+                },
+                success:function(data){
+                    var d = JSON.parse(data);
+                    //$("#bank").val(d.bank);
+                    $("#orUnicode").val(d.orUnicode);
+                    //$("#bankNumber").val(d.bankNumber);
+                    $("#telephone").val(d.telephone);
+                    $("#address").val(d.registerAddress);
+                    $("#ids").val(d.ids);
+					window.bankShow(d.bankList);
+                }
+            })
+        }
+        function setDp(obj){
+            $.ajax({
+                type:'post',
+                url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getUserDp',
+                data:{
+                    "obj":obj
+                },
+                success:function(data){
+                    var d = JSON.parse(data);
+                    $("#dp").val(d.dp);
+                }
+            })
+        }
+        function setPNumber(obj,ids,isProject,details){
+			var idx=ids.split("_")[0]
+			if (isProject==1){
+				$.ajax({
+					type:'post',
+					url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getPNumber',
+					data:{
+						"obj":obj
+					},
+					success:function(data){
+						var d = JSON.parse(data);
+						var workContractName="#"+idx+"_workContractName";
+						var projectNum="#"+idx+"_projectNum";
+						var clientName="#"+idx+"_clientName";
+						var reportDataNum="#"+idx+"_reportDataNum";
+						$(workContractName).val(d.workContractName);
+						$(projectNum).val(d.projectNum);
+						$(clientName).val(d.clientName);
+						$(reportDataNum).val(d.reportDataNum);
+						var areaId = $("#areaId").val();
+						if(undefined ==areaId || null == areaId || '' == areaId){
+							$("#areaId").val(d.areaId);
+							$("#areaName").val(d.areaName);
+						}
+					}
+				})
+			}else if (isProject==2){
+				var projectFlag = $("#projectFlag").val();
+				var workContractName="#"+idx+"_projectIdName";
+				var workContractNameStr="#"+idx+"_workContractName";
+				var contractId="#"+idx+"_contractId";
+				var detailsName="#"+idx+"_details";
+				$(workContractName).val(details);
+				$(detailsName).val(details);
+
+				var projectNum="#"+idx+"_projectNum";
+				var clientName="#"+idx+"_clientName";
+				var reportDataNum="#"+idx+"_reportDataNum";
+				$(projectNum).val("");
+				$(contractId).val("");
+				$(workContractNameStr).val("");
+				$(clientName).val("");
+				$(reportDataNum).val("");
+				var length=$("#workInvoiceProjectRelationList tr").length;
+				if(length>1){
+					var id=$("#workInvoiceProjectRelationList").find("tr").eq(0).find("input").eq(3).val();
+					if (id==undefined || id == ''){
+						parent.layer.msg("非项目,只能有一条非项目数据,请删除其余项目数据",{icon:6});
+						return false;
+					}
+				}
+
+			}
+
+        }
+
+		function newSetPNumber(obj,ids,isProject,details){
+			var idx=ids.split("_")[0]
+			var idArray= new Array(); //定义一数组
+			idArray=obj.split(","); //字符分割
+
+			if (isProject==1){
+				for (var k=0;k<idArray.length ;k++ )
+				{
+					$.ajax({
+						async:false,
+						type:'post',
+						url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getPNumber',
+						data:{
+							"obj":idArray[k]
+						},
+						success:function(data){
+							if(k>=1){
+								var row = workInvoiceProjectRelationListRowIdx;
+								addRow1('#workInvoiceProjectRelationList', workInvoiceProjectRelationListRowIdx, workInvoiceProjectRelationListTpl, data[k])
+								workInvoiceProjectRelationListRowIdx = workInvoiceProjectRelationListRowIdx + 1;
+								var d = JSON.parse(data);
+								var workContractName="#workInvoiceProjectRelationList"+row+"_workContractName";
+								var projectNum="#workInvoiceProjectRelationList"+row+"_projectNum";
+								var clientName="#workInvoiceProjectRelationList"+row+"_clientName";
+								var reportDataNum="#workInvoiceProjectRelationList"+row+"_reportDataNum";
+								var projectName="#workInvoiceProjectRelationList"+row+"_projectIdName";
+								var id="#workInvoiceProjectRelationList"+row+"_projectIdId";
+								$(id).val(d.id);
+								$(projectName).val(d.projectName);
+								$(workContractName).val(d.workContractName);
+								$(projectNum).val(d.projectNum);
+								$(clientName).val(d.clientName);
+								$(reportDataNum).val(d.reportDataNum);
+								var areaId = $("#areaId").val();
+								if(undefined ==areaId || null == areaId || '' == areaId){
+									$("#areaId").val(d.areaId);
+									$("#areaName").val(d.areaName);
+								}
+							}else{
+								var d = JSON.parse(data);
+								var workContractName="#"+idx+"_workContractName";
+								var projectNum="#"+idx+"_projectNum";
+								var clientName="#"+idx+"_clientName";
+								var reportDataNum="#"+idx+"_reportDataNum";
+								$(workContractName).val(d.workContractName);
+								$(projectNum).val(d.projectNum);
+								$(clientName).val(d.clientName);
+								$(reportDataNum).val(d.reportDataNum);
+								var areaId = $("#areaId").val();
+								if(undefined ==areaId || null == areaId || '' == areaId){
+									$("#areaId").val(d.areaId);
+									$("#areaName").val(d.areaName);
+								}
+							}
+						}
+					})
+				}
+			}else if (isProject==2){
+				var projectFlag = $("#projectFlag").val();
+				var workContractName="#"+idx+"_projectIdName";
+				var workContractNameStr="#"+idx+"_workContractName";
+				var contractId="#"+idx+"_contractId";
+				var detailsName="#"+idx+"_details";
+				$(workContractName).val(details);
+				$(detailsName).val(details);
+
+				var projectNum="#"+idx+"_projectNum";
+				var clientName="#"+idx+"_clientName";
+				var reportDataNum="#"+idx+"_reportDataNum";
+				$(projectNum).val("");
+				$(contractId).val("");
+				$(workContractNameStr).val("");
+				$(clientName).val("");
+				$(reportDataNum).val("");
+				var length=$("#workInvoiceProjectRelationList tr").length;
+				if(length>1){
+					var id=$("#workInvoiceProjectRelationList").find("tr").eq(0).find("input").eq(3).val();
+					if (id==undefined || id == ''){
+						parent.layer.msg("非项目,只能有一条非项目数据,请删除其余项目数据",{icon:6});
+						return false;
+					}
+				}
+
+			}
+
+		}
+
+		function setContractValue(obj,ids){
+			var idx=ids.split("_")[0]
+			var clientId = $("#contractClientId").val();
+			$.ajax({
+				type:'post',
+				url:'${ctx}/ruralProject/ruralCostProjectRecords/getContractInfo',
+				data:{
+					"id":obj
+				},
+				success:function(data){
+					var clientName="#"+idx+"_clientName";
+					var contractId="#"+idx+"_contractId";
+					$(clientName).val(data.client.name);
+					$(contractId).val(data.id);
+
+				}
+			});
+		}
+
+        function addRow(list, idx, tpl, row){
+            var idx1 = $("#workAccountList tr").length;
+            if(list == '#workAccountList' && idx1 < 100){
+                bornTemplete(list, idx, tpl, row, idx1);
+            }
+        }
+        function bornTemplete(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+        }
+
+		function addRow1(list, idx, tpl, row){
+			var idx1 = $("#workInvoiceProjectRelationList tr").length;
+			if ('${workInvoice.chargeType}' == ''){
+				$("#chargeType").val("2")
+				layui.form.render();
+			}
+			if(idx1>0){
+				var count=0;
+				for (var i=1;i<=idx1;i++) {
+					var delFlag = $("#workInvoiceProjectRelationList").find("tr").eq(i-1).find("input").eq(1).val();
+					if (delFlag == "1") {
+						count = i;
+					}
+				}
+				if (idx1>count){
+					var id=$("#workInvoiceProjectRelationList").find("tr").eq(count).find("input").eq(5).val();
+					if (id!=undefined && id != ''){
+						if (row== undefined){
+							row={"isProject": "1","isProjectFalg": "1"};
+							$("#chargeType").val("1")
+							layui.form.render();
+						}
+					}else{
+						parent.layer.msg("非项目,只能有一条非项目数据",{icon:6});
+						$("#chargeType").val("2")
+						layui.form.render();
+						return false;
+					}
+				}
+			}
+			if(list == '#workInvoiceProjectRelationList'){
+				bornTemplete1(list, idx, tpl, row, idx1);
+			}
+		}
+		function bornTemplete1(list, idx, tpl, row, idx1){
+			$(list).append(Mustache.render(tpl, {
+				idx: idx, delBtn: true, row: row,
+				order:idx1 + 1
+			}));
+			$(list+idx).find("select").each(function(){
+				$(this).val($(this).attr("data-value"));
+			});
+			$(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+				var ss = $(this).attr("data-value").split(',');
+				for (var i=0; i<ss.length; i++){
+					if($(this).val() == ss[i]){
+						$(this).attr("checked","checked");
+					}
+				}
+			});
+		}
+
+       function delRow(obj, prefix) {
+            var id = $(prefix + "_invoiceId");
+            var delFlag = $(prefix + "_delFlag");
+            if (id.val() == "") {
+                $(obj).parent().parent().remove();
+            } else if (delFlag.val() == "0") {
+                delFlag.val("1");
+                $(obj).html("&divide;").attr("title", "撤回删除");
+                $(obj).parent().parent().addClass("error");
+                $(obj).parent().parent().addClass("hide");
+            } else if (delFlag.val() == "1") {
+                delFlag.val("0");
+                $(obj).html("&times;").attr("title", "删除");
+                $(obj).parent().parent().removeClass("error");
+            }
+		   var length=$("#workInvoiceProjectRelationList tr").length;
+		   var count=length;
+		   for (var i=1;i<=length;i++) {
+			   var delFlag = $("#workInvoiceProjectRelationList").find("tr").eq(i-1).find("input").eq(1).val();
+			   if (delFlag == "1") {
+				   count =count-1;
+			   }
+		   }
+		   if(count==1){
+			   $("#chargeType").val("2")
+			   layui.form.render();
+		   }else if (count>1){
+			   $("#chargeType").val("1")
+			   layui.form.render();
+		   }else if(count == 0){
+		   		$("#projectFlag").val("");
+		   }
+        }
+        function provinceForShort(province){
+            if(province == "北京市")
+                return "京";
+            else if(province == "天津市")
+                return "津";
+            else if(province == "重庆市")
+                return "渝";
+            else if(province == "上海市")
+                return "沪";
+            else if(province == "河北省")
+                return "冀";
+            else if(province == "山西省")
+                return "晋";
+            else if(province == "辽宁省")
+                return "辽";
+            else if(province == "吉林省")
+                return "吉";
+            else if(province == "黑龙江省")
+                return "黑";
+            else if(province == "江苏省")
+                return "苏";
+            else if(province == "浙江省")
+                return "浙";
+            else if(province == "安徽省")
+                return "皖";
+            else if(province == "福建省")
+                return "闽";
+            else if(province == "江西省")
+                return "赣";
+            else if(province == "山东省")
+                return "鲁";
+            else if(province == "河南省")
+                return "豫";
+            else if(province == "湖北省")
+                return "鄂";
+            else if(province == "湖南省")
+                return "湘";
+            else if(province == "广东省")
+                return "粤";
+            else if(province == "海南省")
+                return "琼";
+            else if(province == "四川省")
+                return "川/蜀";
+            else if(province == "贵州省")
+                return "黔/贵";
+            else if(province == "云南省")
+                return "云/滇";
+            else if(province == "陕西省")
+                return "陕/秦";
+            else if(province == "甘肃省")
+                return "甘/陇";
+            else if(province == "青海省")
+                return "青";
+            else if(province == "台湾省")
+                return "台";
+            else if(province == "内蒙古自治区")
+                return "内蒙古";
+            else if(province == "广西壮族自治区")
+                return "桂";
+            else if(province == "宁夏回族自治区")
+                return "宁";
+            else if(province == "新疆维吾尔自治区 ")
+                return "新";
+            else if(province == "西藏自治区")
+                return "藏";
+            else if(province == "香港特别行政区")
+                return "港";
+            else if(province == "澳门特别行政区")
+                return "澳";
+        }
+
+        function setVs(obj){
+            var a = $(obj).attr("id");
+            var b = a.replace('allPrice','proportion');
+            var value = obj.value;
+            var p = $("#price").val() || 0;
+            if(!p || p == 0){
+                parent.layer.msg("请先填写造价指标,且不能为零",{icon:5});
+                return;
+            }
+            var num = value/p ;
+            if(!/^\d+(\.\d{1,2})?$/.test( value )){
+                parent.layer.msg("合价必须输入数字",{icon:5});
+            }else{
+                $("#" +  b ).val(parseFloat(num.toFixed(2)));
+            }
+        }
+        function setTaxMoney(obj){
+            var a = $(obj).attr("id");
+            var b = a.replace('tax','taxMoney');
+            var t = a.replace('tax','totalMoney');
+            var tr = a.replace('tax','taxRate');
+            var value = obj.value || 0;
+            console.log("-value----"+value);
+            var tax = 1 + value/100;
+            console.log("-tax----"+tax);
+            var p = $("#" +  t ).val() || 0;//获取发票金额
+            console.log("-----"+p);
+            if(!p || p == 0){
+                parent.layer.msg("请先填写发票金额,且不能为零",{icon:5});
+                return;
+            }
+            var num = p/tax || 0;
+            console.log("-----"+num);
+            if(!/^\d+(\.\d{1,2})?$/.test( tax )){
+                parent.layer.msg("税率必须输入数字",{icon:5});
+            }else{
+                $("#" +  b ).val(parseFloat(num.toFixed(2)));
+                var taxRate = p - num;
+                $("#" +  tr ).val(parseFloat(taxRate.toFixed(2)));
+            }
+        }
+
+        /*function setV(obj){
+            var a =  $(obj).attr("id");
+            var b = $("#province").val();
+            var c = provinceForShort(b);//开票单位所在省/直辖市简称
+            var date=new Date;
+            var year=date.getFullYear();
+            var month=date.getMonth()+1;
+            month =(month<10 ? "0"+month:month);
+            var mydate = (year.toString()+month.toString());
+            var timestamp="["+mydate+"]";//获取固定格式年月
+			var number = c+timestamp;
+            $("#" +  a ).val(number);
+        }*/
+        function setV(obj){
+            var a =  $(obj).attr("id");
+            var c = "京";
+            var date=new Date;
+            var year=date.getFullYear();
+            var month=date.getMonth()+1;
+            month =(month<10 ? "0"+month:month);
+            var mydate = (year.toString()+month.toString());
+            var timestamp="["+mydate+"]";//获取固定格式年月
+            var number = c+timestamp;
+            $("#" +  a ).val(number);
+        }
+		function insertTitle(tValue){
+			var list = "${workInvoice.workAttachments}";
+			var size = (list.split('url')).length-1;
+			var files = $("#attachment_file")[0].files;
+			for(var i = 0;i<files.length;i++) {
+				var file = files[i];
+				var attachmentId = "";
+				var attachmentFlag = "115";
+				console.log(file);
+				var timestamp = new Date().getTime();
+
+				var storeAs = "workInvoice";
+				var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+				/*将这段字符串存到数据库即可*/
+				var divId = "_attachment";
+				$("#addFile" + divId).show();
+				multipartUploadWithSts(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, size);
+			}
+		}
+		function insertTitleCollection(tValue){
+			var list = "${workInvoice.workAttachments}";
+			var size = (list.split('url')).length-1;
+			var files = tValue;
+			for(var i = 0;i<files.length;i++) {
+				var file = files[i];
+				var attachmentId = "";
+				var attachmentFlag = "115";
+				var timestamp = new Date().getTime();
+
+				var storeAs = "workInvoice";
+				var uploadPath = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/" + storeAs;
+				/*将这段字符串存到数据库即可*/
+				var divId = "_attachment";
+				$("#addFile" + divId).show();
+				multipartUploadWithStsCollection(storeAs, file, attachmentId, attachmentFlag, uploadPath, divId, size);
+			}
+		}
+
+		/*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'); //只能输入两个小数
+		}*/
+
+		/**
+		 * 数字处理
+		 * arg1 inputObject
+		 **/
+		function num(obj){//用户只能输入正负数与小数
+			if(isNaN(obj.value) && !/^-$/.test(obj.value)){
+				obj.value="";
+			}
+			if(!/^[+-]?\d*\.{0,1}\d{0,1}$/.test(obj.value)){
+				obj.value=obj.value.replace(/\.\d{2,}$/,obj.value.substr(obj.value.indexOf('.'),3));
+			}
+
+			var regStrs = [
+				['^0(\\d+)$', '$1'], //禁止录入整数部分两位以上,但首位为0
+			];
+			for(var i=0; i<regStrs.length; i++){
+				var reg = new RegExp(regStrs[i][0]);
+				obj.value = obj.value.replace(reg, regStrs[i][1]);
+			}
+		}
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="projectMaterialStorage" action="${ctx}/workinvoiceTwo/workinvoiceTwo/save" method="post" class="layui-form">
+			<form:hidden path="id"/>
+
+			<input type="hidden" id="projectFlag" value="${workInvoice.projectFlag}">
+
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>材料详情</h2></div>
+
+<%--				<div class="layui-item layui-col-sm12 lw7" id="d1">--%>
+<%--					<label class="layui-form-label"><span class="require-item">*</span>选择项目:</label>--%>
+<%--					<div class="layui-input-block  with-icon">--%>
+<%--						<sys:gridselectContract url="${ctx}/ruralProject/ruralCostProjectRecords/selectcontract" type="" isTotal="" id="contractId" name="workContractInfo.id"  value="${ruralProjectRecords.workContractInfo.id}"  title="选择合同" labelName="workContractInfo.name"--%>
+<%--												cssStyle="background-color: #fff" labelValue="${ruralProjectRecords.workContractInfo.contractNum}" cssClass="form-control required layui-input" fieldLabels="合同名称" fieldKeys="name" searchLabel="合同名称" searchKey="name" ></sys:gridselectContract>--%>
+<%--					</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">
+
+						<sys:gridselectContract url="${ctx}/workinvoiceTwo/workinvoiceTwo/selectproject" type="" isTotal="" id="contractId" name="workContractInfo.id"  value="${ruralProjectRecords.workContractInfo.id}"  title="选择项目" labelName="workContractInfo.name"
+						cssStyle="background-color: #fff" labelValue="${ruralProjectRecords.workContractInfo.contractNum}" cssClass="form-control required layui-input" fieldLabels="合同名称" fieldKeys="name" searchLabel="合同名称" searchKey="name" ></sys:gridselectContract>
+
+<%--						<form:input id="projectName" path="projectName" htmlEscape="false"  placeholder="请输入项目名称"  class="form-control layui-input"/>--%>
+					</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"/>
+					</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="unit" path="unit" htmlEscape="false"  placeholder="请输入材料单位"  class="form-control layui-input"/>
+					</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"/>
+					</div>
+				</div>
+
+			</div>
+			<div class="form-group layui-row page-end"></div>
+		</form:form>
+	</div>
+</div>
+
+</body>
+</html>

+ 1 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceAudit.jsp

@@ -50,7 +50,7 @@
 		<form:hidden path="act.procInsId"/>
 		<form:hidden path="act.procDefId"/>
 		<form:hidden id="flag" path="act.flag"/>
-		<c:set var="status" value="${workInvoice.act.status}" />
+		<c:set var="status" value="${workInvoice.act.status}" />·
 
 		<div class="form-group layui-row first lw14">
 			<div class="form-group-label"><h2>基本信息</h2></div>