陈裕财 2 years ago
parent
commit
11e4974123
  1. 128
      xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java

128
xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java

@ -5,18 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mdp.core.err.BizException;
import com.mdp.core.service.BaseService;
import com.mdp.core.utils.ObjectTools;
import com.mdp.msg.client.PushNotifyMsgService;
import com.mdp.safe.client.entity.Dept;
import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils;
import com.xm.core.entity.XmProject;
import com.xm.core.entity.XmTask;
import com.xm.core.entity.XmTaskExecuser;
import com.xm.core.mapper.XmTaskExecuserMapper;
import com.xm.core.service.client.MkClient;
import com.xm.core.service.client.SysClient;
import com.xm.core.service.push.XmPushMsgService;
import com.xm.core.vo.XmGroupVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -41,35 +38,20 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
XmTaskService xmTaskService;
@Autowired
XmProjectService xmProjectService;
@Autowired
XmGroupService groupService;
XmGroupService groupService;
@Autowired
XmPushMsgService pushMsgService ;
XmPushMsgService pushMsgService ;
@Autowired
PushNotifyMsgService notifyMsgService;
@Autowired
SysClient sysClient;
@Autowired
MkClient mkClient;
/**
* 自定义查询支持多表关联
* @param page 分页条件
* @param ew 一定要并且必须加@Param("ew")注解
* @param ext 如果xml中需要根据某些值进行特殊处理可以通过这个进行传递非必须注解也可以不加
* @return
*/
public List<Map<String,Object>> selectListMapByWhere(IPage page, QueryWrapper ew, Map<String,Object> ext){
return baseMapper.selectListMapByWhere(page,ew,ext);
}
/**
*
@ -107,7 +89,7 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
}
this.pushMsgService.pushPrichatMsgToIm(user.getBranchId(),user.getUserid(),user.getUsername(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(),imMsg);
this.pushMsgService.pushCreateCssGroupMsg(user.getBranchId(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), imMsg);
notifyMsgService.pushMsg(user, xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), notifyMsg,null);
notifyMsgService.pushMsg(user.getBranchId(),user.getUserid(),user.getUsername(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), notifyMsg,null);
}
xmRecordService.addXmTaskRecord(xmTaskExecuser.getProjectId(), xmTaskExecuser.getTaskId(), "项目-任务-增加候选人", "任务增加候选人"+xmTaskExecuser.getBidUsername(),JSONObject.toJSONString(xmTaskExecuser),null);
@ -121,14 +103,13 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
String taskId="";
List<String> usernames=new ArrayList<>();
User user=LoginUtils.getCurrentUserInfo();
List<Dept> pgroups=groupService.getSubDeptList(projectId);
for (XmTaskExecuser xmTaskExecuser : xmTaskExecuserList) {
List<Dept> userGroups=groupService.getUserGroups(pgroups, xmTaskExecuser.getBidUserid());
User user=LoginUtils.getCurrentUserInfo();
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
for (XmTaskExecuser xmTaskExecuser : xmTaskExecuserList) {
List<XmGroupVo> userGroups=groupService.getUserGroups(pgroups, xmTaskExecuser.getBidUserid());
XmTaskExecuser xmTaskExecuser2=new XmTaskExecuser();
xmTaskExecuser2.setTaskId(xmTaskExecuser.getTaskId());
xmTaskExecuser2.setBidUserid(xmTaskExecuser.getBidUserid());
xmTaskExecuser2.setPrjUserid(xmTaskExecuser.getBidUserid());
xmTaskExecuser2.setStatus("7");
this.updateSomeFieldByPk(xmTaskExecuser2);
projectId=xmTaskExecuser.getProjectId();
@ -144,19 +125,19 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
userMap.put("username", xmTaskExecuser.getBidUsername());
users.add(userMap);
String imMsg=xmTaskExecuser.getBidUsername()+"放弃任务【"+xmTaskExecuser.getTaskId()+"-"+xmTaskExecuser.getTaskName()+"】";
notifyMsgService.pushMsg(user,xmTaskExecuser.getBidUserid(),xmTaskExecuser.getBidUsername(),"您已离开任务【"+xmTaskExecuser.getTaskId()+"-"+xmTaskExecuser.getTaskName()+"】!",null);
notifyMsgService.pushMsg(user.getBranchId(),user.getUserid(),user.getUsername(),xmTaskExecuser.getBidUserid(),xmTaskExecuser.getBidUsername(),"您已离开任务【"+xmTaskExecuser.getTaskId()+"-"+xmTaskExecuser.getTaskName()+"】!",null);
for (Dept g : userGroups) {
this.pushMsgService.pushGroupMsg(user.getBranchId(), g.getDeptid(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), imMsg);
this.pushMsgService.pushLeaveChannelGroupMsg(user.getBranchId(), g.getDeptid(), users);
for (XmGroupVo g : userGroups) {
this.pushMsgService.pushGroupMsg(user.getBranchId(), g.getId(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), imMsg);
this.pushMsgService.pushLeaveChannelGroupMsg(user.getBranchId(), g.getId(), users);
}
this.pushMsgService.pushCssMsg(user.getBranchId(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), imMsg);
}
updateXmTaskExeUseridsAndUsernamesByTaskId(taskId);
String usernamestr=StringUtils.arrayToDelimitedString(usernames.toArray(), ",");
xmRecordService.addXmTaskRecord(projectId, taskId, "项目-任务-执行人离开", usernamestr+"离开任务",JSONObject.toJSONString(xmTaskExecuserList),null);
updateXmTaskExeUseridsAndUsernamesByTaskId(taskId);
String usernamestr=StringUtils.arrayToDelimitedString(usernames.toArray(), ",");
xmRecordService.addXmTaskRecord(projectId, taskId, "项目-任务-执行人离开", usernamestr+"离开任务",JSONObject.toJSONString(xmTaskExecuserList),null);
@ -171,12 +152,16 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
public void becomeExecute(XmTask xmTaskDb,XmTaskExecuser xmTaskExecuser){
String projectId=xmTaskDb.getProjectId();
String taskId=xmTaskExecuser.getTaskId();
XmTaskExecuser query=new XmTaskExecuser();
query.setTaskId(taskId);
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
User user=LoginUtils.getCurrentUserInfo();
List<XmGroupVo> userGroups=groupService.getUserGroups(pgroups, xmTaskExecuser.getBidUserid());
XmTaskExecuser query=new XmTaskExecuser();
query.setTaskId(taskId);
XmTaskExecuser xmTaskExecuserDb=null;
List<XmTaskExecuser> xmTaskExecusersDb=this.selectListByWhere(query);
if(xmTaskExecusersDb !=null && xmTaskExecusersDb.size()>0) {
for (XmTaskExecuser exe : xmTaskExecusersDb) {
List<XmTaskExecuser> xmTaskExecusersDb=this.selectListByWhere(query);
if(xmTaskExecusersDb !=null && xmTaskExecusersDb.size()>0) {
for (XmTaskExecuser exe : xmTaskExecusersDb) {
if(!xmTaskExecuser.getBidUserid().equals(exe.getBidUserid())) {
if(!"0".equals(exe.getStatus()) && !"7".equals(exe.getStatus())) {
throw new BizException(exe.getBidUsername()+"是当前执行人,不允许再添加其它执行人");
@ -188,51 +173,39 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
xmTaskExecuserDb=exe;
}
}
}
if(xmTaskExecuserDb==null){
throw new BizException(xmTaskExecuser.getBidUsername()+"不是候选人,不允许变更为执行人");
}
if( "1".equals(xmTaskDb.getCrowd()) && "1".equals(xmTaskDb.getTaskOut()) ){
if(xmTaskExecuserDb.getQuoteAmount()==null){
throw new BizException(xmTaskExecuserDb.getBidUsername()+"没有填写报价金额,不允许变更为执行人。");
}
}
XmTaskExecuser xmTaskExecuser2=new XmTaskExecuser();
if(ObjectTools.isEmpty(xmTaskExecuserDb.getPrjUserid())){
XmProject projectDb=this.xmProjectService.getProjectFromCache(projectId);
User userParams=new User();
userParams.setCpaUserid(xmTaskExecuserDb.getBidUserid());
userParams.setCpaOrg(xmTaskExecuserDb.getBidBranchId());
userParams.setUsername(xmTaskExecuserDb.getBidUsername());
User userdb=sysClient.createUserIfNotExists(userParams,projectDb.getDeptid(),projectDb.getBranchId());
xmTaskExecuser2.setPrjUserid(userdb.getUserid());
xmTaskExecuser2.setPrjUsername(userdb.getUsername());
xmTaskExecuser2.setBranchId(userdb.getBranchId());
}
}
if(xmTaskExecuserDb==null){
throw new BizException(xmTaskExecuser.getBidUsername()+"不是候选人,不允许变更为执行人");
}
if( "1".equals(xmTaskDb.getCrowd()) && "1".equals(xmTaskDb.getTaskOut()) ){
if(xmTaskExecuserDb.getQuoteAmount()==null){
throw new BizException(xmTaskExecuserDb.getBidUsername()+"没有填写报价金额,不允许变更为执行人。");
}
}
XmTaskExecuser xmTaskExecuser2=new XmTaskExecuser();
xmTaskExecuser2.setTaskId(xmTaskExecuser.getTaskId());
xmTaskExecuser2.setBidUserid(xmTaskExecuser.getBidUserid());
xmTaskExecuser2.setStatus("1");
this.updateById(xmTaskExecuser2,true);
User user=LoginUtils.getCurrentUserInfo();
this.updateSomeFieldByPk(xmTaskExecuser2);
/**
* 下面为推送任务执行人变更im通知消息
*/
String imMsg=xmTaskExecuser.getBidUsername()+"变更为任务["+xmTaskDb.getId()+"-"+xmTaskDb.getName()+"]执行人";
for (XmGroupVo g : userGroups) {
this.pushMsgService.pushGroupMsg(user.getBranchId(),g.getId(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(),imMsg );
this.pushMsgService.pushPrichatMsgToIm(user.getBranchId(), user.getUserid(),user.getUsername(),xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(),imMsg);
}
this.pushMsgService.pushCssMsg(user.getBranchId(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), imMsg);
notifyMsgService.pushMsg(user, xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), "恭喜您被雇主选为任务【" + xmTaskExecuser.getTaskId() + "-" + xmTaskDb.getName() + "】的中标人,请尽快开展工作。",null);
notifyMsgService.pushMsg(user.getBranchId(),user.getUserid(),user.getUsername(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), "恭喜您被雇主选为任务【" + xmTaskExecuser.getTaskId() + "-" + xmTaskDb.getName() + "】的中标人,请尽快开展工作。",null);
updateXmTaskExeUseridsAndUsernamesByTaskId(taskId);
if("2".equals(xmTaskDb.getOshare()) && xmTaskDb.getShareFee()!=null && xmTaskDb.getShareFee().compareTo(BigDecimal.ZERO)>0){
mkClient.pushAfterTaskExecSuccess(xmTaskExecuserDb.getBidUserid(),xmTaskExecuserDb.getBidUsername(),xmTaskDb.getProjectId(),xmTaskDb.getId(),xmTaskDb.getShareFee());
}
xmRecordService.addXmTaskRecord(projectId, taskId, "项目-任务-变更为执行人", xmTaskExecuser.getBidUsername()+"变更为任务执行人",null,null);
xmRecordService.addXmTaskRecord(projectId, taskId, "项目-任务-变更为执行人", xmTaskExecuser.getBidUsername()+"变更为任务执行人",null,null);
}
@ -242,20 +215,19 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
public void becomeCandidate(XmTaskExecuser xmTaskExecuser) {
XmTaskExecuser xmTaskExecuserNew=new XmTaskExecuser();
xmTaskExecuserNew.setTaskId(xmTaskExecuser.getTaskId());
xmTaskExecuserNew.setBidUsername(xmTaskExecuser.getBidUsername());
xmTaskExecuserNew.setBidUserid(xmTaskExecuser.getBidUserid());
xmTaskExecuserNew.setQuoteWeekday(xmTaskExecuser.getQuoteWeekday());
xmTaskExecuserNew.setQuoteWeekday(xmTaskExecuser.getQuoteWeekday());
xmTaskExecuserNew.setQuoteWorkload(xmTaskExecuser.getQuoteWorkload());
xmTaskExecuserNew.setQuoteAmount(xmTaskExecuser.getQuoteAmount());
xmTaskExecuserNew.setQuoteEndTime(xmTaskExecuser.getQuoteEndTime());
xmTaskExecuserNew.setQuoteStartTime(xmTaskExecuser.getQuoteStartTime());
xmTaskExecuserNew.setSkillRemark(xmTaskExecuser.getSkillRemark());
xmTaskExecuserNew.setStatus("0");
this.updateById(xmTaskExecuserNew,true);
this.updateSomeFieldByPk(xmTaskExecuserNew);
updateXmTaskExeUseridsAndUsernamesByTaskId(xmTaskExecuser.getTaskId());
this.pushMsgService.pushCssMsg(xmTaskExecuser.getBranchId(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), xmTaskExecuser.getBidUsername()+"变更为候选人并提交关于任务【"+xmTaskExecuser.getTaskId()+"-"+xmTaskExecuser.getTaskName()+"】报价信息");
User user=LoginUtils.getCurrentUserInfo();
notifyMsgService.pushMsg(user, xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), "您成为任务【" + xmTaskExecuser.getTaskId() + "-" + xmTaskExecuser.getTaskName() + "】的候选人,请等待雇主选标,在雇主选标前,您还可以修改报价,合理的报价更容易获得雇主的喜欢哦!",null);
notifyMsgService.pushMsg(user.getBranchId(),user.getUserid(),user.getUsername(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), "您成为任务【" + xmTaskExecuser.getTaskId() + "-" + xmTaskExecuser.getTaskName() + "】的候选人,请等待雇主选标,在雇主选标前,您还可以修改报价,合理的报价更容易获得雇主的喜欢哦!",null);
xmRecordService.addXmTaskRecord(xmTaskExecuser.getProjectId(), xmTaskExecuser.getTaskId(), "项目-任务-候选人报价", xmTaskExecuser.getBidUsername()+"变更为候选人并提交报价信息",JSONObject.toJSONString(xmTaskExecuser),null);
}
@ -272,7 +244,7 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
this.updateSomeFieldByPk(xmTaskExecuserNew);
this.pushMsgService.pushCssMsg(xmTaskExecuser.getBranchId(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), xmTaskExecuser.getBidUsername()+"提交关于任务【"+xmTaskExecuser.getTaskId()+"-"+xmTaskExecuser.getTaskName()+"】报价信息");
User user=LoginUtils.getCurrentUserInfo();
notifyMsgService.pushMsg(user, xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), user.getUsername()+"成功修改了任务【" + xmTaskExecuser.getTaskId() + "-" + xmTaskExecuser.getTaskName() + "】的报价信息,请等待雇主选标,在雇主选标前,您还可以修改报价,合理的报价更容易获得雇主的喜欢哦!",null);
notifyMsgService.pushMsg(user.getBranchId(),user.getUserid(),user.getUsername(), xmTaskExecuser.getBidUserid(), xmTaskExecuser.getBidUsername(), user.getUsername()+"成功修改了任务【" + xmTaskExecuser.getTaskId() + "-" + xmTaskExecuser.getTaskName() + "】的报价信息,请等待雇主选标,在雇主选标前,您还可以修改报价,合理的报价更容易获得雇主的喜欢哦!",null);
xmRecordService.addXmTaskRecord(xmTaskExecuser.getProjectId(), xmTaskExecuser.getTaskId(), "项目-任务-候选人报价", xmTaskExecuser.getBidUsername()+"提交报价信息",JSONObject.toJSONString(xmTaskExecuser),null);
}
@ -287,11 +259,11 @@ public class XmTaskExecuserService extends BaseService<XmTaskExecuserMapper,XmTa
* @param taskId
*/
public void updateXmTaskExeUseridsAndUsernamesByTaskId(String taskId) {
baseMapper.updateXmTaskExeUseridsAndUsernamesByTaskId( taskId);
baseMapper.updateXmTaskExeUseridsAndUsernamesByTaskId(taskId);
}
public List<Map<String,Object>> selectListMapByWhereWithTask(IPage page, QueryWrapper ew, Map<String,Object> ext){
return baseMapper.selectListMapByWhereWithTask(page,ew,ext);
public List<Map<String,Object>> selectListMapByWhereWithTask(IPage page, QueryWrapper<XmTaskExecuser> qw, Map<String, Object> ext){
return baseMapper.selectListMapByWhereWithTask(page,qw,ext);
}
}

Loading…
Cancel
Save