use of com.bc.pmpheep.back.po.Material in project pmph by BCSquad.
the class SystemMessageService method sendWhenReceiptAudit.
/**
* 出版社收到纸质表 审核
*
* @author Mryang
* @createDate 2017年11月17日 下午5:08:49
* @param declarationId
* @param isPass
* true收到资质表 / false退回资质表
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenReceiptAudit(Long declarationId, boolean isPass) throws CheckedServiceException, IOException {
Declaration declaration = declarationService.getDeclarationById(declarationId);
if (null == declaration) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "申报表不存在");
}
if (null == declaration.getOrgId()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "管理员为空");
}
Material material = materialService.getMaterialById(declaration.getMaterialId());
String orgMsgContent = "抱歉,贵校老师[<font color='red'>" + declaration.getRealname() + "</font>]在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回";
String writerMsgContent = "抱歉,您在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回,请您核对后重试";
if (isPass) {
// 收到
orgMsgContent = "您好,人民卫生出版社已收到贵校老师[<font color='red'>" + declaration.getRealname() + "</font>]在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表";
writerMsgContent = "您好,人民卫生出版社已收到您在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表,感谢您的参与,请耐心等待遴选结果";
} else {
// 取消收到
orgMsgContent = "抱歉,贵校老师[<font color='red'>" + declaration.getRealname() + "</font>]在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回";
writerMsgContent = "抱歉,您在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回,请您核对后重试";
}
// 存入消息主体
Message orgUserMessage = new Message(orgMsgContent);
orgUserMessage = messageService.add(orgUserMessage);
String orgMsg_id = orgUserMessage.getId();
List<Long> orgIds = new ArrayList<Long>(1);
orgIds.add(declaration.getOrgId());
List<OrgUser> OrgUserList = orgUserService.getOrgUserListByOrgIds(orgIds);
List<UserMessage> userMessageList = new ArrayList<UserMessage>(OrgUserList.size());
List<String> userIds = new ArrayList<String>(1);
for (OrgUser orgUser : OrgUserList) {
userMessageList.add(new UserMessage(orgMsg_id, messageTitle, new Short("0"), 0L, new Short("0"), orgUser.getId(), new Short("3"), null));
userIds.add("3_" + orgUser.getId());
}
// 有学校管理员发信息
if (null != OrgUserList && OrgUserList.size() > 0) {
// 发送消息给管理员
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(orgMsg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, orgMsgContent, DateUtil.getCurrentTime());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
// ------------------------给申报者发送消息--------------------
// 存入消息主体
Message writerUserMessage = new Message(writerMsgContent);
writerUserMessage = messageService.add(writerUserMessage);
String writerMsg_id = writerUserMessage.getId();
// 发送消息给申报者
userMessageService.addUserMessage(new UserMessage(writerMsg_id, messageTitle, new Short("0"), 0L, new Short("0"), declaration.getUserId(), new Short("2"), null));
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(writerMsg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, writerMsgContent, DateUtil.getCurrentTime());
userIds = new ArrayList<String>(1);
userIds.add("2_" + declaration.getUserId());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
use of com.bc.pmpheep.back.po.Material in project pmph by BCSquad.
the class SystemMessageService method sendWhenPositionChooserLoss.
/**
* 给教材已结束并且未遴选上的作家推送消息
*
* @param materialId
* @param declaration
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenPositionChooserLoss(Long materialId, List<Declaration> declarations) throws CheckedServiceException, IOException {
Material material = materialService.getMaterialById(materialId);
if (ObjectUtil.isNull(material)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "教材为空");
}
String msg = null;
if (material.getIsAllTextbookPublished() && declarations.size() > 0) {
msg = "《<font color='red'>" + material.getMaterialName() + "</font>》教材遴选已结束,未选中,感谢您的支持与参与。";
}
// 当消息不为空时才进行下面操作
if (StringUtil.notEmpty(msg)) {
// 存入消息主体
Message message = new Message(msg);
message = messageService.add(message);
String msg_id = message.getId();
for (Declaration declaration : declarations) {
// 发送消息给申报者
userMessageService.addUserMessage(new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), declaration.getUserId(), new Short("2"), null));
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, msg, DateUtil.getCurrentTime());
List<String> userIds = new ArrayList<String>(1);
userIds.add("2_" + declaration.getUserId());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
}
}
use of com.bc.pmpheep.back.po.Material in project pmph by BCSquad.
the class SystemMessageService method sendWhenDeclarationFormAuditToOrgUser.
/**
* 人卫社审核教材申报表 向机构用户发送信息
*
* @introduction
* @author Mryang
* @createDate 2018年1月22日 上午10:12:34
* @param declarationId
* @param isPass
* @param returnCause 退回原因
* @param onlineProgress 4 == 退回给学校,5 == 退回给个人
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenDeclarationFormAuditToOrgUser(Long declarationId, boolean isPass, String returnCause, Integer onlineProgress) throws CheckedServiceException, IOException {
// 获取申报表
Declaration declaration = declarationService.getDeclarationById(declarationId);
if (null == declaration) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "申报表不存在");
}
if (null == declaration.getOrgId()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "认证的管理员为空");
}
// 获取教材
Material material = materialService.getMaterialById(declaration.getMaterialId());
String msgContent = null;
if (isPass) {
// 通过
msgContent = "恭喜!您校[" + declaration.getRealname() + "]提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表已通过[<font color='red'>出版社</font>]审核";
} else {
// 出版社退回给学校==4
if (4 == onlineProgress.intValue()) {
msgContent = "抱歉!您校[" + declaration.getRealname() + "]提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表被[<font color='red'>出版社</font>]退回,退回原因:" + returnCause + ",请核对后重试";
} else if (5 == onlineProgress.intValue()) {
// 出版社退回给个人==5
msgContent = "抱歉!您提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表被[<font color='red'>出版社</font>]退回,退回原因:" + returnCause + ",请您核对后重试";
}
}
WebScocketMessage webScocketMessage = null;
List<String> userIds = null;
if (4 == onlineProgress.intValue()) {
// 获取机构用户
List<Long> orgIds = new ArrayList<Long>(1);
if (CollectionUtil.isEmpty(orgIds) || orgIds.size() == 0) {
orgIds.add(declaration.getOrgId());
}
List<OrgUser> orgUserList = orgUserService.getOrgUserListByOrgIds(orgIds);
// 存入消息主体
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
// 消息集合
List<UserMessage> userMessageList = new ArrayList<UserMessage>();
userIds = new ArrayList<String>();
for (OrgUser orgUser : orgUserList) {
userMessageList.add(new // 消息内容id
UserMessage(// 消息内容id
msg_id, // 消息标题
messageTitle, // 消息类型
new Short("0"), // 发送者id 0- 系统
0L, // 发送者类型 0- 系统
new Short("0"), // 接收者id
orgUser.getId(), // 接收者类型 (3- 机构用户 )
new Short("3"), // 教材id
null));
userIds.add("3_" + orgUser.getId().toString());
}
// 发送消息
// 批量插入消息
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
webScocketMessage = new // 消息id
WebScocketMessage(// 消息id
msg_id, // 消息类型 0=系统消息/1=站内群发/2=站内私信(作家和机构用户不能群发)/3 小组互动
Const.MSG_TYPE_0, // 发送者id 0=系统/其他=用户id
0L, // 发送者姓名
"系统", // 发送者类型 0=系统/1=社内用户/2=作家用户/3=机构用户
Const.SENDER_TYPE_0, // 发送类型 0 新增 1 撤回 2 删除
Const.SEND_MSG_TYPE_0, // 头像
"", // 消息标题
messageTitle, // 消息内容
msgContent, // 发送时间
DateUtil.getCurrentTime());
} else if (5 == onlineProgress.intValue()) {
// 存入消息主体
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
// 发送消息
userMessageService.addUserMessage(new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), declaration.getUserId(), new Short("2"), null));
// websocket推送页面消息
webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, msgContent, DateUtil.getCurrentTime());
userIds = new ArrayList<String>(1);
userIds.add("2_" + declaration.getUserId());
}
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
use of com.bc.pmpheep.back.po.Material in project pmph by BCSquad.
the class FileDownLoadController method exportSituationSchool.
/**
* Description:申报情况统计页面按申报单位统计导出统计结果
*
* @author:lyc
* @date:2018年1月9日上午10:29:21
* @param
* @return void
*/
@LogDetail(businessType = BUSSINESS_TYPE, logRemark = "申报情况统计页面按申报单位统计导出统计结果")
@RequestMapping(value = "/result/exportSituationSchool", method = RequestMethod.GET)
public void exportSituationSchool(Long materialId, String schoolName, Integer state, HttpServletRequest request, HttpServletResponse response) {
PageParameter<DeclarationSituationSchoolResultVO> pageParameter = new PageParameter<>(1, 50000);
DeclarationSituationSchoolResultVO declarationSituationSchoolResultVO = new DeclarationSituationSchoolResultVO();
declarationSituationSchoolResultVO.setMaterialId(materialId);
declarationSituationSchoolResultVO.setSchoolName(schoolName);
pageParameter.setParameter(declarationSituationSchoolResultVO);
Workbook workbook = null;
List<DeclarationSituationSchoolResultVO> list = null;
String sheetName = "";
if (state.intValue() == 1) {
list = decPositionService.listChosenDeclarationSituationSchoolResultVOs(pageParameter).getRows();
sheetName = "申报情况按单位统计(按当选数排序)";
} else if (state.intValue() == 2) {
list = decPositionService.listPresetDeclarationSituationSchoolResultVOs(pageParameter).getRows();
sheetName = "申报情况按单位统计(按申报数排序)";
} else {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "未知的排序方式");
}
if (list.size() == 0) {
list.add(new DeclarationSituationSchoolResultVO());
}
try {
workbook = excelHelper.fromBusinessObjectList(list, sheetName);
} catch (CheckedServiceException | IllegalArgumentException | IllegalAccessException e) {
logger.warn("数据表格化的时候失败");
}
Material material = materialService.getMaterialById(materialId);
String fileName = returnFileName(request, material.getMaterialName() + ".xls");
response.setCharacterEncoding("utf-8");
response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
try (OutputStream out = response.getOutputStream()) {
workbook.write(out);
out.flush();
out.close();
} catch (Exception e) {
logger.warn("文件下载时出现IO异常: {}", e.getMessage());
throw new CheckedServiceException(CheckedExceptionBusiness.FILE, CheckedExceptionResult.FILE_DOWNLOAD_FAILED, "文件在传输时中断");
}
}
use of com.bc.pmpheep.back.po.Material in project pmph by BCSquad.
the class FileDownLoadController method exportResultBook.
/**
* Description:申报结果统计页面按书名统计导出统计结果
*
* @author:lyc
* @date:2018年1月9日下午2:42:26
* @param
* @return void
*/
@LogDetail(businessType = BUSSINESS_TYPE, logRemark = "申报结果统计页面按书名统计导出统计结果")
@RequestMapping(value = "/result/exportResultBook", method = RequestMethod.GET)
public void exportResultBook(Long materialId, String bookName, HttpServletRequest request, HttpServletResponse response) {
PageParameter<DeclarationResultBookVO> pageParameter = new PageParameter<>(1, 50000);
DeclarationResultBookVO declarationResultBookVO = new DeclarationResultBookVO();
declarationResultBookVO.setMaterialId(materialId);
declarationResultBookVO.setBookName(bookName);
pageParameter.setParameter(declarationResultBookVO);
Workbook workbook = null;
List<DeclarationResultBookVO> list = null;
list = decPositionService.listDeclarationResultBookVOs(pageParameter).getRows();
if (list.size() == 0) {
list.add(new DeclarationResultBookVO());
}
try {
workbook = excelHelper.fromBusinessObjectList(list, "申报结果按书名统计");
} catch (CheckedServiceException | IllegalArgumentException | IllegalAccessException e) {
logger.warn("数据表格化的时候失败");
}
Material material = materialService.getMaterialById(materialId);
String fileName = returnFileName(request, material.getMaterialName() + ".xls");
response.setCharacterEncoding("utf-8");
response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
try (OutputStream out = response.getOutputStream()) {
workbook.write(out);
out.flush();
out.close();
} catch (Exception e) {
logger.warn("文件下载时出现IO异常: {}", e.getMessage());
throw new CheckedServiceException(CheckedExceptionBusiness.FILE, CheckedExceptionResult.FILE_DOWNLOAD_FAILED, "文件在传输时中断");
}
}
Aggregations