Selaa lähdekoodia

项目列表管理中添加项目的 引用登记 功能

徐滕 3 viikkoa sitten
vanhempi
commit
37b92bbe98

+ 51 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java

@@ -47,7 +47,6 @@ import com.jeeplus.modules.workclientinfo.service.WorkClientInfoService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
 import com.jeeplus.modules.workinvoice.service.WorkInvoiceService;
-import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import com.jeeplus.modules.workreimbursement.service.WorkReimbursementService;
 import org.activiti.engine.runtime.ProcessInstance;
@@ -287,6 +286,57 @@ public class RuralCostProjectRecordsController extends BaseController {
 
 
 		model.addAttribute("ruralProjectRecords", projectRecords);
+		model.addAttribute("ruralProjectRecords", projectRecords);
+		return "modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm";
+	}
+
+
+
+	/**
+	 * 查看,增加,编辑项目表单页面
+	 */
+	@RequiresPermissions(value={"ruralProject:ruralCostProjectRecords:add","ruralProject:ruralCostProjectRecords:edit"},logical=Logical.OR)
+	@RequestMapping(value = "quoteForm")
+	public String quoteForm(RuralProjectRecords projectRecords, Model model) {
+		if (projectRecords!=null&&StringUtils.isNotBlank(projectRecords.getId())) {
+			projectRecords = projectRecordsService.get(projectRecords.getId());
+			if (null != projectRecords.getCreateBy() && StringUtils.isNotBlank(projectRecords.getCreateBy().getId())) {
+				User user = UserUtils.get(projectRecords.getCreateBy().getId());
+				projectRecords.setCreateBy(user);
+			}
+			//根据归属部门Id查询归属部门名称显示
+			String belongingDepartmentName = projectRecordsService.getBelongingDepartmentNameByBelongingDepartment(projectRecords.getBelongingDepartment());
+			model.addAttribute("belongingDepartmentName",belongingDepartmentName);
+
+			projectRecordsService.queryProjectDetail(projectRecords);
+			//获取工程类型
+			ProjectEngineeringInfo engineeringInfos=engineeringService.get(projectRecords.getEngineeringType());
+			model.addAttribute("engineeringInfo", engineeringInfos);
+			projectRecords.setId(null);
+			projectRecords.setCreateBy(UserUtils.getUser());
+			projectRecords.setCreateDate(new Date());
+			projectRecords.setProjectId(null);
+			projectRecords.setCreateReportFlag(true);
+			model.addAttribute("projectStartDate", "");
+			model.addAttribute("projectEndDate", "");
+		}else {
+			projectRecords.setCreateBy(UserUtils.getUser());
+			projectRecords.setCreateDate(new Date());
+			projectRecords.setLeaderIds(UserUtils.getUser().getId());
+			projectRecords.setLeaderNameStr(UserUtils.getUser().getName());
+			projectRecords.setCreateReportFlag(true);
+			model.addAttribute("projectStartDate", "");
+			model.addAttribute("projectEndDate", "");
+			String belongingDepartmentName = UserUtils.getUser().getOffice().toString();
+			String belongingDepartmentParentId = UserUtils.getUser().getOffice().getParentId();
+			//如果父级id为工程五部则不予显示
+			if(!belongingDepartmentParentId.equals("ee4e055e2f074aef934d283880983a38")){
+				model.addAttribute("belongingDepartmentName",belongingDepartmentName);
+			}
+		}
+
+
+		model.addAttribute("ruralProjectRecords", projectRecords);
 		return "modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm";
 	}
 

+ 37 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java

@@ -270,6 +270,43 @@ public class RuralProjectRecordsController extends BaseController {
 	}
 
 	/**
+	 * 查看,增加,编辑项目表单页面
+	 */
+	@RequiresPermissions(value={"ruralProject:ruralProjectRecords:add","ruralProject:ruralProjectRecords:edit"},logical=Logical.OR)
+	@RequestMapping(value = "quoteForm")
+	public String quoteForm(RuralProjectRecords projectRecords, Model model) {
+		if (projectRecords!=null&&StringUtils.isNotBlank(projectRecords.getId())) {
+			projectRecords = projectRecordsService.get(projectRecords.getId());
+            projectRecordsService.queryProjectDetail(projectRecords);
+			//查询工程分类
+			ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+			model.addAttribute("engineeringInfo", engineeringInfo);
+
+			//根据归属部门Id查询归属部门名称显示
+			String belongingDepartmentName = projectRecordsService.getBelongingDepartmentNameByBelongingDepartment(projectRecords.getBelongingDepartment());
+			model.addAttribute("belongingDepartmentName",belongingDepartmentName);
+			projectRecords.setId(null);
+			projectRecords.setCreateBy(UserUtils.getUser());
+			projectRecords.setCreateDate(new Date());
+			projectRecords.setProjectId(null);
+			projectRecords.setCreateReportFlag(true);
+			model.addAttribute("projectStartDate", "");
+			model.addAttribute("projectEndDate", "");
+		}else {
+		    projectRecords.setCreateBy(UserUtils.getUser());
+		    projectRecords.setCreateDate(new Date());
+			projectRecords.setLeaderIds(UserUtils.getUser().getId());
+			projectRecords.setLeaderNameStr(UserUtils.getUser().getName());
+			projectRecords.setCreateReportFlag(true);
+			model.addAttribute("projectStartDate", "");
+			model.addAttribute("projectEndDate", "");
+        }
+
+		model.addAttribute("ruralProjectRecords", projectRecords);
+		return "modules/ruralprojectrecords/ruralProjectRecordsForm";
+	}
+
+	/**
 	 * 查看
 	 * @param projectRecords
 	 * @param model

+ 1 - 3
src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceAllService.java

@@ -33,7 +33,6 @@ import com.jeeplus.modules.workactivity.service.WorkActivityProcessService;
 import com.jeeplus.modules.workactivitymenu.entity.WorkActivityMenu;
 import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
 import com.jeeplus.modules.workbidproject.entity.WorkBidProject;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
@@ -65,7 +64,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
 
-import javax.annotation.Resource;
 import java.util.*;
 
 /**
@@ -2396,7 +2394,7 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 		workattachmentService.attachmentManageOnUrl(workInvoice.getWorkAttachments());
 
 		for (Workattachment clientAttachment:attachmentList){
-			if (clientAttachment.getCollectFlag().equals("1")){
+			if (StringUtils.isNotBlank(clientAttachment.getCollectFlag()) && clientAttachment.getCollectFlag().equals("1")){
 				for (Workattachment workattachment:workInvoice.getWorkAttachments()){
 					if (clientAttachment.getId().equals(workattachment.getId())){
 						workattachment.setCollectFlag("1");

+ 34 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm.jsp

@@ -51,6 +51,13 @@
                 //     top.layer.alert('请至少上传一个项目计划表或者实施方案文档!', {icon: 0});
                 //     return;
                 // }
+
+                // 提交前验证名称重复(新加在这里)
+                if (checkProjectNameSubmit()) {
+                    return false;
+                }
+
+
                 if($("#workClientLinkmanList tr").length==0){
                     top.layer.msg("请选择委托方联系人!", {icon: 5});
                     return;
@@ -178,6 +185,33 @@
             }
             return false;
         }
+
+        // ==================== 【新加】提交专用验证方法 ====================
+        function checkProjectNameSubmit() {
+            // 这里换成你的项目名称输入框 ID
+            var name = $("#projectName").val();
+            var proName = '${ruralProjectRecords.projectName}';
+            var isRepeat = false;
+
+            $.ajax({
+                type: "POST",
+                url: "${ctx}/ruralProject/ruralProjectRecords/reProjectName",
+                data: { projectName: name },
+                async: false,    // 关键:同步 → 必须等后端返回才往下走
+                cache: false,
+                success: function (result) {
+                    if (result > 0) {
+                        $("#projectName").val(proName);
+                        parent.layer.msg("项目名称已存在!", { icon: 2 });
+                        isRepeat = true;
+                    }
+                }
+            });
+            return isRepeat;
+        }
+
+
+
         $(document).ready(function() {
             var id;
             var name;

+ 22 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsList.jsp

@@ -586,6 +586,7 @@
 						<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:exportAll">
 							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="delUser"> 下载项目档案信息</button>
 						</shiro:hasPermission>
+						<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm"  style="background-color:#31bdec;border-color:#31bdec;" id="quoteForm"> 引用登记</button>
 						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
 					</div>
 <%--					<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:add">--%>
@@ -869,6 +870,27 @@
 				layer.off('btn(我知道了)'); // 解绑全局事件,彻底杜绝冲突
 			}
 		});
+		$("#quoteForm").off('click').on('click', function () {
+			// 1. 获取表格选中的数据(和你批量代码完全一样,只是取第一条)
+			var checkList = layui.table.checkStatus('checkboxTable').data;
+			// 2. 判断是否选择
+			if (checkList.length <= 0) {
+				layer.msg("请选择需要引用的项目", {icon: 2});
+				return;
+			}
+			// 3. 只取 第一条 的ID(你要的“获取一个”)
+			var id = checkList[0].id;
+
+			// 执行你原来的打开弹窗方法
+			openDialogre(
+					'登记项目',
+					'${ctx}/ruralProject/ruralCostProjectRecords/quoteForm?id=' + id,
+					'95%',
+					'95%',
+					'',
+					'提交,关闭'
+			);
+		});
 	});
     resizeListTable();
     $("a").on("click",addLinkVisied);

+ 31 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsForm.jsp

@@ -52,6 +52,11 @@
                 //     return;
                 // }
 
+                // 提交前验证名称重复(新加在这里)
+                if (checkProjectNameSubmit()) {
+                    return false;
+                }
+
                 var startDate = new Date($("#startDate").val());
                 var endingDate = new Date($("#endingDate").val());
                 var projectStartDate = new Date('${projectStartDate}');
@@ -148,6 +153,32 @@
 
             return false;
         }
+
+
+        // ==================== 【新加】提交专用验证方法 ====================
+        function checkProjectNameSubmit() {
+            // 这里换成你的项目名称输入框 ID
+            var name = $("#projectName").val();
+            var proName = '${ruralProjectRecords.projectName}';
+            var isRepeat = false;
+
+            $.ajax({
+                type: "POST",
+                url: "${ctx}/ruralProject/ruralProjectRecords/reProjectName",
+                data: { projectName: name },
+                async: false,    // 关键:同步 → 必须等后端返回才往下走
+                cache: false,
+                success: function (result) {
+                    if (result > 0) {
+                        $("#projectName").val(proName);
+                        parent.layer.msg("项目名称已存在!", { icon: 2 });
+                        isRepeat = true;
+                    }
+                }
+            });
+            return isRepeat;
+        }
+
         $(document).ready(function() {
             var id;
             var name;

+ 28 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsList.jsp

@@ -453,6 +453,7 @@
 						<shiro:hasPermission name="ruralProject:ruralProjectRecords:exportAll">
 							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="delUser"> 下载项目档案信息</button>
 						</shiro:hasPermission>
+						<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm"  style="background-color:#31bdec;border-color:#31bdec;" id="quoteForm"> 引用登记</button>
 						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
 					</div>
 <%--					<shiro:hasPermission name="ruralProject:ruralProjectRecords:add">--%>
@@ -592,7 +593,9 @@
 							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+="</div>"
+
+
+						xml+="</div>"
                         return xml;
 
                     }}
@@ -733,6 +736,30 @@
 				layer.off('btn(我知道了)'); // 解绑全局事件,彻底杜绝冲突
 			}
 		});
+
+
+
+		$("#quoteForm").off('click').on('click', function () {
+			// 1. 获取表格选中的数据(和你批量代码完全一样,只是取第一条)
+			var checkList = layui.table.checkStatus('checkboxTable').data;
+			// 2. 判断是否选择
+			if (checkList.length <= 0) {
+				layer.msg("请选择需要引用的项目", {icon: 2});
+				return;
+			}
+			// 3. 只取 第一条 的ID(你要的“获取一个”)
+			var id = checkList[0].id;
+
+			// 执行你原来的打开弹窗方法
+			openDialogre(
+					'登记项目',
+					'${ctx}/ruralProject/ruralProjectRecords/quoteForm?id=' + id,
+					'95%',
+					'95%',
+					'',
+					'提交,关闭'
+			);
+		});
     })
 
     resizeListTable();

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

@@ -1054,7 +1054,7 @@
 					,
 					"redInvoice":
 							<c:choose>
-							<c:when test="${workInvoice.invoiceState == 5}">"1"</c:when>
+							<c:when test="${workInvoice.invoiceState == 5 && fns:getUser().id == workInvoice.createBy.id}">"1"</c:when>
 					<c:otherwise>"0"</c:otherwise>
 					</c:choose>
 					</shiro:hasPermission>