소스 검색

施工项目经理发起涉电施工流程从项目计划模块获取项目的计划开工时间,对比,发送通知

yue 5 년 전
부모
커밋
1c7f4bc744

+ 57 - 9
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -6,6 +6,8 @@ package com.jeeplus.modules.act.web;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.util.Date;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -29,7 +31,9 @@ import com.jeeplus.modules.sg.managementcenter.activiti.service.ProcessPersonnel
 import com.jeeplus.modules.sg.managementcenter.activiti.service.UploadImagesService;
 import com.jeeplus.modules.sg.managementcenter.activiti.utils.MyActiviUtils;
 import com.jeeplus.modules.sg.managementcenter.project.entity.Project;
+import com.jeeplus.modules.sg.managementcenter.project.service.PickingRequisitionService;
 import com.jeeplus.modules.sg.managementcenter.project.service.ProjectService;
+import com.jeeplus.modules.sg.materialmodule.activiti.service.MaterialModuleService;
 import com.jeeplus.modules.sg.picking.activiti.entity.PickList;
 import com.jeeplus.modules.sg.picking.activiti.entity.ShowList;
 import com.jeeplus.modules.sg.picking.activiti.service.PickIngService;
@@ -67,6 +71,7 @@ import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ActUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import sun.util.calendar.BaseCalendar;
 
 /**
  * 流程个人任务相关Controller
@@ -118,6 +123,10 @@ public class ActTaskController extends BaseController {
 	@Autowired
 	private SystemService systemService;
 
+	@Autowired
+	private MaterialModuleService materialModuleService;
+
+
 	/**
 	 * 获取待办列表
 	 * @return
@@ -1549,16 +1558,55 @@ public class ActTaskController extends BaseController {
 	public AjaxJson PowerStartTask(Act act,String pic, UploadImages uploadImages) {
 		AjaxJson j = new AjaxJson();
 		try {
-			if (pic!=null&&pic!="") {
-				uploadImages.setPath(pic);
-				uploadImages.setProcInsId(act.getProcInsId());
-				uploadImages.setImgName("上传涉电开工流程");
-				uploadImages.setuId(UserUtils.getUser().getLoginName());
-				uploadImagesService.save(uploadImages);
+			//获取当前的流程实例id
+			String procInsId = act.getProcInsId();
+			//根据项目信息查询计划开工日期
+			String projectName = materialModuleService.findProjectName(procInsId);
+			Date specificTime = materialModuleService.findSpecificTime(projectName);
+			String[] needUser = {"施工项目经理A"};
+			List<String> listUserId = MyActiviUtils.getListUserId(needUser);
+			List<String> userId = materialModuleService.findUserId(listUserId);
+			String stringJoiningTogether = MyActiviUtils.getStringJoiningTogether(userId);
+			OaNotify  oaNotify = new OaNotify();
+			oaNotify.setType("4");
+			oaNotify.setTitle("施工验收流程项目计划信息");
+			oaNotify.setStatus("1");
+			oaNotify.setOaNotifyRecordIds(stringJoiningTogether);
+			if (specificTime == null) {
+				//根据流程实例id查询对应的项目信息(如果没有,发送通知,没有该项目计划信息)
+				oaNotify.setContent(projectName + ":项目没有对应的计划信息");
+				oaNotifyService.save(oaNotify);
+				List<OaNotifyRecord> list = oaNotify.getOaNotifyRecordList();
+				for (OaNotifyRecord o : list) {
+					//发送通知到客户端
+					ServletContext context = SpringContextHolder.getBean(ServletContext.class);
+					new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
+				}
+			}else {
+				//将计划赶工日期与当前时间比对(则将不符情况以通知形式发送)
+				SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
+				boolean timeFlag = fmt.format(specificTime).equals(fmt.format(new Date()));
+				if (timeFlag == false) {
+					oaNotify.setContent(projectName + ":计划时间与实际时间不符");
+					oaNotifyService.save(oaNotify);
+					List<OaNotifyRecord> list = oaNotify.getOaNotifyRecordList();
+					for (OaNotifyRecord o : list) {
+						//发送通知到客户端
+						ServletContext context = SpringContextHolder.getBean(ServletContext.class);
+						new SystemInfoSocketHandler().sendMessageToUser(UserUtils.get(o.getUser().getId()).getLoginName(), "收到一条新通知,请到我的通知查看!");
+					}
+				}
 			}
-			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
-			act.setComment(comment);
-			actTaskService.PowerStartTask(act);
+				if (pic != null && pic != "") {
+					uploadImages.setPath(pic);
+					uploadImages.setProcInsId(act.getProcInsId());
+					uploadImages.setImgName("上传涉电开工流程");
+					uploadImages.setuId(UserUtils.getUser().getLoginName());
+					uploadImagesService.save(uploadImages);
+				}
+				String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+				act.setComment(comment);
+				actTaskService.PowerStartTask(act);
 		} catch (UnsupportedEncodingException e) {
 			e.printStackTrace();
 		}

+ 23 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/activiti/utils/MyActiviUtils.java

@@ -57,7 +57,6 @@ public class MyActiviUtils {
     private static DictTypeService dictTypeService = SpringContextHolder.getBean(DictTypeService.class);
     @Autowired
     private static ShowListService showListService = SpringContextHolder.getBean(ShowListService.class);
-
     /**
      * 获取下一个用户任务信息
      * @param  taskId     任务Id信息
@@ -365,5 +364,28 @@ public class MyActiviUtils {
         }
         return finalList;
     }
+
+    //处理转发人数组成为list
+    public static List<String> getListUserId(String[] userName){
+        List<String> list = new ArrayList<String>();
+        for (String str:userName){
+            list.add(str);
+        }
+        return list;
+    }
+
+    /*
+    拼接发送通知用户id
+    */
+    public static String getStringJoiningTogether(List<String> strings){
+        String str = "";
+        for (String string:strings){
+            str+=string+",";
+        }
+        if (!"".equals(str)){
+            str = str.substring(0,str.length()-1);
+        }
+        return str;
+    }
 }
 

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/managementcenter/project/mapper/xml/ProjectMapper.xml

