Compare commits

...

2 Commits

Author SHA1 Message Date
ljw 9e0dd924e5 Merge branch 'master' of https://git.njzscloud.com/lzq/njzscloud-dispose 2026-01-28 16:59:53 +08:00
ljw 4c4b93599d 付费项相关修改 2026-01-28 16:59:35 +08:00
31 changed files with 664 additions and 413 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@
/**/.DS_Store /**/.DS_Store
/**/.njzscloud-dispose /**/.njzscloud-dispose
/接口文档 /接口文档
/.vscode

View File

@ -1,24 +0,0 @@
package com.njzscloud.dispose.cst.order.constant;
import com.njzscloud.common.core.ienum.DictStr;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* settlement_way
*
*/
@Getter
@RequiredArgsConstructor
public enum SettlementWay implements DictStr {
YueJie("YueJie", "月结"),
YuE("YuE", "余额"),
XianFu("XianFu", "现付"),
;
private final String val;
private final String txt;
}

View File

@ -0,0 +1,71 @@
package com.njzscloud.dispose.cst.order.controller;
import com.njzscloud.common.core.utils.R;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderPaymentRecordEntity;
import com.njzscloud.dispose.cst.order.pojo.param.SearchOrderPaymentRecordParam;
import com.njzscloud.dispose.cst.order.service.OrderPaymentRecordService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
*
* @author ljw
*/
@Slf4j
@RestController
@RequestMapping("/orderPaymentRecord")
@RequiredArgsConstructor
public class OrderPaymentRecordController {
private final OrderPaymentRecordService orderPaymentRecordService;
/**
*
*/
@PostMapping("/add")
public R<?> add(@RequestBody OrderPaymentRecordEntity orderPaymentRecordEntity) {
orderPaymentRecordService.add(orderPaymentRecordEntity);
return R.success();
}
/**
*
*/
@PostMapping("/modify")
public R<?> modify(@RequestBody OrderPaymentRecordEntity orderPaymentRecordEntity) {
orderPaymentRecordService.modify(orderPaymentRecordEntity);
return R.success();
}
/**
*
*/
@PostMapping("/del")
public R<?> del(@RequestBody List<Long> ids) {
orderPaymentRecordService.del(ids);
return R.success();
}
/**
*
*/
@GetMapping("/detail")
public R<OrderPaymentRecordEntity> detail(@RequestParam("id") Long id) {
return R.success(orderPaymentRecordService.detail(id));
}
/**
*
*/
@GetMapping("/paging")
public R<PageResult<OrderPaymentRecordEntity>> paging(PageParam pageParam, SearchOrderPaymentRecordParam param) {
return R.success(orderPaymentRecordService.paging(pageParam, param));
}
}

View File

@ -0,0 +1,14 @@
package com.njzscloud.dispose.cst.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderPaymentRecordEntity;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author ljw
*/
@Mapper
public interface OrderPaymentRecordMapper extends BaseMapper<OrderPaymentRecordEntity> {
}

View File

@ -1,7 +1,8 @@
package com.njzscloud.dispose.cst.order.pojo.entity; package com.njzscloud.dispose.cst.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njzscloud.dispose.common.pojo.entity.BaseEntity;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -9,6 +10,7 @@ import lombok.experimental.Accessors;
/** /**
* / * /
*
* @author ljw * @author ljw
*/ */
@Getter @Getter
@ -16,7 +18,13 @@ import lombok.experimental.Accessors;
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName(value = "cst_order_cargo_place", autoResultMap = true) @TableName(value = "cst_order_cargo_place", autoResultMap = true)
public class OrderCargoPlaceEntity extends BaseEntity { public class OrderCargoPlaceEntity {
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** /**
* Id * Id

View File

@ -1,7 +1,6 @@
package com.njzscloud.dispose.cst.order.pojo.entity; package com.njzscloud.dispose.cst.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.*;
import com.njzscloud.dispose.common.pojo.entity.BaseEntity;
import com.njzscloud.dispose.cst.order.constant.OrderCategory; import com.njzscloud.dispose.cst.order.constant.OrderCategory;
import com.njzscloud.dispose.cst.order.constant.OrderStatus; import com.njzscloud.dispose.cst.order.constant.OrderStatus;
import lombok.Getter; import lombok.Getter;
@ -21,7 +20,13 @@ import java.time.LocalDateTime;
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName(value = "cst_order", autoResultMap = true) @TableName(value = "cst_order", autoResultMap = true)
public class OrderEntity extends BaseEntity { public class OrderEntity {
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** /**
* *
@ -132,6 +137,36 @@ public class OrderEntity extends BaseEntity {
* *
*/ */
private String customerMemo; private String customerMemo;
/**
* Idsys_user.id
*/
@TableField(fill = FieldFill.INSERT)
private Long creatorId;
/**
* Id sys_user.id
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long modifierId;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime modifyTime;
/**
* 0-->1-->
*/
@TableLogic
private Boolean deleted;
} }

View File

