Merge remote-tracking branch 'origin/master'

This commit is contained in:
baozhipeng
2021-09-13 15:50:23 +08:00
10 changed files with 181 additions and 62 deletions
@@ -439,7 +439,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
updatePayPackCompany.eq(PayPackCompany::getPackChargeTotal,payPackCompany.getPackChargeTotal().add(receivableAmount));
updatePayPackCompany.eq(PayPackCompany::getReceiptExpense,payPackCompany.getReceiptExpense().add(paidAmount));
updatePayPackCompany.set(PayPackCompany::getId,payPackCompany.getId());
// todo 更新开票金额与未开票金额
payPackCompanyService.update(updatePayPackCompany);
// 添加打包企业成员
PayPackCompanyProject payPackCompanyProject = new PayPackCompanyProject();
@@ -499,14 +498,15 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(payCommonProject)){
throw new JeroBootException("项目不存在!");
}
// todo 缺少查询项目是否为打包企业,是:保持不变,不是:取消打包 将关联项目取消打包
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1) ){
// 合同为打包
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
// 查询打包项目来源是否为收入合同
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId());
queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayIncomeContractCommon.COME1);
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
// todo 如果在打包企业中&& 来源为支出合同,取消打包,变更打包企业金额 否则不进行操作
if(!CollectionUtils.isEmpty(listPayPackCompanyProject) && Objects.equals(listPayPackCompanyProject.get(0).getCome(),PayIncomeContractCommon.COME1)){
payPackCompanyService.update();
// 存在数据,取消打包,变更项目打包状态, 否则不进行操作
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId());
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername());
@@ -525,13 +525,25 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
}
// 更新项目id
payIncomeContractAssociated.setProjectId(listPayWorkingGroupSubItem.getId());
// todo 不是打包企业 取消打包 将关联项目取消打包
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK0);
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.getId());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
// 合同为打包
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
// 查询打包项目来源是否为收入合同
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,listPayWorkingGroupSubItem.getId());
queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayIncomeContractCommon.COME1);
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
// 存在数据,取消打包,变更项目打包状态, 否则不进行操作
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId());
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK0);
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.getId());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
}
}
break;
case PayIncomeContractCommon.PROJECT_TYPE3:
// todo 会议项目
@@ -9,6 +9,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -19,10 +20,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.data.entity.PayCaseCommitteeExcel;
import com.jero.data.entity.PayCaseCommitteeSubitem;
import com.jero.data.entity.PayDistributionRecord;
import com.jero.data.entity.PayFileDownloadRecord;
import com.jero.data.entity.*;
import com.jero.data.service.IPayFileDownloadRecordService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
@@ -71,13 +69,36 @@ public class PayFileDownloadRecordController extends JeroController<PayFileDownl
@AutoLog(value = "资料下载记录-分页列表查询")
@ApiOperation(value="资料下载记录-分页列表查询", notes="资料下载记录-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(PayFileDownloadRecord payFileDownloadRecord,
public Result<?> queryPageList(payFileDownloadRecordPage payFileDownloadRecord,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayFileDownloadRecord> queryWrapper = QueryGenerator.initQueryWrapper(payFileDownloadRecord, req.getParameterMap());
QueryWrapper<PayFileDownloadRecord> queryWrapper = new QueryWrapper<>();
if (ObjectUtil.isNotEmpty(payFileDownloadRecord.getStartTime()) && ObjectUtil.isNotEmpty(payFileDownloadRecord.getEndTime())) {
queryWrapper.gt("create_time", payFileDownloadRecord.getStartTime());
queryWrapper.lt("create_time", payFileDownloadRecord.getEndTime());
}else if (ObjectUtil.isNotEmpty(payFileDownloadRecord.getStartTime())){
queryWrapper.gt("create_time", payFileDownloadRecord.getStartTime());
}else if (ObjectUtil.isNotEmpty(payFileDownloadRecord.getEndTime())){
queryWrapper.lt("create_time", payFileDownloadRecord.getEndTime());
}
if (ObjectUtil.isNotEmpty(payFileDownloadRecord.getFileName())){
queryWrapper.like("file_name",payFileDownloadRecord.getFileName());
}
if (ObjectUtil.isNotEmpty(payFileDownloadRecord.getMeetingName())){
queryWrapper.like("meeting_name",payFileDownloadRecord.getMeetingName());
}
if (ObjectUtil.isNotEmpty(payFileDownloadRecord.getDownloadName())){
queryWrapper.like("download_name",payFileDownloadRecord.getDownloadName());
}
if (ObjectUtil.isNotEmpty(payFileDownloadRecord.getCompanyName())){
queryWrapper.like("company_name",payFileDownloadRecord.getCompanyName());
}
queryWrapper.orderByDesc("create_time");
Page<PayFileDownloadRecord> page = new Page<PayFileDownloadRecord>(pageNo, pageSize);
Page<PayFileDownloadRecord> page = new Page<>(pageNo, pageSize);
IPage<PayFileDownloadRecord> pageList = payFileDownloadRecordService.page(page, queryWrapper);
return Result.OK(pageList);
}
@@ -92,7 +113,9 @@ public class PayFileDownloadRecordController extends JeroController<PayFileDownl
HttpServletResponse response = requestAttributes.getResponse();
OSSFile byId = iossFileService.getById(fileid);
String fileName = byId.getFileName();
String url = byId.getUrl();
int i = url.indexOf("/");
String fileName = url.substring(i+1);
// 设置信息给客户端不解析
String type = new MimetypesFileTypeMap().getContentType(fileName);
// 设置contenttype,即告诉客户端所发送的数据属于什么类型
@@ -129,26 +152,42 @@ public class PayFileDownloadRecordController extends JeroController<PayFileDownl
@AutoLog(value = "资料下载记录-导出")
@ApiOperation(value="资料下载记录-导出", notes="资料下载记录-导出")
@GetMapping(value = "/exportXls",produces = "text/text;charset=utf-8")
public ModelAndView customExportXlsList(@RequestParam(name="ids",required = true) String ids) {
ArrayList<String> strings = new ArrayList<>(Arrays.asList(ids.split(",")));
ArrayList<PayFileDownloadRecord> list = new ArrayList<>();
for(String id:strings) {
LambdaQueryWrapper<PayFileDownloadRecord> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
objectLambdaQueryWrapper.eq(StringUtils.isNotBlank(ids), PayFileDownloadRecord::getId, id);
PayFileDownloadRecord one = payFileDownloadRecordService.getOne(objectLambdaQueryWrapper,false);
// Step.3 AutoPoi 导出Excelaw
list.add(one);
}
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, "资料下载记录"); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, PayFileDownloadRecord.class);
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams("资料下载记录", "资料下载记录");
exportParams.setImageBasePath(upLoadPath);
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, list);
return mv;
public ModelAndView customExportXlsList(@RequestParam(name="ids",required = false) String ids) {
if(StringUtils.isBlank(ids)){
QueryWrapper<PayFileDownloadRecord> queryWrapper = Wrappers.query();
List<PayFileDownloadRecord> list = payFileDownloadRecordService.list(queryWrapper);
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, "资料下载记录"); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, PayFileDownloadRecord.class);
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams("资料下载记录", "资料下载记录");
exportParams.setImageBasePath(upLoadPath);
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, list);
return mv;
}else {
ArrayList<String> strings = new ArrayList<>(Arrays.asList(ids.split(",")));
ArrayList<PayFileDownloadRecord> list = new ArrayList<>();
for (String id : strings) {
LambdaQueryWrapper<PayFileDownloadRecord> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
objectLambdaQueryWrapper.eq(StringUtils.isNotBlank(ids), PayFileDownloadRecord::getId, id);
PayFileDownloadRecord one = payFileDownloadRecordService.getOne(objectLambdaQueryWrapper, false);
// Step.3 AutoPoi 导出Excelaw
list.add(one);
}
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, "资料下载记录"); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, PayFileDownloadRecord.class);
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams("资料下载记录", "资料下载记录");
exportParams.setImageBasePath(upLoadPath);
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, list);
return mv;
}
}
}
@@ -39,8 +39,8 @@ public class PayFileDownloadRecord implements Serializable {
@ApiModelProperty(value = "文件名称")
private java.lang.String fileName;
/**文件目录*/
@Excel(name = "文件目录", width = 15)
@ApiModelProperty(value = "文件目录")
@Excel(name = "目录层级", width = 15)
@ApiModelProperty(value = "目录层级")
private java.lang.String filePath;
/**企业名称*/
@Excel(name = "企业名称", width = 15)
@@ -0,0 +1,43 @@
package com.jero.data.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @author zql
* @date 2021/9/13 15:21
*/
@Data
public class payFileDownloadRecordPage {
@Excel(name = "文件名称", width = 15)
@ApiModelProperty(value = "文件名称")
private java.lang.String fileName;
/**企业名称*/
@Excel(name = "企业名称", width = 15)
@ApiModelProperty(value = "企业名称")
private java.lang.String companyName;
/**下载用户名称*/
@Excel(name = "下载用户名称", width = 15)
@ApiModelProperty(value = "下载用户名称")
private java.lang.String downloadName;
@ApiModelProperty(value = "会议名称")
private java.lang.String meetingName;
/**开始时间*/
@Excel(name = "开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开始时间")
private java.util.Date startTime;
/**结束时间*/
@Excel(name = "结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "结束时间")
private java.util.Date endTime;
}
@@ -89,6 +89,7 @@
<if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</if>
WHERE project.id IS NOT NULL AND project.id != ''
GROUP BY ppcp.project_id ORDER BY ppcp.create_time desc
</select>
<select id="queryPackListAll" resultType="com.jero.project.entity.PayCommonProject">
@@ -101,16 +101,18 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
@Override
@Transactional
public void removePayPackCompanyProject(PayPackCompanyProject payPackCompanyProject) {
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompanyProject::getProjectId,payPackCompanyProject.getId());
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(query);
if(CollectionUtils.isEmpty(listPayPackCompanyProject)){
throw new JeroBootException("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME1)){
if(Objects.equals(listPayPackCompanyProject.get(0).getCome(),PackCommon.COME1)){
throw new JeroBootException("此项目已在合同处创建关联,请先从合同处取消关联!");
}
// 更新项目状态
projectPackService.updateProjectStatus(payPackCompanyProject.getProjectId(),String.valueOf(payPackCompanyProject.getProjectType()),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId());
payPackCompanyProjectService.removeById(payPackCompanyProject.getId());
projectPackService.updateProjectStatus(listPayPackCompanyProject.get(0).getProjectId(),String.valueOf(listPayPackCompanyProject.get(0).getProjectType()),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId());
payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId());
}
@Override
@@ -121,18 +123,9 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
if(StringUtils.isBlank(s1)){
throw new JeroBootException("id不能为空!");
}
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
throw new JeroBootException("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME2)){
throw new JeroBootException("此项目已在合同处创建关联,请先从合同处取消关联!");
}
// 更新项目状态
projectPackService.updateProjectStatus(s1,String.valueOf(payPackCompanyProjectNew.getProjectType()),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId());
payPackCompanyProject.setId(s1);
removePayPackCompanyProject(payPackCompanyProject);
}
payPackCompanyProjectService.removeByIds(Arrays.asList(payPackCompanyProject.getPackProjectIds()));
}
@Override
@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import com.jero.payment.entity.PayPaymentRecord;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@@ -3,15 +3,28 @@ package com.jero.project.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author zql
* @date 2021/9/13 10:45
*/
@Data
public class PayWorkingGroupStatistics {
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty(value = "工作组")
private String workGroup;
@ApiModelProperty(value = "应收总金额")
private String allMoney;
@ApiModelProperty(value = "实收总金额")
private String comeAllMoney;
@ApiModelProperty(value = "完收完成率")
private String moneyRate;
}
@@ -101,4 +101,22 @@
FROM pay_working_group
WHERE id NOT IN (SELECT working_group_id FROM pay_working_group_subitem WHERE charge_company_id=#{companyId})
</select>
<select id="queryPageListForStatistics" resultType="com.jero.project.entity.PayWorkingGroupStatistics">
SELECT
id,
working_group_project AS workGroup
FROM pay_working_group
<where>
<if test="payWorkingGroup.workingGroupProject != null and payWorkingGroup.workingGroupProject != ''">
AND working_group_project LIKE concat('%',concat(#{payWorkingGroup.workingGroupProject},'%'))
</if>
<if test="payWorkingGroup.principalIdA != null and payWorkingGroup.principalIdA != ''">
AND principal_id_a = #{payWorkingGroup.principalIdA}
</if>
<if test="payWorkingGroup.year != null and payWorkingGroup.year != ''">
AND year = #{payWorkingGroup.year}
</if>
</where>
ORDER BY create_time DESC
</select>
</mapper>
@@ -96,6 +96,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
if(Objects.equals(payCommonProject.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(payCommonProject.getContractNum(),payCommonProject.getChargeCompanyId(),payCommonProject.getId());
}
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
if(!Objects.isNull(payIncomeContract) && Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
LambdaUpdateWrapper<PayCommonProject> update = new LambdaUpdateWrapper<>();