Merge branch 'branch20211008'

This commit is contained in:
梁琦涛
2021-10-29 09:12:22 +08:00
38 changed files with 585 additions and 399 deletions
@@ -816,6 +816,10 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
dataSource = PayCompanyManagementCommon.DATA_SOURCE1;
status = PayCompanyManagementCommon.STATUS1;
}
List<Object> excelData = super.getExcelData(request, PayCompanyManagement.class);
if (excelData.isEmpty()) {
throw new JeroBootException("导入数据为空,请填写数据之后重新导入!");
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@@ -203,10 +203,6 @@ public class PayContactsManagementController extends JeroController<PayContactsM
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.encrypt(payContactsManagement.getEmail()));
}
String salt = oConvertUtils.randomGen(8);
String passwordEncode = PasswordUtil.encrypt(payContactsManagement.getPhone(), defaultPassword, salt);
payContactsManagement.setSalt(salt);
payContactsManagement.setPassword(passwordEncode);
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
@@ -634,8 +630,8 @@ public class PayContactsManagementController extends JeroController<PayContactsM
* @return
*/
@ApiOperation(value="联系人管理-通过id查询-会议对外开放接口", notes="联系人管理-通过id查询-会议对外开放接口")
@GetMapping(value = "/queryByIdGetContract")
public Result<?> queryByIdGetContract(@RequestParam(name="id") String id) {
@GetMapping(value = "/queryByIdMeeting")
public Result<?> queryByIdMeeting(@RequestParam(name="id") String id) {
PayContactsManagement payContactsManagement = payContactsManagementService.getById(id);
if (payContactsManagement == null) {
return Result.error("未找到对应数据");
@@ -657,21 +653,21 @@ public class PayContactsManagementController extends JeroController<PayContactsM
* @return
*/
@ApiOperation(value="企业端-通过id查询联系人信息", notes="企业端-通过id查询联系人信息")
@GetMapping(value = "/queryByIdMeeting")
public Result<?> queryByIdMeeting(@RequestParam(name="id") String id) {
@GetMapping(value = "/queryByIdGetContract")
public Result<?> queryByIdGetContract(@RequestParam(name="id") String id) {
LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal();
if(sysUser.getId().equals(id)) {
PayContactsManagement payContactsManagement = payContactsManagementService.getById(id);
if (payContactsManagement == null) {
return Result.error("未找到对应数据");
}
if (!StringUtils.isBlank(payContactsManagement.getPhone())) {
payContactsManagement.setPhone(PasswordUtil.decrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())) {
payContactsManagement.setEmail(PasswordUtil.decrypt(payContactsManagement.getEmail()));
}
return Result.OK(payContactsManagement);
PayContactsManagement payContactsManagement = payContactsManagementService.getById(id);
if (payContactsManagement == null) {
return Result.error("未找到对应数据");
}
if (!StringUtils.isBlank(payContactsManagement.getPhone())) {
payContactsManagement.setPhone(PasswordUtil.decrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())) {
payContactsManagement.setEmail(PasswordUtil.decrypt(payContactsManagement.getEmail()));
}
return Result.OK(payContactsManagement);
}else{
return Result.OK("权限异常");
}
@@ -724,44 +720,6 @@ public class PayContactsManagementController extends JeroController<PayContactsM
return Result.OK(list);
}
/**
* 小程序-通过企业id查询用户
*
* @param companyId 企业id
* @return
*/
@ApiOperation(value="联系人管理-小程序-通过企业id查询用户", notes="联系人管理-小程序-通过企业id查询用户")
@GetMapping(value = "/queryWXByCompany")
public Result<?> queryWXByCompany(@RequestParam(name="companyId") String companyId,
@RequestParam(name="name",required = false) String name,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
if(!StringUtils.isBlank(name)){
name = oConvertUtils.replaceAllPercent(name);
}
Page<PayContactsManagement> page = new Page<>(pageNo, pageSize);
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getCompanyId,companyId);
queryWrapper.eq(PayContactsManagement::getName,name);
if(!StringUtils.isEmpty(name)){
queryWrapper.like(PayContactsManagement::getName,name);
}
IPage<PayContactsManagement> listPayContactsManagement = payContactsManagementService.page(page,queryWrapper);
if(!CollectionUtils.isEmpty(listPayContactsManagement.getRecords())){
List<PayContactsManagement> list = listPayContactsManagement.getRecords();
list.forEach(p->{
if(!StringUtils.isBlank(p.getPhone())){
p.setPhone(PasswordUtil.decrypt(p.getPhone()));
}
if(!StringUtils.isBlank(p.getEmail())){
p.setEmail(PasswordUtil.decrypt(p.getEmail()));
}
});
listPayContactsManagement.setRecords(list);
}
return Result.OK(listPayContactsManagement);
}
/**
* 通过企业id查询用户
*
@@ -867,6 +825,10 @@ public class PayContactsManagementController extends JeroController<PayContactsM
@ApiOperation(value="联系人管理-excel导入数据", notes="联系人管理-excel导入数据")
@PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
List<Object> excelData = super.getExcelData(request, PayContactsManagement.class);
if (excelData.isEmpty()) {
throw new JeroBootException("导入数据为空,请填写数据之后重新导入!");
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@@ -80,11 +80,11 @@ public class PayIncomeContractCommon {
*/
public final static List<String> LIST_SPENDING_CONTRACT = Arrays.asList("合同编号","合同名称","签订单位","签订联系人","是否开口","负责人",
"部门名称","签订合同总金额","税率","未税金额","合同签订日期","合同终止日期","合同约定主要时点",
"应付金额","已付金额","未付金额","账款状态","合同约定付款次数","是否打包","打包年份");
"应收金额","已收金额","未收金额","账款状态","合同约定付款次数");
/**
* 支出合同分期信息excel 表头
*/
public final static List<String> LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","阶段应付","阶段应付时间","阶段实付","阶段实付时间");
public final static List<String> LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","阶段应收","阶段应收时间","阶段实收","阶段实收时间");
/**
* 来源(1:收入合同,2:打包管理)
@@ -287,7 +287,6 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
map.put("terminationDate",DateUtils.date2Str(p.getTerminationDate(),new SimpleDateFormat("yyyy-MM-dd")));
map.put("opening",sysBaseAPI.translateDict("yn",String.valueOf(p.getOpening())));
map.put("accountStatus",sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(p.getAccountStatus())));
map.put("pack",sysBaseAPI.translateDict("yn",String.valueOf(p.getPack())));
List<PaySpendingContractInstallment> listSub = listPaySpendingContractInstallment.stream().filter(item->
Objects.equals(p.getId(),item.getContractId())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listSub)){
@@ -330,8 +329,6 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
filedsList.add(new ExcelExportEntity("未收金额", "outstandingAmount"));
filedsList.add(new ExcelExportEntity("账款状态", "accountStatus"));
filedsList.add(new ExcelExportEntity("合同约定付款次数", "contractPaymentTimes"));
filedsList.add(new ExcelExportEntity("是否打包", "pack"));
filedsList.add(new ExcelExportEntity("打包年份", "packYear"));
int count = mapCount.get("count");
if(count > 0){
for (int i = 1; i <= count; i++){
@@ -134,25 +134,25 @@ public class PaySpendingContract implements Serializable {
@ApiModelProperty(value = "合同约定主要时点")
@Size(max = 200, message = "合同约定主要时点不能大于200个字符")
private String contractTimePoints;
/**应付金额*/
@Excel(name = "应付金额", width = 15)
@ApiModelProperty(value = "应付金额")
@NotNull(message = "应付金额不能为空")
/**应收金额*/
@Excel(name = "应收金额", width = 15)
@ApiModelProperty(value = "应收金额")
@NotNull(message = "应收金额不能为空")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@DecimalMax(value = "9999999999.99",message = "应付金额格式错误")
@DecimalMax(value = "9999999999.99",message = "应收金额格式错误")
private BigDecimal accountsReceivableAmount;
/**已付金额*/
@Excel(name = "已付金额", width = 15)
@ApiModelProperty(value = "已付金额")
@NotNull(message = "已付金额不能为空")
/**已收金额*/
@Excel(name = "已收金额", width = 15)
@ApiModelProperty(value = "已收金额")
@NotNull(message = "已收金额不能为空")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@DecimalMax(value = "9999999999.99",message = "已付金额格式错误")
@DecimalMax(value = "9999999999.99",message = "已收金额格式错误")
private BigDecimal amountReceived;
/**未付金额*/
@Excel(name = "未付金额", width = 15)
@ApiModelProperty(value = "未付金额")
/**未收金额*/
@Excel(name = "未收金额", width = 15)
@ApiModelProperty(value = "未收金额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@DecimalMax(value = "9999999999.99",message = "未付金额格式错误")
@DecimalMax(value = "9999999999.99",message = "未收金额格式错误")
private BigDecimal outstandingAmount;
/**账款状态(1:未支付,2:部分支付,3:已付全款)*/
@Excel(name = "账款状态(1:未支付,2:部分支付,3:已付全款)", width = 15)
@@ -47,30 +47,30 @@ public class PaySpendingContractInstallment implements Serializable {
@NotEmpty(message = "阶段不能为空")
@Size(max = 50, message = "阶段长度不能大于50个字符")
private String phaseName;
/**应付金额*/
@Excel(name = "阶段应付金额", width = 15)
@ApiModelProperty(value = "应付金额")
@NotNull(message = "阶段应付不能为空")
@DecimalMax(value = "9999999999.99",message = "阶段应付格式错误")
/**应收金额*/
@Excel(name = "阶段应收金额", width = 15)
@ApiModelProperty(value = "应收金额")
@NotNull(message = "阶段应收不能为空")
@DecimalMax(value = "9999999999.99",message = "阶段应收格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal accountsReceivableAmount;
/**应付时间*/
@Excel(name = "阶段应付时间", width = 15, format = "yyyy-MM-dd")
/**应收时间*/
@Excel(name = "阶段应收时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "应付时间")
@ApiModelProperty(value = "应收时间")
private Date accountsReceivableTime;
/**实付金额*/
@Excel(name = "阶段实付金额", width = 15)
@ApiModelProperty(value = "阶段实付金额")
@DecimalMax(value = "9999999999.99",message = "阶段实付格式错误")
/**实收金额*/
@Excel(name = "阶段实收金额", width = 15)
@ApiModelProperty(value = "阶段实收金额")
@DecimalMax(value = "9999999999.99",message = "阶段实收格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal paidAmount;
/**实付时间*/
@Excel(name = "实付时间", width = 15, format = "yyyy-MM-dd")
/**实收时间*/
@Excel(name = "实收时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "实付时间")
@ApiModelProperty(value = "实收时间")
private Date paidTime;
/**创建人*/
@ApiModelProperty(value = "创建人")
@@ -294,9 +294,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
});
int count1 = count - listSpendingContract.size();
if(count1 != 0){
Pattern p = Pattern.compile("[0-9]*");
Matcher m = p.matcher(String.valueOf(count1 / 5));
if (!m.matches()){
if (count1 % 5 != 0){
throw new JeroBootException("文件格式有误,请下载模板后上传!");
}
int count2 = count1 / listSpendingContractInstallment.size();
@@ -610,27 +608,6 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
}
paySpendingContract.setContractPaymentTimes(map.get(17));
if(StringUtils.isEmpty(map.get(18))){
sb.append("第").append(n).append("行:是否打包不能为空,请修改。<br/>");
}else{
mapPack.forEach((k,v)->{
if(Objects.equals(map.get(18),k)){
paySpendingContract.setPack(Integer.parseInt(v));
}
});
if(Objects.isNull(paySpendingContract.getPack())){
sb.append("第").append(n).append("行:是否打包格式错误,请修改。<br/>");
paySpendingContract.setPack(2);
}
// 打包获取打包年份
if(Objects.equals(paySpendingContract.getPack(),PayIncomeContractCommon.PACK1)){
if(StringUtils.isEmpty(map.get(19))){
sb.append("第").append(n).append("行:打包年份不能为空,请修改。<br/>");
}else{
paySpendingContract.setPackYear(map.get(19));
}
}
}
return paySpendingContract;
}
@@ -62,12 +62,6 @@ public class PaySpendingContractExcelModel implements Serializable {
/**合同约定付款次数*/
@Excel(name = "合同约定付款次数", width = 15)
private String contractPaymentTimes;
/**是否打包(1:是,0:否)*/
@Excel(name = "是否打包", width = 15)
private Integer pack;
/**打包年份*/
@Excel(name = "打包年份", width = 15)
private String packYear;
/**阶段名称*/
@Excel(name = "1阶段", width = 15)
private String phaseName1;
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.payFileDownloadRecord.mapper.PayFileDownloadRecordMapper">
<mapper namespace="org.jeecg.modules.demo.fileDownloadRecord.mapper.PayFileDownloadRecordMapper">
</mapper>
@@ -41,6 +41,8 @@ import com.jero.member.mapper.PayMemberProjectMapper;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.entity.PayCommonProject;
@@ -109,6 +111,8 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
private IPayCompanyManagementService payCompanyManagementService;
@Resource
private IPayPaymentRecordService payPaymentRecordService;
@Resource
private ISysUserService sysUserService;
@Override
@@ -545,16 +549,23 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
//查父表
PayMeeting payMeeting = payMeetingMapper.selectById(meeting.getMeetingId());
LambdaQueryWrapper<SysUser> queryPayMeetingSysUser = new LambdaQueryWrapper<>();
queryPayMeetingSysUser.eq(SysUser::getId,payMeeting.getDirectorId());
List<SysUser> sysPayMeetingUser = sysUserService.list(queryPayMeetingSysUser);
//逗号拼接邮寄信息
if(i==0){
projectName.append(payMeeting.getMeetingName());
chargeCompanyName.append(meeting.getCompanyName());
principalName.append(payMeeting.getDirectorName());
if(!CollectionUtils.isEmpty(sysPayMeetingUser)) {
principalName.append(sysPayMeetingUser.get(0).getRealname());
}
principalId.append(payMeeting.getDirectorId());
}else{
projectName.append(",").append(payMeeting.getMeetingName());
chargeCompanyName.append(",").append(meeting.getCompanyName());
principalName.append(",").append(payMeeting.getDirectorName());
if(!CollectionUtils.isEmpty(sysPayMeetingUser)) {
principalName.append(",").append(sysPayMeetingUser.get(0).getRealname());
}
principalId.append(",").append(payMeeting.getDirectorId());
}
break;
@@ -572,16 +583,23 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
//查父表
PayMemberProject payMemberProject = payMemberProjectMapper.selectById(memberProject.getProjectId());
LambdaQueryWrapper<SysUser> queryPayMemberProjectSysUser = new LambdaQueryWrapper<>();
queryPayMemberProjectSysUser.eq(SysUser::getId,payMemberProject.getDirectorId());
List<SysUser> sysPayMemberProjectUser = sysUserService.list(queryPayMemberProjectSysUser);
//逗号拼接邮寄信息
if(i==0){
projectName.append(payMemberProject.getProjectName());
chargeCompanyName.append(memberProject.getCompanyName());
principalName.append(payMemberProject.getDirectorName());
if(!CollectionUtils.isEmpty(sysPayMemberProjectUser)) {
principalName.append(sysPayMemberProjectUser.get(0).getRealname());
}
principalId.append(payMemberProject.getDirectorId());
}else{
projectName.append(",").append(payMemberProject.getProjectName());
chargeCompanyName.append(",").append(memberProject.getCompanyName());
principalName.append(",").append(payMemberProject.getDirectorName());
if(!CollectionUtils.isEmpty(sysPayMemberProjectUser)) {
principalName.append(",").append(sysPayMemberProjectUser.get(0).getRealname());
}
principalId.append(",").append(payMemberProject.getDirectorId());
}
break;
@@ -217,8 +217,8 @@ public class CommitteeMeetingController extends JeroController<PayMeeting, IPayM
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.COMMITTEE_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -90,13 +90,9 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
if (StringUtils.isNotBlank(particularYear)) {
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )", particularYear);
}
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("committeeMeetingSituation:search")) {
queryWrapper.eq("pm.director_id", loginUser.getId());
}
queryWrapper.eq("pm.meeting_type",MEETING_TYPE);
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -118,27 +114,11 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
if (!Objects.equals(payMeeting.getMeetingType(),MEETING_TYPE)){
throw new JeroBootException("数据权限不足");
}
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation,MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -147,8 +127,7 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.checkCan(payMeetingSituationVO.getId(),MEETING_TYPE);
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO,MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -160,7 +139,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-通过id删除", notes = "参会人员信息-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id") String id) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
payMeetingSituationService.deleteById(id);
return Result.OK("删除成功!");
}
@@ -174,9 +152,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
List<String> stringList = Arrays.asList(ids.split(","));
for (String id : stringList) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
}
this.payMeetingSituationService.deleteByIds(stringList);
return Result.OK("批量删除成功!");
}
@@ -189,7 +164,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-通过id查询", notes = "参会人员信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name = "id") String id) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
PayMeetingSituation payMeetingSituation = payMeetingSituationService.queryById(id);
if (payMeetingSituation == null) {
return Result.error("未找到对应数据");
@@ -312,10 +286,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "设置对接人", notes = "设置对接人")
@PostMapping(value = "/addDock")
public Result<?> addDock(@RequestBody AddDockVO addDockVO) {
List<String> meetingSituationIds = addDockVO.getMeetingSituationIds();
for (String id : meetingSituationIds) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
}
payMeetingSituationService.addDock(addDockVO);
return Result.OK("设置对接人成功!");
}
@@ -328,7 +298,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "审核付款凭证")
@PostMapping(value = "/check")
public Result<?> check(@RequestBody CheckVO checkVO) {
payMeetingSituationService.checkCan(checkVO.getId(),MEETING_TYPE);
payMeetingSituationService.check(checkVO);
return Result.OK("审核成功!");
}
@@ -341,7 +310,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "审核报名信息")
@PostMapping(value = "/checkRegister")
public Result<?> checkRegister(@RequestBody CheckVO checkVO) {
payMeetingSituationService.checkCan(checkVO.getId(),MEETING_TYPE);
payMeetingSituationService.checkRegister(checkVO);
return Result.OK("审核成功!");
}
@@ -216,8 +216,8 @@ public class InternalMeetingController extends JeroController<PayMeeting, IPayMe
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.INTERNATIONAL_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -8,38 +8,32 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.RolePermissionService;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.vo.*;
import com.jero.meeting.vo.excel.*;
import com.jero.project.common.PayProjectCommon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -61,6 +55,10 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
@Resource
private RolePermissionService rolePermissionService;
private final Integer MEETING_TYPE = MeetingCommon.INTERNATIONAL_MEETING_INT;
/**
* 分页列表查询
*/
@@ -71,14 +69,14 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
public Result<?> queryPageList(PayMeetingSituation payMeetingSituation,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
String particularYear = req.getParameter("particularYear");
HttpServletRequest request) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
String particularYear = request.getParameter("particularYear");
if (StringUtils.isNotBlank(particularYear)){
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +98,10 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +110,7 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -186,87 +172,15 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
@RequiresPermissions("internalMeetingSituation:export")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeetingSituation payMeetingSituation) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
List<PayMeetingSituation> pageList = payMeetingSituationService.list(queryWrapper);
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
pageList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
}
if (pageList.isEmpty()) {
throw new JeroBootException("没有数据");
}
String meetingType = payMeetingSituationService.getMeetingType(payMeetingSituation);
List<Object> exportList = new ArrayList<>();
for (PayMeetingSituation meetingSituation : pageList) {
String companyContactId = meetingSituation.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
meetingSituation.setCompanyContactName(contactsManagement.getName());
meetingSituation.setPost(contactsManagement.getPost());
meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId());
meetingSituation.setCompanyName(companyManagement.getCompanyName());
switch (meetingType) {
case MeetingCommon.STANDARD_MEETING:
//保存数据
StandardsSituationExcel standardsSituationExcel = new StandardsSituationExcel();
BeanUtils.copyProperties(meetingSituation, standardsSituationExcel);
exportList.add(standardsSituationExcel);
// 工作组项目查询工作组项目名
break;
case MeetingCommon.WORKING_GROUP_MEETING:
//保存数据
WorkingGroupSituationExcel workingGroupSituationExcel = new WorkingGroupSituationExcel();
BeanUtils.copyProperties(meetingSituation, workingGroupSituationExcel);
exportList.add(workingGroupSituationExcel);
break;
case MeetingCommon.INTERNATIONAL_MEETING:
//保存数据
InternationalSituationExcel internationalSituationExcel = new InternationalSituationExcel();
BeanUtils.copyProperties(meetingSituation, internationalSituationExcel);
exportList.add(internationalSituationExcel);
break;
case MeetingCommon.OTHER_MEETING:
//保存数据
SituationExcel situationExcel = new SituationExcel();
BeanUtils.copyProperties(meetingSituation, situationExcel);
exportList.add(situationExcel);
break;
case MeetingCommon.COMMITTEE_MEETING:
//保存数据
CommitteeSituationExcel committeeSituationExcel = new CommitteeSituationExcel();
BeanUtils.copyProperties(meetingSituation, committeeSituationExcel);
exportList.add(committeeSituationExcel);
break;
}
}
Class<?> classToExport = null;
switch (meetingType) {
case MeetingCommon.WORKING_GROUP_MEETING:
classToExport = WorkingGroupSituationExcel.class;
break;
case MeetingCommon.STANDARD_MEETING:
classToExport = StandardsSituationExcel.class;
break;
case MeetingCommon.INTERNATIONAL_MEETING:
classToExport = InternationalSituationExcel.class;
break;
case MeetingCommon.OTHER_MEETING:
classToExport = SituationExcel.class;
break;
case MeetingCommon.COMMITTEE_MEETING:
classToExport = CommitteeSituationExcel.class;
break;
}
return super.exportListXls(exportList, classToExport, "参会人员信息");
List<Object> objects = payMeetingSituationService.MeetingSituationGetModelAndView(request, payMeetingSituation,MEETING_TYPE);
Class<?> aClass = payMeetingSituationService.getaClass(MEETING_TYPE);
return super.exportListXls(objects, aClass, "参会人员信息");
}
/**
* 设置对接人
*/
@@ -216,8 +216,8 @@ public class OtherMeetingController extends JeroController<PayMeeting, IPayMeeti
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.OTHER_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -61,6 +61,8 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = MeetingCommon.OTHER_MEETING_INT;
/**
* 分页列表查询
*/
@@ -78,7 +80,7 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +102,10 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +114,7 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -62,36 +62,38 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = null;
/**
* 分页列表查询
*/
@CompanyNameTranslate
@RequiresPermissions("meetingSituation:search")
@ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(PayMeetingSituation payMeetingSituation,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
String particularYear = req.getParameter("particularYear");
if (StringUtils.isNotBlank(particularYear)){
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
//汇款并且缴费凭证为空
if (Objects.equals(payMode,1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())){
meetingSituation.setIdentification(PayProjectCommon.YES);
}else {
meetingSituation.setIdentification(PayProjectCommon.NO);
}
}
return Result.OK(pageList);
}
//@CompanyNameTranslate
//@RequiresPermissions("meetingSituation:search")
//@ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询")
//@GetMapping(value = "/page")
//public Result<?> queryPageList(PayMeetingSituation payMeetingSituation,
// @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
// @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
// HttpServletRequest req) {
// QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
// String particularYear = req.getParameter("particularYear");
// if (StringUtils.isNotBlank(particularYear)){
// queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
// }
// Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
// IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
// List<PayMeetingSituation> situationList = pageList.getRecords();
// for (PayMeetingSituation meetingSituation : situationList) {
// Integer payMode = meetingSituation.getPayMode();
// //汇款并且缴费凭证为空
// if (Objects.equals(payMode,1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())){
// meetingSituation.setIdentification(PayProjectCommon.YES);
// }else {
// meetingSituation.setIdentification(PayProjectCommon.NO);
// }
// }
// return Result.OK(pageList);
//}
/**
* 合同查询未关联参会人列表
@@ -136,7 +138,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
@@ -152,17 +154,17 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
}
/**
* 编辑
*/
@AutoLog(value = "参会人员信息-编辑")
@RequiresPermissions("meetingSituation:edit")
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
return Result.OK("编辑成功!");
}
///**
// * 编辑
// */
//@AutoLog(value = "参会人员信息-编辑")
//@RequiresPermissions("meetingSituation:edit")
//@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
//@PostMapping(value = "/edit")
//public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
// payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
// return Result.OK("编辑成功!");
//}
/**
* 企业端上传缴费凭证 编辑
@@ -243,8 +243,8 @@ public class StandardsMeetingController extends JeroController<PayMeeting, IPayM
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.STANDARD_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -61,6 +61,8 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = MeetingCommon.STANDARD_MEETING_INT;
/**
* 分页列表查询
*/
@@ -78,7 +80,7 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +102,10 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +114,7 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -218,8 +218,8 @@ public class WorkGroupMeetingController extends JeroController<PayMeeting, IPayM
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.WORKING_GROUP_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -61,6 +61,8 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = MeetingCommon.WORKING_GROUP_MEETING_INT;
/**
* 分页列表查询
*/
@@ -78,7 +80,7 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +102,10 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +114,7 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -22,5 +22,4 @@ public interface PayMeetingSituationMapper extends BaseMapper<PayMeetingSituatio
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> queryWrapper);
}
@@ -4,11 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeetingSituation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.vo.*;
import org.jetbrains.annotations.Nullable;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -22,12 +23,12 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
/**
* 保存
*/
void add(PayMeetingSituation payMeetingSituation);
void add(PayMeetingSituation payMeetingSituation, Integer meetingType);
/**
* 更新
*/
void editById(PayMeetingSituationVO payMeetingSituationVO);
void editById(PayMeetingSituationVO payMeetingSituationVO, Integer meetingType);
Boolean checkMember(String companyName);
@@ -77,7 +78,10 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
void editTerminal(PayMeetingSituationVO payMeetingSituationVO);
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper);
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper,Integer meetingType);
void checkCan(String situationId, Integer meetingCommon);
List<Object> MeetingSituationGetModelAndView(HttpServletRequest request, PayMeetingSituation payMeetingSituation, Integer meetingType);
@Nullable
Class<?> getaClass(Integer meetingType);
}
@@ -45,6 +45,7 @@ import com.jero.meeting.valid.group.WorkingGroupMeeting;
import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.PublishReminderVO;
import com.jero.meeting.vo.UploadFileVO;
import com.jero.meeting.vo.excel.*;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.entity.PayWorkingGroup;
@@ -562,23 +563,40 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
}
Page<PayMeeting> page = new Page<>(pageNo, pageSize);
IPage<PayMeeting> pageList;
if (!rolePermissionService.getRolePermission("generalProject:search")) {
if (!payMeeting.getMeetingType().equals(MeetingCommon.INTERNATIONAL_MEETING_INT)) {
payMeeting.setDirectorId(sysUser.getId());
pageList = page(page, queryWrapper);
String permission = null;
Integer meetingType = payMeeting.getMeetingType();
if (meetingType != null) {
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)){
permission = "workGroupMeeting:search";
}else if (meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)){
permission = "standardMeeting:search";
}else if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
permission = "internalMeeting:search";
}else if (meetingType.equals(MeetingCommon.OTHER_MEETING_INT)){
permission = "otherMeeting:search";
}else if (meetingType.equals(MeetingCommon.COMMITTEE_MEETING_INT)){
permission = "committeeMeeting:search";
}
}
if (StringUtils.isNotBlank(permission)) {
if (!Objects.equals(permission,"standardMeeting:search") && !rolePermissionService.getRolePermission(permission)) {
if (!meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)) {
queryWrapper.eq("director_id", sysUser.getId());
pageList = page(page, queryWrapper);
}else {
queryWrapper.and(
a -> a.eq("director_id", sysUser.getId())
.or()
.eq("dock_id", sysUser.getId())
);
pageList = baseMapper.internelPage(page,queryWrapper);
}
}else {
queryWrapper.and(
a -> a.eq("director_id", sysUser.getId())
.or()
.eq("dock_id", sysUser.getId())
);
pageList = baseMapper.internelPage(page,queryWrapper);
pageList = page(page, queryWrapper);
}
}else {
pageList = page(page, queryWrapper);
}
for (PayMeeting meeting : pageList.getRecords()) {
//查询会议负责人
LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId());
@@ -19,9 +19,11 @@ import com.jero.common.service.RolePermissionService;
import com.jero.common.service.SendMessageService;
import com.jero.common.service.ContractCreateProjectSendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
@@ -44,6 +46,7 @@ import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.valid.group.*;
import com.jero.meeting.vo.*;
import com.jero.meeting.vo.excel.*;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayPaymentRecord;
@@ -59,15 +62,18 @@ import com.jero.util.module.ObjRecordUtilModule;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.transaction.annotation.Transactional;
@@ -123,9 +129,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
* 保存
*/
@Override
public void add(PayMeetingSituation payMeetingSituation) {
public void add(PayMeetingSituation payMeetingSituation, Integer meetingType) {
String meetingId1 = payMeetingSituation.getMeetingId();
PayMeeting payMeeting1 = meetingService.getById(meetingId1);
if (meetingType != null && !Objects.equals(payMeeting1.getMeetingType(), meetingType)) {
throw new JeroBootException("数据权限不足");
}
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!Objects.equals(payMeeting1.getDirectorId(),loginUser.getId())) {
throw new JeroBootException("只有会议负责人可以新增参会人");
@@ -706,7 +716,20 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
}
@Override
public IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper) {
public IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper,Integer meetingType) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("committeeMeetingSituation:search")) {
if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
queryWrapper.and(
a -> a.eq("pms.dock_id",loginUser.getId())
.or()
.eq("pm.director_id",loginUser.getId())
);
}else {
queryWrapper.eq("pm.director_id", loginUser.getId());
}
}
queryWrapper.eq("pm.meeting_type",meetingType);
return baseMapper.pageListContract(page,queryWrapper);
}
@@ -714,12 +737,17 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
* 更新
*/
@Override
public void editById(PayMeetingSituationVO payMeetingSituationVO) {
public void editById(PayMeetingSituationVO payMeetingSituationVO, Integer meetingType1) {
String meetingId = payMeetingSituationVO.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
String meetingType = payMeeting.getMeetingType().toString();
String id = payMeetingSituationVO.getId();
PayMeetingSituation payMeetingSituation = this.getById(id);
if (meetingType1 != null && !Objects.equals(payMeeting.getMeetingType(),meetingType1)) {
throw new JeroBootException("数据权限不足");
}
//把原始数据保存下来,后面用于判断修改了那些字段
PayMeetingSituation oldObject = new PayMeetingSituation();
BeanUtils.copyProperties(payMeetingSituation, oldObject);
@@ -775,8 +803,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
}
HashMap<String, String> map = new HashMap<>();
map.put("meetingName", payMeeting.getMeetingName());
map.put("userName1", sysUser.getUsername());
map.put("userName2", payMeetingSituation1.getCompanyContactName());
map.put("username1", sysUser.getRealname());
map.put("username2", payMeetingSituation1.getCompanyContactName());
map.put("record", record);
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG8.getCode());
@@ -1176,13 +1204,91 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
return date.after(begin) && date.before(end);
}
@Override
public void checkCan(String situationId, Integer meetingCommon){
PayMeetingSituation payMeetingSituation = getById(situationId);
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
if (!Objects.equals(payMeeting.getMeetingType(),meetingCommon)) {
throw new JeroBootException("数据权限不足");
public List<Object> MeetingSituationGetModelAndView(HttpServletRequest request, PayMeetingSituation payMeetingSituation, Integer meetingType) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
String particularYear = request.getParameter("particularYear");
if (StringUtils.isNotBlank(particularYear)){
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
IPage<PayMeetingSituation> pageListContract = pageListContract(new Page<>(-1, -1), queryWrapper,meetingType);
List<PayMeetingSituation> pageList = pageListContract.getRecords();
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
pageList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
}
if (pageList.isEmpty()) {
throw new JeroBootException("没有数据");
}
String meetingType1 = getMeetingType(payMeetingSituation);
List<Object> exportList = new ArrayList<>();
for (PayMeetingSituation meetingSituation : pageList) {
String companyContactId = meetingSituation.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
meetingSituation.setCompanyContactName(contactsManagement.getName());
meetingSituation.setPost(contactsManagement.getPost());
meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId());
meetingSituation.setCompanyName(companyManagement.getCompanyName());
switch (meetingType1) {
case MeetingCommon.STANDARD_MEETING:
//保存数据
StandardsSituationExcel standardsSituationExcel = new StandardsSituationExcel();
BeanUtils.copyProperties(meetingSituation, standardsSituationExcel);
exportList.add(standardsSituationExcel);
// 工作组项目查询工作组项目名
break;
case MeetingCommon.WORKING_GROUP_MEETING:
//保存数据
WorkingGroupSituationExcel workingGroupSituationExcel = new WorkingGroupSituationExcel();
BeanUtils.copyProperties(meetingSituation, workingGroupSituationExcel);
exportList.add(workingGroupSituationExcel);
break;
case MeetingCommon.INTERNATIONAL_MEETING:
//保存数据
InternationalSituationExcel internationalSituationExcel = new InternationalSituationExcel();
BeanUtils.copyProperties(meetingSituation, internationalSituationExcel);
exportList.add(internationalSituationExcel);
break;
case MeetingCommon.OTHER_MEETING:
//保存数据
SituationExcel situationExcel = new SituationExcel();
BeanUtils.copyProperties(meetingSituation, situationExcel);
exportList.add(situationExcel);
break;
case MeetingCommon.COMMITTEE_MEETING:
//保存数据
CommitteeSituationExcel committeeSituationExcel = new CommitteeSituationExcel();
BeanUtils.copyProperties(meetingSituation, committeeSituationExcel);
exportList.add(committeeSituationExcel);
break;
}
}
return exportList;
}
@Nullable
@Override
public Class<?> getaClass(Integer meetingType) {
Class<?> classToExport = null;
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)){
classToExport = WorkingGroupSituationExcel.class;
}else if (meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)){
classToExport = StandardsSituationExcel.class;
}else if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
classToExport = InternationalSituationExcel.class;
}else if (meetingType.equals(MeetingCommon.OTHER_MEETING_INT)){
classToExport = SituationExcel.class;
}else if (meetingType.equals(MeetingCommon.COMMITTEE_MEETING_INT)){
classToExport = CommitteeSituationExcel.class;
}
return classToExport;
}
}
@@ -35,7 +35,6 @@ public class CommonPeopleVO{
/**邮寄联系人地址*/
@Excel(name = "地址", width = 15)
@ApiModelProperty(value = "邮寄联系人地址")
@NotBlank(message = "地址不能为空",groups = NotPack.class)
private String postContactAddress;
/**缴费方式*/
@@ -82,7 +82,7 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("generalProject:search")) {
if (!rolePermissionService.getRolePermission("memberProject:search")) {
payMemberProject.setDirectorId(sysUser.getId());
}
QueryWrapper<PayMemberProject> queryWrapper = QueryGenerator.initQueryWrapper(payMemberProject, req.getParameterMap());
@@ -257,6 +257,10 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
@RequiresPermissions("memberProject:export")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMemberProject payMemberProject) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("memberProject:search")) {
payMemberProject.setDirectorId(sysUser.getId());
}
QueryWrapper<PayMemberProject> queryWrapper = QueryGenerator.initQueryWrapper(payMemberProject, request.getParameterMap());
List<PayMemberProject> pageList = memberProjectService.list(queryWrapper);
// 过滤选中数据
@@ -30,7 +30,8 @@
from
(
<!-- 普通项目-->
select c.id,c.charge_project,c.invoice_amount, c.charge_use, c.principal_id,c.principal_name,c.contacts_temporary_id,c.contacts_temporary_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType,'' as phone,'' as email
select c.id,c.charge_project,c.invoice_amount, c.charge_use, c.principal_id,c.principal_name,c.contacts_temporary_id,c.contacts_temporary_name,c.charge_company_temporary_name,c.receivable_amount,
if(c.paid_amount is null or c.paid_amount = '','0.00',c.paid_amount) as paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType,'' as phone,'' as email
from pay_common_project c
<where>
<if test="companyId != null and companyId != ''">
@@ -45,7 +46,8 @@
</where>
<!--工作组项目-->
UNION ALL
select gsub.id,g.working_group_project,gsub.invoice_amount, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'',''
select gsub.id,g.working_group_project,gsub.invoice_amount, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,
if(gsub.paid_amount is null or gsub.paid_amount = '','0.00',gsub.paid_amount) as paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'',''
from pay_working_group g
inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
<where>
@@ -61,7 +63,8 @@
</where>
<!-- 会议项目-->
UNION ALL
select sit.id,meeting.meeting_name,sit.invoice_amount,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_contact_temporary_id,sit.company_contact_name,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3,sit.phone,''
select sit.id,meeting.meeting_name,sit.invoice_amount,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_contact_temporary_id,sit.company_contact_name,sit.company_name,sit.amount_receivable,
if(sit.paid_amount is null or sit.paid_amount = '','0.00',sit.paid_amount) as paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3,sit.phone,''
from pay_meeting meeting
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
<where>
@@ -78,7 +81,8 @@
</where>
<!-- 会员项目-->
UNION ALL
select msub.id,pmp.project_name,msub.invoice_amount,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_contact_temporary_id,msub.company_contact_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4,'',''
select msub.id,pmp.project_name,msub.invoice_amount,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_contact_temporary_id,msub.company_contact_name,msub.company_name,msub.amount_receivable,
if(msub.paid_amount is null or msub.paid_amount = '','0.00',msub.paid_amount) as paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4,'',''
from pay_member_project pmp
inner join pay_member_project_subitem msub on pmp.id = msub.project_id
<where>
@@ -94,7 +98,8 @@
</where>
<!-- 标协会员项目-->
UNION ALL
select tmsub.id,tmember.project_name,tmsub.invoice_amount,tmsub.charge_use,'','','',tmsub.liaison_man,tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,mobile,email
select tmsub.id,tmember.project_name,tmsub.invoice_amount,tmsub.charge_use,'','','',tmsub.liaison_man,tmsub.company_name,tmsub.amount_receivable,
if(tmsub.paid_amount is null or tmsub.paid_amount = '','0.00',tmsub.paid_amount) as paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,mobile,email
from tb_member_project tmember
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
<where>
@@ -120,7 +125,7 @@
<if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</if>
GROUP BY ppcp.project_id ORDER BY project.paid_amount asc,ppcp.create_time desc
GROUP BY ppcp.project_id ORDER BY project.paid_amount asc,project.create_time desc
</select>
<select id="queryPackListAll" resultType="com.jero.project.entity.PayCommonProject">
SELECT * FROM (
@@ -59,7 +59,13 @@ public class ObjRecordUtil {
Dict dict = field1.getAnnotation(Dict.class);
if (pn != null) {
Object old = field1.get(oldObj);
if (Objects.isNull(old)) {
old = "";
}
Object newo = field2.get(newObj);
if (Objects.isNull(newo)) {
newo = "";
}
if (pn.value().contains("id")) {
break;
} else if (pn.value().contains("文件")) {
@@ -0,0 +1,59 @@
package com.jero.modules.oss.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: pay_file_download_record
* @Author: jeecg-boot
* @Date: 2021-08-30
* @Version: V1.0
*/
@Data
@TableName("pay_file_download_record")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="pay_file_download_record对象", description="pay_file_download_record")
public class FileDownloadRecord implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty(value = "文件id")
private String fileId;
/**用户id*/
@Excel(name = "用户id", width = 15)
@ApiModelProperty(value = "用户id")
private String userId;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@Excel(name = "下载时间", width = 15,exportFormat = "yyyy-MM-dd")
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新时间")
private java.util.Date updateTime;
}
@@ -0,0 +1,16 @@
package com.jero.modules.oss.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.oss.entity.FileDownloadRecord;
/**
* @Description: pay_file_download_record
* @Author: jeecg-boot
* @Date: 2021-08-30
* @Version: V1.0
*/
public interface FileDownloadRecordMapper extends BaseMapper<FileDownloadRecord> {
}
@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.oss.entity.OSSFile;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
public interface OSSFileMapper extends BaseMapper<OSSFile> {
/**
* 根据文件id获取文件名称
*/
String findFileNameByFileId(@Param("fileId")String fileId);
String findFileNameByFileId(@Param("fileId") String fileId);
void saveDownloadTimes(@Param("userId") String userId, @Param("fileId") String fileId, @Param("date") Date date);
}
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.oss.mapper.FileDownloadRecordMapper">
</mapper>
@@ -12,4 +12,7 @@
a.id = #{fileId}
</select>
<insert id="saveDownloadTimes">
insert into pay_file_download_record(id, file_id, file_name, file_path, company_name, download_name, meeting_name, create_by, create_time, update_by, update_time)
</insert>
</mapper>
@@ -17,4 +17,8 @@ public interface IOSSFileService extends IService<OSSFile> {
* @param ossFile
*/
void updateAndPush(OSSFile ossFile);
void saveDownloadTimes(String fileId,String userId);
Integer searchDownloadTimes(String fileId, String userId);
}
@@ -1,20 +1,25 @@
package com.jero.modules.oss.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.CommonUtils;
import com.jero.common.util.oss.OssBootUtil;
import com.jero.modules.oss.entity.FileDownloadRecord;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.mapper.OSSFileMapper;
import com.jero.modules.oss.mapper.FileDownloadRecordMapper;
import com.jero.modules.oss.service.IOSSFileService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
@Service("ossFileService")
public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> implements IOSSFileService {
@Resource
private FileDownloadRecordMapper fileDownloadRecordMapper;
@Override
public void upload(MultipartFile multipartFile) throws IOException {
String fileName = multipartFile.getOriginalFilename();
@@ -47,4 +52,20 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
AuthenticationUtils.post("/oss/file/updateAndPush",null,ossFile);
}
@Override
public void saveDownloadTimes(String fileId,String userId) {
FileDownloadRecord fileDownloadRecord = new FileDownloadRecord();
fileDownloadRecord.setFileId(fileId);
fileDownloadRecord.setUserId(userId);
fileDownloadRecordMapper.insert(fileDownloadRecord);
}
@Override
public Integer searchDownloadTimes(String fileId, String userId) {
QueryWrapper<FileDownloadRecord> wrapper = new QueryWrapper<>();
wrapper.eq("user_id",userId);
wrapper.eq("file_id",fileId);
return fileDownloadRecordMapper.selectCount(wrapper);
}
}
@@ -169,6 +169,11 @@ public class CommonController {
}
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
response.setContentType("application/force-download");// 设置强制下载不打开
if (type == null) {
if (fileName.contains(".jpg") || fileName.contains(".png") || fileName.contains(".gif") || fileName.contains(".jpeg")) {
response.setContentType("image/png;image/jpg;image/gif;image/jpeg");
}
}
outputStream = response.getOutputStream();
byte[] buf = new byte[1024];
int len;
@@ -217,6 +222,115 @@ public class CommonController {
}
/**
* 预览图片&下载文件
*
* @param id 传入文件id
* @param request
* @param response
*/
@GetMapping(value = "/userDownload/{id}")
public void download(@PathVariable String id,HttpServletRequest request, HttpServletResponse response,String type) {
// 查询数据表数据是否存在
LambdaQueryWrapper<OSSFile> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OSSFile::getId,id);
OSSFile ossFile = ossFileService.getOne(queryWrapper);
if( null == ossFile){
throw new JeroBootException("文件不存在..");
}
String fileUrl = ossFile.getUrl();
InputStream inputStream = null;
OutputStream outputStream = null;
try {
String fileName = "";
if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){
//本地下载
String filePath = uploadpath + File.separator + fileUrl;
File file = new File(filePath);
if(!file.exists()){
response.setStatus(404);
throw new RuntimeException("文件不存在..");
}
// 文件名称
fileName = file.getName();
inputStream = new BufferedInputStream(new FileInputStream(filePath));
}else if(CommonConstant.UPLOAD_TYPE_MINIO.equals(uploadType)){
// minio 下载
// 通过MinioUtil查询时 只需要桶后面的路径
String minioUrl = MinioUtil.getMinioUrl();
// Linux/unix 系统下文件路径分隔符为"/" 获取minio与存储桶的路径
minioUrl = minioUrl + MinioUtil.getBucketName() + "/";
String url = fileUrl.replace(minioUrl, "");
// 文件名称
fileName = ossFile.getFileName();
inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);
}
ossFileService.updateById(ossFile);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (loginUser.getIsCompanyUser()) {
Integer integer = ossFileService.searchDownloadTimes(ossFile.getId(), loginUser.getId());
if (integer >= 5) {
throw new JeroBootException("超出下载次数限制");
}
}
ossFileService.saveDownloadTimes(ossFile.getId(), loginUser.getId());
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
response.setContentType("application/force-download");// 设置强制下载不打开
if (type == null) {
if (fileName.contains(".jpg") || fileName.contains(".png") || fileName.contains(".gif") || fileName.contains(".jpeg")) {
response.setContentType("image/png;image/jpg;image/gif;image/jpeg");
}
}
outputStream = response.getOutputStream();
byte[] buf = new byte[1024];
int len;
while ((len = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, len);
}
response.flushBuffer();
//统计下载和上传次数
//if ("download".equals(type)) {
Integer downloadNumber = ossFile.getDownloadNumber();
if (downloadNumber == null) {
ossFile.setDownloadNumber(0);
} else {
ossFile.setDownloadNumber(downloadNumber + 1);
}
//} else if ("view".equals(type)) {
// Integer viewNumber = ossFile.getViewNumber();
// if (viewNumber == null) {
// ossFile.setViewNumber(0);
// } else {
// ossFile.setViewNumber(viewNumber + 1);
// }
// ossFileService.updateAndPush(ossFile);
//}
} catch (IOException e) {
log.error("预览文件失败" + e.getMessage());
response.setStatus(404);
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
}
}
/**
* @功能:pdf预览Iframe
* @param modelAndView
@@ -494,6 +494,19 @@ public class SysUserController {
}
return result;
}
@RequestMapping(value = "/queryByIdStandards", method = RequestMethod.GET)
public Result<SysUser> queryByIdStandards(@RequestParam(name = "id", required = true) String id) {
Result<SysUser> result = new Result<SysUser>();
SysUser sysUser = sysUserService.getById(id);
if (sysUser == null) {
return result.error500("未找到对应实体");
} else {
sysUser.setPhone(PasswordUtil.decrypt(sysUser.getPhone()));
return Result.OK(sysUser);
}
}
@RequiresPermissions("sys:user:list")
@RequestMapping(value = "/queryUserRole", method = RequestMethod.GET)
public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {