From 301a1bf62fe29e00f10e951a7b3ff4b66785e820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Sun, 24 Apr 2022 05:24:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E7=94=9F=E6=88=90=E5=B7=A5?= =?UTF-8?q?=E6=97=B6=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xm/core/ctrl/XmTaskSbillController.java | 74 ++++++++++++++++++- .../service/XmTaskSbillDetailService.java | 5 ++ .../com/xm/core/vo/BatchJoinToSbillVo.java | 28 +++++++ .../main/java/com/xm/core/vo/UserTaskVo.java | 22 ++++++ 4 files changed, 125 insertions(+), 4 deletions(-) create mode 100644 xm-core/src/main/java/com/xm/core/vo/BatchJoinToSbillVo.java create mode 100644 xm-core/src/main/java/com/xm/core/vo/UserTaskVo.java diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java index 6245c8ca..5a678998 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java @@ -4,10 +4,16 @@ import java.math.BigDecimal; import java.util.*; import com.mdp.core.utils.LogUtils; +import com.mdp.core.utils.ResponseHelper; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.tpa.client.entity.AppShopConfig; import com.mysql.cj.protocol.x.XMessage; +import com.xm.core.entity.XmTaskSbillDetail; +import com.xm.core.service.XmTaskSbillDetailService; +import com.xm.core.service.XmTaskService; +import com.xm.core.service.XmTaskWorkloadService; +import com.xm.core.vo.BatchJoinToSbillVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -56,9 +62,15 @@ public class XmTaskSbillController { @Autowired private XmTaskSbillService xmTaskSbillService; - - - + @Autowired + XmTaskSbillDetailService xmTaskSbillDetailService; + + @Autowired + XmTaskService xmTaskService; + + + @Autowired + XmTaskWorkloadService xmTaskWorkloadService; @ApiOperation( value = "查询任务结算表信息列表",notes=" ") @ApiResponses({ @@ -163,7 +175,61 @@ public class XmTaskSbillController { return m; } - + + + @ApiOperation( value = "批量将工时加入到一个结算单中",notes=" ") + @ApiResponses({ + @ApiResponse(code = 200,response=XmTaskSbill.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @RequestMapping(value="/batchJoinToSbill",method=RequestMethod.POST) + public Map batchJoinToSbill(@RequestBody BatchJoinToSbillVo batchJoinToSbill) { + + Map m = new HashMap<>(); + Tips tips=new Tips("成功更新一条数据"); + if(!StringUtils.hasText(batchJoinToSbill.getSbillId())){ + return ResponseHelper.failed("sbillId-0","请上送结算单编号"); + } + if(batchJoinToSbill.getUserTasks()==null){ + return ResponseHelper.failed("userTasks-0","请上送userTasks"); + } + User user=LoginUtils.getCurrentUserInfo(); + try{ + XmTaskSbill sbillDb=this.xmTaskSbillService.selectOneById(batchJoinToSbill.getSbillId()); + if(sbillDb==null){ + return ResponseHelper.failed("sbill-0","结算单不存在"); + } + if(!"0".equals(sbillDb.getStatus())){ + return ResponseHelper.failed("status-not-0","结算单已提交,不允许再加入工时"); + } + if(user.getUserid().equals(sbillDb.getCuserid())){ + return ResponseHelper.failed("cuserid-0","结算单不是您的结算单,您不能操作"); + } + List> toSetUserTasks=xmTaskWorkloadService.ListGroupByTaskIdAndUseridToSet(map("userTasks",batchJoinToSbill.getUserTasks())); + if(toSetUserTasks==null && toSetUserTasks.size()==0){ + return ResponseHelper.failed("userTasks-0","不存在需要结算的用户列表"); + } + if(toSetUserTasks.stream().filter(i->!"2".equals(i.get("taskState"))).findAny().isPresent()){ + return ResponseHelper.failed("taskState-not-2","任务不是完工状态,不允许结算"); + } + String projectId= sbillDb.getProjectId(); + if(toSetUserTasks.stream().filter(i->!projectId.equals(i.get("projectId"))).findAny().isPresent()){ + return ResponseHelper.failed("projectId-not-same","请选择同一个项目的任务加入工时单"); + } + //检查是否已有同样的数据加入了结算单,如果有,需要合并 + List details=xmTaskSbillDetailService.selectListByUserTasks(batchJoinToSbill); + if(details!=null && details.size()>0){ + //进行合并操作 + } + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } @ApiOperation( value = "根据主键修改一条任务结算表信息",notes=" ") @ApiResponses({ diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java index 1b0b9bfd..2a1cb202 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java @@ -1,5 +1,7 @@ package com.xm.core.service; +import com.xm.core.vo.BatchJoinToSbillVo; +import com.xm.core.vo.UserTaskVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; @@ -20,5 +22,8 @@ import com.xm.core.entity.XmTaskSbillDetail; public class XmTaskSbillDetailService extends BaseService { static Logger logger =LoggerFactory.getLogger(XmTaskSbillDetailService.class); + public List selectListByUserTasks(BatchJoinToSbillVo batchJoinToSbillVo) { + return super.selectList("selectListByUserTasks",batchJoinToSbillVo); + } } diff --git a/xm-core/src/main/java/com/xm/core/vo/BatchJoinToSbillVo.java b/xm-core/src/main/java/com/xm/core/vo/BatchJoinToSbillVo.java new file mode 100644 index 00000000..f4764fd1 --- /dev/null +++ b/xm-core/src/main/java/com/xm/core/vo/BatchJoinToSbillVo.java @@ -0,0 +1,28 @@ +package com.xm.core.vo; + +import java.util.List; + +public class BatchJoinToSbillVo { + + List userTasks; + + String sbillId; + + + public void setSbillId(String sbillId) { + this.sbillId = sbillId; + } + + public String getSbillId() { + return sbillId; + } + + public List getUserTasks() { + return userTasks; + } + + public void setUserTasks(List userTasks) { + this.userTasks = userTasks; + } +} + diff --git a/xm-core/src/main/java/com/xm/core/vo/UserTaskVo.java b/xm-core/src/main/java/com/xm/core/vo/UserTaskVo.java new file mode 100644 index 00000000..196b516b --- /dev/null +++ b/xm-core/src/main/java/com/xm/core/vo/UserTaskVo.java @@ -0,0 +1,22 @@ +package com.xm.core.vo; + +public class UserTaskVo { + String userid; + String taskId; + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + + public String getTaskId() { + return taskId; + } + + public void setTaskId(String taskId) { + this.taskId = taskId; + } +}