Browse Source

审批金额修改记录表,核销完成后冻结状态回调

v1.0
Yen 2 years ago
parent
commit
9a21a62913
  1. 27
      src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java
  2. 2
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  3. 74
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySubjectYarnController.java
  4. 150
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubjectYarn.java
  5. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectYarnMapper.java
  6. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectYarnService.java
  7. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectYarnServiceImpl.java
  8. 10
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  9. 13
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

27
src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java

@ -18,6 +18,8 @@ import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/** /**
* HttpServletRequest 过滤器 * HttpServletRequest 过滤器
@ -59,7 +61,6 @@ public class HttpServletRequestFilter implements Filter{
double diffTime = DateUtils.diffTime(startTime,endTime); double diffTime = DateUtils.diffTime(startTime,endTime);
assert servletRequest instanceof HttpServletRequest; assert servletRequest instanceof HttpServletRequest;
HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletRequest request = (HttpServletRequest)servletRequest;
String tenant = request.getHeader("tenant-id");
String supplierId = request.getHeader("supplierId"); String supplierId = request.getHeader("supplierId");
String url = request.getRequestURL().toString(); String url = request.getRequestURL().toString();
String method = request.getMethod(); String method = request.getMethod();
@ -68,25 +69,27 @@ public class HttpServletRequestFilter implements Filter{
if (ServletUtils.isJsonRequest(request)&&requestWrapper!=null) { if (ServletUtils.isJsonRequest(request)&&requestWrapper!=null) {
reqBody = requestWrapper.getBody(); reqBody = requestWrapper.getBody();
} }
StringBuffer buffer = new StringBuffer("["+method+"] "+url + " IP: "+ServletUtils.getIp(request)); StringBuffer buffer = new StringBuffer("["+method+"] "+url);
buffer.append("\n租户编码: "+tenant);
if(supplierId!=null){ if(supplierId!=null){
buffer.append("供应商ID: "+supplierId); buffer.append("供应商ID: "+supplierId);
} }
if(!StringUtils.isEmpty(queryStr)){
buffer.append("\n参数: "+queryStr);
}
// if(!StringUtils.isEmpty(reqBody)){
// buffer.append("\n请求体: "+reqBody);
// }
if(diffTime>1){
buffer.append("\n耗时: "+diffTime+"秒");
}
try { try {
LoginUser loginUser = AuthContextUtils.getLoginUser(false); LoginUser loginUser = AuthContextUtils.getLoginUser(false);
if(loginUser!=null){ if(loginUser!=null){
buffer.append("\n用户ID: "+loginUser.getUserId()); buffer.append("\n用户: "+loginUser.getNick());
buffer.append(" IP:["+ServletUtils.getIp(request)+"]");
buffer.append(" 时间:["+ LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)+"]");
} }
} catch (Exception e) {} } catch (Exception e) {}
if(!StringUtils.isEmpty(queryStr)){
buffer.append("\n参数: "+queryStr);
}
if(!StringUtils.isEmpty(reqBody)){
buffer.append("\n请求体: "+reqBody);
}
buffer.append("\n耗时: "+diffTime+"秒");
/*if(diffTime>4){ log.warn("访问速度:{}秒,接口:{},参数:{},请求体:{}",diffTime,"["+method+"] "+url,queryStr,reqBody);}*/
System.out.println(buffer); System.out.println(buffer);
} }

2
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java

