Browse Source
Merge remote-tracking branch 'origin/milestone-20251016-现金管理' into milestone-20251016-现金管理
Merge remote-tracking branch 'origin/milestone-20251016-现金管理' into milestone-20251016-现金管理
# Conflicts: # src/main/java/com/example/demo/controller/coin/RefundController.java # src/main/java/com/example/demo/domain/vo/coin/Page.java # src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.javalihuilin1015备份
19 changed files with 548 additions and 12 deletions
-
16pom.xml
-
2src/main/java/com/example/demo/Util/BaseDES.java
-
3src/main/java/com/example/demo/config/FlowableDataSourceConfig.java
-
2src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java
-
40src/main/java/com/example/demo/controller/cash/CashAuditController.java
-
59src/main/java/com/example/demo/controller/cash/CashCollectionController.java
-
2src/main/java/com/example/demo/controller/coin/RefundController.java
-
4src/main/java/com/example/demo/domain/entity/CashRecord.java
-
18src/main/java/com/example/demo/domain/vo/cash/CashCollection.java
-
2src/main/java/com/example/demo/domain/vo/coin/Page.java
-
19src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java
-
42src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java
-
15src/main/java/com/example/demo/service/cash/CashAuditService.java
-
12src/main/java/com/example/demo/service/cash/CashCollectionService.java
-
52src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java
-
121src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
-
2src/main/resources/application.yml
-
14src/main/resources/cashMapper/CashAuditMapper.xml
-
133src/main/resources/cashMapper/CashCollectionMapper.xml
@ -0,0 +1,40 @@ |
|||||
|
package com.example.demo.controller.cash; |
||||
|
|
||||
|
import com.example.demo.config.interfac.Log; |
||||
|
import com.example.demo.domain.vo.coin.AuditRequest; |
||||
|
import com.example.demo.service.cash.CashAuditService; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.http.ResponseEntity; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName CashAuditController |
||||
|
* @description: |
||||
|
* @author: Ethan |
||||
|
* @create: 2025−10-08 10:02 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/cashAudit") |
||||
|
@RequiredArgsConstructor |
||||
|
@Slf4j |
||||
|
|
||||
|
@CrossOrigin |
||||
|
public class CashAuditController { |
||||
|
|
||||
|
@Autowired |
||||
|
private CashAuditService cashAuditService; |
||||
|
|
||||
|
//收款审核 |
||||
|
@Log("收款审核") |
||||
|
@PostMapping("/collectionAudit") |
||||
|
public ResponseEntity<Boolean> collectionAudit( |
||||
|
@RequestBody AuditRequest request){ |
||||
|
boolean result = cashAuditService.auditCollection(request.getToken(),request.getAuditId(),request.getOrderCode(), request.getAction(),request.getRejectReason()); |
||||
|
return ResponseEntity.ok(result); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,19 @@ |
|||||
|
package com.example.demo.mapper.cash; |
||||
|
|
||||
|
import com.example.demo.domain.entity.CashRecord; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName cashAuditMapper |
||||
|
* @description: |
||||
|
* @author: Ethan |
||||
|
* @create: 2025−10-08 15:02 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Mapper |
||||
|
public interface CashAuditMapper { |
||||
|
//审核收款订单 |
||||
|
void updateOrder (CashRecord updateOrder); |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package com.example.demo.mapper.cash; |
||||
|
|
||||
|
import com.example.demo.domain.entity.CashRecord; |
||||
|
import com.example.demo.domain.vo.cash.CashCollection; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName CashCollectionMapper |
||||
|
* @description: |
||||
|
* @author: Ethan |
||||
|
* @create: 2025−09-26 17:17 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Mapper |
||||
|
public interface CashCollectionMapper { |
||||
|
|
||||
|
//根据jwcode获取所属地区 |
||||
|
String getMarketByJwcode(@Param("jwcode") Integer jwcode); |
||||
|
//新增收款订单 |
||||
|
void add(CashRecord cashRecord); |
||||
|
//根据订单号获取订单id,状态 |
||||
|
CashRecord selectByOrderCode(@Param("orderCode") String orderCode); |
||||
|
//更新订单状态 |
||||
|
int updateStatus(@Param("orderCode") String orderCode, |
||||
|
@Param("status") Integer status); |
||||
|
//编辑订单 |
||||
|
// 编辑订单(状态=5)后重新提交 |
||||
|
int updateByOrderCode(@Param("cashRecord") CashRecord cashRecord); |
||||
|
//多条件查询收款订单列表 |
||||
|
List<CashCollection> selectCollection1(@Param("pageNum") Integer pageNum, |
||||
|
@Param("pageSize") Integer pageSize, |
||||
|
@Param("cashCollection") CashCollection cashCollection); |
||||
|
|
||||
|
//根据订单号查询待审核的现金收款订单 |
||||
|
CashRecord selectUnAuditByOrderCode(@Param("orderCode") String orderCode); |
||||
|
//补全手续费等信息 |
||||
|
int complete(@Param("cashRecord") CashRecord cashRecord); |
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
package com.example.demo.service.cash; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName CashAuditService |
||||
|
* @description: |
||||
|
* @author: Ethan |
||||
|
* @create: 2025−10-08 10:08 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
public interface CashAuditService { |
||||
|
//审核收款订单 |
||||
|
boolean auditCollection(String token,Integer auditId, String orderCode, Integer action, String rejectReason); |
||||
|
} |
||||
@ -0,0 +1,52 @@ |
|||||
|
package com.example.demo.serviceImpl.cash; |
||||
|
|
||||
|
import com.example.demo.domain.entity.CashRecord; |
||||
|
import com.example.demo.mapper.cash.CashAuditMapper; |
||||
|
import com.example.demo.mapper.cash.CashCollectionMapper; |
||||
|
import com.example.demo.mapper.coin.AuditMapper; |
||||
|
import com.example.demo.service.cash.CashAuditService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
|
||||
|
/** |
||||
|
* @program: gold-java |
||||
|
* @ClassName CashAuditServiceImpl |
||||
|
* @description: |
||||
|
* @author: Ethan |
||||
|
* @create: 2025−10-08 10:09 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Service |
||||
|
public class CashAuditServiceImpl implements CashAuditService { |
||||
|
@Autowired |
||||
|
private AuditMapper auditMapper; |
||||
|
@Autowired |
||||
|
private CashCollectionMapper cashCollectionMapper; |
||||
|
@Autowired |
||||
|
private CashAuditMapper cashAuditMapper; |
||||
|
@Transactional |
||||
|
@Override |
||||
|
public boolean auditCollection(String token,Integer auditId, String orderCode, Integer action, String rejectReason) { |
||||
|
CashRecord order = cashCollectionMapper.selectUnAuditByOrderCode(orderCode); |
||||
|
|
||||
|
if (order==null || order.getStatus()!=0){ |
||||
|
throw new IllegalArgumentException("订单不存在或已被审核"); |
||||
|
} |
||||
|
CashRecord updateOrder = new CashRecord(); |
||||
|
//设置审核人 |
||||
|
updateOrder.setAuditId(auditId); |
||||
|
//判断是通过还是驳回,更新审核状态 |
||||
|
updateOrder.setOrderCode(orderCode); |
||||
|
if (action==1){ //通过 |
||||
|
updateOrder.setStatus(1); |
||||
|
} |
||||
|
else if (action==2){ //驳回 |
||||
|
updateOrder.setStatus(2); |
||||
|
updateOrder.setRejectReason(rejectReason); |
||||
|
} |
||||
|
//更新订单 |
||||
|
cashAuditMapper.updateOrder(updateOrder); |
||||
|
return true; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
<?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.example.demo.mapper.cash.CashAuditMapper"> |
||||
|
|
||||
|
<!--审核收款订单--> |
||||
|
<update id="updateOrder"> |
||||
|
update cash_record |
||||
|
set status=#{status}, |
||||
|
reject_reason=#{rejectReason}, |
||||
|
audit_id=#{auditId}, |
||||
|
audit_time=now() |
||||
|
where order_code=#{orderCode} and status=0 |
||||
|
</update> |
||||
|
</mapper> |
||||
@ -0,0 +1,133 @@ |
|||||
|
<?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.example.demo.mapper.cash.CashCollectionMapper"> |
||||
|
|
||||
|
|
||||
|
<insert id="add" parameterType="com.example.demo.domain.entity.CashRecord" |
||||
|
useGeneratedKeys="true" keyProperty="id"> |
||||
|
insert into |
||||
|
cash_record(order_type,jwcode,name,market,activity, |
||||
|
order_code,goods_name,good_num, |
||||
|
payment_currency,payment_amount,received_market, |
||||
|
pay_type,pay_time,status,submitter_id, |
||||
|
voucher,remark) |
||||
|
values(#{orderType},#{jwcode},#{name},#{market},#{activity}, |
||||
|
#{orderCode},#{goodsName},#{goodNum},#{paymentCurrency}, |
||||
|
#{paymentAmount},#{receivedMarket},#{payType},#{payTime}, |
||||
|
#{status},#{submitterId},#{voucher},#{remark}) |
||||
|
</insert> |
||||
|
|
||||
|
<!--更新订单状态--> |
||||
|
<update id="updateStatus"> |
||||
|
update cash_record |
||||
|
set status=#{status} |
||||
|
where order_code=#{orderCode} |
||||
|
</update> |
||||
|
<!--更新订单--> |
||||
|
<update id="updateByOrderCode"> |
||||
|
UPDATE cash_record |
||||
|
<set> |
||||
|
jwcode = #{cashRecord.jwcode}, |
||||
|
name = #{cashRecord.name}, |
||||
|
market = #{cashRecord.market}, |
||||
|
activity = #{cashRecord.activity}, |
||||
|
goods_name = #{cashRecord.goodsName}, |
||||
|
good_num = #{cashRecord.goodNum}, |
||||
|
payment_currency = #{cashRecord.paymentCurrency}, |
||||
|
payment_amount = #{cashRecord.paymentAmount}, |
||||
|
received_market = #{cashRecord.receivedMarket}, |
||||
|
pay_type = #{cashRecord.payType}, |
||||
|
pay_time = #{cashRecord.payTime}, |
||||
|
voucher = #{cashRecord.voucher}, |
||||
|
remark = #{cashRecord.remark}, |
||||
|
status = 0, |
||||
|
</set> |
||||
|
WHERE order_code = #{cashRecord.orderCode} |
||||
|
AND status = 5 |
||||
|
</update> |
||||
|
<!--补全手续费等字段--> |
||||
|
<update id="complete"> |
||||
|
update cash_record |
||||
|
set handling_charge=#{cashRecord.handlingCharge}, |
||||
|
received_currency=#{cashRecord.receivedCurrency}, |
||||
|
received_amount=#{cashRecord.receivedAmount}, |
||||
|
received_time=#{cashRecord.receivedTime}, |
||||
|
received_remark= #{cashRecord.receivedRemark}, |
||||
|
status=4, |
||||
|
bank_code= #{cashRecord.bankCode} |
||||
|
where order_code=#{cashRecord.orderCode} and status in (1,3) |
||||
|
|
||||
|
</update> |
||||
|
<!--根据jwcode获取所属地区--> |
||||
|
<select id="getMarketByJwcode" resultType="java.lang.String"> |
||||
|
select market from user where jwcode=#{jwcode} |
||||
|
</select> |
||||
|
<!--根据订单号获取订单id与状态--> |
||||
|
<select id="selectByOrderCode" resultType="com.example.demo.domain.entity.CashRecord"> |
||||
|
select id ,status |
||||
|
from cash_record |
||||
|
where order_code=#{orderCode} |
||||
|
</select> |
||||
|
<!--多条件查询收款订单列表--> |
||||
|
<select id="selectCollection1" resultType="com.example.demo.domain.vo.cash.CashCollection"> |
||||
|
select cr.id,cr.jwcode,cr.name,cr.market,cr.activity,cr.order_code,cr.bank_code, |
||||
|
cr.goods_name,cr.good_num,cr.payment_currency,cr.payment_amount, |
||||
|
cr.received_currency,cr.received_amount,cr.handling_charge, |
||||
|
cr.received_market,cr.pay_type,cr.pay_time,cr.received_time, |
||||
|
cr.status,cr.submitter_id,cr.voucher,cr.remark,cr.reject_reason, |
||||
|
cr.create_time,cr.update_time,cr.audit_time, |
||||
|
a.admin_name as submitterName, |
||||
|
a2.admin_name as auditName |
||||
|
|
||||
|
from cash_record cr |
||||
|
left join admin a1 on cr.submitter_id = a1.id |
||||
|
left join admin a2 on cr.audit_id = a2.id |
||||
|
<where> |
||||
|
1 = 1 |
||||
|
/*判断market 是否不为总部且 markets 不为空*/ |
||||
|
<if test="cashCollection.markets != null and cashCollection.markets.size() > 0"> |
||||
|
AND ( |
||||
|
<foreach collection="cashCollection.markets" item="market" open="" close="" separator=" OR "> |
||||
|
cr.market = #{market} |
||||
|
</foreach> |
||||
|
) |
||||
|
</if> |
||||
|
<if test="cashCollection.market != null and cashCollection.market != ''"> |
||||
|
AND cr.market = #{cashCollection.market} |
||||
|
</if> |
||||
|
<if test="cashCollection.jwcode != null and cashCollection.jwcode!=''"> |
||||
|
AND cr.jwcode = #{cashCollection.jwcode} |
||||
|
</if> |
||||
|
<if test="cashCollection.name!=null and cashCollection.name !=''"> |
||||
|
AND cr.name like concat('%',#{cashCollection.name},'%') |
||||
|
</if> |
||||
|
<if test="cashCollection.activity!=null and cashCollection.activity!=''"> |
||||
|
AND cr.activity like concat('%',#{cashCollection.activity},'%') |
||||
|
</if> |
||||
|
<if test="cashCollection.goodsName!=null and cashCollection.goodsName!=''"> |
||||
|
AND cr.goods_name like concat('%',#{cashCollection.goodsName},'%') |
||||
|
</if> |
||||
|
<if test="cashCollection.payType!=null and cashCollection.payType!=''"> |
||||
|
AND cr.pay_type = #{cashCollection.payType} |
||||
|
</if> |
||||
|
<if test="cashCollection.status!=null and cashCollection.status!=''"> |
||||
|
AND cr.status = #{cashCollection.status} |
||||
|
</if> |
||||
|
<if test="cashCollection.startTime!=null and cashCollection.endTime!=null"> |
||||
|
AND cr.pay_time between #{cashCollection.startTime} and #{cashCollection.endTime} |
||||
|
</if> |
||||
|
and cr.order_type=1 |
||||
|
</where> |
||||
|
<choose> |
||||
|
<when test="cashCollection.sortField != null and cashCollection.sortField.length > 0 or cashCollection.sortOrder != null and cashCollection.sortOrder.length > 0"> |
||||
|
ORDER BY ${cashCollection.sortField} ${cashCollection.sortOrder} |
||||
|
</when> |
||||
|
<otherwise> |
||||
|
ORDER BY update_time DESC |
||||
|
</otherwise> |
||||
|
</choose> |
||||
|
</select> |
||||
|
<select id="selectUnAuditByOrderCode" resultType="com.example.demo.domain.entity.CashRecord"> |
||||
|
select status,order_code from cash_record where order_code=#{orderCode} |
||||
|
</select> |
||||
|
</mapper> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue