企业端我的普通项目接口添加

This commit is contained in:
梁琦涛
2021-09-29 19:09:34 +08:00
parent d8f39421d5
commit c5d897b278
7 changed files with 409 additions and 57 deletions
@@ -337,4 +337,239 @@ public class SendMessageServiceImpl implements SendMessageService {
}
}
}
void sendEmail(SendMessageDTO sendMessageDTO, LoginUser loginUser, String title, String content){
String email = loginUser.getEmail();
String emailPassword = loginUser.getEmailPassword();
//如果发件人没有邮箱或邮箱密码则使用admin账户的邮箱密码
if (StringUtils.isBlank(email) || StringUtils.isBlank(emailPassword)) {
loginUser = sysBaseAPI.getUserByName("admin");
email = loginUser.getEmail();
emailPassword = loginUser.getEmailPassword();
}
email = PasswordUtil.decrypt(email);
emailPassword = PasswordUtil.decrypt(emailPassword);
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(email,emailPassword);
// 发送带附件邮箱
if(!CollectionUtils.isEmpty(sendMessageDTO.getListFile())){
emailHandle.SendMsgAndFile(sendMessageDTO.getEmail(), title, content,sendMessageDTO.getListFile());
}else{
emailHandle.SendMsg(sendMessageDTO.getEmail(), title, content);
}
}
void sendMessage(SendMessageDTO sendMessageDTO, SysMessageTemplate sysSmsTemplate, String content, String fromUser, String title){
String toUser = sendMessageDTO.getToUser();
String busId = sendMessageDTO.getBusId();
String busType = sendMessageDTO.getBusType();
SysAnnouncement announcement = new SysAnnouncement();
announcement.setTitile(sysSmsTemplate.getTemplateName());
announcement.setMsgContent(content);
announcement.setSender(fromUser);
announcement.setPriority(CommonConstant.PRIORITY_M);
announcement.setMsgType(CommonConstant.MSG_TYPE_UESR);
announcement.setSendStatus(CommonConstant.HAS_SEND);
announcement.setSendTime(new Date());
announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
announcement.setBusId(busId);
announcement.setBusType(busType);
if(!StringUtils.isEmpty(busType)){
announcement.setOpenType(MessageUrlEnums.getByType(busType).getOpenType());
announcement.setOpenPage(MessageUrlEnums.getByType(busType).getOpenPage());
}
announcement.setTemplateCode(sendMessageDTO.getTemplateCode());
sysAnnouncementService.save(announcement);
// 2.插入用户通告阅读标记表记录
String userId = toUser;
String[] userIds = userId.split(",");
String anntId = announcement.getId();
for(int i=0;i<userIds.length;i++) {
if(oConvertUtils.isNotEmpty(userIds[i])) {
SysUser sysUser = sysUserService.getUserByName(userIds[i]);
if(Objects.isNull(sysUser)) {
continue;
}
SysAnnouncementSend announcementSend = new SysAnnouncementSend();
announcementSend.setAnntId(anntId);
announcementSend.setUserId(sysUser.getId());
announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
sysAnnouncementSendService.save(announcementSend);
JSONObject obj = new JSONObject();
obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER);
obj.put(WebsocketConst.MSG_USER_ID, sysUser.getId());
obj.put(WebsocketConst.MSG_ID, announcement.getId());
obj.put(WebsocketConst.MSG_TXT, title);
webSocket.sendMessage(sysUser.getId(), obj.toJSONString());
}
}
}
void sendSMS(SendMessageDTO sendMessageDTO, HashMap<String, String> map){
String sender = "";
String signature = "";
String templateId = "";
String codeType = sendMessageDTO.getTemplateCode();
switch (codeType) {
case "GL_1_HTTZ_CREATE_PROJECT":
//中汽中心标准所-管理端-项目通知-1
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "7ffc2ce832a1408383b933702277f866";
//通知类短信,不需要存redis
break;
case "GL_2_HTTZ_SUBMIT":
//中汽中心标准所-管理端-合同通知-2
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "8f080f2c0b334f93af5219f76c0b5dc3";
break;
case "GL_3_HTTZ_AUDIT":
//中汽中心标准所-管理端-合同通知-3
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "488e5a176aca4eea8472a6a7b8cd2911";
break;
case "GL_4_HTTZ_NOT_AUDIT":
//中汽中心标准所-管理端-合同通知-4
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "0596842946244aa9b5c5a1d16d9a1d0a";
//通知类短信,不需要存redis
break;
case "GL_5_HYTZ_SIGN_UP_UPLOAD":
// 中汽中心标准所-管理端-会议通知-5
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "ef7374b862e3442e9ea6f84c3e626e9c";
break;
case "GL_6_DBTZ_ADD":
// 中汽中心标准所-管理端-打包通知-6
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "0f62447b46ed4dcb88f3b8d9fa38a549";
break;
case "GL_7_DBTZ_CONTRACT":
//中汽中心标准所-管理端-打包通知-7
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "7705a7180c644b028839af77fc51d371";
//通知类短信,不需要存redis
break;
case "GL_8_HYTZ_ON_ACCESS_UPDATE":
// 中汽中心标准所-管理端-会议通知-8
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "bfc6abc5bf3347029e9079214eb54868";
break;
case "GL_9_QYTZ_CREATE":
//中汽中心标准所-管理端-企业通知-9
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "1b9dd79bb217420fa25725feb1ffaef4";
break;
case "QY_1_HYTZ_WORK_GROUP_CREATE":
//中汽中心标准所-企业端-会议通知-1
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "b477be3ced93438a930675b2998d841d";
//通知类短信,不需要存redis
break;
case "QY_2_HYTZ_WORK_GROUP_SIGN_UP":
//中汽中心标准所-企业端-会议通知-2
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = ""; //todo 审核不通过
break;
case "QY_3_HYTZ_WORK_GROUP_UPLOAD":
//中汽中心标准所-企业端-会议通知-3
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "";//todo 审核不通过
break;
case "QY_4_HYTZ_WORK_GROUP_NOT_UPLOAD":
//中汽中心标准所-企业端-会议通知-4
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "";//todo 审核不通过
//通知类短信,不需要存redis
break;
case "QY_5_HYTZ_NOT_AUDIT":
//中汽中心标准所-企业端-会议通知-5
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "b564769d75ea43bda281ba4e26936fb6";
break;
case "QY_6_HYTZ_AUDIT":
//中汽中心标准所-企业端-会议通知-6
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "";//todo 审核不通过
break;
case "QY_7_WJTZ_MEETING_SEND":
//中汽中心标准所-企业端-文件通知-7
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "";//todo 审核不通过
//通知类短信,不需要存redis
break;
case "QY_8_HTTZ_PHASE":
//中汽中心标准所-企业端-合同通知-8
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "891d3236a8034a0c8ef266bb287a9ffa";
break;
case "QY_9_YJTZ_MAIL":
//中汽中心标准所-企业端-邮寄通知-9
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "1003b89133e04cd7922cee64451813d4";
break;
case "QY_10_YJTZ_MAIL_CONTRACT":
// 中汽中心标准所-企业端-邮寄通知-10
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "203aa025094e401b9f144b9a66e3c52e";
//通知类短信,不需要存redis
break;
case "QY_11_CKTZ_PAY":
// 中汽中心标准所-企业端-催款通知-1
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "c139886b751943feb6fd8aad46a3abbe";
break;
case "QY_12_WJTZ_WORK_GROUP_SEND":
//中汽中心标准所-企业端-文件通知-12
sender = "8821092414406";
signature = "中汽中心标准所";
templateId = "077964a02a814149bb01900e43c9a04e";
break;
default:
throw new JeroBootException("codeType flase.");
}
String str = "";
// 管理端
if(Objects.equals(sendMessageDTO.getTemplateCode().substring(0,2),"GL")){
str = ManagementMessageEnums.getByCode(sendMessageDTO.getTemplateCode()).getField();
}
// 企业端
if(Objects.equals(sendMessageDTO.getTemplateCode().substring(0,2),"QY")){
str = CompanyMessageEnums.getByCode(sendMessageDTO.getTemplateCode()).getField();
}
String templateParas = "";
if(!StringUtils.isEmpty(str)){
StringBuilder sb = new StringBuilder();
sb.append("[");
String[] s = str.split(",");
for (int i = 0; i < s.length; i++) {
sb.append("\"" + map.get(s[i]) + "\"");
if(i < (s.length - 1)){
sb.append(",");
}
}
sb.append("]");
templateParas = sb.toString();
}
sysBaseAPI.sendMessage(sendMessageDTO.getPhone(),sender,templateId,signature,templateParas);
}
}
@@ -0,0 +1,38 @@
package com.jero.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
public class ThreadPoolConfig {
/**
* 默认线程池
*
* @return Executor
*/
@Bean
public ThreadPoolTaskExecutor defaultThreadPool() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//核心线程数目
executor.setCorePoolSize(16);
//指定最大线程数
executor.setMaxPoolSize(64);
//队列中最大的数目
executor.setQueueCapacity(16);
//线程名称前缀
executor.setThreadNamePrefix("defaultThreadPool_");
//rejection-policy:当pool已经达到max size的时候,如何处理新任务
//CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
//对拒绝task的处理策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//线程空闲后的最大存活时间
executor.setKeepAliveSeconds(60);
//加载
executor.initialize();
return executor;
}
}
@@ -54,4 +54,15 @@ public interface PayMailBillMapper extends BaseMapper<PayMailBill> {
List<PayMailBill> pageList( @org.apache.ibatis.annotations.Param(Constants.WRAPPER) QueryWrapper<PayMailBill> queryWrapper);
/**
* @Description 获取更用户相关的项目id
* @Author lqt
* @Date 2021/9/29
* @Param projectType 项目类型
* @Param userId 用户id
* @Return
* @Exception
*/
List<String> getCompanyCommonProject(@Param("projectType") String projectType,@Param("userId") String userId);
}
@@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -50,13 +51,13 @@ import io.swagger.annotations.ApiOperation;
@RequestMapping("/pack/payPackCompany")
@Slf4j
public class PayPackCompanyController extends JeroController<PayPackCompany, IPayPackCompanyService> {
@Autowired
@Resource
private IPayPackCompanyService payPackCompanyService;
@Autowired
@Resource
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Autowired
@Resource
private IPayMailBillProjectService payMailBillProjectService;
/**
@@ -6,32 +6,38 @@ import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.common.ProjectCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectDetailService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.ValidUtil;
import com.jero.common.vo.ProjectDetailVO;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.entity.PayCommonProject;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -40,6 +46,7 @@ import com.jero.project.vo.PayCommonProjectOutput;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -58,20 +65,26 @@ import io.swagger.annotations.ApiOperation;
@RequestMapping("/project/payCommonProject")
@Slf4j
public class PayCommonProjectController extends JeroController<PayCommonProject, IPayCommonProjectService> {
@Autowired
@Resource
private IPayCommonProjectService payCommonProjectService;
@Autowired
@Resource
private ProjectDetailService projectDetailService;
@Autowired
@Resource
private ISysBaseAPI sysBaseAPI;
@Autowired
@Resource
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Autowired
@Resource
private IPayIncomeContractService payIncomeContractService;
@Autowired
@Resource
private ISysUserService sysUserService;
@Autowired
@Resource
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Resource
private IPayMailBillService payMailBillService;
@Resource
private IPayPackCompanyService payPackCompanyService;
@Resource
private IPayMailBillProjectService payMailBillProjectService;
/**
* 分页列表查询
*
@@ -111,6 +124,102 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
return Result.OK(pageList);
}
/**
* 企业端-分页列表查询
* 即项目的企业联系人、邮寄联系人、打包的企业联系人和打包联系人、关联合同的签订单位联系人
* @param payCommonProject 普通项目管理
* @param pageNo 页数
* @param pageSize 条数
* @return
*/
@ApiOperation(value="普通项目管理-企业端-分页列表查询", notes="普通项目管理-企业端-分页列表查询")
@GetMapping(value = "/queryCompanyPageList")
public Result<?> queryCompanyPageList(PayCommonProject payCommonProject,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(Objects.isNull(sysUser)){
return Result.error("没有查到用户信息!");
}
List<String> listUser = new ArrayList<>();
// 项目的企业联系人
LambdaQueryWrapper<PayCommonProject> queryPayCommonProject = new LambdaQueryWrapper<>();
queryPayCommonProject.eq(PayCommonProject::getContactsId,sysUser.getId());
List<PayCommonProject> listPayCommonProject = payCommonProjectService.list(queryPayCommonProject);
if(!CollectionUtils.isEmpty(listPayCommonProject)){
List<String> list = listPayCommonProject.stream().map(PayCommonProject::getId).collect(Collectors.toList());
listUser.addAll(list);
}
LambdaQueryWrapper<PayMailBill> queryPayMailBill = new LambdaQueryWrapper<>();
queryPayMailBill.eq(PayMailBill::getContactId,sysUser.getId());
List<PayMailBill> listPayMailBill = payMailBillService.list(queryPayMailBill);
// 邮寄联系人
if(!CollectionUtils.isEmpty(listPayMailBill)){
List<String> listId = listPayMailBill.stream().map(PayMailBill::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
queryPayMailBillProject.in(PayMailBillProject::getBillId,listId);
List<PayMailBillProject> listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProject);
if(!CollectionUtils.isEmpty(listPayMailBillProject)){
List<String> listProjectId = listPayMailBillProject.stream().map(PayMailBillProject::getProjectId).collect(Collectors.toList());
listUser.addAll(listProjectId);
}
}
// 打包的企业联系人和打包联系人
LambdaQueryWrapper<PayPackCompany> queryPayPackCompany = new LambdaQueryWrapper<>();
queryPayPackCompany.eq(PayPackCompany::getCompanyContactId,sysUser.getId()).or()
.eq(PayPackCompany::getPackContactId,sysUser.getId());
List<PayPackCompany> listPayPackCompany = payPackCompanyService.list(queryPayPackCompany);
if(!CollectionUtils.isEmpty(listPayPackCompany)){
List<String> listPayPackCompanyId = listPayPackCompany.stream().map(PayPackCompany::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
queryPayPackCompanyProject.in(PayPackCompanyProject::getProjectId,listPayPackCompanyId);
queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayProjectCommon.PROJECT_TYPE1);
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
List<String> listId = listPayPackCompanyProject.stream().map(PayPackCompanyProject::getProjectId).collect(Collectors.toList());
listUser.addAll(listId);
}
}
// 关联合同的签订单位联系人
LambdaQueryWrapper<PayIncomeContract> queryPayIncomeContract = new LambdaQueryWrapper<>();
queryPayIncomeContract.eq(PayIncomeContract::getSignedContactsId,sysUser.getId());
List<PayIncomeContract> listPayIncomeContract = payIncomeContractService.list(queryPayIncomeContract);
if(!CollectionUtils.isEmpty(listPayIncomeContract)){
List<String> listId = listPayIncomeContract.stream().map(PayIncomeContract::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,listId);
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectType,PayProjectCommon.PROJECT_TYPE1);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
List<String> listProjectId = listPayIncomeContractAssociated.stream().map(PayIncomeContractAssociated::getProjectId).collect(Collectors.toList());
listUser.addAll(listProjectId);
}
}
listUser.stream().distinct();
QueryWrapper<PayCommonProject> queryWrapper = QueryGenerator.initQueryWrapper(payCommonProject, req.getParameterMap());
if(!CollectionUtils.isEmpty(listUser)){
queryWrapper.in("id",listUser);
}else{
queryWrapper.in("id", Arrays.asList(""));
}
Page<PayCommonProject> page = new Page<PayCommonProject>(pageNo, pageSize);
IPage<PayCommonProject> pageList = payCommonProjectService.page(page, queryWrapper);
if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayCommonProject> list = pageList.getRecords();
list.forEach(p->{
if(Objects.isNull(p.getReceivableAmount())){
p.setReceivableAmount(new BigDecimal("0.00"));
}
if(Objects.isNull(p.getPaidAmount())){
p.setPaidAmount(new BigDecimal("0.00"));
}
});
pageList.setRecords(list);
}
return Result.OK(pageList);
}
/**
* 收入合同-列表
*
@@ -1,21 +0,0 @@
package com.jero.quartz.job;
import com.jero.contract.service.IPayIncomeContractInstallmentService;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
@Slf4j
public class PayIncomeContractJob implements Job {
@Autowired
private IPayIncomeContractInstallmentService payIncomeContractInstallmentService;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("收入合同调用!");
payIncomeContractInstallmentService.sendSMSIncomeContract();
}
}
@@ -1,21 +0,0 @@
package com.jero.quartz.job;
import com.jero.contract.service.IPaySpendingContractInstallmentService;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
@Slf4j
public class PaySpendingContractJob implements Job {
@Autowired
private IPaySpendingContractInstallmentService paySpendingContractInstallmentService;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("支出合同调用!");
paySpendingContractInstallmentService.sendSMSSpendingContract();
}
}