Browse Source

活动核销情况查询

v1.0
Yen 2 years ago
parent
commit
c7343b553b
  1. 9
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java
  2. 17
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java
  3. 5
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  4. 43
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java
  5. 68
      src/main/java/com/qs/serve/modules/vtb/entity/dto/VtbActivityCheckDTO.java
  6. 68
      src/main/java/com/qs/serve/modules/vtb/entity/dto/VtbVerificationDTO.java
  7. 58
      src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java
  8. 8
      src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCheckSo.java
  9. 25
      src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerReportMapper.java
  10. 91
      src/main/resources/mapper/vtb/VtbVerReportMapper.xml

9
src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java

@ -123,12 +123,13 @@ public class OmsShoppingCartApi {
/** /**
* 删除购物车 * 删除购物车
* @param id * @param ids
* @return * @return
*/ */
@DeleteMapping("/deleteById/{id}") @DeleteMapping("/deleteById/{ids}")
public R<?> deleteById(@PathVariable("id") Long id){ public R<?> deleteById(@PathVariable("ids") String ids){
omsShoppingCartService.removeById(id); List<Long> idsLong = StringUtils.splitIdLong(ids);
omsShoppingCartService.removeBatchByIds(idsLong);
return R.ok(); return R.ok();
} }

17
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java

@ -201,6 +201,21 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl<TbsBudgetBatchMapper,
TbsBudget::getBudgetNumber,budgetNumbers TbsBudget::getBudgetNumber,budgetNumbers
) )
); );
if(budgetList.size()>0){
List<TbsBudgetChange> budgetChanges = tbsBudgetChangeService.list(
new LambdaQueryWrapper<TbsBudgetChange>()
.in(TbsBudgetChange::getBudgetNumber,budgetNumbers)
.eq(TbsBudgetChange::getBudgetCheckState,TbsBudgetCheckState.State_1_apply)
);
for (TbsBudgetChange change : budgetChanges) {
for (TbsBudgetBatchBo.BudgetMain budgetMain : updBudgetList) {
if(budgetMain.getBudgetNumber().equals(change.getBudgetNumber())){
budgetMain.getErrorInfos().add("预算修改["+change.getBudgetTitle()+"]审批中,无法导入修改");
param.setErrorFlag(true);
}
}
}
}
for (TbsBudget budget : budgetList) { for (TbsBudget budget : budgetList) {
if(budget.getBudgetCheckState()==TbsBudgetCheckState.State_1_apply){ if(budget.getBudgetCheckState()==TbsBudgetCheckState.State_1_apply){
for (TbsBudgetBatchBo.BudgetMain budgetMain : updBudgetList) { for (TbsBudgetBatchBo.BudgetMain budgetMain : updBudgetList) {
@ -283,11 +298,11 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl<TbsBudgetBatchMapper,
.filter(a->!StringUtils.hasText(a.getBudgetNumber())).collect(Collectors.toList()); .filter(a->!StringUtils.hasText(a.getBudgetNumber())).collect(Collectors.toList());
for (TbsBudgetBatchBo.BudgetMain budgetMain : addBudgetList) { for (TbsBudgetBatchBo.BudgetMain budgetMain : addBudgetList) {
TbsBudget newBudget = new TbsBudget(); TbsBudget newBudget = new TbsBudget();
newBudget.setBudgetNumber("BM"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Budget));
newBudget.setBatchApplyFlag(1); newBudget.setBatchApplyFlag(1);
newBudget.setBatchApplyId(batchId); newBudget.setBatchApplyId(batchId);
TbsSchedule schedule = scheduleMap.get(budgetMain.getScheduleName()); TbsSchedule schedule = scheduleMap.get(budgetMain.getScheduleName());
this.initBudget4Update(sysUser,schedule, subjectMap, centerDtoMap, budgetMain, newBudget); this.initBudget4Update(sysUser,schedule, subjectMap, centerDtoMap, budgetMain, newBudget);
newBudget.setBudgetNumber("BM"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Budget));
tbsBudgetService.save(newBudget); tbsBudgetService.save(newBudget);
Long budgetId = newBudget.getId(); Long budgetId = newBudget.getId();
//创建新条件 //创建新条件

5
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -327,6 +327,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
Assert.throwEx("已开启"); Assert.throwEx("已开启");
} }
budget.setBudgetState(1); budget.setBudgetState(1);
budget.setBudgetCheckState(TbsBudgetCheckState.State_2_finished);
this.updateById(budget); this.updateById(budget);
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
LambdaQueryWrapper<TbsScheduleItemBudget> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsScheduleItemBudget> lqw = new LambdaQueryWrapper<>();
@ -336,9 +337,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
List<TbsBudgetLog> budgetLogList = new ArrayList<>(); List<TbsBudgetLog> budgetLogList = new ArrayList<>();
for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) {
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,BudgetLogOptFlag.State_0,scheduleItemBudget.getBudgetAmount()); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser, budget, scheduleItemBudget,BudgetLogOptFlag.State_0,scheduleItemBudget.getBudgetAmount());
if (budgetLog!=null){ budgetLogList.add(budgetLog);
budgetLogList.add(budgetLog);
}
} }
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }

