From 05683f2b2bdbdbe21cf17ad523c21ab338bd1c54 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 19 七月 2022 21:49:55 +0800
Subject: [PATCH] 优化添加设备 功能
---
service-community/src/main/java/com/java110/community/cmd/inspectionTaskDetail/UpdateInspectionTaskDetailCmd.java | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 264 insertions(+), 1 deletions(-)
diff --git a/service-community/src/main/java/com/java110/community/cmd/inspectionTaskDetail/UpdateInspectionTaskDetailCmd.java b/service-community/src/main/java/com/java110/community/cmd/inspectionTaskDetail/UpdateInspectionTaskDetailCmd.java
index 140142a..3fa184e 100644
--- a/service-community/src/main/java/com/java110/community/cmd/inspectionTaskDetail/UpdateInspectionTaskDetailCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/inspectionTaskDetail/UpdateInspectionTaskDetailCmd.java
@@ -1,4 +1,267 @@
package com.java110.community.cmd.inspectionTaskDetail;
-public class UpdateInspectionTaskDetailCmd {
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
+import com.java110.dto.file.FileDto;
+import com.java110.dto.inspectionPlan.InspectionTaskDetailDto;
+import com.java110.dto.inspectionPlan.InspectionTaskDto;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.community.IInspectionTaskDetailInnerServiceSMO;
+import com.java110.intf.community.IInspectionTaskDetailV1InnerServiceSMO;
+import com.java110.intf.community.IInspectionTaskInnerServiceSMO;
+import com.java110.intf.community.IInspectionTaskV1InnerServiceSMO;
+import com.java110.po.file.FileRelPo;
+import com.java110.po.inspection.InspectionTaskDetailPo;
+import com.java110.po.inspection.InspectionTaskPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "inspectionTaskDetail.updateInspectionTaskDetail")
+public class UpdateInspectionTaskDetailCmd extends Cmd {
+ private static Logger logger = LoggerFactory.getLogger(UpdateInspectionTaskDetailCmd.class);
+
+ @Autowired
+ private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+ @Autowired
+ private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+ @Autowired
+ private IInspectionTaskInnerServiceSMO inspectionTaskInnerServiceSMOImpl;
+
+ @Autowired
+ private IInspectionTaskDetailInnerServiceSMO inspectionTaskDetailInnerServiceSMOImpl;
+
+ @Autowired
+ private IInspectionTaskDetailV1InnerServiceSMO inspectionTaskDetailV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IInspectionTaskV1InnerServiceSMO inspectionTaskV1InnerServiceSMOImpl;
+
+ @Override
+ public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+ Assert.hasKeyAndValue(reqJson, "taskDetailId", "璇锋眰鎶ユ枃涓湭鍖呭惈taskDetailId");
+ Assert.hasKeyAndValue(reqJson, "taskId", "璇锋眰鎶ユ枃涓湭鍖呭惈taskId");
+ Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
+ Assert.hasKeyAndValue(reqJson, "inspectionId", "璇锋眰鎶ユ枃涓湭鍖呭惈inspectionId");
+ Assert.hasKeyAndValue(reqJson, "photos", "璇锋眰鎶ユ枃涓湭鍖呭惈鐓х墖");
+ }
+
+ @Override
+ @Java110Transactional
+ public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+ if (reqJson.containsKey("photos")) {
+ dealPhotos(reqJson);
+ }
+
+ //娣诲姞鍗曞厓淇℃伅
+ reqJson.put("state", "20200407");//宸℃鐐瑰畬鎴�
+ try {
+ updateInspectionTaskDetail(reqJson);
+ } catch (ParseException e) {
+ logger.error("鏇存柊鏄庣粏澶辫触", e);
+ throw new CmdException(e.getMessage());
+ }
+
+ InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
+ inspectionTaskDto.setTaskId(reqJson.getString("taskId"));
+ inspectionTaskDto.setCommunityId(reqJson.getString("communityId"));
+ inspectionTaskDto.setState("20200405");
+ List<InspectionTaskDto> inspectionTaskDtos = inspectionTaskInnerServiceSMOImpl.queryInspectionTasks(inspectionTaskDto);
+
+ if (inspectionTaskDtos != null && inspectionTaskDtos.size() > 0) {
+ reqJson.put("state", "20200406");
+ updateInspectionTask(reqJson);
+ }
+
+ InspectionTaskDetailDto inspectionTaskDetailDto = new InspectionTaskDetailDto();
+ inspectionTaskDetailDto.setCommunityId(reqJson.getString("communityId"));
+ inspectionTaskDetailDto.setTaskId(reqJson.getString("taskId"));
+ inspectionTaskDetailDto.setState("20200405");
+ int count = inspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetailsCount(inspectionTaskDetailDto);
+
+ if (count > 0) {//璇存槑杩樻病鏈夊贰妫�瀹�
+ return;
+ }
+ reqJson.put("state", "20200407");//宸℃瀹屾垚
+ updateInspectionTask(reqJson);
+ }
+
+
+ private void dealPhotos(JSONObject reqJson) {
+ JSONArray photos = reqJson.getJSONArray("photos");
+ JSONObject photo = null;
+ for (int photoIndex = 0; photoIndex < photos.size(); photoIndex++) {
+ photo = photos.getJSONObject(photoIndex);
+ FileDto fileDto = new FileDto();
+ fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+ fileDto.setFileName(fileDto.getFileId());
+ fileDto.setContext(photo.getString("photo"));
+ fileDto.setSuffix("jpeg");
+ fileDto.setCommunityId(reqJson.getString("communityId"));
+ String fileName = fileInnerServiceSMOImpl.saveFile(fileDto);
+ reqJson.put("photoId", fileDto.getFileId());
+ reqJson.put("fileSaveName", fileName);
+
+ addPhoto(reqJson);
+ }
+ }
+
+ /**
+ * 娣诲姞鐗╀笟璐圭敤
+ *
+ * @param paramInJson 鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+ * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+ */
+ public void addPhoto(JSONObject paramInJson) {
+
+ JSONObject businessUnit = new JSONObject();
+ businessUnit.put("fileRelId", "-1");
+ businessUnit.put("relTypeCd", "90000");
+ businessUnit.put("saveWay", "ftp");
+ businessUnit.put("objId", paramInJson.getString("taskDetailId"));
+ businessUnit.put("fileRealName", paramInJson.getString("photoId"));
+ businessUnit.put("fileSaveName", paramInJson.getString("fileSaveName"));
+ FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
+ int flag = fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+ if (flag < 1) {
+ throw new CmdException("淇濆瓨鍥剧墖澶辫触");
+ }
+ }
+
+ public void updateInspectionTaskDetail(JSONObject paramInJson) throws ParseException {
+ InspectionTaskDetailDto inspectionTaskDetailDto = new InspectionTaskDetailDto();
+ inspectionTaskDetailDto.setTaskDetailId(paramInJson.getString("taskDetailId"));
+ inspectionTaskDetailDto.setCommunityId(paramInJson.getString("communityId"));
+ List<InspectionTaskDetailDto> inspectionTaskDetailDtos = inspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetails(inspectionTaskDetailDto);
+ Assert.listOnlyOne(inspectionTaskDetailDtos, "鏈壘鍒伴渶瑕佷慨鏀圭殑娲诲姩 鎴栧鏉℃暟鎹�");
+ JSONObject businessInspectionTaskDetail = new JSONObject();
+ businessInspectionTaskDetail.putAll(BeanConvertUtil.beanCovertMap(inspectionTaskDetailDtos.get(0)));
+ businessInspectionTaskDetail.putAll(paramInJson);
+ InspectionTaskDetailPo inspectionTaskDetailPoPo = BeanConvertUtil.covertBean(businessInspectionTaskDetail, InspectionTaskDetailPo.class);
+ inspectionTaskDetailPoPo.setInspectionTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ inspectionTaskDetailPoPo.setActUserId(paramInJson.getString("userId"));
+ inspectionTaskDetailPoPo.setActUserName(paramInJson.getString("userName"));
+ //鑾峰彇浠诲姟id
+ String taskId = paramInJson.getString("taskId");
+ InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
+ inspectionTaskDto.setTaskId(taskId);
+ List<InspectionTaskDto> inspectionTaskDtos = inspectionTaskInnerServiceSMOImpl.queryInspectionTasks(inspectionTaskDto);
+ Assert.listOnlyOne(inspectionTaskDtos, "鏌ヨ宸℃浠诲姟鏁版嵁閿欒锛�");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date date = new Date();
+ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+ String currentDate = sdf1.format(date);
+ System.out.println(currentDate);
+
+
+ //鑾峰彇宸℃鐐圭殑宸℃鐐规椂闂撮檺鍒�
+ String inspectionStartTime = "";
+ String inspectionEndTime = "";
+ long planStartTime;
+ long planFinishTime;
+ String pointStartTime = inspectionTaskDetailDtos.get(0).getPointStartTime();
+ String pointEndTime = inspectionTaskDetailDtos.get(0).getPointEndTime();
+ if (!StringUtil.isEmpty(pointStartTime)) {
+ inspectionStartTime = currentDate + " " + pointStartTime + ":00";
+ Date startTime = format.parse(inspectionStartTime);
+ planStartTime = startTime.getTime();
+ } else {
+ //鑾峰彇璁″垝宸℃寮�濮嬫椂闂�
+ String planInsTime = inspectionTaskDtos.get(0).getPlanInsTime();
+ Date startTime = format.parse(planInsTime);
+ planStartTime = startTime.getTime();
+ }
+ if (!StringUtil.isEmpty(pointEndTime)) {
+ inspectionEndTime = currentDate + " " + pointEndTime + ":00";
+ Date endTime = format.parse(inspectionEndTime);
+ planFinishTime = endTime.getTime();
+ } else {
+ //鑾峰彇璁″垝宸℃缁撴潫鏃堕棿
+ String planEndTime = inspectionTaskDtos.get(0).getPlanEndTime();
+ Date endTime = format.parse(planEndTime);
+ planFinishTime = endTime.getTime();
+ }
+
+ //鑾峰彇璁″垝宸℃寮�濮嬫椂闂�
+// String planInsTime = inspectionTaskDtos.get(0).getPlanInsTime();
+// Date startTime = format.parse(planInsTime);
+// long planStartTime = startTime.getTime();
+// //鑾峰彇璁″垝宸℃缁撴潫鏃堕棿
+// String planEndTime = inspectionTaskDtos.get(0).getPlanEndTime();
+// Date endTime = format.parse(planEndTime);
+// long planFinishTime = endTime.getTime();
+ //鑾峰彇宸℃鐐圭鍒版椂闂�
+ String inspectionTime = inspectionTaskDetailPoPo.getInspectionTime();
+ Date inspectionDetailTime = format.parse(inspectionTime);
+ long detailTime = inspectionDetailTime.getTime();
+ if (detailTime < planStartTime) { //濡傛灉宸℃鐐圭鍒版椂闂村皬浜庡贰妫�璁″垝寮�濮嬫椂闂达紝绛惧埌鐘舵�佸氨鏄棭鍒�
+ inspectionTaskDetailPoPo.setInspectionState("40000");
+ } else if (detailTime > planFinishTime) { //濡傛灉宸℃鐐圭鍒版椂闂村ぇ浜庡贰妫�璁″垝缁撴潫鏃堕棿锛岀鍒扮姸鎬佸氨鏄繜鍒�
+ inspectionTaskDetailPoPo.setInspectionState("50000");
+ } else { //濡傛灉宸℃鐐圭鍒版椂闂村湪宸℃璁″垝寮�濮嬫椂闂村拰宸℃璁″垝缁撴潫鏃堕棿涔嬮棿锛岀鍒扮姸鎬佸氨鏄甯�
+ inspectionTaskDetailPoPo.setInspectionState("60000");
+ }
+
+ int flag = inspectionTaskDetailV1InnerServiceSMOImpl.updateInspectionTaskDetail(inspectionTaskDetailPoPo);
+
+ if (flag < 1) {
+ throw new CmdException("淇濆瓨鏄庣粏澶辫触");
+ }
+ }
+
+ /**
+ * 娣诲姞娲诲姩淇℃伅
+ *
+ * @param paramInJson 鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+ * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+ */
+ public void updateInspectionTask(JSONObject paramInJson) {
+
+ InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
+ inspectionTaskDto.setTaskId(paramInJson.getString("taskId"));
+ inspectionTaskDto.setCommunityId(paramInJson.getString("communityId"));
+ List<InspectionTaskDto> inspectionTaskDtos = inspectionTaskInnerServiceSMOImpl.queryInspectionTasks(inspectionTaskDto);
+
+ Assert.listOnlyOne(inspectionTaskDtos, "鏈壘鍒伴渶瑕佷慨鏀圭殑宸℃浠诲姟 鎴栧鏉℃暟鎹�");
+
+ JSONObject businessInspectionTask = new JSONObject();
+ businessInspectionTask.putAll(BeanConvertUtil.beanCovertMap(inspectionTaskDtos.get(0)));
+
+ InspectionTaskPo inspectionTaskPo = BeanConvertUtil.covertBean(businessInspectionTask, InspectionTaskPo.class);
+ inspectionTaskPo.setActInsTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ inspectionTaskPo.setActUserId(paramInJson.getString("userId"));
+ inspectionTaskPo.setActUserName(paramInJson.getString("userName"));
+ inspectionTaskPo.setState(paramInJson.getString("state"));
+ if (!StringUtil.isEmpty(paramInJson.getString("taskType")) && paramInJson.getString("taskType").equals("2000")) {
+// inspectionTaskPo.setOriginalPlanUserId(inspectionTaskPo.getPlanUserId());
+// inspectionTaskPo.setOriginalPlanUserName(inspectionTaskPo.getPlanUserName());
+ inspectionTaskPo.setPlanUserId(paramInJson.getString("staffId"));
+ inspectionTaskPo.setPlanUserName(paramInJson.getString("staffName"));
+ inspectionTaskPo.setTaskType(paramInJson.getString("taskType"));
+ inspectionTaskPo.setTransferDesc(paramInJson.getString("transferDesc"));
+ }
+ int flag = inspectionTaskV1InnerServiceSMOImpl.updateInspectionTask(inspectionTaskPo);
+ if (flag < 1) {
+ throw new CmdException("淇敼浠诲姟澶辫触");
+ }
+ }
}
--
Gitblit v1.8.0