Merge #90 into master from cc_20260407_bzj

feat:时间处理

* cc_20260407_bzj: (3 commits squashed)

  - feat:新增设备费用

  - feat:分账

  - feat:时间处理

Signed-off-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/90
This commit is contained in:
正新
2026-04-08 11:41:54 +00:00
parent 68cef4b83a
commit 77ca18b6fc
13 changed files with 121 additions and 15 deletions

View File

@@ -27,7 +27,8 @@ public enum WalletFeeItemEnum {
DESIGN_FEE_GROUP(313, "expense_design_fee_group", "设计费-集团"),
SYSTEM_SERVICE_FEE(319,"expense_system_service_money","系统服务费(年)"),
// DESIGN_FEE_LG(314, "expense_design_fee_lg", "设计费-立规"),
EARNEST_MONEY(315, "expense_earnest_money", "保证金"),
EARNEST_MONEY(315, "expense_earnest_money", "加盟保证金"),
DEVICE_EARNEST_MONEY(320, "expense_device_earnest_money", "设备保证金"),
EXPENSE_DECORATION_MONEY(316, "expense_decoration_money", "装修费"),
EXPENSE_EQUIPMENT_MONEY(317, "expense_equipment_money", "设备费"),
;
@@ -57,7 +58,7 @@ public enum WalletFeeItemEnum {
}
public static List<WalletFeeItemEnum> getBaseExpenseType(){
return Arrays.asList(FRANCHISE_FEE,MANAGEMENT_FEE,BRAND_USAGE_FEE,DESIGN_FEE_GROUP,EARNEST_MONEY,SYSTEM_SERVICE_FEE);
return Arrays.asList(FRANCHISE_FEE,MANAGEMENT_FEE,BRAND_USAGE_FEE,DESIGN_FEE_GROUP,EARNEST_MONEY,SYSTEM_SERVICE_FEE,DEVICE_EARNEST_MONEY);
}
public static WalletFeeItemEnum getByFeeItemId(Integer feeItemId) {
@@ -82,7 +83,8 @@ public enum WalletFeeItemEnum {
MANAGEMENT_FEE.getExpenseType(),
BRAND_USAGE_FEE.getExpenseType(),
DESIGN_FEE_GROUP.getExpenseType(),
EARNEST_MONEY.getExpenseType());
EARNEST_MONEY.getExpenseType(),
DEVICE_EARNEST_MONEY.getExpenseType());
case SHOP_STAGE_27:
return Arrays.asList(EXPENSE_DECORATION_MONEY.getExpenseType(),
EXPENSE_EQUIPMENT_MONEY.getExpenseType());

View File

@@ -26,6 +26,8 @@
<result column="first_order_fee" property="firstOrderFee" jdbcType="DECIMAL"/>
<result column="contract_deposit" property="contractDeposit" jdbcType="DECIMAL"/>
<result column="original_contract_deposit" property="originalContractDeposit" jdbcType="DECIMAL"/>
<result column="device_deposit" property="deviceDeposit" jdbcType="DECIMAL"/>
<result column="original_device_deposit" property="originalDeviceDeposit" jdbcType="DECIMAL"/>
<result column="design_fee" property="designFee" jdbcType="DECIMAL"/>
<result column="original_design_fee" property="originalDesignFee" jdbcType="DECIMAL"/>
<result column="store_fixed_amount" property="storeFixedAmount" jdbcType="DECIMAL"/>
@@ -46,6 +48,7 @@
management_fee, original_management_fee,
system_usage_fee, original_system_usage_fee,
contract_deposit, original_contract_deposit,
device_deposit, original_device_deposit,
design_fee, original_design_fee,
first_order_fee,
store_fixed_amount, option_amount, total_amount, paid_amount, unpaid_amount,

View File

@@ -22,6 +22,8 @@
<result column="original_system_usage_fee" property="originalSystemUsageFee" jdbcType="DECIMAL"/>
<result column="contract_deposit" property="contractDeposit" jdbcType="DECIMAL"/>
<result column="original_contract_deposit" property="originalContractDeposit" jdbcType="DECIMAL"/>
<result column="device_deposit" property="deviceDeposit" jdbcType="DECIMAL"/>
<result column="original_device_deposit" property="originalDeviceDeposit" jdbcType="DECIMAL"/>
<result column="design_fee" property="designFee" jdbcType="DECIMAL"/>
<result column="original_design_fee" property="originalDesignFee" jdbcType="DECIMAL"/>
<result column="first_order_fee" property="firstOrderFee" jdbcType="DECIMAL"/>
@@ -40,6 +42,7 @@
management_fee, original_management_fee,
system_usage_fee, original_system_usage_fee,
contract_deposit, original_contract_deposit,
device_deposit, original_device_deposit,
design_fee, original_design_fee,
first_order_fee, sort_order,
is_active, deleted, create_time, update_time

View File

@@ -87,6 +87,14 @@ public class StoreOrderDO {
@Column(name = "original_contract_deposit")
private BigDecimal originalContractDeposit;
/** 设备保证金快照 */
@Column(name = "device_deposit")
private BigDecimal deviceDeposit;
/** 原设备保证金快照 */
@Column(name = "original_device_deposit")
private BigDecimal originalDeviceDeposit;
@Column(name = "design_fee")
private BigDecimal designFee;

View File

@@ -94,6 +94,14 @@ public class StoreTypeDO implements Serializable {
@Column(name = "original_contract_deposit")
private BigDecimal originalContractDeposit;
/** 设备保证金 */
@Column(name = "device_deposit")
private BigDecimal deviceDeposit;
/** 原设备保证金 */
@Column(name = "original_device_deposit")
private BigDecimal originalDeviceDeposit;
/** 系统设计费 */
@Column(name = "design_fee")
private BigDecimal designFee;

View File

@@ -70,6 +70,12 @@ public class StoreTypeUpdateRequest {
@ApiModelProperty("原合同保证金")
private BigDecimal originalContractDeposit;
@ApiModelProperty("设备保证金")
private BigDecimal deviceDeposit;
@ApiModelProperty("原设备保证金")
private BigDecimal originalDeviceDeposit;
@ApiModelProperty("首次订货费用")
private BigDecimal firstOrderFee;

View File

@@ -93,6 +93,9 @@ public class MiniStoreOrderDetailVO {
@ApiModelProperty("合同保证金")
private BigDecimal contractDeposit;
@ApiModelProperty("设备保证金")
private BigDecimal deviceDeposit;
@ApiModelProperty("首次订货费用")
private BigDecimal firstOrderFee;
@@ -120,6 +123,9 @@ public class MiniStoreOrderDetailVO {
@ApiModelProperty("原合同保证金")
private BigDecimal originalContractDeposit;
@ApiModelProperty("原设备保证金")
private BigDecimal originalDeviceDeposit;
@ApiModelProperty("原首次订货费用")
private BigDecimal originalFirstOrderFee;

View File

@@ -96,6 +96,9 @@ public class MiniStoreWishlistDetailVO {
@ApiModelProperty("合同保证金")
private BigDecimal contractDeposit;
@ApiModelProperty("设备保证金")
private BigDecimal deviceDeposit;
@ApiModelProperty("首次订货费用")
private BigDecimal firstOrderFee;
@@ -123,6 +126,9 @@ public class MiniStoreWishlistDetailVO {
@ApiModelProperty("原合同保证金")
private BigDecimal originalContractDeposit;
@ApiModelProperty("原设备保证金")
private BigDecimal originalDeviceDeposit;
@ApiModelProperty("原首次订货费用")
private BigDecimal originalFirstOrderFee;

View File

@@ -69,6 +69,12 @@ public class StoreTypeVO {
@ApiModelProperty("原合同保证金")
private BigDecimal originalContractDeposit;
@ApiModelProperty("设备保证金")
private BigDecimal deviceDeposit;
@ApiModelProperty("原设备保证金")
private BigDecimal originalDeviceDeposit;
@ApiModelProperty("系统设计费")
private BigDecimal designFee;

View File

@@ -246,7 +246,7 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId());
PointInfoDO pointInfoById = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId());
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId());
if (franchiseFeeDO!=null&&franchiseFeeDO.getFirstYearStartTime()==null&&franchiseFeeDO.getFirstYearEndTime()==null){
if (franchiseFeeDO!=null){
franchiseFeeDO.setFirstYearStartTime(request.getFirstYearStartTime());
franchiseFeeDO.setFirstYearEndTime(request.getFirstYearEndTime());
franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO);
@@ -362,6 +362,12 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
verifyParams(request);
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId());
PointInfoDO pointInfoById = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId());
FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId());
if (franchiseFeeDO!=null){
franchiseFeeDO.setFirstYearStartTime(request.getFirstYearStartTime());
franchiseFeeDO.setFirstYearEndTime(request.getFirstYearEndTime());
franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO);
}
SignFranchiseDO signFranchiseDO = request.toSignFranchiseDO();
//修改信息
signFranchiseMapper.updateByPrimaryKeySelective(signFranchiseDO);

View File

@@ -287,14 +287,16 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.add(safe(storeType.getSystemUsageFee()))
.add(safe(storeType.getDesignFee()))
.add(safe(storeType.getFirstOrderFee()))
.add(safe(storeType.getContractDeposit()));
.add(safe(storeType.getContractDeposit()))
.add(safe(storeType.getDeviceDeposit()));
BigDecimal originalStoreFixedAmount = safe(storeType.getOriginalFranchiseFee())
.add(safe(storeType.getOriginalBrandUsageFee()))
.add(safe(storeType.getOriginalManagementFee()))
.add(safe(storeType.getOriginalSystemUsageFee()))
.add(safe(storeType.getOriginalDesignFee()))
.add(safe(storeType.getOriginalContractDeposit()));
.add(safe(storeType.getOriginalContractDeposit()))
.add(safe(storeType.getOriginalDeviceDeposit()));
BigDecimal totalAmount = storeFixedAmount.add(optionAmount);
@@ -322,6 +324,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.originalSystemUsageFee(safe(storeType.getOriginalSystemUsageFee()))
.contractDeposit(safe(storeType.getContractDeposit()))
.originalContractDeposit(safe(storeType.getOriginalContractDeposit()))
.deviceDeposit(safe(storeType.getDeviceDeposit()))
.originalDeviceDeposit(safe(storeType.getOriginalDeviceDeposit()))
.designFee(safe(storeType.getDesignFee()))
.originalDesignFee(safe(storeType.getOriginalDesignFee()))
.firstOrderFee(safe(storeType.getFirstOrderFee()))
@@ -411,6 +415,7 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
feeInfo.setSystemUsageFee(order.getSystemUsageFee());
feeInfo.setDesignFee(order.getDesignFee());
feeInfo.setContractDeposit(order.getContractDeposit());
feeInfo.setDeviceDeposit(order.getDeviceDeposit());
feeInfo.setFirstOrderFee(order.getFirstOrderFee());
feeInfo.setStoreFixedAmount(order.getStoreFixedAmount());
vo.setFeeInfo(feeInfo);
@@ -798,7 +803,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.add(safe(storeType.getSystemUsageFee()))
.add(safe(storeType.getDesignFee()))
.add(safe(storeType.getFirstOrderFee()))
.add(safe(storeType.getContractDeposit()));
.add(safe(storeType.getContractDeposit()))
.add(safe(storeType.getDeviceDeposit()));
BigDecimal originalStoreFixedAmount = safe(storeType.getOriginalFranchiseFee())
@@ -806,7 +812,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.add(safe(storeType.getOriginalManagementFee()))
.add(safe(storeType.getOriginalSystemUsageFee()))
.add(safe(storeType.getOriginalDesignFee()))
.add(safe(storeType.getOriginalContractDeposit()));
.add(safe(storeType.getOriginalContractDeposit()))
.add(safe(storeType.getOriginalDeviceDeposit()));
BigDecimal totalAmount = storeFixedAmount.add(optionAmount);
@@ -830,6 +837,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.originalSystemUsageFee(safe(storeType.getOriginalSystemUsageFee()))
.contractDeposit(safe(storeType.getContractDeposit()))
.originalContractDeposit(safe(storeType.getOriginalContractDeposit()))
.deviceDeposit(safe(storeType.getDeviceDeposit()))
.originalDeviceDeposit(safe(storeType.getOriginalDeviceDeposit()))
.designFee(safe(storeType.getDesignFee()))
.originalDesignFee(safe(storeType.getOriginalDesignFee()))
.firstOrderFee(safe(storeType.getFirstOrderFee()))
@@ -1324,7 +1333,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.add(safe(storeType.getSystemUsageFee()))
.add(safe(storeType.getDesignFee()))
.add(safe(storeType.getFirstOrderFee()))
.add(safe(storeType.getContractDeposit()));
.add(safe(storeType.getContractDeposit()))
.add(safe(storeType.getDeviceDeposit()));
BigDecimal originalStoreFixedAmount = safe(storeType.getOriginalFranchiseFee())
@@ -1332,7 +1342,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.add(safe(storeType.getOriginalManagementFee()))
.add(safe(storeType.getOriginalSystemUsageFee()))
.add(safe(storeType.getOriginalDesignFee()))
.add(safe(storeType.getOriginalContractDeposit()));
.add(safe(storeType.getOriginalContractDeposit()))
.add(safe(storeType.getOriginalDeviceDeposit()));
BigDecimal totalAmount = storeFixedAmount.add(optionAmount);
@@ -1356,6 +1367,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.originalSystemUsageFee(safe(storeType.getOriginalSystemUsageFee()))
.contractDeposit(safe(storeType.getContractDeposit()))
.originalContractDeposit(safe(storeType.getOriginalContractDeposit()))
.deviceDeposit(safe(storeType.getDeviceDeposit()))
.originalDeviceDeposit(safe(storeType.getOriginalDeviceDeposit()))
.designFee(safe(storeType.getDesignFee()))
.originalDesignFee(safe(storeType.getOriginalDesignFee()))
.firstOrderFee(safe(storeType.getFirstOrderFee()))
@@ -1523,7 +1536,8 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
.add(safe(storeType.getSystemUsageFee()))
.add(safe(storeType.getDesignFee()))
.add(safe(storeType.getFirstOrderFee()))
.add(safe(storeType.getContractDeposit()));
.add(safe(storeType.getContractDeposit()))
.add(safe(storeType.getDeviceDeposit()));
for (MiniStoreWishlistSaveRequest.SelectedOption selected : request.getSelectedOptions()) {
if (selected == null || selected.getOptionId() == null || selected.getQuantity() == null
@@ -1886,6 +1900,7 @@ public class MiniStoreOrderServiceImpl implements MiniStoreOrderService {
feeInfo.setSystemUsageFee(storeTypeDO.getSystemUsageFee());
feeInfo.setDesignFee(storeTypeDO.getDesignFee());
feeInfo.setContractDeposit(storeTypeDO.getContractDeposit());
feeInfo.setDeviceDeposit(storeTypeDO.getDeviceDeposit());
feeInfo.setFirstOrderFee(storeTypeDO.getFirstOrderFee());
vo.setFeeInfoVO(feeInfo);
vo.setStoreTypeName(storeTypeDO.getStoreTypeName());

View File

@@ -663,6 +663,9 @@ public class PreAllocationRecordServiceImpl implements PreAllocationRecordServic
if (WalletFeeItemEnum.EARNEST_MONEY.getExpenseType().equals(expenseType)) {
return storeOrder.getContractDeposit();
}
if (WalletFeeItemEnum.DEVICE_EARNEST_MONEY.getExpenseType().equals(expenseType)) {
return storeOrder.getDeviceDeposit();
}
return BigDecimal.ZERO;
}

View File

@@ -13,10 +13,7 @@ import com.cool.store.dto.wallet.OpenBasicInfoDTO;
import com.cool.store.entity.*;
import com.cool.store.entity.fees.ShopAllocationInfoDO;
import com.cool.store.entity.fees.WalletPayInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.IDCardSideEnum;
import com.cool.store.enums.WorkflowSubStageEnum;
import com.cool.store.enums.XGJCollectionStatusEnum;
import com.cool.store.enums.*;
import com.cool.store.enums.point.ShopStageEnum;
import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
@@ -30,11 +27,13 @@ import com.cool.store.request.wallet.CoolOpenBasicInfoRequest;
import com.cool.store.request.xfsgFirstOrderListRequest;
import com.cool.store.request.xgj.FranchiseFeeCallBackRequest;
import com.cool.store.request.xgj.ReceiptCallBackRequest;
import com.cool.store.request.xgj.ReceiptRequest;
import com.cool.store.response.MiniShopsResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.response.caipin.StoreUserResponse;
import com.cool.store.response.xfsgFirstOderListResponse;
import com.cool.store.service.*;
import com.cool.store.service.impl.CommonService;
import com.cool.store.service.wallet.WalletService;
import com.cool.store.service.close.CloseStoreAccountService;
import com.cool.store.service.close.CloseStoreRefundService;
@@ -109,6 +108,17 @@ public class TestController {
private WalletPayInfoDAO walletPayInfoDAO;
@Resource
private ShopAllocationInfoDAO shopAllocationInfoDAO;
@Resource
UserAuthMappingService userAuthMappingService;
@Resource
CommonService commonService;
@Autowired
private ShopInfoDAO shopInfoDAO;
@Resource
PushService pushService;
@Resource
FranchiseFeeDAO franchiseFeeDAO;
@PostMapping("/walletXgjCallBack")
public ResponseResult<Boolean> walletXgjCallBack(Long payInfoId) {
@@ -467,4 +477,28 @@ public class TestController {
@RequestParam(value = "storeCode", required = false) String storeCode) {
return ResponseResult.success(storeService.handleStoreLogLai(flag,storeCode));
}
@GetMapping("/testSendMsg")
public ResponseResult<Boolean> testSendMsg(@RequestParam(value = "poneNumber", required = false) String poneNumber ,
@RequestParam(value = "templateCode", required = false) SMSMsgEnum templateCode) {
commonService.sendSms(poneNumber, templateCode);
return ResponseResult.success();
}
@GetMapping("/pushReceiptToXGJ")
public ResponseResult<Boolean> pushReceiptToXGJ(@RequestParam(value = "shopId", required = false) Long shopId,
@RequestParam(value = "payId", required = false) Long payId) {
ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(shopId);
if (shopInfoDO==null){
return ResponseResult.success(Boolean.FALSE);
}
FranchiseFeeDO franchiseFeeDO = franchiseFeeDAO.selectByShopId(shopInfoDO.getId());
WalletPayInfoDO payInfo = walletPayInfoDAO.getById(payId);
if (franchiseFeeDO==null||payInfo==null){
return ResponseResult.success(Boolean.FALSE);
}
ReceiptRequest receiptRequest = new ReceiptRequest(shopInfoDO.getId(), franchiseFeeDO.getId().intValue(), payInfo, Integer.valueOf(shopInfoDO.getFranchiseBrand()));
pushService.pushReceiptToXGJ(receiptRequest);
return ResponseResult.success(Boolean.TRUE);
}
}