@ -19,6 +19,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.task.SysTask;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -246,6 +247,7 @@ public interface SeeYonOperationService extends SeeYonBaseService{
return result.getData(); return result.getData();
} }
/** /**
* 审批提交 * 审批提交
* @param affairCommit * @param affairCommit

74
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySubjectYarnController.java

@ -0,0 +1,74 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.TbsActivitySubjectYarn;
import com.qs.serve.modules.tbs.service.TbsActivitySubjectYarnService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 活动科目审批线
* @author YenHex
* @since 2023-08-03
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/activitySubjectYarn")
public class TbsActivitySubjectYarnController {
private TbsActivitySubjectYarnService tbsActivitySubjectYarnService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<TbsActivitySubjectYarn>> getList(TbsActivitySubjectYarn param){
LambdaQueryWrapper<TbsActivitySubjectYarn> lqw = new LambdaQueryWrapper<>(param);
List<TbsActivitySubjectYarn> list = tbsActivitySubjectYarnService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<TbsActivitySubjectYarn>> getPage(TbsActivitySubjectYarn param){
LambdaQueryWrapper<TbsActivitySubjectYarn> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<TbsActivitySubjectYarn> list = tbsActivitySubjectYarnService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动科目审批线", biz = BizType.QUERY)
public R<TbsActivitySubjectYarn> getById(@PathVariable("id") String id){
TbsActivitySubjectYarn tbsActivitySubjectYarn = tbsActivitySubjectYarnService.getById(id);
return R.ok(tbsActivitySubjectYarn);
}
}

150
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubjectYarn.java

@ -0,0 +1,150 @@
package com.qs.serve.modules.tbs.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 活动科目审批线 实体类
* @author YenHex
* @since 2023-08-03
*/
@Data
@TableName("tbs_activity_subject_yarn")
public class TbsActivitySubjectYarn implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 审批id */
private String checkId;
/** 审批人id */
@NotBlank(message = "审批人id不能为空")
@Length(max = 64,message = "审批人id长度不能超过64字")
private String userId;
/** 审批人编码 */
@NotBlank(message = "审批人编码不能为空")
@Length(max = 255,message = "审批人编码长度不能超过255字")
private String userCode;
/** 审批人 */
@NotBlank(message = "审批人不能为空")
@Length(max = 255,message = "审批人长度不能超过255字")
private String userName;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 活动id */
@NotNull(message = "活动id不能为空")
private Long activityId;
/** 科目id */
@NotNull(message = "科目id不能为空")
private Long subjectId;
/** 科目编码 */
@NotBlank(message = "科目编码不能为空")
@Length(max = 50,message = "科目编码长度不能超过50字")
private String subjectCode;
/** 科目名称 */
@NotBlank(message = "科目名称不能为空")
@Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName;
/** 原费用额度 */
private BigDecimal orgAmount;
/** 费用额度 */
@NotNull(message = "费用额度不能为空")
private BigDecimal amount;
/** 场次 */
@NotNull(message = "场次不能为空")
private Integer countSession;
/** 人数 */
@NotNull(message = "人数不能为空")
private Integer countPerson;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static TbsActivitySubjectYarn toNewObject(TbsActivitySubjectYarn source){
TbsActivitySubjectYarn activitySubjectYarn = new TbsActivitySubjectYarn();
activitySubjectYarn.setId(source.getId());
activitySubjectYarn.setUserId(source.getUserId());
activitySubjectYarn.setUserCode(source.getUserCode());
activitySubjectYarn.setUserName(source.getUserName());
activitySubjectYarn.setCostApplyId(source.getCostApplyId());
activitySubjectYarn.setActivityId(source.getActivityId());
activitySubjectYarn.setSubjectId(source.getSubjectId());
activitySubjectYarn.setSubjectCode(source.getSubjectCode());
activitySubjectYarn.setSubjectName(source.getSubjectName());
activitySubjectYarn.setOrgAmount(source.getOrgAmount());
activitySubjectYarn.setAmount(source.getAmount());
activitySubjectYarn.setCountSession(source.getCountSession());
activitySubjectYarn.setCountPerson(source.getCountPerson());
activitySubjectYarn.setRemark(source.getRemark());
activitySubjectYarn.setCreateTime(source.getCreateTime());
activitySubjectYarn.setUpdateTime(source.getUpdateTime());
activitySubjectYarn.setTenantId(source.getTenantId());
activitySubjectYarn.setCreateBy(source.getCreateBy());
activitySubjectYarn.setUpdateBy(source.getUpdateBy());
activitySubjectYarn.setDelFlag(source.getDelFlag());
return activitySubjectYarn;
}
}

14
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectYarnMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsActivitySubjectYarn;
/**
* 活动科目审批线 Mapper
* @author YenHex
* @date 2023-08-03
*/
public interface TbsActivitySubjectYarnMapper extends BaseMapper<TbsActivitySubjectYarn> {
}

14
src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectYarnService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivitySubjectYarn;
/**
* 活动科目审批线 服务接口
* @author YenHex
* @date 2023-08-03
*/
public interface TbsActivitySubjectYarnService extends IService<TbsActivitySubjectYarn> {
}

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectYarnServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.entity.TbsActivitySubjectYarn;
import com.qs.serve.modules.tbs.service.TbsActivitySubjectYarnService;
import com.qs.serve.modules.tbs.mapper.TbsActivitySubjectYarnMapper;
/**
* 活动科目审批线 服务实现类
* @author YenHex
* @since 2023-08-03
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsActivitySubjectYarnServiceImpl extends ServiceImpl<TbsActivitySubjectYarnMapper,TbsActivitySubjectYarn> implements TbsActivitySubjectYarnService {
}

10
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

@ -227,12 +227,12 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
Long targetId = Long.parseLong(this.getTargetId(param)); Long targetId = Long.parseLong(this.getTargetId(param));
// 更新金额 // 更新金额
TbsCostApply apply = new TbsCostApply(); TbsCostApply apply = new TbsCostApply();
BigDecimal totalApply = checkToChangeAmount(param); //BigDecimal totalApply = checkToChangeAmount(param);
apply.setId(targetId); apply.setId(targetId);
if(totalApply!=null){ // if(totalApply!=null){
apply.setTotalActivityAmount(totalApply); // apply.setTotalActivityAmount(totalApply);
apply.setEditAmountFlag(1); // apply.setEditAmountFlag(1);
} // }
apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode()); apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode());
costApplyService.updateById(apply); costApplyService.updateById(apply);
TbsCostApply costApply = costApplyService.getById(targetId); TbsCostApply costApply = costApplyService.getById(targetId);

13
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.vtb.service;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.seeyon.entity.CtpAffair; import com.qs.serve.modules.seeyon.entity.CtpAffair;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.entity.SysPostUser; import com.qs.serve.modules.sys.entity.SysPostUser;
@ -24,8 +25,10 @@ import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; import com.qs.serve.modules.vtb.entity.VtbVerificationSubject;
import com.qs.serve.modules.vtb.entity.VtbVerificationYard; import com.qs.serve.modules.vtb.entity.VtbVerificationYard;
import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem; import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem;
import com.qs.serve.task.TbsTask;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -99,7 +102,15 @@ public class VtbVerificationApplication {
if(result.getStatus()==200){ if(result.getStatus()==200){
// 判断是否含有下个节点 // 判断是否含有下个节点
String flag = result.getData(); String flag = result.getData();
return commitAffairSuccess(affairCommit, verification, isBackCommit, flag); R r = commitAffairSuccess(affairCommit, verification, isBackCommit, flag);
try {
//解决同步冻结时有过期的活动
TbsTask tbsTask = SpringUtils.getBean(TbsTask.class);
tbsTask.task1();
} catch (BeansException e) {
e.printStackTrace();
}
return r;
}else if (result.getStatus()==500){ }else if (result.getStatus()==500){
return result; return result;
} }

Loading…
Cancel
Save