Browse Source

重新生成工时表

master
陈裕财 4 years ago
parent
commit
d757f98a07
  1. 1
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java
  2. 23
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillDetailController.java
  3. 29
      xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java
  4. 2
      xm-core/src/main/java/com/xm/core/service/XmTaskSbillService.java
  5. 6
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskSbillMapper.xml

1
xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java

@ -240,6 +240,7 @@ public class XmTaskSbillController {
detail.setSbillId(batchJoinToSbill.getSbillId()); detail.setSbillId(batchJoinToSbill.getSbillId());
detail.setProjectId(projectId); detail.setProjectId(projectId);
detail.setCtime(new Date()); detail.setCtime(new Date());
this.xmTaskSbillDetailService.calcSamt(detail);
canAdd.add(detail); canAdd.add(detail);
} }
this.xmTaskSbillService.batchJoinToSbill(canAdd,details); this.xmTaskSbillService.batchJoinToSbill(canAdd,details);

23
xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillDetailController.java

@ -120,26 +120,7 @@ public class XmTaskSbillDetailController {
}) })
@RequestMapping(value="/del",method=RequestMethod.POST) @RequestMapping(value="/del",method=RequestMethod.POST)
public Map<String,Object> delXmTaskSbillDetail(@RequestBody XmTaskSbillDetail xmTaskSbillDetail){ public Map<String,Object> delXmTaskSbillDetail(@RequestBody XmTaskSbillDetail xmTaskSbillDetail){
Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功删除一条数据");
try{
if(!StringUtils.hasText(xmTaskSbillDetail.getId())) {
return failed("pk-not-exists","请上送主键参数id");
}
XmTaskSbillDetail xmTaskSbillDetailDb = xmTaskSbillDetailService.selectOneObject(xmTaskSbillDetail);
if( xmTaskSbillDetailDb == null ){
return failed("data-not-exists","数据不存在,无法删除");
}
xmTaskSbillDetailService.deleteByPk(xmTaskSbillDetail);
}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;
return batchDelXmTaskSbillDetail(Arrays.asList(xmTaskSbillDetail));
} }
/** /**
@ -220,7 +201,7 @@ public class XmTaskSbillDetailController {
} }
if(can.size()>0){ if(can.size()>0){
xmTaskSbillDetailMap.put("ids",can.stream().map(i->i.getId()).collect(Collectors.toList())); xmTaskSbillDetailMap.put("ids",can.stream().map(i->i.getId()).collect(Collectors.toList()));
xmTaskSbillDetailService.editSomeFields(xmTaskSbillDetailMap);
xmTaskSbillDetailService.doEditSomeFields(xmTaskSbillDetailMap,can.stream().map(i->i.getSbillId()).collect(Collectors.toSet()).stream().collect(Collectors.toList()));
} }
List<String> msgs=new ArrayList<>(); List<String> msgs=new ArrayList<>();
if(can.size()>0){ if(can.size()>0){

29
xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java

@ -6,6 +6,7 @@ import com.xm.core.vo.UserTaskVo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -50,5 +51,33 @@ public class XmTaskSbillDetailService extends BaseService {
//更新结算单数据 //更新结算单数据
xmTaskSbillService.updateBySbillDetailList(Arrays.asList(sbillId)); xmTaskSbillService.updateBySbillDetailList(Arrays.asList(sbillId));
} }
@Transactional
public void doEditSomeFields(Map<String, Object> xmTaskSbillDetailMap,List<String> sbillIds) {
super.editSomeFields(xmTaskSbillDetailMap);
if(xmTaskSbillDetailMap.containsKey("samt")){
xmTaskSbillService.updateBySbillDetailList(sbillIds);
}
}
/**
* 提前计算结算金额
* @param detail
*/
public void preCalcSamt(XmTaskSbillDetail detail) {
if(detail.getQuoteAt()!=null){
detail.setSamt(detail.getQuoteAt());
return;
}
if(detail.getBudgetAt()==null && detail.getQuoteAt()==null){
detail.setSamt(BigDecimal.ZERO);
return;
}
if(detail.getBudgetAt()!=null){
detail.setSamt(detail.getBudgetAt());
return;
}
}
} }

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

@ -175,6 +175,8 @@ public class XmTaskSbillService extends BaseService {
detailsAll.addAll(canAdd); detailsAll.addAll(canAdd);
detailsAll.addAll(details); detailsAll.addAll(details);
this.xmTaskWorkloadService.updateStatusAfterJoinSbill(detailsAll); this.xmTaskWorkloadService.updateStatusAfterJoinSbill(detailsAll);
this.updateBySbillDetailList(detailsAll.stream().map(i->i.getSbillId()).collect(Collectors.toSet()).stream().collect(Collectors.toList()));
} }
} }

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

@ -25,13 +25,13 @@
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_sbill_detail w 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_sbill_detail w
where w.sbill_id in where w.sbill_id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" > <foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
( #{item})
#{item}
</foreach> </foreach>
group by w.sbill_id group by w.sbill_id
) as w on res.id=w.sbill_id ) as w on res.id=w.sbill_id
set set
res.amt=w.samt,
res.workload=w.workload
res.amt=ifnull(w.samt,0),
res.workload=ifnull(w.workload,0)
where (res.id) in where (res.id) in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" > <foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
( #{item}) ( #{item})

Loading…
Cancel
Save