43
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationDataController.java

@ -0,0 +1,43 @@
package com.qs.serve.modules.vtb.controller;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.vtb.entity.dto.VtbActivityCheckDTO;
import com.qs.serve.modules.vtb.entity.so.VtbActivityCheckSo;
import com.qs.serve.modules.vtb.mapper.VtbVerReportMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author YenHex
* @since 2023/9/4
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("vtb/data")
public class VtbVerificationDataController {
private final VtbVerReportMapper verReportMapper;
@GetMapping("pageActivityCheck")
public R<?> getActivityData(VtbActivityCheckSo query){
Long count = verReportMapper.countActivityCheck(query);
if(count>0){
List<VtbActivityCheckDTO> list = verReportMapper.pageActivityCheck(query);
PageVo<VtbActivityCheckDTO> page = new PageVo<>();
page.initPageByTotal(count);
page.setList(list);
return R.ok(page);
}
return R.byEmptyList();
}
}

68
src/main/java/com/qs/serve/modules/vtb/entity/dto/VtbActivityCheckDTO.java

@ -0,0 +1,68 @@
package com.qs.serve.modules.vtb.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 活动的核销情况
* @author YenHex
* @since 2023/9/4
*/
@Data
public class VtbActivityCheckDTO {
private String costApplyId;
/** 费用编码 */
private String costApplyCode;
private String costTitle;
/** 客户id */
private String supplierId;
private String supplierCode;
private String supplierName;
/** 提交实际 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime submitTime;
/** 活动编码 */
private String activityCode;
private String activityTitle;
private String activityAmount;
/** 核销金额 */
private String checkAmount;
/** 核销完成 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime checkFinishedDate;
/** 释放标识 */
private Integer releaseFlag;
/** 释放金额 */
private BigDecimal releaseAmount;
/** 释放时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime releaseTime;
/** 释放人员id */
private String releaseUserId;
/** 释放人员 */
private String releaseUserName;
}

68
src/main/java/com/qs/serve/modules/vtb/entity/dto/VtbVerificationDTO.java

@ -0,0 +1,68 @@
package com.qs.serve.modules.vtb.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 活动的核销情况
* @author YenHex
* @since 2023/9/4
*/
@Data
public class VtbVerificationDTO {
private String costApplyId;
/** 费用编码 */
private String costApplyCode;
private String costTitle;
/** 客户id */
private String supplierId;
private String supplierCode;
private String supplierName;
/** 提交实际 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime submitTime;
/** 活动编码 */
private String activityCode;
private String activityTitle;
private String activityAmount;
/** 核销金额 */
private String checkAmount;
/** 核销完成 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime checkFinishedDate;
/** 释放标识 */
private Integer releaseFlag;
/** 释放金额 */
private BigDecimal releaseAmount;
/** 释放时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime releaseTime;
/** 释放人员id */
private String releaseUserId;
/** 释放人员 */
private String releaseUserName;
}

58
src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java

