From 20caab44fb616b5d63e5955fb866fbd12869b86f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Sat, 23 Apr 2022 01:58:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xm/core/ctrl/XmTaskWorkloadController.java | 7 ++++++- .../com/xm/core/service/XmTaskSbillService.java | 4 ++-- .../xm/core/service/XmTaskWorkloadService.java | 9 ++++++++- .../mapper/xm/core/dao/XmTaskSbillMapper.xml | 17 ++++++++++++++--- 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskWorkloadController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskWorkloadController.java index 855a4720..2aafa143 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskWorkloadController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskWorkloadController.java @@ -565,13 +565,18 @@ public class XmTaskWorkloadController { } } + + if(canChanges.size()>0){ xmTaskWorkloadMap.put("ids",canChanges.stream().map(i->i.getId()).collect(Collectors.toList())); Set fieldKey=xmTaskWorkloadMap.keySet().stream().filter(i-> fieldsMap.containsKey(i)).collect(Collectors.toSet()); fieldKey=fieldKey.stream().filter(i->!StringUtils.isEmpty(xmTaskWorkloadMap.get(i) )).collect(Collectors.toSet()); if(fieldKey.size()>0){ - xmTaskWorkloadService.editSomeFields(xmTaskWorkloadMap); + List sbillIds= canChanges.stream().filter(i->StringUtils.hasText(i.getSbillId())).map(i->i.getSbillId()).collect(Collectors.toSet()).stream().collect(Collectors.toList()); + + xmTaskWorkloadService.editSomeFieldsWithSbillIds(xmTaskWorkloadMap,sbillIds); + } } List msgs=new ArrayList<>(); diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskSbillService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskSbillService.java index 2bdb56e8..3b36ed18 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskSbillService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskSbillService.java @@ -166,8 +166,8 @@ public class XmTaskSbillService extends BaseService { this.updateSomeFieldByPk(xmTaskSbill); } - public void updateByWorkloadList(String sbillId) { - super.update("updateByWorkloadList",sbillId); + public void updateByWorkloadList(List sbillIds) { + super.update("updateByWorkloadList",sbillIds); } } 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 6972b91d..1ceb3d1b 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 @@ -40,8 +40,8 @@ public class XmTaskWorkloadService extends BaseService { @Transactional public void editWorkloadToSbill(String sbillId, List canChanges) { - xmTaskSbillService.updateByWorkloadList(sbillId); this.batchEditSbillId(sbillId,canChanges.stream().map(i->i.getId()).collect(Collectors.toList())); + xmTaskSbillService.updateByWorkloadList(Arrays.asList(sbillId)); } private void batchEditSbillId(String sbillId, List ids) { @@ -70,5 +70,12 @@ public class XmTaskWorkloadService extends BaseService { public void batchSetSbillIdNull(List ids) { super.update("batchSetSbillIdNull",ids); } + + public void editSomeFieldsWithSbillIds(Map xmTaskWorkloadMap, List sbillIds) { + super.editSomeFields(xmTaskWorkloadMap); + if(sbillIds!=null && sbillIds.size()>0){ + this.xmTaskSbillService.updateByWorkloadList(sbillIds); + } + } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillMapper.xml index f569f25e..cbdc7072 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillMapper.xml @@ -20,12 +20,23 @@ - - update xm_task_sbill res left join (select w.sbill_id,sum(ifnull(w.amt,0)) as amt,sum(ifnull(w.samt,0)) as samt,sum(ifnull(w.workload,0)) as workload from xm_task_workload w where w.sbill_id=#{id} and w.wstatus='1' group by w.sbill_id) as w on res.id=w.sbill_id + + update xm_task_sbill res left join ( + select w.sbill_id,sum(ifnull(w.amt,0)) as amt,sum(ifnull(w.samt,0)) as samt,sum(ifnull(w.sworkload,0)) as workload from xm_task_workload w + where w.sbill_id in + + ( #{item}) + + and w.wstatus='1' + group by w.sbill_id + ) as w on res.id=w.sbill_id set res.amt=w.samt, res.workload=w.workload - where res.id=#{id} + where (res.id) in + + ( #{item}) +