From d914556d421048173b6210763b42a9f8cfdbbd1e Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 10 Nov 2025 22:29:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/data/dao/vv/VvMySettlementDao.java | 1 + .../data/entity/vv/VvMySettlementEntity.java | 297 +++++++++++------- ...nums.java => MySettlementStatusEnums.java} | 5 +- .../java/com/test/xxx/MysqlMain_update.java | 2 +- .../order/VVMySettlementApprovalRequest.java | 17 +- .../mm/AdminMySettlementController.java | 66 +++- 6 files changed, 255 insertions(+), 133 deletions(-) rename api-mapper/src/main/java/com/heyu/api/data/enums/{SettlementStatusEnums.java => MySettlementStatusEnums.java} (84%) diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMySettlementDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMySettlementDao.java index d2ad7f1..80b2472 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMySettlementDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMySettlementDao.java @@ -39,6 +39,7 @@ public interface VvMySettlementDao extends BaseMapper { int deleteVvMySettlementById(@Param("id")Long id); + @OrderBy(VvMySettlementEntity.id_) List selectByCondition(IPage page, @IF String status, @IF @Column(VvMySettlementEntity.amount_) @GE BigDecimal minAmount, diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java index 7ed6e5c..8b17e92 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMySettlementEntity.java @@ -15,52 +15,166 @@ import java.util.Date; @Data @TableName("vv_my_settlement") -public class VvMySettlementEntity implements java.io.Serializable { +public class VvMySettlementEntity implements java.io.Serializable { private static final long serialVersionUID = 1L; public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvMySettlementEntity:"; public final static String all = CLASS_NAME + "*"; - public final static String id_ = CLASS_NAME + "id"; // - public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 - public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 - public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 - public final static String user_name = CLASS_NAME + "user_name"; // 谁结算的 - public final static String operate_ = CLASS_NAME + "operate"; // 操作 + ,- - public final static String amount_ = CLASS_NAME + "amount"; // 金额 - public final static String features_ = CLASS_NAME + "features"; // 特点 - public final static String status_ = CLASS_NAME + "status"; // apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 - public final static String remain_amount = CLASS_NAME + "remain_amount"; // 剩下金额 - public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间 - public final static String modify_timestamp = CLASS_NAME + "modify_timestamp"; // 修改时间 - public final static String type_ = CLASS_NAME + "type"; // common,公款 + public final static String amount_ = CLASS_NAME + "amount"; // 金额 + public final static String apply_reason = CLASS_NAME + "apply_reason"; // 原因 + public final static String apply_user_name = CLASS_NAME + "apply_user_name"; // 谁结算的 + public final static String approval_user_name = CLASS_NAME + "approval_user_name"; // 审批用户名 + public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 + public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 创建时间 + public final static String features_ = CLASS_NAME + "features"; // 特点 + public final static String id_ = CLASS_NAME + "id"; // + public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 + public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 + public final static String modify_timestamp = CLASS_NAME + "modify_timestamp"; // 修改时间 + public final static String operate_ = CLASS_NAME + "operate"; // 操作 + ,- + public final static String reject_reason = CLASS_NAME + "reject_reason"; // 拒绝原因 + public final static String remain_amount = CLASS_NAME + "remain_amount"; // 剩下金额 + public final static String status_ = CLASS_NAME + "status"; // apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 + public final static String type_ = CLASS_NAME + "type"; // common,公款 + //金额 + @TableId(value = "amount", type = IdType.AUTO) + private BigDecimal amount; + //原因 + private String applyReason; + //谁结算的 + private String applyUserName; + //审批用户名 + private String approvalUserName; + //创建时间 + private Date createTime; + //创建时间 + private Long createTimestamp; + //特点 + private String features; // - @TableId(value = "id", type = IdType.AUTO) private Long id; //是否删除:0 否 1 删除 private Integer isDelete; - //创建时间 - private Date createTime; //修改时间 private Date modifyTime; - //谁结算的 - private String userName; - //操作 + , - - private String operate; - //金额 - private BigDecimal amount; - //特点 - private String features; - //apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 - private String status; - //剩下金额 - private BigDecimal remainAmount; - //创建时间 - private Long createTimestamp; //修改时间 private Long modifyTimestamp; + //操作 + ,- + private String operate; + //拒绝原因 + private String rejectReason; + //剩下金额 + private BigDecimal remainAmount; + //apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 + private String status; //common,公款 private String type; + /** + * 金额 + * @return + */ + public BigDecimal getAmount() { + return amount; + } + /** + * 金额 + * @param amount + */ + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + /** + * 原因 + * @return + */ + public String getApplyReason() { + return applyReason; + } + /** + * 原因 + * @param applyReason + */ + public void setApplyReason(String applyReason) { + this.applyReason = applyReason; + } + + /** + * 谁结算的 + * @return + */ + public String getApplyUserName() { + return applyUserName; + } + /** + * 谁结算的 + * @param applyUserName + */ + public void setApplyUserName(String applyUserName) { + this.applyUserName = applyUserName; + } + + /** + * 审批用户名 + * @return + */ + public String getApprovalUserName() { + return approvalUserName; + } + /** + * 审批用户名 + * @param approvalUserName + */ + public void setApprovalUserName(String approvalUserName) { + this.approvalUserName = approvalUserName; + } + + /** + * 创建时间 + * @return + */ + public Date getCreateTime() { + return createTime; + } + /** + * 创建时间 + * @param createTime + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 创建时间 + * @return + */ + public Long getCreateTimestamp() { + return createTimestamp; + } + /** + * 创建时间 + * @param createTimestamp + */ + public void setCreateTimestamp(Long createTimestamp) { + this.createTimestamp = createTimestamp; + } + + /** + * 特点 + * @return + */ + public String getFeatures() { + return features; + } + /** + * 特点 + * @param features + */ + public void setFeatures(String features) { + this.features = features; + } + /** * * @return @@ -91,21 +205,6 @@ private static final long serialVersionUID = 1L; this.isDelete = isDelete; } - /** - * 创建时间 - * @return - */ - public Date getCreateTime() { - return createTime; - } - /** - * 创建时间 - * @param createTime - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - /** * 修改时间 * @return @@ -122,18 +221,18 @@ private static final long serialVersionUID = 1L; } /** - * 谁结算的 + * 修改时间 * @return */ - public String getUserName() { - return userName; + public Long getModifyTimestamp() { + return modifyTimestamp; } /** - * 谁结算的 - * @param userName + * 修改时间 + * @param modifyTimestamp */ - public void setUserName(String userName) { - this.userName = userName; + public void setModifyTimestamp(Long modifyTimestamp) { + this.modifyTimestamp = modifyTimestamp; } /** @@ -152,48 +251,18 @@ private static final long serialVersionUID = 1L; } /** - * 金额 + * 拒绝原因 * @return */ - public BigDecimal getAmount() { - return amount; + public String getRejectReason() { + return rejectReason; } /** - * 金额 - * @param amount + * 拒绝原因 + * @param rejectReason */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /** - * 特点 - * @return - */ - public String getFeatures() { - return features; - } - /** - * 特点 - * @param features - */ - public void setFeatures(String features) { - this.features = features; - } - - /** - * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 - * @return - */ - public String getStatus() { - return status; - } - /** - * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 - * @param status - */ - public void setStatus(String status) { - this.status = status; + public void setRejectReason(String rejectReason) { + this.rejectReason = rejectReason; } /** @@ -212,33 +281,18 @@ private static final long serialVersionUID = 1L; } /** - * 创建时间 + * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 * @return */ - public Long getCreateTimestamp() { - return createTimestamp; + public String getStatus() { + return status; } /** - * 创建时间 - * @param createTimestamp + * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 + * @param status */ - public void setCreateTimestamp(Long createTimestamp) { - this.createTimestamp = createTimestamp; - } - - /** - * 修改时间 - * @return - */ - public Long getModifyTimestamp() { - return modifyTimestamp; - } - /** - * 修改时间 - * @param modifyTimestamp - */ - public void setModifyTimestamp(Long modifyTimestamp) { - this.modifyTimestamp = modifyTimestamp; + public void setStatus(String status) { + this.status = status; } /** @@ -259,18 +313,21 @@ private static final long serialVersionUID = 1L; @Override public String toString() { return "VvMySettlementEntity{" + + ",amount=" + amount + + ",applyReason=" + applyReason + + ",applyUserName=" + applyUserName + + ",approvalUserName=" + approvalUserName + + ",createTime=" + createTime + + ",createTimestamp=" + createTimestamp + + ",features=" + features + ",id=" + id + ",isDelete=" + isDelete + - ",createTime=" + createTime + ",modifyTime=" + modifyTime + - ",userName=" + userName + - ",operate=" + operate + - ",amount=" + amount + - ",features=" + features + - ",status=" + status + - ",remainAmount=" + remainAmount + - ",createTimestamp=" + createTimestamp + ",modifyTimestamp=" + modifyTimestamp + + ",operate=" + operate + + ",rejectReason=" + rejectReason + + ",remainAmount=" + remainAmount + + ",status=" + status + ",type=" + type + "}"; } diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/SettlementStatusEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/MySettlementStatusEnums.java similarity index 84% rename from api-mapper/src/main/java/com/heyu/api/data/enums/SettlementStatusEnums.java rename to api-mapper/src/main/java/com/heyu/api/data/enums/MySettlementStatusEnums.java index fefcad9..7eac74f 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/enums/SettlementStatusEnums.java +++ b/api-mapper/src/main/java/com/heyu/api/data/enums/MySettlementStatusEnums.java @@ -3,9 +3,10 @@ package com.heyu.api.data.enums; /**** * apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 */ -public enum SettlementStatusEnums { +public enum MySettlementStatusEnums { // apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 apply_for_approval("apply_for_approval", "申请审批"), + no_approval("no_approval", "不需要审批"), agree_approval("agree_approval", "同意审批"), reject_approval("reject_approval", "拒绝审批"); @@ -14,7 +15,7 @@ public enum SettlementStatusEnums { private String desc; - SettlementStatusEnums(String status, String desc) { + MySettlementStatusEnums(String status, String desc) { this.status = status; this.desc = desc; } diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java index b605514..3c4d450 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java @@ -48,8 +48,8 @@ public class MysqlMain_update { } List list = new ArrayList(); + list.add(new TablesBean("vv_my_settlement")); - list.add(new TablesBean("vv_my_account")); //list.add(new TablesBean("vv_trade_order")); diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java index d8ad526..db2c2aa 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java @@ -1,6 +1,7 @@ package com.heyu.api.alibaba.request.mm.order; +import com.alibaba.fastjson.JSON; import com.heyu.api.alibaba.request.mm.AdminBaseDTO; import lombok.Data; @@ -10,7 +11,7 @@ public class VVMySettlementApprovalRequest extends AdminBaseDTO { // 结算状态 - // 'apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 ' + //agree_approval: 同意审批 ,reject_approval:拒绝审批 ' private String status; @@ -19,6 +20,20 @@ public class VVMySettlementApprovalRequest extends AdminBaseDTO { */ private Long id; + + /*** + * 拒绝原因 + */ + private String rejectReason; + + + public static void main(String[] args) { + VVMySettlementApprovalRequest vvMySettlementApprovalRequest = new VVMySettlementApprovalRequest(); + vvMySettlementApprovalRequest.setId(9L); + vvMySettlementApprovalRequest.setStatus("agree_approval"); + System.out.println(JSON.toJSONString(vvMySettlementApprovalRequest)); + } + } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java index 624e61b..c6496ca 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminMySettlementController.java @@ -11,6 +11,7 @@ import com.heyu.api.data.entity.vv.VvMyAccountEntity; import com.heyu.api.data.entity.vv.VvMySettlementEntity; import com.heyu.api.data.enums.AccountOperateEnums; import com.heyu.api.data.enums.AccountTypeEnums; +import com.heyu.api.data.enums.MySettlementStatusEnums; import com.heyu.api.data.utils.BigDecimalUtil; import com.heyu.api.data.utils.DingDingSettlementUtils; import com.heyu.api.data.utils.R; @@ -39,6 +40,7 @@ public class AdminMySettlementController { /*** * 列表 + * http://localhost:8888/mm/my/settlement/list */ @RequestMapping("/list") public R list(@RequestBody VVMySettlementRequest vvMySettlementRequest) { @@ -61,44 +63,90 @@ public class AdminMySettlementController { MyAccountDTO myAccountDTO = new MyAccountDTO(); myAccountDTO.setVvMyAccountEntity(vvMyAccountEntity); myAccountDTO.setPageUtils(pageUtils); - return R.ok().setData(myAccountDTO); } /*** * 插入数据 + * http://localhost:8888/mm/my/settlement/add */ @RequestMapping("/add") public R add(@RequestBody VvMySettlementEntity vvMySettlementEntity) { - vvMySettlementDao.insertOrUpdateVvMySettlement(vvMySettlementEntity); + vvMySettlementEntity.setType(AccountTypeEnums.common.getType()); if (AccountOperateEnums.plus.getSign().equals(vvMySettlementEntity.getOperate())) { VvMyAccountEntity vvMyAccountEntity = vvMyAccountDao.selectVvMyAccount(AccountTypeEnums.common.getType()); vvMyAccountEntity.setAmount(vvMySettlementEntity.getAmount().add(vvMyAccountEntity.getAmount())); vvMyAccountEntity.setRechargeAmount(vvMySettlementEntity.getAmount().add(vvMyAccountEntity.getRechargeAmount())); vvMyAccountDao.updateVvMyAccountById(vvMyAccountEntity); + String content = vvMySettlementEntity.getApplyUserName() + + ",充值了:" + vvMySettlementEntity.getAmount() + + ",账户余额:" +vvMyAccountEntity.getAmount() ; + DingDingSettlementUtils.sendText(content, "账户充值"); + vvMySettlementEntity.setStatus(MySettlementStatusEnums.no_approval.getStatus()); + vvMySettlementEntity.setRemainAmount(vvMySettlementEntity.getAmount()); } else { - String content = vvMySettlementEntity.getUserName() + ",提交了报销单,报销金额:" + vvMySettlementEntity.getAmount(); + String content = vvMySettlementEntity.getApplyUserName() + + ",提交了报销单,报销金额:" + vvMySettlementEntity.getAmount() + + ",申请原因:" + vvMySettlementEntity.getApplyReason(); DingDingSettlementUtils.sendText(content, "报销申请"); + vvMySettlementEntity.setStatus(MySettlementStatusEnums.apply_for_approval.getStatus()); } + vvMySettlementEntity.setCreateTimestamp(System.currentTimeMillis()); + vvMySettlementEntity.setModifyTimestamp(System.currentTimeMillis()); + vvMySettlementDao.insertVvMySettlement(vvMySettlementEntity); + return R.ok().setData(vvMySettlementEntity); } /*** * 审批 + * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 + * + * + * + * http://localhost:8888/mm/my/settlement/approval + * + * + * */ @RequestMapping("/approval") public R approval(@RequestBody VVMySettlementApprovalRequest vvMySettlementApprovalRequest) { - - VvMySettlementEntity vvMySettlement = vvMySettlementDao.selectVvMySettlementById(vvMySettlementApprovalRequest.getId()); + VvMyAccountEntity vvMyAccountEntity = vvMyAccountDao.selectVvMyAccount(AccountTypeEnums.common.getType()); + vvMySettlement.setApprovalUserName(vvMySettlementApprovalRequest.getUserName()); - BigDecimal remainAmount = vvMySettlement.getRemainAmount(); - BigDecimal lastRemainAmount = BigDecimalUtil.subtract(remainAmount, vvMySettlement.getRemainAmount()); - vvMySettlement.setRemainAmount(lastRemainAmount); + if(!MySettlementStatusEnums.apply_for_approval.getStatus().equals(vvMySettlement.getStatus())){ + return R.error("状态不对"); + } + if (MySettlementStatusEnums.agree_approval.getStatus().equals(vvMySettlementApprovalRequest.getStatus())) { + BigDecimal acountAmount = vvMyAccountEntity.getAmount(); + BigDecimal lastRemainAmount = BigDecimalUtil.subtract(acountAmount, vvMySettlement.getAmount()); + vvMySettlement.setRemainAmount(lastRemainAmount); + + vvMyAccountEntity.setAmount(lastRemainAmount); + vvMyAccountEntity.setSubAmount(vvMyAccountEntity.getSubAmount().add(vvMySettlement.getAmount())); + vvMyAccountDao.updateVvMyAccountById(vvMyAccountEntity); + String content = vvMySettlementApprovalRequest.getUserName() + + ",同意了:" + vvMySettlement.getApplyUserName() + + ",申请的:" + vvMySettlement.getAmount() + + ",申请原因:" + vvMySettlement.getApplyReason() + + ",账户余额:" + vvMyAccountEntity.getAmount(); + DingDingSettlementUtils.sendText(content, "同意审批"); + } else if (MySettlementStatusEnums.reject_approval.getStatus().equals(vvMySettlementApprovalRequest.getStatus())) { + String content = vvMySettlementApprovalRequest.getUserName() + + ",拒绝了:" + vvMySettlement.getApplyUserName() + + ",申请的" + vvMySettlement.getAmount() + + ",账户余额:" + vvMyAccountEntity.getAmount() + + ",拒绝原因:" + vvMySettlementApprovalRequest.getRejectReason(); + DingDingSettlementUtils.sendText(content, "拒绝审批"); + vvMySettlement.setRejectReason(vvMySettlementApprovalRequest.getRejectReason()); + vvMySettlement.setRemainAmount(vvMyAccountEntity.getAmount()); + } + vvMySettlement.setModifyTimestamp(System.currentTimeMillis()); vvMySettlement.setStatus(vvMySettlementApprovalRequest.getStatus()); - vvMySettlementDao.insertOrUpdateVvMySettlement(vvMySettlement); + vvMySettlementDao.updateVvMySettlementById(vvMySettlement); return R.ok().setData(vvMySettlement); }