@ -0,0 +1,58 @@
package com.qs.serve.modules.vtb.entity.so;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 活动的核销情况
* @author YenHex
* @since 2023/9/4
*/
@Data
public class VtbActivityCheckSo {
/** 费用编码 */
private String costApplyCode;
private String costTitle;
/** 客户 */
private String supplierCode;
private String supplierName;
/** 活动编码 */
private String activityCode;
private String activityTitle;
/** 提交开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime queryStartSubmitTime;
/** 提交结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime queryEndSubmitTime;
/** 核销开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime queryStartCheckTime;
/** 核销开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime queryEndCheckTime;
private Integer pageSize;
private Integer startRow;
}

8
src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCheckSo.java

@ -0,0 +1,8 @@
package com.qs.serve.modules.vtb.entity.so;
/**
* @author YenHex
* @since 2023/9/4
*/
public class VtbVerificationCheckSo {
}

25
src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerReportMapper.java

@ -0,0 +1,25 @@
package com.qs.serve.modules.vtb.mapper;
import com.qs.serve.modules.vtb.entity.dto.VtbActivityCheckDTO;
import com.qs.serve.modules.vtb.entity.dto.VtbVerificationDTO;
import com.qs.serve.modules.vtb.entity.so.VtbActivityCheckSo;
import com.qs.serve.modules.vtb.entity.so.VtbVerificationCheckSo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author YenHex
* @since 2023/9/4
*/
public interface VtbVerReportMapper {
List<VtbActivityCheckDTO> pageActivityCheck(@Param("query") VtbActivityCheckSo query);
Long countActivityCheck(@Param("query") VtbActivityCheckSo query);
List<VtbVerificationDTO> pageVerificationCheck(@Param("query") VtbVerificationCheckSo query);
Long countVerificationCheck(@Param("query") VtbVerificationCheckSo query);
}

91
src/main/resources/mapper/vtb/VtbVerReportMapper.xml

@ -0,0 +1,91 @@
<?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.qs.serve.modules.vtb.mapper.VtbVerReportMapper">
<sql id="baseSelectCheckWhere">
where 1=1
and tbs_activity.del_flag = 0
and tbs_activity.cancel_flag = 0
and tbs_cost_apply.del_flag = 0
and tbs_cost_apply.charge_state in(2,3)
and tbs_cost_apply.cancel_flag = 0
<if test="query.activityCode != null and query.activityCode != ''"> and `tbs_activity`.`activity_code` like concat('%',#{query.activityCode},'%')</if>
<if test="query.activityTitle != null and query.activityTitle != ''"> and `tbs_activity`.`act_title` like concat('%',#{query.activityTitle},'%')</if>
<if test="query.queryStartSubmitTime != null and query.queryStartSubmitTime != ''"> and `tbs_cost_apply`.`submit_time` &gt;= #{query.queryStartSubmitTime} </if>
<if test="query.queryEndSubmitTime != null and query.queryEndSubmitTime != ''"> and `tbs_cost_apply`.`submit_time` &lt;= #{query.queryEndSubmitTime} </if>
<if test="query.supplierCode != null and query.supplierCode != ''"> and `tbs_cost_apply`.`supplier_code` like concat('%',#{query.supplierCode},'%') </if>
<if test="query.supplierName != null and query.supplierName != ''"> and `tbs_cost_apply`.`supplier_name` like concat('%',#{query.supplierName},'%') </if>
<if test="query.costApplyCode != null and query.costApplyCode != ''"> and `tbs_cost_apply`.`code` like concat('%',#{query.costApplyCode},'%') </if>
<if test="query.costTitle != null and query.costTitle != ''"> and `tbs_cost_apply`.`charge_theme` like concat('%',#{query.costTitle},'%') </if>
</sql>
<select id="pageActivityCheck" resultType="com.qs.serve.modules.vtb.entity.dto.VtbActivityCheckDTO">
select
tbs_cost_apply.`id` as costApplyId,
tbs_cost_apply.`code` as costApplyCode,
tbs_cost_apply.charge_theme as costTitle,
tbs_cost_apply.supplier_id ,
tbs_cost_apply.supplier_code ,
tbs_cost_apply.supplier_name ,
tbs_cost_apply.submit_time ,
tbs_activity.activity_code,
tbs_activity.act_title as activity_title,
tbs_activity.total_amount as activity_amount,
vvtb.act_check_amt as check_amount,
vvtb.vtb_finished_date as check_finished_date,
tbs_activity.`release_flag`,
tbs_activity.`release_amount`,
tbs_activity.`release_time`,
tbs_activity.`release_user_id`,
tbs_activity.`release_user_name`
from tbs_activity
left join tbs_cost_apply on tbs_activity.cost_apply_id = tbs_cost_apply.id
left join (
select
vtb.activity_id,
sum(vtb.amount) as act_check_amt,
max(vtb.finished_time) as vtb_finished_date
from vtb_verification vtb
where
vtb.del_flag = 0
<if test="query.queryStartCheckTime != null and query.queryStartCheckTime != ''">
and vtb.finished_time &gt;= #{query.queryStartCheckTime} </if>
<if test="query.queryEndSubmitTime != null and query.queryEndSubmitTime != ''">
and vtb.finished_time &lt;= #{query.queryEndSubmitTime} </if>
group by vtb.activity_id
) vvtb on vvtb.activity_id = tbs_activity.id
<include refid="baseSelectCheckWhere"></include>
limit #{query.startRow},#{query.pageSize}
</select>
<select id="countActivityCheck" resultType="java.lang.Long">
select
count(1)
from tbs_activity
left join tbs_cost_apply on tbs_activity.cost_apply_id = tbs_cost_apply.id
left join (
select
vtb.activity_id
from vtb_verification vtb
where
vtb.del_flag = 0
<if test="query.queryStartCheckTime != null and query.queryStartCheckTime != ''">
and vtb.finished_time &gt;= #{query.queryStartCheckTime} </if>
<if test="query.queryEndSubmitTime != null and query.queryEndSubmitTime != ''">
and vtb.finished_time &lt;= #{query.queryEndSubmitTime} </if>
group by vtb.activity_id
) vvtb on vvtb.activity_id = tbs_activity.id
<include refid="baseSelectCheckWhere"></include>
</select>
<select id="pageVerificationCheck" resultType="com.qs.serve.modules.vtb.entity.dto.VtbVerificationDTO">
</select>
<select id="countVerificationCheck" resultType="java.lang.Long">
</select>
</mapper>
Loading…
Cancel
Save