diff --git a/src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java b/src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java index 13d37c24..18db5cc2 100644 --- a/src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java +++ b/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.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; /** * HttpServletRequest 过滤器 @@ -59,7 +61,6 @@ public class HttpServletRequestFilter implements Filter{ double diffTime = DateUtils.diffTime(startTime,endTime); assert servletRequest instanceof HttpServletRequest; HttpServletRequest request = (HttpServletRequest)servletRequest; - String tenant = request.getHeader("tenant-id"); String supplierId = request.getHeader("supplierId"); String url = request.getRequestURL().toString(); String method = request.getMethod(); @@ -68,25 +69,27 @@ public class HttpServletRequestFilter implements Filter{ if (ServletUtils.isJsonRequest(request)&&requestWrapper!=null) { reqBody = requestWrapper.getBody(); } - StringBuffer buffer = new StringBuffer("["+method+"] "+url + " IP: "+ServletUtils.getIp(request)); - buffer.append("\n租户编码: "+tenant); + StringBuffer buffer = new StringBuffer("["+method+"] "+url); if(supplierId!=null){ 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 { LoginUser loginUser = AuthContextUtils.getLoginUser(false); 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) {} - 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); } diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java index ff65f49a..7ba00d4d 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java +++ b/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.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; +import com.qs.serve.task.SysTask; import java.util.ArrayList; import java.util.List; @@ -246,6 +247,7 @@ public interface SeeYonOperationService extends SeeYonBaseService{ return result.getData(); } + /** * 审批提交 * @param affairCommit diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySubjectYarnController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySubjectYarnController.java new file mode 100644 index 00000000..cfe41dcb --- /dev/null +++ b/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> getList(TbsActivitySubjectYarn param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + List list = tbsActivitySubjectYarnService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(TbsActivitySubjectYarn param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List 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 getById(@PathVariable("id") String id){ + TbsActivitySubjectYarn tbsActivitySubjectYarn = tbsActivitySubjectYarnService.getById(id); + return R.ok(tbsActivitySubjectYarn); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubjectYarn.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubjectYarn.java new file mode 100644 index 00000000..866c88e9 --- /dev/null +++ b/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; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectYarnMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySubjectYarnMapper.java new file mode 100644 index 00000000..797e84c4 --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectYarnService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectYarnService.java new file mode 100644 index 00000000..d5a3a894 --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectYarnServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectYarnServiceImpl.java new file mode 100644 index 00000000..3dff482c --- /dev/null +++ b/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 implements TbsActivitySubjectYarnService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java index e5d9f19a..35fa4bd0 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java +++ b/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)); // 更新金额 TbsCostApply apply = new TbsCostApply(); - BigDecimal totalApply = checkToChangeAmount(param); + //BigDecimal totalApply = checkToChangeAmount(param); apply.setId(targetId); - if(totalApply!=null){ - apply.setTotalActivityAmount(totalApply); - apply.setEditAmountFlag(1); - } +// if(totalApply!=null){ +// apply.setTotalActivityAmount(totalApply); +// apply.setEditAmountFlag(1); +// } apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode()); costApplyService.updateById(apply); TbsCostApply costApply = costApplyService.getById(targetId); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java index 9cd1cea2..d6f53de8 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java +++ b/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.util.CollectionUtil; 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.service.SeeYonRequestService; 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.VtbVerificationYard; import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem; +import com.qs.serve.task.TbsTask; import lombok.AllArgsConstructor; import org.jetbrains.annotations.NotNull; +import org.springframework.beans.BeansException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; @@ -99,7 +102,15 @@ public class VtbVerificationApplication { if(result.getStatus()==200){ // 判断是否含有下个节点 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){ return result; }