Browse Source

重新生成工时表

master
陈裕财 4 years ago
parent
commit
301a1bf62f
  1. 66
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskSbillController.java
  2. 5
      xm-core/src/main/java/com/xm/core/service/XmTaskSbillDetailService.java
  3. 28
      xm-core/src/main/java/com/xm/core/vo/BatchJoinToSbillVo.java
  4. 22
      xm-core/src/main/java/com/xm/core/vo/UserTaskVo.java

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

@ -4,10 +4,16 @@ import java.math.BigDecimal;
import java.util.*; import java.util.*;
import com.mdp.core.utils.LogUtils; import com.mdp.core.utils.LogUtils;
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.mdp.tpa.client.entity.AppShopConfig; import com.mdp.tpa.client.entity.AppShopConfig;
import com.mysql.cj.protocol.x.XMessage; import com.mysql.cj.protocol.x.XMessage;
import com.xm.core.entity.XmTaskSbillDetail;
import com.xm.core.service.XmTaskSbillDetailService;
import com.xm.core.service.XmTaskService;
import com.xm.core.service.XmTaskWorkloadService;
import com.xm.core.vo.BatchJoinToSbillVo;
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;
@ -56,9 +62,15 @@ public class XmTaskSbillController {
@Autowired @Autowired
private XmTaskSbillService xmTaskSbillService; private XmTaskSbillService xmTaskSbillService;
@Autowired
XmTaskSbillDetailService xmTaskSbillDetailService;
@Autowired
XmTaskService xmTaskService;
@Autowired
XmTaskWorkloadService xmTaskWorkloadService;
@ApiOperation( value = "查询任务结算表信息列表",notes=" ") @ApiOperation( value = "查询任务结算表信息列表",notes=" ")
@ApiResponses({ @ApiResponses({
@ -165,6 +177,60 @@ public class XmTaskSbillController {
@ApiOperation( value = "批量将工时加入到一个结算单中",notes=" ")
@ApiResponses({
@ApiResponse(code = 200,response=XmTaskSbill.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@RequestMapping(value="/batchJoinToSbill",method=RequestMethod.POST)
public Map<String,Object> batchJoinToSbill(@RequestBody BatchJoinToSbillVo batchJoinToSbill) {
Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功更新一条数据");
if(!StringUtils.hasText(batchJoinToSbill.getSbillId())){
return ResponseHelper.failed("sbillId-0","请上送结算单编号");
}
if(batchJoinToSbill.getUserTasks()==null){
return ResponseHelper.failed("userTasks-0","请上送userTasks");
}
User user=LoginUtils.getCurrentUserInfo();
try{
XmTaskSbill sbillDb=this.xmTaskSbillService.selectOneById(batchJoinToSbill.getSbillId());
if(sbillDb==null){
return ResponseHelper.failed("sbill-0","结算单不存在");
}
if(!"0".equals(sbillDb.getStatus())){
return ResponseHelper.failed("status-not-0","结算单已提交,不允许再加入工时");
}
if(user.getUserid().equals(sbillDb.getCuserid())){
return ResponseHelper.failed("cuserid-0","结算单不是您的结算单,您不能操作");
}
List<Map<String,Object>> toSetUserTasks=xmTaskWorkloadService.ListGroupByTaskIdAndUseridToSet(map("userTasks",batchJoinToSbill.getUserTasks()));
if(toSetUserTasks==null && toSetUserTasks.size()==0){
return ResponseHelper.failed("userTasks-0","不存在需要结算的用户列表");
}
if(toSetUserTasks.stream().filter(i->!"2".equals(i.get("taskState"))).findAny().isPresent()){
return ResponseHelper.failed("taskState-not-2","任务不是完工状态,不允许结算");
}
String projectId= sbillDb.getProjectId();
if(toSetUserTasks.stream().filter(i->!projectId.equals(i.get("projectId"))).findAny().isPresent()){
return ResponseHelper.failed("projectId-not-same","请选择同一个项目的任务加入工时单");
}
//检查是否已有同样的数据加入了结算单如果有需要合并
List<XmTaskSbillDetail> details=xmTaskSbillDetailService.selectListByUserTasks(batchJoinToSbill);
if(details!=null && details.size()>0){
//进行合并操作
}
}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;
}
@ApiOperation( value = "根据主键修改一条任务结算表信息",notes=" ") @ApiOperation( value = "根据主键修改一条任务结算表信息",notes=" ")
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200,response=XmTaskSbill.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") @ApiResponse(code = 200,response=XmTaskSbill.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")

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

@ -1,5 +1,7 @@
package com.xm.core.service; package com.xm.core.service;
import com.xm.core.vo.BatchJoinToSbillVo;
import com.xm.core.vo.UserTaskVo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.List; import java.util.List;
@ -20,5 +22,8 @@ import com.xm.core.entity.XmTaskSbillDetail;
public class XmTaskSbillDetailService extends BaseService { public class XmTaskSbillDetailService extends BaseService {
static Logger logger =LoggerFactory.getLogger(XmTaskSbillDetailService.class); static Logger logger =LoggerFactory.getLogger(XmTaskSbillDetailService.class);
public List<XmTaskSbillDetail> selectListByUserTasks(BatchJoinToSbillVo batchJoinToSbillVo) {
return super.selectList("selectListByUserTasks",batchJoinToSbillVo);
}
} }

28
xm-core/src/main/java/com/xm/core/vo/BatchJoinToSbillVo.java

@ -0,0 +1,28 @@
package com.xm.core.vo;
import java.util.List;
public class BatchJoinToSbillVo {
List<UserTaskVo> userTasks;
String sbillId;
public void setSbillId(String sbillId) {
this.sbillId = sbillId;
}
public String getSbillId() {
return sbillId;
}
public List<UserTaskVo> getUserTasks() {
return userTasks;
}
public void setUserTasks(List<UserTaskVo> userTasks) {
this.userTasks = userTasks;
}
}

22
xm-core/src/main/java/com/xm/core/vo/UserTaskVo.java

@ -0,0 +1,22 @@
package com.xm.core.vo;
public class UserTaskVo {
String userid;
String taskId;
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
}
Loading…
Cancel
Save