From f1f0cde504b2fff2b7981ac303aeee2ce734b3dc Mon Sep 17 00:00:00 2001 From: chentaiyu Date: Wed, 30 Mar 2022 13:48:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=BB=93=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/ctrl/XmTaskWorkloadController.java | 21 +++++++++ .../core/service/XmTaskWorkloadService.java | 46 ++++++++++++++++++- .../mapper/xm/core/dao/XmTaskSbillMapper.xml | 3 ++ .../xm/core/dao/XmTaskWorkloadMapper.xml | 8 +++- 4 files changed, 75 insertions(+), 3 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 9876265f..8c4d4055 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 @@ -327,4 +327,25 @@ public class XmTaskWorkloadController { m.put("tips", tips); return m; } + + @ApiOperation( value = "根据主键修改一条工时登记表信息",notes=" ") + @ApiResponses({ + @ApiResponse(code = 200,response=XmTaskWorkload.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @RequestMapping(value="/editWorkloadToSbill",method=RequestMethod.POST) + public Map editWorkloadToSbill(@RequestBody Map params) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功添加到结算单"); + try{ + xmTaskWorkloadService.editWorkloadToSbill(params); + }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; + } } 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 3f05534b..323b8e39 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 @@ -1,9 +1,19 @@ package com.xm.core.service; +import com.alibaba.fastjson.JSON; +import com.fasterxml.jackson.databind.util.BeanUtil; +import com.mdp.core.utils.DateUtils; +import com.mdp.core.utils.MapUtils; +import com.mdp.core.utils.RequestUtils; +import com.xm.core.entity.XmTaskSbill; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.Map; + +import java.math.BigDecimal; +import java.util.*; + +import org.springframework.beans.BeanUtils; +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.*; @@ -11,6 +21,8 @@ import com.mdp.core.entity.Tips; import com.mdp.core.err.BizException; import com.xm.core.entity.XmTaskWorkload; +import org.springframework.transaction.annotation.Transactional; + /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com 顶级模块 xm 大模块 core 小模块
@@ -20,5 +32,35 @@ import com.xm.core.entity.XmTaskWorkload; public class XmTaskWorkloadService extends BaseService { static Logger logger =LoggerFactory.getLogger(XmTaskWorkloadService.class); + @Autowired + XmTaskSbillService xmTaskSbillService; + + + @Transactional(rollbackFor = Exception.class) + public void editWorkloadToSbill(Map params){ + //查询出相关工时单、结算单 + Map query = new HashMap<>(); + query.put("ids",params.get("ids")); + List> workloads = this.selectListMapByWhere(query); + XmTaskSbill xmTaskSbill = new XmTaskSbill(); + xmTaskSbill.setId((String) params.get("sbillId")); + xmTaskSbill = xmTaskSbillService.selectOneObject(xmTaskSbill); + //累加工时、结算金额 + BigDecimal totalWork = BigDecimal.ZERO; + BigDecimal totalSamt = BigDecimal.ZERO; + for (Map workload : workloads) { + totalWork = totalWork.add((BigDecimal) workload.get("workload")); + totalSamt = totalSamt.add((BigDecimal) workload.get("samt")); + workload.put("sbillId",xmTaskSbill.getId()); + workload.put("sstatus","2"); + workload.put("stime", DateUtils.getDatetime()); + } + xmTaskSbill.setWorkload(xmTaskSbill.getWorkload().add(totalWork)); + xmTaskSbill.setAmt(xmTaskSbill.getAmt().add(totalSamt)); + xmTaskSbill.setLtime(new Date()); + xmTaskSbillService.updateByPk(xmTaskSbill); + this.batchUpdate(workloads); + } + } 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 01236ba8..d012dd46 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 @@ -14,6 +14,9 @@ AND( res.id like #{key} OR res.title like #{key} OR res.project_name like #{key} ) + + AND res.ctime BETWEEN #{startTime} AND #{endTime} + diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskWorkloadMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskWorkloadMapper.xml index e7241a46..63129e51 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskWorkloadMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskWorkloadMapper.xml @@ -11,7 +11,13 @@ ( #{item}) - + + AND + ( res.userid like #{key} OR res.username like #{key} OR res.project_id like #{key} OR res.task_id like #{key}) + + + AND (res.wstatus = '1'AND res.sstatus = '1') +