@ -1,7 +1,11 @@
package com.njzscloud.dispose.cst.order.pojo.entity; package com.njzscloud.dispose.cst.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njzscloud.dispose.common.pojo.entity.BaseEntity; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory;
import com.njzscloud.dispose.finance.constant.ExpenseStrategy;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -19,7 +23,18 @@ import java.math.BigDecimal;
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName(value = "cst_order_expense_items", autoResultMap = true) @TableName(value = "cst_order_expense_items", autoResultMap = true)
public class OrderExpenseItemsEntity extends BaseEntity { public class OrderExpenseItemsEntity {
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* Idfin_expense_item.id
*/
private Long originExpenseItemsId;
/** /**
* Id * Id
@ -29,7 +44,12 @@ public class OrderExpenseItemsEntity extends BaseEntity {
/** /**
* QiTa-->ChanPin-->YunFei--> * QiTa-->ChanPin-->YunFei-->
*/ */
private String expenseItemCategory; private ExpenseItemCategory expenseItemCategory;
/**
* Id"产品"
*/
private Long goodsId;
/** /**
* *
@ -39,18 +59,13 @@ public class OrderExpenseItemsEntity extends BaseEntity {
/** /**
* expense_strategyMianFei-->TanXing-->GuDing-->Che-->Fang-->JuLi--> * expense_strategyMianFei-->TanXing-->GuDing-->Che-->Fang-->JuLi-->
*/ */
private String expenseStrategy; private ExpenseStrategy expenseStrategy;
/** /**
* *
*/ */
private BigDecimal taxRate; private BigDecimal taxRate;
/**
* payerPingTai-->ChanFei-->QingYun-->XiaoNa-->CaiGou-->
*/
private String payer;
/** /**
* unit * unit
*/ */
@ -77,83 +92,19 @@ public class OrderExpenseItemsEntity extends BaseEntity {
private Integer everyQuantity; private Integer everyQuantity;
/** /**
* { * Id
* strategy: None | All | Specify,
* objs: long[]
* }Wu-->ZhiDing-->SuoYou-->
*/ */
private String userScope; private Long userId;
/** /**
* { * Id
* strategy: None | All | Specify,
* objs: long[]
* }Wu-->ZhiDing-->SuoYou-->
*/ */
private String stationScope; private Long customerId;
/** /**
* { * Id
* strategy: None | All | Specify,
* objs: long[]
* }Wu-->ZhiDing-->SuoYou-->
*/ */
private String goodsScope; private Long orgId;
/**
* MianFei-->WeiZhiFu-->YiZhiFu-->YiTuiKuan-->退
*/
private String paymentStatus;
/**
*
*/
private BigDecimal payTime;
/**
* 退
*/
private BigDecimal refundTime;
/**
*
*/
private BigDecimal totalMoney;
/**
*
*/
private BigDecimal discountMoney;
/**
*
*/
private BigDecimal reviseMoney;
/**
*
*/
private BigDecimal settleMoney;
/**
* YueJie-->YuE-->XianFu-->
*/
private String settlementWay;
/**
* Idsys_user.id
*/
private Long payerUserId;
/**
* Idcst_customer.id
*/
private Long payerCustomerId;
/**
* Id
*/
private Long payerMoneyAccount;
} }

View File

@ -0,0 +1,115 @@
package com.njzscloud.dispose.cst.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njzscloud.dispose.cst.customer.constant.SettlementWay;
import com.njzscloud.dispose.cst.order.constant.PaymentStatus;
import com.njzscloud.dispose.finance.constant.Payer;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
*
*
* @author ljw
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName(value = "cst_order_payment_record", autoResultMap = true)
public class OrderPaymentRecordEntity {
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* Id
*/
private Long orderId;
/**
* IdQiTa-->ChanPin-->YunFei-->
*/
private Long expenseItemId;
/**
* Id
*/
private Long transId;
/**
* payerPingTai-->ChanFei-->YunShu-->XiaoNa-->CaiGou-->
*/
private Payer payer;
/**
*
*/
private Integer quantity;
/**
* MianFei-->WeiZhiFu-->YiZhiFu-->YiTuiKuan-->退
*/
private PaymentStatus paymentStatus;
/**
*
*/
private LocalDateTime payTime;
/**
* 退
*/
private LocalDateTime refundTime;
/**
*
*/
private BigDecimal totalMoney;
/**
*
*/
private BigDecimal discountMoney;
/**
*
*/
private BigDecimal reviseMoney;
/**
*
*/
private BigDecimal settleMoney;
/**
* YueJie-->YuE-->XianFu-->
*/
private SettlementWay settlementWay;
/**
* Idsys_user.id
*/
private Long payerUserId;
/**
* Idcst_customer.id
*/
private Long payerCustomerId;
/**
* Id
*/
private Long payerMoneyAccountId;
}

View File

@ -1,18 +1,17 @@
package com.njzscloud.dispose.cst.order.pojo.entity; package com.njzscloud.dispose.cst.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler; import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
import com.njzscloud.dispose.common.pojo.entity.BaseEntity;
import com.njzscloud.dispose.cst.order.constant.CheckStatus; import com.njzscloud.dispose.cst.order.constant.CheckStatus;
import com.njzscloud.dispose.cst.order.constant.PaymentStatus;
import com.njzscloud.dispose.cst.order.constant.TransStatus; import com.njzscloud.dispose.cst.order.constant.TransStatus;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ -26,7 +25,13 @@ import java.util.List;
@ToString @ToString
@Accessors(chain = true) @Accessors(chain = true)
@TableName(value = "cst_order_trans", autoResultMap = true) @TableName(value = "cst_order_trans", autoResultMap = true)
public class OrderTransEntity extends BaseEntity { public class OrderTransEntity {
/**
*
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** /**
* *
@ -184,61 +189,6 @@ public class OrderTransEntity extends BaseEntity {
*/ */
private LocalDateTime outTime; private LocalDateTime outTime;
/**
* MianFei-->WeiZhiFu-->YiZhiFu-->YiTuiKuan-->退
*/
private PaymentStatus paymentStatus;
/**
*
*/
private BigDecimal payTime;
/**
* 退
*/
private BigDecimal refundTime;
/**
*
*/
private BigDecimal totalMoney;
/**
*
*/
private BigDecimal discountMoney;
/**
*
*/
private BigDecimal reviseMoney;
/**
*
*/
private BigDecimal settleMoney;
/**
* YueJie-->YuE-->XianFu-->
*/
private String settlementWay;
/**
* Idsys_user.id
*/
private Long payerUserId;
/**
* Idcst_customer.id
*/
private Long payerCustomerId;
/**
* Id
*/
private Long payerMoneyAccount;
} }

View File

@ -15,9 +15,9 @@ import lombok.experimental.Accessors;
public class AssignmentOrgParam { public class AssignmentOrgParam {
/** /**
* ID * ID
*/ */
private Long orderTransId; private Long orderId;
/** /**
* Id * Id

View File

@ -0,0 +1,46 @@
package com.njzscloud.dispose.cst.order.pojo.param;
import com.njzscloud.dispose.cst.order.constant.PaymentStatus;
import com.njzscloud.dispose.finance.constant.Payer;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
*
*
* @author ljw
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class SearchOrderPaymentRecordParam {
/**
* Id
*/
private Long orderId;
/**
* Id
*/
private Long expenseItemId;
/**
* Id
*/
private Long transId;
/**
*
*/
private Payer payer;
/**
*
*/
private PaymentStatus paymentStatus;
}

View File

@ -8,7 +8,6 @@ import com.njzscloud.dispose.cst.order.constant.OrderStatus;
import com.njzscloud.dispose.cst.order.constant.TransStatus; import com.njzscloud.dispose.cst.order.constant.TransStatus;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ -178,86 +177,6 @@ public class OrderTransResult {
*/ */
private LocalDateTime outTime; private LocalDateTime outTime;
/**
* MianFei-->WeiZhiFu-->YiZhiFu-->YiTuiKuan-->退
*/
private String paymentStatus;
/**
*
*/
private BigDecimal payTime;
/**
* 退
*/
private BigDecimal refundTime;
/**
*
*/
private BigDecimal totalMoney;
/**
*
*/
private BigDecimal discountMoney;
/**
*
*/
private BigDecimal reviseMoney;
/**
*
*/
private BigDecimal settleMoney;
/**
* YueJie-->YuE-->XianFu-->
*/
private String settlementWay;
/**
* Idsys_user.id
*/
private Long payerUserId;
/**
* Idcst_customer.id
*/
private Long payerCustomerId;
/**
* Id
*/
private Long payerMoneyAccount;
/**
* Idsys_user.id
*/
private Long creatorId;
/**
* Id sys_user.id
*/
private Long modifierId;
/**
*
*/
private LocalDateTime createTime;
/**
*
*/
private LocalDateTime modifyTime;
/**
* 0-->1-->
*/
private Boolean deleted;
/** /**
* Idcst_org.id * Idcst_org.id
*/ */

View File

@ -0,0 +1,69 @@
package com.njzscloud.dispose.cst.order.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.dispose.cst.order.mapper.OrderPaymentRecordMapper;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderPaymentRecordEntity;
import com.njzscloud.dispose.cst.order.pojo.param.SearchOrderPaymentRecordParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
*
*
* @author ljw
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class OrderPaymentRecordService extends ServiceImpl<OrderPaymentRecordMapper, OrderPaymentRecordEntity> {
/**
*
*/
@Transactional(rollbackFor = Exception.class)
public void add(OrderPaymentRecordEntity orderPaymentRecordEntity) {
this.save(orderPaymentRecordEntity);
}
/**
*
*/
@Transactional(rollbackFor = Exception.class)
public void modify(OrderPaymentRecordEntity orderPaymentRecordEntity) {
this.updateById(orderPaymentRecordEntity);
}
/**
*
*/
@Transactional(rollbackFor = Exception.class)
public void del(List<Long> ids) {
this.removeBatchByIds(ids);
}
/**
*
*/
public OrderPaymentRecordEntity detail(Long id) {
return this.getById(id);
}
/**
*
*/
public PageResult<OrderPaymentRecordEntity> paging(PageParam pageParam, SearchOrderPaymentRecordParam param) {
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<OrderPaymentRecordEntity>lambdaQuery()
.eq(param.getOrderId() != null, OrderPaymentRecordEntity::getOrderId, param.getOrderId())
.eq(param.getExpenseItemId() != null, OrderPaymentRecordEntity::getExpenseItemId, param.getExpenseItemId())
.eq(param.getTransId() != null, OrderPaymentRecordEntity::getTransId, param.getTransId())
.eq(param.getPayer() != null, OrderPaymentRecordEntity::getPayer, param.getPayer())
.eq(param.getPaymentStatus() != null, OrderPaymentRecordEntity::getPaymentStatus, param.getPaymentStatus())));
}
}

View File

@ -16,21 +16,20 @@ import com.njzscloud.dispose.cst.driver.pojo.entity.DriverEntity;
import com.njzscloud.dispose.cst.order.constant.*; import com.njzscloud.dispose.cst.order.constant.*;
import com.njzscloud.dispose.cst.order.mapper.OrderMapper; import com.njzscloud.dispose.cst.order.mapper.OrderMapper;
import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper; import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderCargoPlaceEntity; import com.njzscloud.dispose.cst.order.pojo.entity.*;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderExpenseItemsEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderTransEntity;
import com.njzscloud.dispose.cst.order.pojo.param.*; import com.njzscloud.dispose.cst.order.pojo.param.*;
import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult; import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult;
import com.njzscloud.dispose.cst.truck.mapper.TruckMapper; import com.njzscloud.dispose.cst.truck.mapper.TruckMapper;
import com.njzscloud.dispose.cst.truck.pojo.entity.TruckEntity; import com.njzscloud.dispose.cst.truck.pojo.entity.TruckEntity;
import com.njzscloud.dispose.finance.constant.ScopeStrategy; import com.njzscloud.dispose.finance.constant.ExpenseStrategy;
import com.njzscloud.dispose.finance.mapper.MoneyAccountMapper;
import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity; import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity;
import com.njzscloud.dispose.finance.pojo.entity.ScopeStrategyConfig; import com.njzscloud.dispose.finance.pojo.entity.MoneyAccountEntity;
import com.njzscloud.dispose.finance.service.ExpenseItemService; import com.njzscloud.dispose.finance.service.ExpenseItemService;
import com.njzscloud.dispose.sys.auth.pojo.result.MyResult; import com.njzscloud.dispose.sys.auth.pojo.result.MyResult;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -56,6 +55,8 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
private final TruckMapper truckMapper; private final TruckMapper truckMapper;
private final CustomerMapper customerMapper; private final CustomerMapper customerMapper;
private final OrderExpenseItemsService orderExpenseItemsService; private final OrderExpenseItemsService orderExpenseItemsService;
private final OrderPaymentRecordService orderPaymentRecordService;
private final MoneyAccountMapper moneyAccountMapper;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void add(CreateOrderParam param) { public void add(CreateOrderParam param) {
@ -93,7 +94,6 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
transEntity.setTransStatus(transOrgId == null ? null : TransStatus.DaiPaiDan); transEntity.setTransStatus(transOrgId == null ? null : TransStatus.DaiPaiDan);
transEntity.setTransTime(transOrgId == null ? null : LocalDateTime.now()); transEntity.setTransTime(transOrgId == null ? null : LocalDateTime.now());
transEntity.setCheckStatus(CheckStatus.WeiKanLiao); transEntity.setCheckStatus(CheckStatus.WeiKanLiao);
transEntity.setPaymentStatus(PaymentStatus.WeiZhiFu);
transEntity.setTransDistance(param.getTransDistance()); transEntity.setTransDistance(param.getTransDistance());
orderTransMapper.insert(transEntity); orderTransMapper.insert(transEntity);
} }
@ -124,10 +124,10 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void assignmentOrg(AssignmentOrgParam orgParam) { public void assignmentOrg(AssignmentOrgParam orgParam) {
Assert.notNull(orgParam, () -> Exceptions.clierr("请填写参数")); Assert.notNull(orgParam, () -> Exceptions.clierr("请填写参数"));
Assert.notNull(orgParam.getOrderTransId(), () -> Exceptions.clierr("订单运输ID不可为空")); Assert.notNull(orgParam.getOrderId(), () -> Exceptions.clierr("订单ID不可为空"));
Assert.notNull(orgParam.getTransOrgId(), () -> Exceptions.clierr("清运公司ID不可为空")); Assert.notNull(orgParam.getTransOrgId(), () -> Exceptions.clierr("清运公司ID不可为空"));
OrderTransResult result = orderTransMapper.getById(orgParam.getOrderTransId()); OrderEntity result = this.getById(orgParam.getOrderId());
Assert.notNull(result, () -> Exceptions.clierr("订单不存在")); Assert.notNull(result, () -> Exceptions.clierr("订单不存在"));
Assert.isNull(result.getTransOrgId(), () -> Exceptions.clierr("当前订单已分配清运公司,无需重复分配")); Assert.isNull(result.getTransOrgId(), () -> Exceptions.clierr("当前订单已分配清运公司,无需重复分配"));
Assert.isTrue(OrderStatus.YiYuYue.equals(result.getOrderStatus()), () -> Exceptions.clierr("当前订单状态,无法分配清运公司")); Assert.isTrue(OrderStatus.YiYuYue.equals(result.getOrderStatus()), () -> Exceptions.clierr("当前订单状态,无法分配清运公司"));
@ -143,14 +143,17 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
.setTransCustomerId(customer.getId()) .setTransCustomerId(customer.getId())
.setAssignmentTransTime(LocalDateTime.now()) .setAssignmentTransTime(LocalDateTime.now())
.setOrderStatus(OrderStatus.JinXingZhong) .setOrderStatus(OrderStatus.JinXingZhong)
.setId(result.getOrderId()); .setId(result.getId());
this.updateById(orderEntity); this.updateById(orderEntity);
// 更新运输信息表 cst_trans_order 的运输状态信息 // 更新运输信息表 cst_trans_order 的运输状态信息
OrderTransEntity transEntity = new OrderTransEntity(); orderTransMapper.update(Wrappers.<OrderTransEntity>lambdaUpdate()
transEntity.setId(orgParam.getOrderTransId()); .set(OrderTransEntity::getTransStatus, TransStatus.DaiPaiDan)
transEntity.setTransStatus(TransStatus.DaiPaiDan); .eq(OrderTransEntity::getOrderId, result.getId()));
orderTransMapper.updateById(transEntity);
// 创建订单付费项
OrderEntity newOrderInfo = this.getById(orgParam.getOrderId());
this.createOrderExpenseItems(newOrderInfo);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -287,7 +290,7 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
Assert.notNull(result, () -> Exceptions.clierr("订单不存在")); Assert.notNull(result, () -> Exceptions.clierr("订单不存在"));
Assert.isTrue(OrderStatus.JinXingZhong.equals(result.getOrderStatus()) Assert.isTrue(OrderStatus.JinXingZhong.equals(result.getOrderStatus())
&& TransStatus.YiJinChang.equals(result.getTransStatus()) && CheckStatus.WeiKanLiao.equals(result.getCheckStatus()), && TransStatus.YiJinChang.equals(result.getTransStatus()) && CheckStatus.WeiKanLiao.equals(result.getCheckStatus()),
() -> Exceptions.clierr("当前订单状态,无法看料")); () -> Exceptions.clierr("当前订单状态,无法看料"));
// 更新运输信息 // 更新运输信息
@ -335,6 +338,38 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
transEntity.setOutBodyPhoto(leavingParam.getBodyPhoto()); transEntity.setOutBodyPhoto(leavingParam.getBodyPhoto());
transEntity.setOutTime(LocalDateTime.now()); transEntity.setOutTime(LocalDateTime.now());
orderTransMapper.updateById(transEntity); orderTransMapper.updateById(transEntity);
// 更新付费记录的量
this.updatePaymentRecordQuantity(transEntity.getId(), transEntity.getSettleWeight());
}
/**
*
*
* @param transId ID
*/
private void updatePaymentRecordQuantity(Long transId, Integer settleWeight) {
// 1. 通过运输信息ID查询付费记录
List<OrderPaymentRecordEntity> paymentRecords = orderPaymentRecordService.list(Wrappers.<OrderPaymentRecordEntity>lambdaQuery()
.eq(OrderPaymentRecordEntity::getTransId, transId));
if (paymentRecords.isEmpty()) {
return;
}
// 2. 遍历更新每条付费记录的量
for (OrderPaymentRecordEntity record : paymentRecords) {
// 通过付费记录的订单收费项 Id 查询付费项
OrderExpenseItemsEntity expenseItem = orderExpenseItemsService.getById(record.getExpenseItemId());
// 3. 如果计费策略为Che则量为1否则为净重
Integer quantity = ExpenseStrategy.Che.equals(expenseItem.getExpenseStrategy()) ? 1 : settleWeight;
OrderPaymentRecordEntity updateRecord = new OrderPaymentRecordEntity();
updateRecord.setId(record.getId());
updateRecord.setQuantity(quantity);
orderPaymentRecordService.updateById(updateRecord);
}
} }
public void updateTruckHisTareWeight(Long truckId, Integer weight) { public void updateTruckHisTareWeight(Long truckId, Integer weight) {
@ -380,50 +415,32 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
if (!goodsItems.isEmpty()) { if (!goodsItems.isEmpty()) {
goodsOrderItem = BeanUtil.copyProperties(goodsItems.getFirst(), OrderExpenseItemsEntity.class) goodsOrderItem = BeanUtil.copyProperties(goodsItems.getFirst(), OrderExpenseItemsEntity.class)
.setOrderId(orderEntity.getId()) .setOrderId(orderEntity.getId())
.setPaymentStatus(PaymentStatus.WeiZhiFu.getVal()); .setOriginExpenseItemsId(goodsItems.getFirst().getId());
} }
List<OrderExpenseItemsEntity> extraItems = itemEntityList.stream() List<OrderExpenseItemsEntity> extraItems = itemEntityList.stream()
.filter(cfg -> { .filter(cfg -> {
ScopeStrategyConfig userScope = cfg.getUserScope(); Long userId = cfg.getUserId();
ScopeStrategyConfig goodsScope = cfg.getGoodsScope(); Long customerId = cfg.getCustomerId();
ScopeStrategyConfig stationsScope = cfg.getStationScope(); Long orgId = cfg.getOrgId();
List<Long> companyIds = userScope != null ? userScope.getIds() : null;
List<Long> goodsIds = goodsScope != null ? goodsScope.getIds() : null;
List<Long> stationsIds = stationsScope != null ? stationsScope.getIds() : null;
// 判断客户范围 // 判断用户归属范围
boolean isComTrue; boolean isUserTrue = userId == null || userId.equals(orderEntity.getUserId());
if (userScope != null && ScopeStrategy.SuoYou.getVal().equals(userScope.getStrategy())) {
isComTrue = true; // 所有客户都匹配
} else {
isComTrue = companyIds != null && transOrgId != null && companyIds.contains(transOrgId);
}
// 判断产品范围 // 判断客户归属范围
boolean isGoodsTrue; boolean isCustomerTrue = customerId == null || customerId.equals(orderEntity.getCustomerId());
if (goodsScope != null && ScopeStrategy.SuoYou.getVal().equals(goodsScope.getStrategy())) {
isGoodsTrue = true; // 所有产品都匹配
} else {
isGoodsTrue = goodsIds != null && goodsId != null && goodsIds.contains(goodsId);
}
// 判断站点范围 // 判断组织归属范围
boolean isStationsTrue; boolean isOrgTrue = orgId == null || orgId.equals(orderEntity.getTransOrgId());
if (stationsScope != null && ScopeStrategy.SuoYou.getVal().equals(stationsScope.getStrategy())) {
isStationsTrue = true; // 所有站点都匹配
} else {
isStationsTrue = stationsIds != null && stationId != null && stationsIds.contains(stationId);
}
// 只有当三个条件都为true时才返回true // 只有当三个条件都为true时才返回true
return isComTrue && isGoodsTrue && isStationsTrue; return isUserTrue && isCustomerTrue && isOrgTrue;
}) })
// 复制配置为订单付费项(数量口径与产品一致:按车=1否则=settleWeight // 复制配置为订单付费项(数量口径与产品一致:按车=1否则=settleWeight
.map(cfg -> { .map(cfg -> {
OrderExpenseItemsEntity entity = BeanUtil.copyProperties(cfg, OrderExpenseItemsEntity.class); OrderExpenseItemsEntity entity = BeanUtil.copyProperties(cfg, OrderExpenseItemsEntity.class);
entity.setOrderId(orderEntity.getId()); entity.setOrderId(orderEntity.getId());
entity.setPaymentStatus(PaymentStatus.WeiZhiFu.getVal()); entity.setOriginExpenseItemsId(cfg.getId());
return entity; return entity;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -439,5 +456,55 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
// 批量保存付费项 // 批量保存付费项
orderExpenseItemsService.saveBatch(extraItems); orderExpenseItemsService.saveBatch(extraItems);
// 获取订单的所有运输记录
List<OrderTransEntity> transList = orderTransMapper.selectList(Wrappers.<OrderTransEntity>lambdaQuery()
.eq(OrderTransEntity::getOrderId, orderEntity.getId()));
List<OrderPaymentRecordEntity> recordList = Lists.newArrayList();
for (OrderTransEntity transEntity : transList) {
List<OrderPaymentRecordEntity> paymentRecords = extraItems.stream()
.map(item -> {
OrderPaymentRecordEntity record = new OrderPaymentRecordEntity()
.setOrderId(orderEntity.getId())
.setExpenseItemId(item.getId())
.setTransId(transEntity.getId())
.setPaymentStatus(PaymentStatus.WeiZhiFu);
// 根据归属字段获取结算方式和账户信息
Long customerId = item.getCustomerId();
if (customerId == null) {
// 如果没有归属客户,尝试从订单获取
customerId = orderEntity.getCustomerId();
}
CustomerEntity customer = customerMapper.selectOne(Wrappers.<CustomerEntity>lambdaQuery()
.eq(CustomerEntity::getId, customerId));
if (customer != null && customer.getSettlementWay() != null) {
record.setSettlementWay(customer.getSettlementWay());
record.setPayerCustomerId(customer.getId());
record.setPayerUserId(customer.getUserId());
} else {
throw Exceptions.clierr("付款人客户信息不存在或未配置付费方式");
}
// 查询资金账户
MoneyAccountEntity moneyAccount = moneyAccountMapper.selectOne(Wrappers.<MoneyAccountEntity>lambdaQuery()
.eq(MoneyAccountEntity::getCustomerId, customerId)
.eq(MoneyAccountEntity::getDeleted, Boolean.FALSE));
if (moneyAccount != null) {
record.setPayerMoneyAccountId(moneyAccount.getId());
} else {
throw Exceptions.clierr("付款人资金账户不存在");
}
return record;
})
.toList();
recordList.addAll(paymentRecords);
}
// 批量新增付费记录
orderPaymentRecordService.saveBatch(recordList);
} }
} }

View File

@ -6,11 +6,14 @@ import com.njzscloud.common.oss.util.AliOSS;
import com.njzscloud.dispose.cst.order.constant.*; import com.njzscloud.dispose.cst.order.constant.*;
import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper; import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity; import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderExpenseItemsEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderPaymentRecordEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderTransEntity; import com.njzscloud.dispose.cst.order.pojo.entity.OrderTransEntity;
import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult; import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult;
import com.njzscloud.dispose.dev.DiscoverTruckMsg; import com.njzscloud.dispose.dev.DiscoverTruckMsg;
import com.njzscloud.dispose.dev.ObtainTruckDataResultMsg; import com.njzscloud.dispose.dev.ObtainTruckDataResultMsg;
import com.njzscloud.dispose.dev.WbsHandle; import com.njzscloud.dispose.dev.WbsHandle;
import com.njzscloud.dispose.finance.constant.ExpenseStrategy;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -35,6 +38,8 @@ public class TruckWeighingBusinessService {
private final OrderService orderService; private final OrderService orderService;
private final OrderTransMapper orderTransMapper; private final OrderTransMapper orderTransMapper;
private final OrderPaymentRecordService orderPaymentRecordService;
private final OrderExpenseItemsService orderExpenseItemsService;
/** /**
* - * -
@ -226,6 +231,43 @@ public class TruckWeighingBusinessService {
Integer settleWeight = transEntity.getSettleWeight(); Integer settleWeight = transEntity.getSettleWeight();
log.info("车辆出场称重完成订单ID: {}, 重量: {}kg, 净重: {}kg", log.info("车辆出场称重完成订单ID: {}, 重量: {}kg, 净重: {}kg",
orderTrans.getId(), weight, settleWeight); orderTrans.getId(), weight, settleWeight);
// 更新付费记录的量
this.updatePaymentRecordQuantity(orderTrans.getId(), settleWeight);
}
/**
*
*
* @param transId ID
* @param settleWeight
*/
private void updatePaymentRecordQuantity(Long transId, Integer settleWeight) {
// 1. 通过运输信息ID查询付费记录
List<OrderPaymentRecordEntity> paymentRecords = orderPaymentRecordService.list(Wrappers.<OrderPaymentRecordEntity>lambdaQuery()
.eq(OrderPaymentRecordEntity::getTransId, transId));
if (paymentRecords.isEmpty()) {
return;
}
// 2. 遍历更新每条付费记录的量
for (OrderPaymentRecordEntity record : paymentRecords) {
// 通过付费记录的订单收费项 Id 查询付费项
OrderExpenseItemsEntity expenseItem = orderExpenseItemsService.getById(record.getExpenseItemId());
if (expenseItem == null) {
continue;
}
// 3. 如果计费策略为Che则量为1否则为净重
Integer quantity = ExpenseStrategy.Che.equals(expenseItem.getExpenseStrategy()) ? 1 : settleWeight;
OrderPaymentRecordEntity updateRecord = new OrderPaymentRecordEntity();
updateRecord.setId(record.getId());
updateRecord.setQuantity(quantity);
orderPaymentRecordService.updateById(updateRecord);
}
log.info("运输记录 {} 的付费记录量更新完成", transId);
} }
/** /**
@ -361,7 +403,6 @@ public class TruckWeighingBusinessService {
List<OrderTransEntity> transList = orderTransMapper.selectList( List<OrderTransEntity> transList = orderTransMapper.selectList(
Wrappers.<OrderTransEntity>lambdaQuery() Wrappers.<OrderTransEntity>lambdaQuery()
.eq(OrderTransEntity::getOrderId, orderId) .eq(OrderTransEntity::getOrderId, orderId)
.eq(OrderTransEntity::getDeleted, Boolean.FALSE)
); );
if (transList.isEmpty()) { if (transList.isEmpty()) {

View File

@ -11,7 +11,7 @@ import lombok.RequiredArgsConstructor;
@Getter @Getter
@RequiredArgsConstructor @RequiredArgsConstructor
public enum OrgCategory implements DictStr { public enum OrgCategory implements DictStr {
GeTiHu("GeTiHu", "个体"), GeTi("GeTi", "个体"),
QiYe("QiYe", "企业"), QiYe("QiYe", "企业"),

View File

@ -33,10 +33,7 @@ public class TruckServiceImpl extends ServiceImpl<TruckMapper, TruckEntity> impl
MyResult userDetail = SecurityUtil.loginUser(); MyResult userDetail = SecurityUtil.loginUser();
Long customerId = userDetail.getCurrentCustomerId(); Long customerId = userDetail.getCurrentCustomerId();
truckEntity.setCustomerId(customerId); truckEntity.setCustomerId(customerId);
IdentityInfo identityInfo = userDetail.currentIdentity(); truckEntity.setOrgId(userDetail.getCurrentOrgId());
if (identityInfo.getManager()) {
truckEntity.setOrgId(identityInfo.getOrgId());
}
truckEntity.setTareWeight(0); truckEntity.setTareWeight(0);
this.save(truckEntity); this.save(truckEntity);
} }

View File

@ -1,14 +1,11 @@
package com.njzscloud.dispose.finance.constant; package com.njzscloud.dispose.finance.constant;
import com.njzscloud.common.core.ienum.DictStr;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import com.njzscloud.common.core.ienum.DictStr;
/** /**
* payer * payer
* *
*
* @author ljw
*/ */
@Getter @Getter
@RequiredArgsConstructor @RequiredArgsConstructor
@ -17,7 +14,7 @@ public enum Payer implements DictStr {
ChanFei("ChanFei", "产废方"), ChanFei("ChanFei", "产废方"),
QingYun("YunShuFang", "运输方"), YunShu("YunShu", "运输方"),
XiaoNa("XiaoNa", "消纳方"), XiaoNa("XiaoNa", "消纳方"),

View File

@ -8,7 +8,6 @@ import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
import com.njzscloud.dispose.common.pojo.entity.BaseEntity; import com.njzscloud.dispose.common.pojo.entity.BaseEntity;
import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory;
import com.njzscloud.dispose.finance.constant.ExpenseStrategy; import com.njzscloud.dispose.finance.constant.ExpenseStrategy;
import com.njzscloud.dispose.finance.constant.Payer;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -59,11 +58,6 @@ public class ExpenseItemEntity extends BaseEntity {
*/ */
private BigDecimal taxRate; private BigDecimal taxRate;
/**
* payer
*/
private Payer payer;
/** /**
* --> * -->
*/ */
@ -85,22 +79,19 @@ public class ExpenseItemEntity extends BaseEntity {
private Integer everyQuantity; private Integer everyQuantity;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
@TableField(typeHandler = JsonTypeHandler.class) private Long userId;
private ScopeStrategyConfig userScope;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
@TableField(typeHandler = JsonTypeHandler.class) private Long customerId;
private ScopeStrategyConfig stationScope;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
@TableField(typeHandler = JsonTypeHandler.class) private Long orgId;
private ScopeStrategyConfig goodsScope;
/** /**
* 0-->1--> * 0-->1-->

View File

@ -2,8 +2,6 @@ package com.njzscloud.dispose.finance.pojo.param;
import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory;
import com.njzscloud.dispose.finance.constant.ExpenseStrategy; import com.njzscloud.dispose.finance.constant.ExpenseStrategy;
import com.njzscloud.dispose.finance.constant.Payer;
import com.njzscloud.dispose.finance.pojo.entity.ScopeStrategyConfig;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -42,11 +40,6 @@ public class AddExpenseItemParam {
*/ */
private BigDecimal taxRate; private BigDecimal taxRate;
/**
* payer
*/
private Payer payer;
/** /**
* --> * -->
*/ */
@ -67,20 +60,6 @@ public class AddExpenseItemParam {
*/ */
private Integer everyQuantity; private Integer everyQuantity;
/**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]}
*/
private ScopeStrategyConfig userScope;
/**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]}
*/
private ScopeStrategyConfig stationScope;
/**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]}
*/
private ScopeStrategyConfig goodsScope;
/** /**
* Id * Id
*/ */

View File

@ -2,8 +2,6 @@ package com.njzscloud.dispose.finance.pojo.param;
import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory;
import com.njzscloud.dispose.finance.constant.ExpenseStrategy; import com.njzscloud.dispose.finance.constant.ExpenseStrategy;
import com.njzscloud.dispose.finance.constant.Payer;
import com.njzscloud.dispose.finance.pojo.entity.ScopeStrategyConfig;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -46,11 +44,6 @@ public class ModifyExpenseItemParam {
*/ */
private BigDecimal taxRate; private BigDecimal taxRate;
/**
* payer
*/
private Payer payer;
/** /**
* --> * -->
*/ */
@ -72,19 +65,20 @@ public class ModifyExpenseItemParam {
private Integer everyQuantity; private Integer everyQuantity;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
private ScopeStrategyConfig userScope; private Long userId;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
private ScopeStrategyConfig stationScope; private Long customerId;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
private ScopeStrategyConfig goodsScope; private Long orgId;
/** /**
* Id * Id
*/ */

View File

@ -2,8 +2,6 @@ package com.njzscloud.dispose.finance.pojo.result;
import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory;
import com.njzscloud.dispose.finance.constant.ExpenseStrategy; import com.njzscloud.dispose.finance.constant.ExpenseStrategy;
import com.njzscloud.dispose.finance.constant.Payer;
import com.njzscloud.dispose.finance.pojo.entity.ScopeStrategyConfig;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
@ -42,7 +40,6 @@ public class SearchExpenseItemResult {
*/ */
private ExpenseStrategy expenseStrategy; private ExpenseStrategy expenseStrategy;
/** /**
* unit * unit
*/ */
@ -53,12 +50,6 @@ public class SearchExpenseItemResult {
*/ */
private BigDecimal taxRate; private BigDecimal taxRate;
/**
* payer
*/
private Payer payer;
/** /**
* --> * -->
*/ */
@ -80,19 +71,19 @@ public class SearchExpenseItemResult {
private Integer everyQuantity; private Integer everyQuantity;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
private ScopeStrategyConfig userScope; private Long userId;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
private ScopeStrategyConfig stationScope; private Long customerId;
/** /**
* {strategy: Wu | ZhiDing | SuoYou,ids:long[]} * Id
*/ */
private ScopeStrategyConfig goodsScope; private Long orgId;
/** /**
* 0-->1--> * 0-->1-->

View File

@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.common.security.util.SecurityUtil;
import com.njzscloud.dispose.finance.mapper.ExpenseItemMapper; import com.njzscloud.dispose.finance.mapper.ExpenseItemMapper;
import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity; import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity;
import com.njzscloud.dispose.finance.pojo.param.AddExpenseItemParam; import com.njzscloud.dispose.finance.pojo.param.AddExpenseItemParam;
import com.njzscloud.dispose.finance.pojo.param.ModifyExpenseItemParam; import com.njzscloud.dispose.finance.pojo.param.ModifyExpenseItemParam;
import com.njzscloud.dispose.sys.auth.pojo.result.MyResult;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -30,7 +32,11 @@ public class ExpenseItemService extends ServiceImpl<ExpenseItemMapper, ExpenseIt
* *
*/ */
public void add(AddExpenseItemParam addExpenseItemParam) { public void add(AddExpenseItemParam addExpenseItemParam) {
this.save(BeanUtil.copyProperties(addExpenseItemParam, ExpenseItemEntity.class)); MyResult userDetail = SecurityUtil.loginUser();
this.save(BeanUtil.copyProperties(addExpenseItemParam, ExpenseItemEntity.class)
.setUserId(userDetail.getUserId())
.setCustomerId(userDetail.getCurrentCustomerId())
.setOrgId(userDetail.getCurrentOrgId()));
} }
/** /**

View File

@ -36,6 +36,11 @@ public class GoodsCategoryEntity {
*/ */
private String categoryName; private String categoryName;
/**
*
*/
private String sn;
/** /**
* *
*/ */
@ -46,6 +51,11 @@ public class GoodsCategoryEntity {
*/ */
private Integer sort; private Integer sort;
/**
*
*/
private String memo;
/** /**
* Idsys_user.id * Idsys_user.id
*/ */

View File

@ -4,8 +4,11 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Strings;
import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.common.sn.support.SnUtil;
import com.njzscloud.dispose.goods.contant.BizType; import com.njzscloud.dispose.goods.contant.BizType;
import com.njzscloud.dispose.goods.mapper.GoodsCategoryMapper; import com.njzscloud.dispose.goods.mapper.GoodsCategoryMapper;
import com.njzscloud.dispose.goods.pojo.entity.GoodsCategoryEntity; import com.njzscloud.dispose.goods.pojo.entity.GoodsCategoryEntity;
@ -32,6 +35,14 @@ public class GoodsCategoryService extends ServiceImpl<GoodsCategoryMapper, Goods
* *
*/ */
public void add(GoodsCategoryEntity goodsCategoryEntity) { public void add(GoodsCategoryEntity goodsCategoryEntity) {
if (goodsCategoryEntity.getBizType() == null) {
throw Exceptions.clierr("业务类型不可为空");
}
if (BizType.HuiShouPin.equals(goodsCategoryEntity.getBizType()) && Strings.isNullOrEmpty(goodsCategoryEntity.getSn())) {
throw Exceptions.clierr("回收品分类码不可为空");
} else {
goodsCategoryEntity.setSn(this.generateSn());
}
this.save(goodsCategoryEntity); this.save(goodsCategoryEntity);
} }
@ -74,6 +85,20 @@ public class GoodsCategoryService extends ServiceImpl<GoodsCategoryMapper, Goods
); );
return PageResult.of(page); return PageResult.of(page);
} }
/**
*
*
* @return sn
*/
public String generateSn() {
String sn = SnUtil.next("GC-SN");
if (this.exists(Wrappers.<GoodsCategoryEntity>lambdaQuery().eq(GoodsCategoryEntity::getSn, sn)
.eq(GoodsCategoryEntity::getDeleted, Boolean.FALSE))) {
this.generateSn();
}
return sn;
}
} }

View File

@ -45,6 +45,12 @@ public class MyResult extends UserDetail {
*/ */
private Long currentCustomerId; private Long currentCustomerId;
/**
* Id
*
*/
private Long currentOrgId;
/** /**
* *
*/ */

View File

@ -8,6 +8,8 @@ import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.common.sn.support.SnUtil; import com.njzscloud.common.sn.support.SnUtil;
import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper; import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper;
import com.njzscloud.dispose.cst.order.mapper.OrderPaymentRecordMapper;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderPaymentRecordEntity;
import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult; import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult;
import com.njzscloud.dispose.wh.constant.PurchaseOrderStatus; import com.njzscloud.dispose.wh.constant.PurchaseOrderStatus;
import com.njzscloud.dispose.wh.mapper.PurchaseOrderMapper; import com.njzscloud.dispose.wh.mapper.PurchaseOrderMapper;
@ -17,8 +19,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* *
@ -31,6 +35,7 @@ import java.util.List;
public class PurchaseOrderService extends ServiceImpl<PurchaseOrderMapper, PurchaseOrderEntity> { public class PurchaseOrderService extends ServiceImpl<PurchaseOrderMapper, PurchaseOrderEntity> {
private final OrderTransMapper orderTransMapper; private final OrderTransMapper orderTransMapper;
private final OrderPaymentRecordMapper orderPaymentRecordMapper;
/** /**
* *
@ -45,6 +50,14 @@ public class PurchaseOrderService extends ServiceImpl<PurchaseOrderMapper, Purch
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void add(Long transOrderId) { public void add(Long transOrderId) {
OrderTransResult orderTrans = orderTransMapper.getById(transOrderId); OrderTransResult orderTrans = orderTransMapper.getById(transOrderId);
// 通过transOrderId查询付费记录表计算settle_money的总和
BigDecimal totalMoney = orderPaymentRecordMapper.selectList(
Wrappers.<OrderPaymentRecordEntity>lambdaQuery()
.eq(OrderPaymentRecordEntity::getTransId, transOrderId)
).stream()
.map(OrderPaymentRecordEntity::getSettleMoney)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
this.add(BeanUtil.copyProperties(orderTrans, PurchaseOrderEntity.class) this.add(BeanUtil.copyProperties(orderTrans, PurchaseOrderEntity.class)
.setOrderTransId(transOrderId) .setOrderTransId(transOrderId)
.setSn(this.generateSn()) .setSn(this.generateSn())
@ -52,7 +65,7 @@ public class PurchaseOrderService extends ServiceImpl<PurchaseOrderMapper, Purch
.setPurchaseDate(orderTrans.getOrderTime().toLocalDate()) .setPurchaseDate(orderTrans.getOrderTime().toLocalDate())
.setArrivalDate(LocalDate.now()) .setArrivalDate(LocalDate.now())
.setQuantity(orderTrans.getEstimatedQuantity()) .setQuantity(orderTrans.getEstimatedQuantity())
.setTotalMoney(orderTrans.getSettleMoney()) .setTotalMoney(totalMoney)
.setMemo("")); .setMemo(""));
} }

View File

@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.common.sn.support.SnUtil; import com.njzscloud.common.sn.support.SnUtil;
import com.njzscloud.dispose.cst.order.mapper.OrderPaymentRecordMapper;
import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper; import com.njzscloud.dispose.cst.order.mapper.OrderTransMapper;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderPaymentRecordEntity;
import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult; import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult;
import com.njzscloud.dispose.wh.constant.SalesOrderStatus; import com.njzscloud.dispose.wh.constant.SalesOrderStatus;
import com.njzscloud.dispose.wh.mapper.SalesOrderMapper; import com.njzscloud.dispose.wh.mapper.SalesOrderMapper;
@ -18,8 +20,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* *
@ -32,6 +36,7 @@ import java.util.List;
public class SalesOrderService extends ServiceImpl<SalesOrderMapper, SalesOrderEntity> { public class SalesOrderService extends ServiceImpl<SalesOrderMapper, SalesOrderEntity> {
private final OrderTransMapper orderTransMapper; private final OrderTransMapper orderTransMapper;
private final OrderPaymentRecordMapper orderPaymentRecordMapper;
/** /**
* *
@ -47,6 +52,14 @@ public class SalesOrderService extends ServiceImpl<SalesOrderMapper, SalesOrderE
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void add(Long transOrderId) { public void add(Long transOrderId) {
OrderTransResult orderTrans = orderTransMapper.getById(transOrderId); OrderTransResult orderTrans = orderTransMapper.getById(transOrderId);
// 通过transOrderId查询付费记录表计算settle_money的总和
BigDecimal totalMoney = orderPaymentRecordMapper.selectList(
Wrappers.<OrderPaymentRecordEntity>lambdaQuery()
.eq(OrderPaymentRecordEntity::getTransId, transOrderId)
).stream()
.map(OrderPaymentRecordEntity::getSettleMoney)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
this.add(BeanUtil.copyProperties(orderTrans, AddSalesOrderParam.class) this.add(BeanUtil.copyProperties(orderTrans, AddSalesOrderParam.class)
.setOrderTransId(transOrderId) .setOrderTransId(transOrderId)
.setSn(this.generateSn()) .setSn(this.generateSn())
@ -54,7 +67,7 @@ public class SalesOrderService extends ServiceImpl<SalesOrderMapper, SalesOrderE
.setOrderDate(orderTrans.getOrderTime().toLocalDate()) .setOrderDate(orderTrans.getOrderTime().toLocalDate())
.setShipmentDate(LocalDate.now()) .setShipmentDate(LocalDate.now())
.setQuantity(orderTrans.getEstimatedQuantity()) .setQuantity(orderTrans.getEstimatedQuantity())
.setTotalMoney(orderTrans.getSettleMoney()) .setTotalMoney(totalMoney)
.setMemo("")); .setMemo(""));
} }

View File

@ -17,17 +17,11 @@
<result column="address" property="address"/> <result column="address" property="address"/>
<result column="lng" property="lng"/> <result column="lng" property="lng"/>
<result column="lat" property="lat"/> <result column="lat" property="lat"/>
<result column="creator_id" property="creatorId"/>
<result column="modifier_id" property="modifierId"/>
<result column="create_time" property="createTime"/>
<result column="modify_time" property="modifyTime"/>
<result column="deleted" property="deleted"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, order_id, zx, province, city, area, town, id, order_id, zx, province, city, area, town,
province_name, city_name, area_name, town_name, address, lng, lat, province_name, city_name, area_name, town_name, address, lng, lat
creator_id, modifier_id, create_time, modify_time, deleted
</sql> </sql>
</mapper> </mapper>

View File

@ -9,27 +9,20 @@
<result column="expense_item_name" property="expenseItemName"/> <result column="expense_item_name" property="expenseItemName"/>
<result column="expense_strategy" property="expenseStrategy"/> <result column="expense_strategy" property="expenseStrategy"/>
<result column="tax_rate" property="taxRate"/> <result column="tax_rate" property="taxRate"/>
<result column="payer" property="payer"/>
<result column="unit" property="unit"/> <result column="unit" property="unit"/>
<result column="unit_price" property="unitPrice"/> <result column="unit_price" property="unitPrice"/>
<result column="initial_price" property="initialPrice"/> <result column="initial_price" property="initialPrice"/>
<result column="initial_quantity" property="initialQuantity"/> <result column="initial_quantity" property="initialQuantity"/>
<result column="every_quantity" property="everyQuantity"/> <result column="every_quantity" property="everyQuantity"/>
<result column="user_scope" property="userScope"/> <result column="user_id" property="userId"/>
<result column="station_scope" property="stationScope"/> <result column="customer_id" property="customerId"/>
<result column="goods_scope" property="goodsScope"/> <result column="org_id" property="orgId"/>
<result column="creator_id" property="creatorId"/>
<result column="modifier_id" property="modifierId"/>
<result column="create_time" property="createTime"/>
<result column="modify_time" property="modifyTime"/>
<result column="deleted" property="deleted"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, order_id, expense_item_category, expense_item_name, expense_strategy, id, order_id, expense_item_category, expense_item_name, expense_strategy,
tax_rate, payer, unit, unit_price, initial_price, initial_quantity, tax_rate, unit, unit_price, initial_price, initial_quantity,
every_quantity, user_scope, station_scope, goods_scope, every_quantity, user_id, customer_id, org_id
creator_id, modifier_id, create_time, modify_time, deleted
</sql> </sql>
</mapper> </mapper>

View File

@ -34,17 +34,6 @@
<result column="out_body_photo" property="outBodyPhoto"/> <result column="out_body_photo" property="outBodyPhoto"/>
<result column="in_time" property="inTime"/> <result column="in_time" property="inTime"/>
<result column="out_time" property="outTime"/> <result column="out_time" property="outTime"/>
<result column="payment_status" property="paymentStatus"/>
<result column="pay_time" property="payTime"/>
<result column="refund_time" property="refundTime"/>
<result column="total_money" property="totalMoney"/>
<result column="discount_money" property="discountMoney"/>
<result column="revise_money" property="reviseMoney"/>
<result column="settle_money" property="settleMoney"/>
<result column="settlement_way" property="settlementWay"/>
<result column="payerUserId" property="payerUserId"/>
<result column="payerCustomerId" property="payerCustomerId"/>
<result column="payerMoneyAccount" property="payerMoneyAccount"/>
<result column="trans_org_id" property="transOrgId"/> <result column="trans_org_id" property="transOrgId"/>
<result column="trans_customer_id" property="transCustomerId"/> <result column="trans_customer_id" property="transCustomerId"/>
<result column="assignment_trans_time" property="assignmentTransTime"/> <result column="assignment_trans_time" property="assignmentTransTime"/>
@ -58,11 +47,6 @@
<result column="goods_sn" property="goodsSn"/> <result column="goods_sn" property="goodsSn"/>
<result column="estimated_quantity" property="estimatedQuantity"/> <result column="estimated_quantity" property="estimatedQuantity"/>
<result column="unit" property="unit"/> <result column="unit" property="unit"/>
<result column="creator_id" property="creatorId"/>
<result column="modifier_id" property="modifierId"/>
<result column="create_time" property="createTime"/>
<result column="modify_time" property="modifyTime"/>
<result column="deleted" property="deleted"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
@ -98,11 +82,6 @@
cot.out_body_photo AS out_body_photo, cot.out_body_photo AS out_body_photo,
cot.in_time AS in_time, cot.in_time AS in_time,
cot.out_time AS out_time, cot.out_time AS out_time,
cot.creator_id AS creator_id,
cot.modifier_id AS modifier_id,
cot.create_time AS create_time,
cot.modify_time AS modify_time,
cot.deleted AS deleted,
co.trans_org_id AS trans_org_id, co.trans_org_id AS trans_org_id,
co.trans_customer_id AS trans_customer_id, co.trans_customer_id AS trans_customer_id,
co.assignment_trans_time AS assignment_trans_time, co.assignment_trans_time AS assignment_trans_time,