package com.web.basic.service.internal; import com.utils.SearchFilter; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specifications; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.app.base.data.ApiResponseResult; import com.app.base.data.DataGrid; import com.utils.BaseService; import com.utils.UserUtil; import com.utils.enumeration.BasicStateEnum; import com.web.basic.dao.TodoInfoDao; import com.web.basic.entity.TodoInfo; import com.web.basic.service.TodoInfoService; import java.text.SimpleDateFormat; import java.util.*; @Service @Transactional(rollbackFor = Exception.class) public class TodoInfoImpl implements TodoInfoService { @Autowired private TodoInfoDao todoInfoDao; /* @Autowired private SysUserRolesAggDao sysUserRolesAggDao; @Autowired private SysRouterDao sysRoleDao; @Autowired private TodoInfoDao supplierInfoDao; @Autowired private SysUserDao sysUserDao; @Autowired private MailSenderService mailSenderService; @Autowired private AppConfig appConfig;*/ @Transactional public ApiResponseResult add(TodoInfo todoInfo) throws Exception { if (null == todoInfo.getBsUserId() ) { return ApiResponseResult.failure("待办人不能为空"); } if (StringUtils.isEmpty(todoInfo.getBsTitle()) || StringUtils.isEmpty(todoInfo.getBsTitle().trim())) { return ApiResponseResult.failure("标题不能为空"); } todoInfo.setBsTitle(todoInfo.getBsTitle().trim()); //todoInfo.setBsSystemType(BasicStateEnum.TODO_COST.intValue());//待办类型 todoInfo.setCreatedTime(new Date()); //todoInfo.setPkCreatedBy(SessionContextUtils.getCurrentUser().getId()); if(null == todoInfo.getBsEndTime()){ //如果没有传截止时间,则默认为一周之后 Calendar curr = Calendar.getInstance(); curr.setTime(todoInfo.getCreatedTime()); curr.add(Calendar.WEEK_OF_YEAR, 1); Date after7Days=curr.getTime(); todoInfo.setBsEndTime(after7Days); //有效结束时间 } //1.用户ID不为空时只添加一个用户 if(null != todoInfo.getBsUserId()){ todoInfoDao.save(todoInfo); /* //发送邮件 //先判断是否开启了邮件功能,开启了就可以发邮件 String flagMail = appConfig.getString("scm.mail.enabled"); if(StringUtils.isNotEmpty(flagMail) && flagMail.equals("true")){ SysUser sysUser = sysUserDao.findOne(todoInfo.getBsUserId()); if(sysUser != null && StringUtils.isNotEmpty(sysUser.getBsEmail())){ String nameTo = sysUser.getBsName(); //收件人名 String mailTo = sysUser.getBsEmail().trim(); //收件人邮箱 String subject = "待办事项提醒"; //主题 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日"); String dateStr = simpleDateFormat.format(new Date()); StringBuffer text = new StringBuffer(); //邮件内容 text.append("
" + nameTo + "," + "
"); text.append("
" + "      你好!" + todoInfo.getBsTitle() +"。请及时处理!
"); text.append("
      请点击此处进入QMS系统。
"); text.append("
      此致
"); text.append("
敬礼
"); text.append("
QMS系统

"); text.append("
" + dateStr + "

"); mailSenderService.send(mailTo, subject, text.toString()); } }*/ } return ApiResponseResult.success("新增成功!").data(todoInfo); } @Transactional public ApiResponseResult edit(TodoInfo todoInfo) throws Exception { if (null == todoInfo || null == todoInfo.getId()) { return ApiResponseResult.failure("记录ID为必填项"); } if (null == todoInfo.getBsUserId()) { return ApiResponseResult.failure("待办人不能为空"); } if (StringUtils.isEmpty(todoInfo.getBsTitle()) || StringUtils.isEmpty(todoInfo.getBsTitle().trim())) { return ApiResponseResult.failure("标题不能为空"); } TodoInfo o = todoInfoDao.findById((long)todoInfo.getId()); if (null == o) { return ApiResponseResult.failure("记录ID不存在或已被删除"); } // if (!StringUtils.equals(approvedFlow.getBsName().trim(), o.getBsName())) { // int counts = approvedFlowDao.countByBsName(approvedFlow.getBsName()); // if (counts > 0) { // return ApiResponseResult.failure("项目名称不能重复"); // } // o.setBsName(approvedFlow.getBsName().trim()); // } o.setBsUserId(todoInfo.getBsUserId()); o.setBsRouter(todoInfo.getBsRouter().trim()); o.setBsTitle(todoInfo.getBsTitle().trim()); o.setBsContent(todoInfo.getBsContent()); o.setBsType(todoInfo.getBsType()); o.setBsPriority(todoInfo.getBsPriority()); o.setBsReferId(todoInfo.getBsReferId()); o.setModifiedTime(new Date()); /* o.setPkModifiedBy(SessionContextUtils.getCurrentUser().getId());*/ // o.setPkModifiedBy(Long.parseLong("1")); todoInfoDao.save(o); return ApiResponseResult.success("修改成功!").data(o); } @Transactional public ApiResponseResult close(Long id, Long bsUserId, Long roleId, Long bsReferId) throws Exception { if(null != id){ todoInfoDao.closeById(id); return ApiResponseResult.success("关闭成功!"); } if(null == id && null != bsUserId && null != bsReferId){ todoInfoDao.closeByBsUserIdAndBsReferId(bsUserId, bsReferId); return ApiResponseResult.success("关闭成功!"); } if(null == id && null == bsUserId && null != roleId && null != bsReferId){ todoInfoDao.closeByRoleIdAndBsReferId(roleId, bsReferId); return ApiResponseResult.success("关闭成功!"); } if(null == id && null == bsUserId && null == roleId && null != bsReferId){ todoInfoDao.closeByBsReferId(bsReferId); return ApiResponseResult.success("关闭成功!"); } return ApiResponseResult.failure("关闭失败!"); } @Transactional public ApiResponseResult delete(Long id) throws Exception { TodoInfo o = todoInfoDao.findById((long)id); if (null == o) { return ApiResponseResult.failure("记录ID不存在或已被删除").status("error1"); } if (o.getId() <= 0) { return ApiResponseResult.failure("没有操作权限"); } o.setIsDel(BasicStateEnum.TRUE.intValue()); todoInfoDao.save(o); return ApiResponseResult.success("删除成功!"); } @Transactional(readOnly = true) public ApiResponseResult getlist(int bsStatus, PageRequest pageRequest) throws Exception { return null; // List filters = new ArrayList(); // filters.add(new SearchFilter("isDel", SearchFilter.Operator.EQ, BasicStateEnum.FALSE.intValue())); // filters.add(new SearchFilter("bsStatus", SearchFilter.Operator.EQ, bsStatus)); // filters.add(new SearchFilter("bsUserId", SearchFilter.Operator.EQ, UserUtil.getCurrUser().getId())); // Specification spec = Specification.where(BaseService.and(filters, TodoInfo.class)); // // //1.获取当前登录用户待办 // Page page = todoInfoDao.findAll(spec, pageRequest); // DataGrid dataGrid = DataGrid.create(page.getContent(), (int) page.getTotalElements(), pageRequest.getPageNumber() + 1, pageRequest.getPageSize()); // // //2.统计当前登录用户所有待办数量 // int totalNum = todoInfoDao.countByIsDelAndBsUserId(BasicStateEnum.FALSE.intValue(), UserUtil.getCurrUser().getId()); // int completedNum = todoInfoDao.countByIsDelAndBsUserIdAndBsStatus(BasicStateEnum.FALSE.intValue(), UserUtil.getCurrUser().getId(), 1); // int inCompleteNum = todoInfoDao.countByIsDelAndBsUserIdAndBsStatus(BasicStateEnum.FALSE.intValue(), UserUtil.getCurrUser().getId(), 0); // // //3.封装数据 // Map map = new HashMap<>(); // map.put("list", dataGrid); // map.put("totalNum", totalNum); // map.put("completedNum", completedNum); // map.put("inCompleteNum", inCompleteNum); // // return ApiResponseResult.success().data(map); } }