Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
7f7043d23b
  1. 59
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskWorkloadController.java
  2. 3
      xm-core/src/main/java/com/xm/core/service/XmTaskSbillService.java
  3. 34
      xm-core/src/main/java/com/xm/core/service/XmTaskWorkloadService.java
  4. 8
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillMapper.xml
  5. 13
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskWorkloadMapper.xml

59
xm-core/src/main/java/com/xm/core/ctrl/XmTaskWorkloadController.java

@ -2,18 +2,15 @@ package com.xm.core.ctrl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.function.LongUnaryOperator;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import com.mdp.core.utils.ResponseHelper; import com.mdp.core.utils.ResponseHelper;
import com.mdp.safe.client.entity.User; import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils; import com.mdp.safe.client.utils.LoginUtils;
import com.xm.core.entity.XmGroup;
import com.xm.core.entity.XmMenu;
import com.xm.core.entity.XmTask;
import com.xm.core.service.XmGroupService;
import com.xm.core.service.XmMenuService;
import com.xm.core.service.XmTaskService;
import com.xm.core.entity.*;
import com.xm.core.service.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -41,8 +38,7 @@ import com.mdp.core.err.BizException;
import com.mdp.mybatis.PageUtils; import com.mdp.mybatis.PageUtils;
import com.mdp.core.utils.RequestUtils; import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.NumberUtil; import com.mdp.core.utils.NumberUtil;
import com.xm.core.service.XmTaskWorkloadService;
import com.xm.core.entity.XmTaskWorkload;
/** /**
* url编制采用rest风格,如对xm_task_workload 工时登记表的操作有增删改查,对应的url分别为:<br> * url编制采用rest风格,如对xm_task_workload 工时登记表的操作有增删改查,对应的url分别为:<br>
* 新增: core/xmTaskWorkload/add <br> * 新增: core/xmTaskWorkload/add <br>
@ -71,6 +67,8 @@ public class XmTaskWorkloadController {
XmGroupService xmGroupService; XmGroupService xmGroupService;
@Autowired @Autowired
XmMenuService xmMenuService; XmMenuService xmMenuService;
@Autowired
XmTaskSbillService xmTaskSbillService;
@ApiOperation( value = "查询工时登记表信息列表",notes=" ") @ApiOperation( value = "查询工时登记表信息列表",notes=" ")
@ -346,7 +344,50 @@ public class XmTaskWorkloadController {
Map<String,Object> m = new HashMap<>(); Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功添加到结算单"); Tips tips=new Tips("成功添加到结算单");
try{ try{
xmTaskWorkloadService.editWorkloadToSbill(params);
List<String> ids= (List<String>) params.get("ids");
if(ids==null || ids.size()==0){
return ResponseHelper.failed("ids-0","工时变化ids不能为空");
}
String sbillId= (String) params.get("sbillId");
if(!StringUtils.hasText(sbillId)){
return ResponseHelper.failed("sbillId-0","结算单变编号不能为空");
}
XmTaskSbill xmTaskSbillDb=this.xmTaskSbillService.selectOneObject(new XmTaskSbill(sbillId));
if(xmTaskSbillDb==null){
return ResponseHelper.failed("sbillId-0","结算单不存在");
}
if(!"0".equals(xmTaskSbillDb.getStatus())){
return ResponseHelper.failed("status-not-0","结算单已提交,不允许再更改");
}
User user= LoginUtils.getCurrentUserInfo();
if(!user.getUserid().equals(xmTaskSbillDb.getCuserid())){
return ResponseHelper.failed("cuserid-0","结算单不属于您的,无权修改");
}
List<XmTaskWorkload> list=this.xmTaskWorkloadService.selectListByIds(ids);
if(list.size()==0){
return ResponseHelper.failed("data-0","工时明细不存在");
}
List<XmTaskWorkload> canChanges=list.stream().filter(i->"1".equals(i.getSstatus()) && "1".equals(i.getWstatus())).collect(Collectors.toList());
List<XmTaskWorkload> sstatusNot1=list.stream().filter(i->!"1".equals(i.getSstatus()) || !"1".equals(i.getWstatus())).collect(Collectors.toList());
if(canChanges.size()>0){
xmTaskWorkloadService.editWorkloadToSbill(sbillId,canChanges);
}
List<String> msgs=new ArrayList<>();
if(canChanges.size()>0){
msgs.add("成功将"+canChanges.size()+"条工时加入结算单");
}
if(sstatusNot1.size()>0){
msgs.add("有"+sstatusNot1.size()+"条工时不是待结算状态,不允许更改");
}
if(canChanges.size()>0){
tips.setOkMsg(msgs.stream().collect(Collectors.joining()));
}else{
tips.setFailureMsg(msgs.stream().collect(Collectors.joining()));
}
}catch (BizException e) { }catch (BizException e) {
tips=e.getTips(); tips=e.getTips();
logger.error("",e); logger.error("",e);

3
xm-core/src/main/java/com/xm/core/service/XmTaskSbillService.java

@ -141,5 +141,8 @@ public class XmTaskSbillService extends BaseService {
this.updateSomeFieldByPk(xmTaskSbill); this.updateSomeFieldByPk(xmTaskSbill);
} }
public void updateByWorkloadList(String sbillId) {
super.update("updateByWorkloadList",sbillId);
}
} }

34
xm-core/src/main/java/com/xm/core/service/XmTaskWorkloadService.java

@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -36,31 +37,16 @@ public class XmTaskWorkloadService extends BaseService {
XmTaskSbillService xmTaskSbillService; XmTaskSbillService xmTaskSbillService;
@Transactional(rollbackFor = Exception.class)
public void editWorkloadToSbill(Map<String,Object> params){
//查询出相关工时单结算单
Map<String,Object> query = new HashMap<>();
query.put("ids",params.get("ids"));
List<Map<String,Object>> 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<String, Object> 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);
@Transactional
public void editWorkloadToSbill(String sbillId, List<XmTaskWorkload> canChanges) {
xmTaskSbillService.updateByWorkloadList(sbillId);
this.batchEditSbillId(sbillId,canChanges.stream().map(i->i.getId()).collect(Collectors.toList()));
} }
private void batchEditSbillId(String sbillId, List<String> ids) {
Map<String,Object> map=map("sbillId",sbillId,"ids",ids);
super.update("batchEditSbillId",map);
}
} }

8
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillMapper.xml

@ -19,7 +19,13 @@
</if> </if>
</sql> </sql>
<update id="updateByWorkloadList" parameterType="String">
upate 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 group by w.sbill_id where w.sbill_id=#{id} and w.wstatus='1') as w on res.id=w.sbill_id
set
res.amt=w.samt,
res.workload=w.workload
where res.id=#{id}
</update>
<!--结束 自定义sql函数区域--> <!--结束 自定义sql函数区域-->

13
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskWorkloadMapper.xml

@ -82,6 +82,19 @@
</if> </if>
</where> </where>
</update> </update>
<!-- 根据条件修改若干条记录 -->
<update id="batchEditSbillId" parameterType="HashMap">
update xm_task_workload res
<set>
res.sbill_id = #{sbillId}
</set>
<where>
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
</where>
</update>
<!--结束 自定义sql函数区域--> <!--结束 自定义sql函数区域-->

Loading…
Cancel
Save