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
-
20src/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