扣款罚金区分公司

This commit is contained in:
Hawking 2023-05-05 22:43:33 +08:00
parent 9982b95211
commit 24a5b2d44f
5 changed files with 15 additions and 10 deletions

View File

@ -463,7 +463,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
addPrice = fcRecord.getChangeMoney();
BigDecimal fineMoney = BigDecimal.ZERO;
// 查询师傅的超时扣款记录
List<OrderTimeoutRecord> fineRecords = orderFineRecordMapper.selectUnFine(orderDetail.getWorkerId());
List<OrderTimeoutRecord> fineRecords = orderFineRecordMapper.selectUnFine(orderDetail.getWorkerId(), orderDetail.getDeptId());
ArrayList<Long> fineIds = new ArrayList<>();
for (OrderTimeoutRecord fineRecord : fineRecords) {
// 抵扣超时罚金 这里的罚金是按创建时间升序排列的 优先抵扣最早的罚金
@ -567,7 +567,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
logger.info("子财务单[{}] 应支付金额={} 不需要分账", financialDetail.getId(), payMoney);
} else {
// 查询师傅的超时扣款记录
List<OrderTimeoutRecord> fineRecords = orderFineRecordMapper.selectUnFine(orderDetail.getWorkerId());
List<OrderTimeoutRecord> fineRecords = orderFineRecordMapper.selectUnFine(orderDetail.getWorkerId(), orderDetail.getDeptId());
// 超时罚金
BigDecimal fineMoney = BigDecimal.ZERO;
ArrayList<Long> fineIds = new ArrayList<>();

View File

@ -21,6 +21,7 @@ public class OrderTimeoutRecord {
*/
private Long orderDetailId;
private Long workerId;
private Long deptId;
private List<Long> orderDetailIds;
@ -48,9 +49,10 @@ public class OrderTimeoutRecord {
public OrderTimeoutRecord() {
}
public OrderTimeoutRecord(Long orderDetailId, Long workerId, Integer orderStatus) {
public OrderTimeoutRecord(Long orderDetailId, Long workerId, Long deptId, Integer orderStatus) {
this.orderDetailId = orderDetailId;
this.workerId = workerId;
this.deptId = deptId;
this.orderStatus = orderStatus;
}
}

View File

@ -24,7 +24,8 @@ public interface OrderFineRecordMapper {
* 查询某师傅的未扣款的罚金
*
* @param workerId 师傅id
* @param deptId 公司id
*/
List<OrderTimeoutRecord> selectUnFine(@Param("workerId") Long workerId);
List<OrderTimeoutRecord> selectUnFine(@Param("workerId") Long workerId, @Param("deptId") Long deptId);
}

View File

@ -8,6 +8,7 @@
<id property="id" column="id"/>
<result property="orderDetailId" column="order_detail_id"/>
<result property="workerId" column="worker_id"/>
<result property="deptId" column="dept_id"/>
<result property="fineStatus" column="fine_status"/>
<result property="orderStatus" column="order_status"/>
<result property="payMoney" column="pay_money"/>
@ -15,7 +16,7 @@
</resultMap>
<sql id="selectOrderFineRecord">
SELECT id, order_detail_id, worker_id, fine_status, order_status, pay_money, create_time
SELECT id, order_detail_id, worker_id, dept_id, fine_status, order_status, pay_money, create_time
FROM order_timeout_record
</sql>
@ -49,13 +50,14 @@
<select id="selectUnFine" resultMap="OrderFineRecordResult">
<include refid="selectOrderFineRecord"/>
WHERE worker_id = #{workerId}
AND dept_id = #{deptId}
AND fine_status = 0
ORDER BY create_time
</select>
<insert id="insert" parameterType="com.ghy.payment.domain.OrderTimeoutRecord" useGeneratedKeys="true" keyProperty="id">
INSERT INTO order_timeout_record (order_detail_id, worker_id, order_status, pay_money)
VALUES (#{orderDetailId}, #{workerId}, #{orderStatus}, #{payMoney})
INSERT INTO order_timeout_record (order_detail_id, worker_id, dept_id, order_status, pay_money)
VALUES (#{orderDetailId}, #{workerId}, #{deptId}, #{orderStatus}, #{payMoney})
</insert>
<!-- <update id="update">-->

View File

@ -86,7 +86,7 @@ public class OrderServiceImpl implements OrderService {
Date overTime = getOverTime(order.getExpectTimeStart(), 4 * 60 * 60 * 1000);
if (overTime.before(now)) {
log.info("订单[{}]服务中状态超时4小时 扣款", order.getId());
OrderTimeoutRecord record = new OrderTimeoutRecord(order.getId(), order.getWorkerId(), order.getOrderStatus());
OrderTimeoutRecord record = new OrderTimeoutRecord(order.getId(), order.getWorkerId(), order.getDeptId(), order.getOrderStatus());
record.setPayMoney(getFineMoney(order));
record.setFineStatus(0);
orderFineRecordMapper.insert(record);
@ -115,7 +115,7 @@ public class OrderServiceImpl implements OrderService {
Date overTime = getOverTime(order.getUpdateTime(), 4 * 60 * 60 * 1000);
if (overTime.before(now)) {
log.info("订单[{}]超时4h 扣款", order.getId());
OrderTimeoutRecord record = new OrderTimeoutRecord(order.getId(), order.getWorkerId(), order.getOrderStatus());
OrderTimeoutRecord record = new OrderTimeoutRecord(order.getId(), order.getWorkerId(), order.getDeptId(), order.getOrderStatus());
record.setPayMoney(getFineMoney(order));
record.setFineStatus(0);
orderFineRecordMapper.insert(record);
@ -128,7 +128,7 @@ public class OrderServiceImpl implements OrderService {
Date overTime = getOverTime(orderTime, 6 * 60 * 60 * 1000);
if (overTime.before(now)) {
log.info("订单[{}]超时6h 再次扣款", order.getId());
OrderTimeoutRecord record = new OrderTimeoutRecord(order.getId(), order.getWorkerId(), order.getOrderStatus());
OrderTimeoutRecord record = new OrderTimeoutRecord(order.getId(), order.getWorkerId(), order.getDeptId(), order.getOrderStatus());
record.setPayMoney(getFineMoney(order));
record.setFineStatus(0);
orderFineRecordMapper.insert(record);