From 2b5345b5bb7431df49517fdf08e825e0ab44f1ae Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期三, 27 十二月 2023 22:50:40 +0800
Subject: [PATCH] 完成工作单
---
java110-db/src/main/resources/mapper/oa/WorkEventV1ServiceDaoImplMapper.xml | 5
service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java | 225 +++++++++++++++++++++++++++++++++++++
java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java | 2
java110-bean/src/main/java/com/java110/dto/workEvent/WorkEventDto.java | 10 +
java110-bean/src/main/java/com/java110/po/workEvent/WorkEventPo.java | 88 +++++++++-----
5 files changed, 295 insertions(+), 35 deletions(-)
diff --git a/java110-bean/src/main/java/com/java110/dto/workEvent/WorkEventDto.java b/java110-bean/src/main/java/com/java110/dto/workEvent/WorkEventDto.java
index 25c63b8..e2915fc 100644
--- a/java110-bean/src/main/java/com/java110/dto/workEvent/WorkEventDto.java
+++ b/java110-bean/src/main/java/com/java110/dto/workEvent/WorkEventDto.java
@@ -37,6 +37,8 @@
private String statusCd = "0";
+ private String orderByDesc;
+
public String getEventId() {
return eventId;
@@ -174,4 +176,12 @@
public void setQueryEndTime(String queryEndTime) {
this.queryEndTime = queryEndTime;
}
+
+ public String getOrderByDesc() {
+ return orderByDesc;
+ }
+
+ public void setOrderByDesc(String orderByDesc) {
+ this.orderByDesc = orderByDesc;
+ }
}
diff --git a/java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java b/java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java
index 21e600c..0e6d222 100644
--- a/java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java
+++ b/java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java
@@ -19,7 +19,7 @@
public static final String WORK_CYCLE_CYCLE = "2002"; // 鍛ㄦ湡鎬у伐鍗�
public static final String STATE_WAIT = "W"; // W 寰呭鐞� D 澶勭悊涓� C澶勭悊瀹屾垚
public static final String STATE_DOING = "D"; // W 寰呭鐞� D 澶勭悊涓� C澶勭悊瀹屾垚
- public static final String STATE_COMPLETE = "W"; // W 寰呭鐞� D 澶勭悊涓� C澶勭悊瀹屾垚
+ public static final String STATE_COMPLETE = "C"; // W 寰呭鐞� D 澶勭悊涓� C澶勭悊瀹屾垚
private String workCycle;
private String createUserId;
diff --git a/java110-bean/src/main/java/com/java110/po/workEvent/WorkEventPo.java b/java110-bean/src/main/java/com/java110/po/workEvent/WorkEventPo.java
index e4fe19a..7b548a4 100644
--- a/java110-bean/src/main/java/com/java110/po/workEvent/WorkEventPo.java
+++ b/java110-bean/src/main/java/com/java110/po/workEvent/WorkEventPo.java
@@ -17,6 +17,7 @@
import java.io.Serializable;
import java.util.Date;
+
/**
* 绫昏〃杩帮細 Po 鏁版嵁妯″瀷瀹炰綋瀵硅薄 鍩烘湰淇濇寔涓庢暟鎹簱妯″瀷涓�鐩� 鐢ㄤ簬 澧炲姞淇敼鍒犻櫎 绛夋椂鐨勬暟鎹浇浣�
* add by 鍚村鏂� at 2023-12-25 16:28:42 mail: 928255095@qq.com
@@ -28,83 +29,104 @@
public class WorkEventPo implements Serializable {
private String eventId;
-private String preStaffName;
-private String preStaffId;
-private String staffName;
-private String remark;
-private String statusCd = "0";
-private String communityId;
-private String storeId;
-private String taskId;
-private String workId;
-private String staffId;
-public String getEventId() {
+ private String preStaffName;
+ private String preStaffId;
+ private String staffName;
+ private String remark;
+ private String statusCd = "0";
+ private String communityId;
+ private String storeId;
+ private String taskId;
+ private String workId;
+ private String staffId;
+
+ public String getEventId() {
return eventId;
}
-public void setEventId(String eventId) {
+
+ public void setEventId(String eventId) {
this.eventId = eventId;
}
-public String getPreStaffName() {
+
+ public String getPreStaffName() {
return preStaffName;
}
-public void setPreStaffName(String preStaffName) {
+
+ public void setPreStaffName(String preStaffName) {
this.preStaffName = preStaffName;
}
-public String getPreStaffId() {
+
+ public String getPreStaffId() {
return preStaffId;
}
-public void setPreStaffId(String preStaffId) {
+
+ public void setPreStaffId(String preStaffId) {
this.preStaffId = preStaffId;
}
-public String getStaffName() {
+
+ public String getStaffName() {
return staffName;
}
-public void setStaffName(String staffName) {
+
+ public void setStaffName(String staffName) {
this.staffName = staffName;
}
-public String getRemark() {
+
+ public String getRemark() {
return remark;
}
-public void setRemark(String remark) {
+
+ public void setRemark(String remark) {
this.remark = remark;
}
-public String getStatusCd() {
+
+ public String getStatusCd() {
return statusCd;
}
-public void setStatusCd(String statusCd) {
+
+ public void setStatusCd(String statusCd) {
this.statusCd = statusCd;
}
-public String getCommunityId() {
+
+ public String getCommunityId() {
return communityId;
}
-public void setCommunityId(String communityId) {
+
+ public void setCommunityId(String communityId) {
this.communityId = communityId;
}
-public String getStoreId() {
+
+ public String getStoreId() {
return storeId;
}
-public void setStoreId(String storeId) {
+
+ public void setStoreId(String storeId) {
this.storeId = storeId;
}
-public String getTaskId() {
+
+ public String getTaskId() {
return taskId;
}
-public void setTaskId(String taskId) {
+
+ public void setTaskId(String taskId) {
this.taskId = taskId;
}
-public String getWorkId() {
+
+ public String getWorkId() {
return workId;
}
-public void setWorkId(String workId) {
+
+ public void setWorkId(String workId) {
this.workId = workId;
}
-public String getStaffId() {
+
+ public String getStaffId() {
return staffId;
}
-public void setStaffId(String staffId) {
+
+ public void setStaffId(String staffId) {
this.staffId = staffId;
}
-
}
diff --git a/java110-db/src/main/resources/mapper/oa/WorkEventV1ServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/oa/WorkEventV1ServiceDaoImplMapper.xml
index d5f8dbe..e454850 100644
--- a/java110-db/src/main/resources/mapper/oa/WorkEventV1ServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/oa/WorkEventV1ServiceDaoImplMapper.xml
@@ -67,7 +67,10 @@
<if test="queryEndTime !=null and queryEndTime != ''">
and t.create_time < #{queryEndTime}
</if>
- order by t.create_time desc
+ order by t.create_time
+ <if test="orderByDesc !=null and orderByDesc != ''">
+ desc
+ </if>
<if test="page != -1 and page != null ">
limit #{page}, #{row}
</if>
diff --git a/service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java b/service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java
new file mode 100644
index 0000000..9ed330e
--- /dev/null
+++ b/service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java
@@ -0,0 +1,225 @@
+package com.java110.oa.cmd.work;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.CmdContextUtils;
+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.dto.user.UserDto;
+import com.java110.dto.workEvent.WorkEventDto;
+import com.java110.dto.workPool.WorkPoolDto;
+import com.java110.dto.workPoolFile.WorkPoolFileDto;
+import com.java110.dto.workTask.WorkTaskDto;
+import com.java110.intf.oa.IWorkEventV1InnerServiceSMO;
+import com.java110.intf.oa.IWorkPoolFileV1InnerServiceSMO;
+import com.java110.intf.oa.IWorkPoolV1InnerServiceSMO;
+import com.java110.intf.oa.IWorkTaskV1InnerServiceSMO;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
+import com.java110.po.workEvent.WorkEventPo;
+import com.java110.po.workPool.WorkPoolPo;
+import com.java110.po.workPoolFile.WorkPoolFilePo;
+import com.java110.po.workTask.WorkTaskPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.ListUtil;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "work.finishWorkTask")
+public class FinishWorkTaskCmd extends Cmd {
+
+ @Autowired
+ private IWorkTaskV1InnerServiceSMO workTaskV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IWorkEventV1InnerServiceSMO workEventV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IWorkPoolV1InnerServiceSMO workPoolV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IWorkPoolFileV1InnerServiceSMO workPoolFileV1InnerServiceSMOImpl;
+
+ @Override
+ public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+ Assert.hasKeyAndValue(reqJson, "taskId", "鏈寘鍚换鍔�");
+ Assert.hasKeyAndValue(reqJson, "auditCode", "鏈寘鍚姸鎬�");
+ Assert.hasKeyAndValue(reqJson, "auditMessage", "鏈寘鍚鏄�");
+
+ if ("T".equals(reqJson.getString("auditCode"))) {
+ Assert.hasKeyAndValue(reqJson, "taskId", "鏈寘鍚浆鍗曚汉");
+ }
+
+ String userId = CmdContextUtils.getUserId(context);
+
+ WorkTaskDto workTaskDto = new WorkTaskDto();
+ workTaskDto.setTaskId(reqJson.getString("taskId"));
+ workTaskDto.setStaffId(userId);
+ List<WorkTaskDto> workTaskDtos = workTaskV1InnerServiceSMOImpl.queryWorkTasks(workTaskDto);
+
+ if (ListUtil.isNull(workTaskDtos)) {
+ throw new CmdException("宸ヤ綔鍗曚笉鍦ㄤ綘鐨勫伐浣嶏紝鎮ㄦ棤鏉冨鐞�");
+ }
+ }
+
+ @Override
+ public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+ String storeId = CmdContextUtils.getStoreId(context);
+
+ WorkTaskDto workTaskDto = new WorkTaskDto();
+ workTaskDto.setTaskId(reqJson.getString("taskId"));
+ workTaskDto.setStoreId(storeId);
+ List<WorkTaskDto> workTaskDtos = workTaskV1InnerServiceSMOImpl.queryWorkTasks(workTaskDto);
+
+
+ //todo 杞崟
+ if ("T".equals(reqJson.getString("auditCode"))) {
+ doTransfor(reqJson, workTaskDtos.get(0));
+ } else if ("C".equals(reqJson.getString("auditCode"))) {
+ doFinish(reqJson, workTaskDtos.get(0));
+ }
+
+ if (!reqJson.containsKey("pathUrl")) {
+ return;
+ }
+
+ String pathUrl = reqJson.getString("pathUrl");
+ if (StringUtil.isEmpty(pathUrl)) {
+ return;
+ }
+
+ WorkPoolFilePo workPoolFilePo = new WorkPoolFilePo();
+ workPoolFilePo.setCommunityId(workTaskDtos.get(0).getCommunityId());
+ workPoolFilePo.setFileType(WorkPoolFileDto.FILE_TYPE_END);
+ workPoolFilePo.setFileId(GenerateCodeFactory.getGeneratorId("11"));
+ workPoolFilePo.setWorkId(workTaskDtos.get(0).getWorkId());
+ workPoolFilePo.setTaskId(workTaskDtos.get(0).getTaskId());
+ workPoolFilePo.setPathUrl(reqJson.getString("pathUrl"));
+ workPoolFilePo.setStoreId(workTaskDtos.get(0).getStoreId());
+ workPoolFileV1InnerServiceSMOImpl.saveWorkPoolFile(workPoolFilePo);
+
+ }
+
+ /**
+ * 瀹屾垚宸ヤ綔鍗�
+ *
+ * @param reqJson
+ * @param workTaskDto
+ */
+ private void doFinish(JSONObject reqJson, WorkTaskDto workTaskDto) {
+
+ //todo 瀹屾垚浠诲姟
+
+ WorkTaskPo workTaskPo = new WorkTaskPo();
+ workTaskPo.setState(WorkPoolDto.STATE_COMPLETE);
+ workTaskPo.setTaskId(workTaskDto.getTaskId());
+ workTaskPo.setStoreId(workTaskDto.getStoreId());
+ workTaskV1InnerServiceSMOImpl.updateWorkTask(workTaskPo);
+
+
+ //todo 鏌ヨ 宸ヤ綔鍗�
+ WorkPoolDto workPoolDto = new WorkPoolDto();
+ workPoolDto.setWorkId(workTaskDto.getWorkId());
+ workPoolDto.setStoreId(workTaskDto.getStoreId());
+ List<WorkPoolDto> workPoolDtos = workPoolV1InnerServiceSMOImpl.queryWorkPools(workPoolDto);
+
+ Assert.listOnlyOne(workPoolDtos, "宸ヤ綔鍗曚笉瀛樺湪");
+
+ String preStaffId = workPoolDtos.get(0).getCreateUserId();
+ String preStaffName = workPoolDtos.get(0).getCreateUserName();
+
+ WorkEventDto workEventDto = new WorkEventDto();
+ workEventDto.setStoreId(workTaskDto.getStoreId());
+ workEventDto.setTaskId(workTaskDto.getTaskId());
+ workEventDto.setWorkId(workTaskDto.getWorkId());
+ workEventDto.setOrderByDesc("desc");
+ List<WorkEventDto> workEventDtos = workEventV1InnerServiceSMOImpl.queryWorkEvents(workEventDto);
+ if(!ListUtil.isNull(workEventDtos)){
+ preStaffId = workEventDtos.get(0).getStaffId();
+ preStaffName = workEventDtos.get(0).getStaffName();
+
+ }
+
+ //todo 淇濆瓨浜嬩欢
+ WorkEventPo workEventPo = new WorkEventPo();
+ workEventPo.setWorkId(workTaskDto.getWorkId());
+ workEventPo.setEventId(GenerateCodeFactory.getGeneratorId("11"));
+ workEventPo.setCommunityId(workTaskDto.getCommunityId());
+ workEventPo.setRemark(reqJson.getString("auditMessage"));
+ workEventPo.setStaffId(workTaskDto.getStaffId());
+ workEventPo.setPreStaffId(preStaffId);
+ workEventPo.setPreStaffName(preStaffName);
+ workEventPo.setStaffName(workTaskDto.getStaffName());
+ workEventPo.setStoreId(workTaskDto.getStoreId());
+ workEventPo.setTaskId(workTaskDto.getTaskId());
+ workEventV1InnerServiceSMOImpl.saveWorkEvent(workEventPo);
+
+ //todo 鏌ヨ 宸ュ崟浠诲姟
+
+ WorkTaskDto tmpWorkTaskDto = new WorkTaskDto();
+ tmpWorkTaskDto.setWorkId(workTaskDto.getWorkId());
+ tmpWorkTaskDto.setStoreId(workTaskDto.getStoreId());
+ tmpWorkTaskDto.setState(WorkTaskDto.STATE_WAIT);
+ int waitCount = workTaskV1InnerServiceSMOImpl.queryWorkTasksCount(tmpWorkTaskDto);
+ WorkPoolPo workPoolPo = new WorkPoolPo();
+ workPoolPo.setWorkId(workTaskDto.getWorkId());
+ if (waitCount > 0) {
+ workPoolPo.setState(WorkPoolDto.STATE_DOING);
+ } else {
+ workPoolPo.setState(WorkPoolDto.STATE_COMPLETE);
+ }
+
+ workPoolV1InnerServiceSMOImpl.updateWorkPool(workPoolPo);
+
+
+ }
+
+ private void doTransfor(JSONObject reqJson, WorkTaskDto workTaskDto) {
+
+ UserDto userDto = new UserDto();
+ userDto.setUserId(reqJson.getString("staffId"));
+
+ List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
+
+ //todo 瀹屾垚浠诲姟
+
+ WorkTaskPo workTaskPo = new WorkTaskPo();
+ workTaskPo.setState(WorkPoolDto.STATE_WAIT);
+ workTaskPo.setTaskId(workTaskDto.getTaskId());
+ workTaskPo.setStoreId(workTaskDto.getStoreId());
+ workTaskPo.setStaffId(userDtos.get(0).getUserId());
+ workTaskPo.setStaffName(userDtos.get(0).getName());
+ workTaskV1InnerServiceSMOImpl.updateWorkTask(workTaskPo);
+
+ //todo 鏌ヨ 宸ヤ綔鍗�
+ WorkPoolDto workPoolDto = new WorkPoolDto();
+ workPoolDto.setWorkId(workTaskDto.getWorkId());
+ workPoolDto.setStoreId(workTaskDto.getStoreId());
+ List<WorkPoolDto> workPoolDtos = workPoolV1InnerServiceSMOImpl.queryWorkPools(workPoolDto);
+
+ Assert.listOnlyOne(workPoolDtos, "宸ヤ綔鍗曚笉瀛樺湪");
+
+ WorkEventPo workEventPo = new WorkEventPo();
+ workEventPo.setWorkId(workTaskDto.getWorkId());
+ workEventPo.setEventId(GenerateCodeFactory.getGeneratorId("11"));
+ workEventPo.setCommunityId(workTaskDto.getCommunityId());
+ workEventPo.setRemark(reqJson.getString("auditMessage") + ";杞崟缁�" + userDtos.get(0).getName());
+ workEventPo.setStaffId(workTaskDto.getStaffId());
+ workEventPo.setPreStaffId(workPoolDtos.get(0).getCreateUserId());
+ workEventPo.setPreStaffName(workPoolDtos.get(0).getCreateUserName());
+ workEventPo.setStaffName(workTaskDto.getStaffName());
+ workEventPo.setStoreId(workTaskDto.getStoreId());
+ workEventPo.setTaskId(workTaskDto.getTaskId());
+ workEventV1InnerServiceSMOImpl.saveWorkEvent(workEventPo);
+ }
+}
--
Gitblit v1.8.0