@@ -111,7 +111,7 @@
 				or a.earlyMaterial = #{earlyMaterial}
 			</if>
 			<if test="preConstruction != null">
-				OR a.preConstruction = #{preConstruction}
+				AND (a.acquisition_status = '2' OR a.preConstruction = #{preConstruction})
 			</if>
 			<if test="projectId != null and  projectId != ''">
 				and a.project_id = #{projectId}

+ 0 - 2
src/main/java/com/jeeplus/modules/sg/managementcenter/project/web/ProjectController.java

@@ -151,8 +151,6 @@ public class ProjectController extends BaseController {
 	@ResponseBody
 	@RequestMapping(value = "materialDataPicking")
 	public Map<String, Object> materialDataPicking(Project project, HttpServletRequest request, HttpServletResponse response, Model model) {
-		//完成领料状态
-		project.setAcquisitionStatus("2");
 		//运行提前施工
 		project.setPreConstruction(1);
 		//未进行施工流程

+ 14 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/MaterialModuleMapper.java

@@ -7,6 +7,11 @@ import com.jeeplus.core.persistence.BaseMapper;
 import com.jeeplus.core.persistence.annotation.MyBatisMapper;
 import com.jeeplus.modules.sg.advence.activiti.entity.Advance;
 import com.jeeplus.modules.sg.materialmodule.activiti.entity.MaterialModule;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
 
 /**
  * 请假表单MAPPER接口
@@ -19,4 +24,13 @@ public interface MaterialModuleMapper extends BaseMapper<MaterialModule> {
     //根据项目id修改项目施工状态
     void updateConstructionStatus(MaterialModule materialModule);
 
+    //查询项目信息
+    String findProjectName (String procInsId);
+
+    //项目项目的计划开工时间
+    Date findSpecificTime(String projectName);
+
+    //查找登录名id
+    List<String> findUserId(@Param("list") List<String> list);
+
 }

+ 15 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/mapper/xml/MaterialModuleMapper.xml

@@ -78,6 +78,21 @@
 		update xm_project_details set construction_status = '1' where id=#{projectId}
 	</update>
 
+	<select id="findProjectName" resultType="string">
+		select project_name from sg_construction_process where proc_ins_id = #{procInsId};
+	</select>
 
+	<select id="findSpecificTime" resultType="java.util.Date">
+		select specificTime from ms_construction_project where projectName = #{projectName};
+	</select>
 
+	<select id="findUserId" parameterType="java.util.List" resultType="java.lang.String">
+		 select id from sys_user
+		 where name in
+		 (
+			<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+				#{item}
+			</foreach>
+		 )
+	</select>
 </mapper>

+ 16 - 0
src/main/java/com/jeeplus/modules/sg/materialmodule/activiti/service/MaterialModuleService.java

@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -31,6 +32,21 @@ public class MaterialModuleService extends CrudService<MaterialModuleMapper, Mat
 		return materialModule;
 	}
 
+	//查询项目信息
+	public String findProjectName (String procInsId){
+		return materialModuleMapper.findProjectName(procInsId);
+	}
+
+	//根据项目名称查询,项目计划开工时间
+	public Date findSpecificTime(String projectName){
+		return materialModuleMapper.findSpecificTime(projectName);
+	}
+
+	//根据角色名查找用户id
+	public List<String> findUserId(List<String> list){
+		return materialModuleMapper.findUserId(list);
+	}
+
 	@Transactional(readOnly = false)
 	@Override
 	public void save(MaterialModule entity) {

+ 1 - 1
src/main/webapp/webpage/modules/sg/materialmodule/activiti/PowerEnd.jsp

@@ -13,7 +13,7 @@
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">涉电竣工流程</h3>
+		<h3 class="panel-title">涉电竣工流程</h3>
 	</div>
 	<div class="panel-body">
 	<!-- 表格 -->

+ 0 - 10
src/main/webapp/webpage/modules/sg/materialmodule/activiti/materialModuleForm.jsp

@@ -41,16 +41,6 @@
 							</tr>
 							</tbody>
 						</table>
-						<%--<div class="form-group">
-							<div class="col-lg-3"></div>
-								<div class="col-lg-6">
-									<div class="form-group text-center">
-										<div>
-											<button class="btn btn-primary btn-block btn-lg btn-parsley" data-loading-text="正在提交...">提 交</button>
-										</div>
-									</div>
-								</div>
-						</div>--%>
 					</form:form>
 
 					<div class="row">