From 06962961c69e02c737568f583b2c9c73fdab0f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Mon, 25 Apr 2022 00:21:27 +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 --- .../ctrl/XmTaskSbillDetailController.java | 35 ++++++++++++------- .../service/XmTaskSbillDetailService.java | 25 +++++++++++++ .../core/service/XmTaskWorkloadService.java | 4 +++ .../xm/core/dao/XmTaskSbillDetailMapper.xml | 2 +- .../xm/core/dao/XmTaskWorkloadMapper.xml | 12 +++++-- 5 files changed, 62 insertions(+), 16 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillDetailController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillDetailController.java index c71cb650..f8b7f5b8 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillDetailController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillDetailController.java @@ -2,6 +2,9 @@ package com.xm.core.ctrl; import java.util.*; import java.util.stream.Collectors; + +import com.xm.core.entity.XmTaskSbill; +import com.xm.core.service.XmTaskSbillService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -50,7 +53,9 @@ public class XmTaskSbillDetailController { @Autowired private XmTaskSbillDetailService xmTaskSbillDetailService; - + + @Autowired + private XmTaskSbillService xmTaskSbillService; Map fieldsMap = toMap(new XmTaskSbillDetail()); @@ -108,8 +113,7 @@ public class XmTaskSbillDetailController { return m; } */ - - /** + @ApiOperation( value = "删除一条工时登记表信息",notes=" ") @ApiResponses({ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") @@ -137,7 +141,6 @@ public class XmTaskSbillDetailController { m.put("tips", tips); return m; } - */ /** @ApiOperation( value = "根据主键修改一条工时登记表信息",notes=" ") @@ -172,8 +175,6 @@ public class XmTaskSbillDetailController { - - /** @ApiOperation( value = "批量修改某些字段",notes="") @ApiResponses({ @ApiResponse(code = 200,response=XmTaskSbillDetail.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") @@ -244,9 +245,7 @@ public class XmTaskSbillDetailController { m.put("tips", tips); return m; } - */ - /** @ApiOperation( value = "根据主键列表批量删除工时登记表信息",notes=" ") @ApiResponses({ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") @@ -255,12 +254,23 @@ public class XmTaskSbillDetailController { public Map batchDelXmTaskSbillDetail(@RequestBody List xmTaskSbillDetails) { Map m = new HashMap<>(); Tips tips=new Tips("成功删除"); - try{ + try{ + User user=LoginUtils.getCurrentUserInfo(); if(xmTaskSbillDetails.size()<=0){ return failed("data-0","请上送待删除数据列表"); } List datasDb=xmTaskSbillDetailService.selectListByIds(xmTaskSbillDetails.stream().map(i-> i.getId() ).collect(Collectors.toList())); - + String sbillId=datasDb.get(0).getSbillId(); + if(datasDb.stream().filter(i->!sbillId.equals(i.getSbillId())).findAny().isPresent()){ + return failed("sbillId-0","只能删除同一个结算单的清单"); + } + XmTaskSbill xmTaskSbill=xmTaskSbillService.selectOneById(sbillId); + if(!user.getUserid().equals(xmTaskSbill.getCuserid())){ + return failed("sbillId-0","该结算单不是您创建的,您不能删除其清单"); + } + if(!"0".equals(xmTaskSbill.getStatus())){ + return failed("status-not-0","结算单已提交,不允许更改"); + } List can=new ArrayList<>(); List no=new ArrayList<>(); for (XmTaskSbillDetail data : datasDb) { @@ -272,7 +282,7 @@ public class XmTaskSbillDetailController { } List msgs=new ArrayList<>(); if(can.size()>0){ - xmTaskSbillDetailService.batchDelete(xmTaskSbillDetails); + xmTaskSbillDetailService.batchDoDelete(xmTaskSbillDetails); msgs.add(String.format("成功删除%s条数据.",can.size())); } @@ -293,6 +303,5 @@ public class XmTaskSbillDetailController { } m.put("tips", tips); return m; - } - */ + } } 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 2a1cb202..8b9b56f8 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,11 +1,17 @@ package com.xm.core.service; +import com.xm.core.entity.XmTaskWorkload; import com.xm.core.vo.BatchJoinToSbillVo; import com.xm.core.vo.UserTaskVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + +import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.mdp.core.service.BaseService; import static com.mdp.core.utils.BaseUtils.*; @@ -13,6 +19,8 @@ import com.mdp.core.entity.Tips; import com.mdp.core.err.BizException; import com.xm.core.entity.XmTaskSbillDetail; +import org.springframework.transaction.annotation.Transactional; + /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com 顶级模块 xm 大模块 core 小模块
@@ -22,8 +30,25 @@ import com.xm.core.entity.XmTaskSbillDetail; public class XmTaskSbillDetailService extends BaseService { static Logger logger =LoggerFactory.getLogger(XmTaskSbillDetailService.class); + @Autowired + XmTaskWorkloadService xmTaskWorkloadService; + + @Autowired + XmTaskSbillService xmTaskSbillService; + public List selectListByUserTasks(BatchJoinToSbillVo batchJoinToSbillVo) { return super.selectList("selectListByUserTasks",batchJoinToSbillVo); } + + @Transactional + public void batchDoDelete(List xmTaskSbillDetails) { + String sbillId=xmTaskSbillDetails.get(0).getSbillId(); + super.batchDelete(xmTaskSbillDetails); + //更新工时表数据状态 + xmTaskWorkloadService.updateStatusAfterDetailDel(xmTaskSbillDetails.stream().map(i->i.getId()).collect(Collectors.toList())); + + //更新结算单数据 + xmTaskSbillService.updateByWorkloadList(Arrays.asList(sbillId)); + } } diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskWorkloadService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskWorkloadService.java index 6c8b7fb3..ab482fc9 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskWorkloadService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskWorkloadService.java @@ -96,5 +96,9 @@ public class XmTaskWorkloadService extends BaseService { public void updateStatusAfterJoinSbill(List details) { super.update("updateStatusAfterJoinSbill",details); } + + public void updateStatusAfterDetailDel(List detailIds) { + super.update("updateStatusAfterDetailDel",detailIds); + } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillDetailMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillDetailMapper.xml index cae7a6ea..e0f919ff 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillDetailMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillDetailMapper.xml @@ -30,7 +30,7 @@ - select res.*, task.project_name,task.name as task_name,task.budget_workload,task.act_workload,task_state,task_out,uni_inner_price,uni_out_price,settle_schemel, - e.quote_workload,e.quote_amount,e.exec_user_branch_id,e.quote_end_time,e.quote_start_time,e.dist_userid,e.dist_username + select res.*, task.project_name,task.name as task_name,task.budget_workload,task.act_workload,task_state,task_out,uni_inner_price,uni_out_price,settle_schemel as sschemel,task.budget_at, + e.quote_workload,e.quote_amount as quote_at,e.exec_user_branch_id,e.quote_end_time,e.quote_start_time,e.dist_userid,e.dist_username from xm_task task inner join ( select res.project_id,res.task_id,res.userid, @@ -195,6 +195,14 @@ where res.sstatus='1' and res.userid=#{item.userid} and res.task_id=#{item.taskId} + + update xm_task_workload res set res.sstatus='1',res.detail_id=null + where res.detail_id in + + #{item} + + +