From dc8e24159de4fe9ba8d3d4e8f62d9d7f5afef3b1 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 10 Nov 2025 13:40:15 +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 --- .../heyu/api/data/dao/vv/VvMyAccountDao.java | 39 ++++ .../api/data/entity/vv/VvMyAccountEntity.java | 182 ++++++++++++++++++ .../data/entity/vv/VvMySettlementEntity.java | 33 +++- .../api/data/enums/AccountOperateEnums.java | 35 ++++ .../heyu/api/data/enums/AccountTypeEnums.java | 33 ++++ .../impl/vv/VvMyAccountServiceImpl.java | 68 +++++++ .../data/service/vv/VvMyAccountService.java | 34 ++++ .../data/utils/DingDingSettlementUtils.java | 70 +++++++ .../resources/mapper/vv/VvMyAccountDao.xml | 6 + .../java/com/test/xxx/MysqlMain_insert.java | 3 +- .../java/com/test/xxx/MysqlMain_update.java | 1 + .../order/VVMySettlementApprovalRequest.java | 24 +++ .../request/mm/order/resp/MyAccountDTO.java | 19 ++ .../mm/AdminMySettlementController.java | 56 +++++- 14 files changed, 584 insertions(+), 19 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java create mode 100644 api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java new file mode 100644 index 0000000..90185cc --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvMyAccountDao.java @@ -0,0 +1,39 @@ +package com.heyu.api.data.dao.vv; +/** +*

+* 结算 服务类 +*

+* +* @author quyixiao +* @since 2025-11-10 +*/ +import com.heyu.api.data.entity.vv.VvMyAccountEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lz.mybatis.plugin.annotations.LIMIT; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper +public interface VvMyAccountDao extends BaseMapper { + + + VvMyAccountEntity selectVvMyAccountById(@Param("id")Long id); + + + Long insertVvMyAccount(VvMyAccountEntity vvMyAccount); + + + Long insertOrUpdateVvMyAccount(VvMyAccountEntity vvMyAccount); + + + int updateVvMyAccountById(VvMyAccountEntity vvMyAccount); + + + int updateCoverVvMyAccountById(VvMyAccountEntity vvMyAccount); + + + int deleteVvMyAccountById(@Param("id")Long id); + + + @LIMIT + VvMyAccountEntity selectVvMyAccount(String type); +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java new file mode 100644 index 0000000..634e297 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvMyAccountEntity.java @@ -0,0 +1,182 @@ +package com.heyu.api.data.entity.vv; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.lz.mybatis.plugin.annotations.AS; + +import java.math.BigDecimal; +import java.util.Date;import java.util.Date; +/** +*结算 +* @author quyixiao +* @since 2025-11-10 +*/ + +@Data +@TableName("vv_my_account") +public class VvMyAccountEntity implements java.io.Serializable { +private static final long serialVersionUID = 1L; + + public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvMyAccountEntity:"; + + 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 amount_ = CLASS_NAME + "amount"; // 账户金额 + public final static String recharge_amount = CLASS_NAME + "recharge_amount"; // 充值金额 + public final static String sub_amount = CLASS_NAME + "sub_amount"; // 报销金额 + public final static String type_ = CLASS_NAME + "type"; // 账户类型, 公款:common + // + @TableId(value = "id", type = IdType.AUTO) + private Long id; + //是否删除:0 否 1 删除 + private Integer isDelete; + //创建时间 + private Date createTime; + //修改时间 + private Date modifyTime; + //账户金额 + private BigDecimal amount; + //充值金额 + private BigDecimal rechargeAmount; + //报销金额 + private BigDecimal subAmount; + //账户类型, 公款:common + private String type; + /** + * + * @return + */ + public Long getId() { + return id; + } + /** + * + * @param id + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 是否删除:0 否 1 删除 + * @return + */ + public Integer getIsDelete() { + return isDelete; + } + /** + * 是否删除:0 否 1 删除 + * @param isDelete + */ + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + /** + * 创建时间 + * @return + */ + public Date getCreateTime() { + return createTime; + } + /** + * 创建时间 + * @param createTime + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 修改时间 + * @return + */ + public Date getModifyTime() { + return modifyTime; + } + /** + * 修改时间 + * @param modifyTime + */ + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + /** + * 账户金额 + * @return + */ + public BigDecimal getAmount() { + return amount; + } + /** + * 账户金额 + * @param amount + */ + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + /** + * 充值金额 + * @return + */ + public BigDecimal getRechargeAmount() { + return rechargeAmount; + } + /** + * 充值金额 + * @param rechargeAmount + */ + public void setRechargeAmount(BigDecimal rechargeAmount) { + this.rechargeAmount = rechargeAmount; + } + + /** + * 报销金额 + * @return + */ + public BigDecimal getSubAmount() { + return subAmount; + } + /** + * 报销金额 + * @param subAmount + */ + public void setSubAmount(BigDecimal subAmount) { + this.subAmount = subAmount; + } + + /** + * 账户类型, 公款:common + * @return + */ + public String getType() { + return type; + } + /** + * 账户类型, 公款:common + * @param type + */ + public void setType(String type) { + this.type = type; + } + + @Override + public String toString() { + return "VvMyAccountEntity{" + + ",id=" + id + + ",isDelete=" + isDelete + + ",createTime=" + createTime + + ",modifyTime=" + modifyTime + + ",amount=" + amount + + ",rechargeAmount=" + rechargeAmount + + ",subAmount=" + subAmount + + ",type=" + type + + "}"; + } +} \ No newline at end of file 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 af51d58..7ed6e5c 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 @@ -1,12 +1,12 @@ package com.heyu.api.data.entity.vv; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import com.lz.mybatis.plugin.annotations.AS; import java.math.BigDecimal; -import java.util.Date;import java.util.Date; +import java.util.Date; /** *结算 * @author quyixiao @@ -29,10 +29,11 @@ private static final long serialVersionUID = 1L; 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 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,公款 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -44,13 +45,13 @@ private static final long serialVersionUID = 1L; private Date modifyTime; //谁结算的 private String userName; - //操作 + ,- + //操作 + , - private String operate; //金额 private BigDecimal amount; //特点 private String features; - //apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 + //apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 private String status; //剩下金额 private BigDecimal remainAmount; @@ -58,6 +59,8 @@ private static final long serialVersionUID = 1L; private Long createTimestamp; //修改时间 private Long modifyTimestamp; + //common,公款 + private String type; /** * * @return @@ -179,14 +182,14 @@ private static final long serialVersionUID = 1L; } /** - * apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 + * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 * @return */ public String getStatus() { return status; } /** - * apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 + * apply_for_approval:申请审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 * @param status */ public void setStatus(String status) { @@ -238,6 +241,21 @@ private static final long serialVersionUID = 1L; this.modifyTimestamp = modifyTimestamp; } + /** + * common,公款 + * @return + */ + public String getType() { + return type; + } + /** + * common,公款 + * @param type + */ + public void setType(String type) { + this.type = type; + } + @Override public String toString() { return "VvMySettlementEntity{" + @@ -253,6 +271,7 @@ private static final long serialVersionUID = 1L; ",remainAmount=" + remainAmount + ",createTimestamp=" + createTimestamp + ",modifyTimestamp=" + modifyTimestamp + + ",type=" + type + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java new file mode 100644 index 0000000..a64022a --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountOperateEnums.java @@ -0,0 +1,35 @@ +package com.heyu.api.data.enums; + + +public enum AccountOperateEnums { + + plus("+", "加"), + sub("-", "减"); + + + AccountOperateEnums(String sign, String desc) { + this.sign = sign; + this.desc = desc; + } + + private String sign; + + private String desc; + + + public String getSign() { + return sign; + } + + public void setSign(String sign) { + this.sign = sign; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java new file mode 100644 index 0000000..7fa03cd --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/enums/AccountTypeEnums.java @@ -0,0 +1,33 @@ +package com.heyu.api.data.enums; + +public enum AccountTypeEnums { + common("common","公款"), + ; + + + private String type; + + private String desc; + + + AccountTypeEnums(String type, String desc) { + this.type = type; + this.desc = desc; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java new file mode 100644 index 0000000..1d77547 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvMyAccountServiceImpl.java @@ -0,0 +1,68 @@ +package com.heyu.api.data.service.impl.vv; +/** +*

+* 结算 服务类 +*

+* +* @author quyixiao +* @since 2025-11-10 +*/ + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.heyu.api.data.dao.vv.VvMyAccountDao; +import com.heyu.api.data.entity.vv.VvMyAccountEntity; +import com.heyu.api.data.service.vv.VvMyAccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +@Service +public class VvMyAccountServiceImpl extends ServiceImpl implements VvMyAccountService { + + + @Autowired + private VvMyAccountDao vvMyAccountDao; + + + + @Override + public VvMyAccountEntity selectVvMyAccountById(Long id){ + return vvMyAccountDao.selectVvMyAccountById(id); + } + + + + @Override + public Long insertVvMyAccount(VvMyAccountEntity vvMyAccount){ + return vvMyAccountDao.insertVvMyAccount(vvMyAccount); + } + + + + @Override + public Long insertOrUpdateVvMyAccount(VvMyAccountEntity vvMyAccount){ + return vvMyAccountDao.insertOrUpdateVvMyAccount(vvMyAccount); + } + + + + @Override + public int updateVvMyAccountById(VvMyAccountEntity vvMyAccount){ + return vvMyAccountDao.updateVvMyAccountById(vvMyAccount); + } + + + + @Override + public int updateCoverVvMyAccountById(VvMyAccountEntity vvMyAccount){ + return vvMyAccountDao.updateCoverVvMyAccountById(vvMyAccount); + } + + + + @Override + public int deleteVvMyAccountById(Long id){ + return vvMyAccountDao.deleteVvMyAccountById(id); + } + + + +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java new file mode 100644 index 0000000..1e1c5c4 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvMyAccountService.java @@ -0,0 +1,34 @@ +package com.heyu.api.data.service.vv; +/** +*

+* 结算 服务类 +*

+* +* @author quyixiao +* @since 2025-11-10 +*/ +import com.baomidou.mybatisplus.extension.service.IService; +import com.heyu.api.data.entity.vv.VvMyAccountEntity; +public interface VvMyAccountService extends IService { + + + + VvMyAccountEntity selectVvMyAccountById(Long id); + + + Long insertVvMyAccount(VvMyAccountEntity vvMyAccount); + + + Long insertOrUpdateVvMyAccount(VvMyAccountEntity vvMyAccount); + + + int updateVvMyAccountById(VvMyAccountEntity vvMyAccount); + + + int updateCoverVvMyAccountById(VvMyAccountEntity vvMyAccount); + + + int deleteVvMyAccountById(Long id); + + +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java new file mode 100644 index 0000000..0eb0245 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/DingDingSettlementUtils.java @@ -0,0 +1,70 @@ +package com.heyu.api.data.utils; + + +import com.dingtalk.api.DefaultDingTalkClient; +import com.dingtalk.api.DingTalkClient; +import com.dingtalk.api.request.OapiRobotSendRequest; +import com.dingtalk.api.response.OapiRobotSendResponse; +import com.lz.mybatis.plugins.interceptor.entity.DingTalkDto; +import lombok.extern.slf4j.Slf4j; + +import java.util.Arrays; + +/*** + * https://oapi.dingtalk.com/robot/send?access_token=4e9917f5f782cec0bf139ac867b95c64b9c8bcd71266f334905f5196d9828314 + */ +@Slf4j +public class DingDingSettlementUtils { + + // 财务小助手 + + protected static String dingTalkUrlPre = "https://oapi.dingtalk.com/robot/send?access_token="; + protected static String token = "4c36a91c1dbd4b3c2827cd8cd63f2342d2da7c6d7ebc5f62cf06197034b12bec"; + + + public static void sendText(String text,String title) { + try { + String content = text + "\n"; + content = "【财务小助手】:" + + "\n" + content; + DingTalkDto dingTalk = new DingTalkDto(); + dingTalk.setToken(""); + dingTalk.setText(content); + dingTalk.setTitle(title); + dingTalk.setMsgType("text"); + process(dingTalk,token); + } catch (Exception e) { + log.error("DingDingUtils",e); + } + } + + private static OapiRobotSendResponse process(DingTalkDto dingTalk, String token ) throws Exception { + DingTalkClient client = new DefaultDingTalkClient(dingTalkUrlPre + token); + OapiRobotSendRequest request = new OapiRobotSendRequest(); + request.setMsgtype("text"); + + OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text(); + text.setContent(dingTalk.getText()); + request.setText(text); + // 被@人的手机号(在text内容里要有@手机号) + OapiRobotSendRequest.At at = new OapiRobotSendRequest.At(); + + String[] mobiles = "18458195149".split(","); + + + if(StringUtils.isNotBlank(dingTalk.getAtMobiles())){ + mobiles = dingTalk.getAtMobiles().split(","); + } + at.setAtMobiles(Arrays.asList(mobiles)); + + request.setAt(at); + OapiRobotSendResponse response = client.execute(request); + return response; + } + + + public static void main(String[] args) { + sendText("xx","cc"); + } + +} diff --git a/api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml b/api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml new file mode 100644 index 0000000..411af47 --- /dev/null +++ b/api-mapper/src/main/resources/mapper/vv/VvMyAccountDao.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java index eee9dcf..489e805 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java @@ -94,8 +94,7 @@ public class MysqlMain_insert { List list = new ArrayList(); - list.add(new TablesBean("vv_my_settlement")); - + list.add(new TablesBean("vv_my_account")); List list2 = new ArrayList(); 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 4653b46..b605514 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 @@ -49,6 +49,7 @@ 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 new file mode 100644 index 0000000..d8ad526 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVMySettlementApprovalRequest.java @@ -0,0 +1,24 @@ +package com.heyu.api.alibaba.request.mm.order; + + +import com.heyu.api.alibaba.request.mm.AdminBaseDTO; +import lombok.Data; + +@Data +public class VVMySettlementApprovalRequest extends AdminBaseDTO { + + + + // 结算状态 + // 'apply_for_approval:同意审批,agree_approval: 同意审批 ,reject_approval:拒绝审批 ' + private String status; + + + /*** + * id + */ + private Long id; + +} + + diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java new file mode 100644 index 0000000..c9bf1c4 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/MyAccountDTO.java @@ -0,0 +1,19 @@ +package com.heyu.api.alibaba.request.mm.order.resp; + + +import com.heyu.api.data.entity.vv.VvMyAccountEntity; +import com.heyu.api.utils.PPageUtils; +import lombok.Data; + +@Data +public class MyAccountDTO { + /*** + * 账户 + */ + private VvMyAccountEntity vvMyAccountEntity; + + /*** + * 账户信息 + */ + private PPageUtils pageUtils; +} 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 df7b1a6..624e61b 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 @@ -2,10 +2,17 @@ package com.heyu.api.controller.mm; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.heyu.api.alibaba.request.mm.order.VVMySettlementApprovalRequest; import com.heyu.api.alibaba.request.mm.order.VVMySettlementRequest; +import com.heyu.api.alibaba.request.mm.order.resp.MyAccountDTO; +import com.heyu.api.data.dao.vv.VvMyAccountDao; import com.heyu.api.data.dao.vv.VvMySettlementDao; +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.utils.BigDecimalUtil; +import com.heyu.api.data.utils.DingDingSettlementUtils; import com.heyu.api.data.utils.R; import com.heyu.api.utils.ISelect; import com.heyu.api.utils.PPageUtils; @@ -18,19 +25,24 @@ import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.List; +// https://oapi.dingtalk.com/robot/send?access_token=4c36a91c1dbd4b3c2827cd8cd63f2342d2da7c6d7ebc5f62cf06197034b12bec @Slf4j @RestController -@RequestMapping("/mm/my/") +@RequestMapping("/mm/my/settlement") public class AdminMySettlementController { @Autowired private VvMySettlementDao vvMySettlementDao; + @Autowired + private VvMyAccountDao vvMyAccountDao; + /*** * 列表 */ @RequestMapping("/list") public R list(@RequestBody VVMySettlementRequest vvMySettlementRequest) { + VvMyAccountEntity vvMyAccountEntity = vvMyAccountDao.selectVvMyAccount(AccountTypeEnums.common.getType()); PPageUtils pageUtils = PPageUtils.startPage(vvMySettlementRequest.getPageNum(), vvMySettlementRequest.getPageSize()) .doSelect(new ISelect() { @Override @@ -45,25 +57,49 @@ public class AdminMySettlementController { ); } }); - return R.ok().setData(pageUtils); + + MyAccountDTO myAccountDTO = new MyAccountDTO(); + myAccountDTO.setVvMyAccountEntity(vvMyAccountEntity); + myAccountDTO.setPageUtils(pageUtils); + + return R.ok().setData(myAccountDTO); } - - /*** * 插入数据 */ - @RequestMapping("/insertOrUpdate") - public R insertOrUpdate(@RequestBody VvMySettlementEntity vvMySettlementEntity) { - VvMySettlementEntity vvMySettlement = vvMySettlementDao.selectVvMySettlementOrderByIdDescLimit1(); + @RequestMapping("/add") + public R add(@RequestBody VvMySettlementEntity vvMySettlementEntity) { + vvMySettlementDao.insertOrUpdateVvMySettlement(vvMySettlementEntity); + 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); + } else { + String content = vvMySettlementEntity.getUserName() + ",提交了报销单,报销金额:" + vvMySettlementEntity.getAmount(); + DingDingSettlementUtils.sendText(content, "报销申请"); + } + return R.ok().setData(vvMySettlementEntity); + } + + /*** + * 审批 + */ + @RequestMapping("/approval") + public R approval(@RequestBody VVMySettlementApprovalRequest vvMySettlementApprovalRequest) { + + + VvMySettlementEntity vvMySettlement = vvMySettlementDao.selectVvMySettlementById(vvMySettlementApprovalRequest.getId()); BigDecimal remainAmount = vvMySettlement.getRemainAmount(); BigDecimal lastRemainAmount = BigDecimalUtil.subtract(remainAmount, vvMySettlement.getRemainAmount()); - vvMySettlementEntity.setRemainAmount(lastRemainAmount); + vvMySettlement.setRemainAmount(lastRemainAmount); + + vvMySettlement.setStatus(vvMySettlementApprovalRequest.getStatus()); vvMySettlementDao.insertOrUpdateVvMySettlement(vvMySettlement); - return R.ok().setData(vvMySettlementEntity); + return R.ok().setData(vvMySettlement); } - }