Merge #102 into master from cc_20260414_invoice
开票管理
* cc_20260414_invoice: (6 commits squashed)
- fix:门店开票信息
- fix:新增企业开票校验接口;闭店列表新增筛选条件
- fix
- Merge branch 'master' into cc_20260414_invoice
- Merge remote-tracking branch 'origin/cc_20260414_invoice' into cc_20260414_invoice
# Conflicts:
#	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
- Merge branch 'master' into cc_20260414_invoice
# Conflicts:
#	coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java
Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>
CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/102
This commit is contained in:
@@ -475,6 +475,7 @@ public enum ErrorCodeEnum {
|
||||
WALLET_PAY_CANNOT_CANCEL(1830020, "该交易无法取消", null),
|
||||
TOTAL_FEES_NEED_EQUAL(1830021, "分账总金额需与合计缴费金额一致", null),
|
||||
NOT_EXIST_WANG_SHANG_ACCOUNT(1830022, "当前门店未开通网商钱包账户,请先开通!", null),
|
||||
SIGNER_NOT_EQUAL_LEGAL_PERSON(1840022, "法人与签约人不一致", null),
|
||||
|
||||
IP_LIMIT(1840000, "IP访问次数超限", null),
|
||||
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
<result property="settlerBankBackPhotoUrl" column="settler_bank_back_photo_url" jdbcType="VARCHAR"/>
|
||||
<result property="settlerIsSamePartner" column="settler_is_same_partner" jdbcType="TINYINT"/>
|
||||
<result property="juridicalIsSamePartner" column="juridical_is_same_partner" jdbcType="TINYINT"/>
|
||||
<result property="invoiceType" column="invoice_type" jdbcType="TINYINT"/>
|
||||
<result property="invoiceTitle" column="invoice_title" jdbcType="VARCHAR"/>
|
||||
<result property="invoiceTin" column="invoice_tin" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
@@ -52,7 +55,7 @@
|
||||
settler_id_card_front,settler_id_card_reverse,settler_in_hand_front_picture,settler_in_hand_back_picture,settler_id_card_no,
|
||||
settler_bank_number,settler_bank_mobile,settler_bank_name,
|
||||
create_time,update_time,create_user,
|
||||
update_user,c_shop_name,settler_bank_back_photo_url,settler_is_same_partner,juridical_is_same_partner,juridical_name
|
||||
update_user,c_shop_name,settler_bank_back_photo_url,settler_is_same_partner,juridical_is_same_partner,juridical_name,invoice_type,invoice_title,invoice_tin
|
||||
</sql>
|
||||
<insert id="batchInsertSpecific">
|
||||
<foreach collection="list" item="item" index="index" separator=";">
|
||||
|
||||
@@ -65,9 +65,12 @@
|
||||
</if>
|
||||
<if test="regionIds != null and !regionIds.isEmpty()">
|
||||
AND <foreach collection="regionIds" item="regionId" separator=" OR " open="(" close=")">
|
||||
c.region_path LIKE CONCAT('%', #{regionId}, '%')
|
||||
c.region_path LIKE CONCAT('%/', #{regionId}, '/%')
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="request.regionId != null">
|
||||
AND c.region_path LIKE CONCAT('%/', #{request.regionId}, '/%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY b.create_time DESC
|
||||
</select>
|
||||
|
||||
@@ -214,4 +214,23 @@ public class BuildInformationDO {
|
||||
|
||||
@Column(name = "juridical_is_same_partner")
|
||||
private Boolean juridicalIsSamePartner;
|
||||
|
||||
// ===== 开票信息 =====
|
||||
/**
|
||||
* 抬头类型
|
||||
*/
|
||||
@Column(name = "invoice_type")
|
||||
private Integer invoiceType;
|
||||
|
||||
/**
|
||||
* 发票抬头
|
||||
*/
|
||||
@Column(name = "invoice_title")
|
||||
private String invoiceTitle;
|
||||
|
||||
/**
|
||||
* 税号
|
||||
*/
|
||||
@Column(name = "invoice_tin")
|
||||
private String invoiceTin;
|
||||
}
|
||||
@@ -178,6 +178,15 @@ public class BuildInformationRequest {
|
||||
@ApiModelProperty(value = "详细地址" )
|
||||
private String addresseeAddress;
|
||||
|
||||
@ApiModelProperty("抬头类型")
|
||||
private Integer invoiceType;
|
||||
|
||||
@ApiModelProperty("发票抬头")
|
||||
private String invoiceTitle;
|
||||
|
||||
@ApiModelProperty("税号")
|
||||
private String invoiceTin;
|
||||
|
||||
public BuildInformationDO toDO(){
|
||||
BuildInformationDO buildInformationDO = new BuildInformationDO();
|
||||
buildInformationDO.setShopId(this.shopId);
|
||||
@@ -210,6 +219,9 @@ public class BuildInformationRequest {
|
||||
buildInformationDO.setCShopName(this.miniProgramsShopName);
|
||||
buildInformationDO.setSettlerIsSamePartner(this.settlerIsSamePartner);
|
||||
buildInformationDO.setJuridicalIsSamePartner(this.juridicalIsSamePartner);
|
||||
buildInformationDO.setInvoiceType(this.invoiceType);
|
||||
buildInformationDO.setInvoiceTitle(this.invoiceTitle);
|
||||
buildInformationDO.setInvoiceTin(this.invoiceTin);
|
||||
return buildInformationDO;
|
||||
}
|
||||
|
||||
|
||||
@@ -125,6 +125,15 @@ public class StoreMasterDTO {
|
||||
*/
|
||||
private String storeTypeName;
|
||||
|
||||
@ApiModelProperty("抬头类型")
|
||||
private Integer invoiceType;
|
||||
|
||||
@ApiModelProperty("发票抬头")
|
||||
private String invoiceTitle;
|
||||
|
||||
@ApiModelProperty("税号")
|
||||
private String invoiceTin;
|
||||
|
||||
@Data
|
||||
public static class SignerInfo {
|
||||
@ApiModelProperty("签约人1姓名")
|
||||
|
||||
@@ -48,4 +48,7 @@ public class CloseStoreQueryRequest extends PageBasicInfo {
|
||||
|
||||
@ApiModelProperty(value = "所属品牌列表", hidden = true)
|
||||
private List<Integer> joinBrands;
|
||||
|
||||
@ApiModelProperty("区域id")
|
||||
private Long regionId;
|
||||
}
|
||||
|
||||
@@ -212,4 +212,13 @@ public class BuildInformationResponse {
|
||||
|
||||
@ApiModelProperty("订货备注")
|
||||
private String orderRemark;
|
||||
|
||||
@ApiModelProperty("抬头类型")
|
||||
private Integer invoiceType;
|
||||
|
||||
@ApiModelProperty("发票抬头")
|
||||
private String invoiceTitle;
|
||||
|
||||
@ApiModelProperty("税号")
|
||||
private String invoiceTin;
|
||||
}
|
||||
|
||||
@@ -28,4 +28,9 @@ public interface BuildInformationService {
|
||||
* @param user 用户
|
||||
*/
|
||||
Boolean operationsConsultantAudit(AuditApproveRequest request, LoginUserInfo user);
|
||||
|
||||
/**
|
||||
* 开票信息企业校验
|
||||
*/
|
||||
Boolean companyInvoiceVerify(Long shopId);
|
||||
}
|
||||
|
||||
@@ -12,10 +12,12 @@ import com.cool.store.enums.*;
|
||||
import com.cool.store.enums.point.ShopSubStageEnum;
|
||||
import com.cool.store.enums.point.ShopSubStageStatusEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.ApplyLicenseMapper;
|
||||
import com.cool.store.mapper.WarehouseInfoMapper;
|
||||
import com.cool.store.request.AuditApproveRequest;
|
||||
import com.cool.store.request.BuildInformationRequest;
|
||||
import com.cool.store.request.BuildSettlerRequest;
|
||||
import com.cool.store.response.AddSignFranchiseResponse;
|
||||
import com.cool.store.response.BuildInformationResponse;
|
||||
import com.cool.store.service.*;
|
||||
import com.cool.store.utils.RedisConstantUtil;
|
||||
@@ -88,6 +90,10 @@ public class BuildInformationServiceImpl implements BuildInformationService {
|
||||
private OperationLogDAO operationLogDAO;
|
||||
@Autowired
|
||||
private RegionDao regionDao;
|
||||
@Resource
|
||||
private SignFranchiseService signFranchiseService;
|
||||
@Resource
|
||||
private ApplyLicenseMapper applyLicenseMapper;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -350,6 +356,9 @@ public class BuildInformationServiceImpl implements BuildInformationService {
|
||||
response.setSettlerBankBackPhotoUrl(informationDO.getSettlerBankBackPhotoUrl());
|
||||
response.setSettlerIsSamePartner(informationDO.getSettlerIsSamePartner());
|
||||
response.setJuridicalIsSamePartner(informationDO.getJuridicalIsSamePartner());
|
||||
response.setInvoiceType(informationDO.getInvoiceType());
|
||||
response.setInvoiceTitle(informationDO.getInvoiceTitle());
|
||||
response.setInvoiceTin(informationDO.getInvoiceTin());
|
||||
}
|
||||
|
||||
private static @NotNull OrderSysInfoDO getOrderSysInfoDO(BuildInformationRequest request) {
|
||||
@@ -465,6 +474,27 @@ public class BuildInformationServiceImpl implements BuildInformationService {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean companyInvoiceVerify(Long shopId) {
|
||||
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
|
||||
if (Objects.isNull(shopInfo)) {
|
||||
throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST);
|
||||
}
|
||||
ShopStageInfoDO stageInfo = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_3);
|
||||
if (!stageInfo.getShopSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus())) {
|
||||
throw new ServiceException(ErrorCodeEnum.LICENSE_LEGAL_STAGE_FAIL);
|
||||
}
|
||||
LicenseTransactDO license = applyLicenseMapper.selectByShopId(shopId);
|
||||
if (Objects.isNull(license) || StringUtils.isBlank(license.getLicenseLegalPerson())) {
|
||||
throw new ServiceException(ErrorCodeEnum.LICENSE_LEGAL_STAGE_FAIL);
|
||||
}
|
||||
AddSignFranchiseResponse signFranchise = signFranchiseService.getSignFranchise(shopId);
|
||||
if (!signFranchise.getPartnershipSignatoryFirst().equals(license.getLicenseLegalPerson())
|
||||
&& !signFranchise.getPartnershipSignatorySecond().equals(license.getLicenseLegalPerson())) {
|
||||
throw new ServiceException(ErrorCodeEnum.SIGNER_NOT_EQUAL_LEGAL_PERSON);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -150,6 +150,9 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
|
||||
settlerInfo.setSettlerBankPhotoUrl(buildInformationDO.getSettlerBankPhotoUrl());
|
||||
settlerInfo.setSettlerBankBackPhotoUrl(buildInformationDO.getSettlerBankBackPhotoUrl());
|
||||
storeMasterDTO.setSettlerInfo(settlerInfo);
|
||||
storeMasterDTO.setInvoiceType(buildInformationDO.getInvoiceType());
|
||||
storeMasterDTO.setInvoiceTitle(buildInformationDO.getInvoiceTitle());
|
||||
storeMasterDTO.setInvoiceTin(buildInformationDO.getInvoiceTin());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -369,12 +369,21 @@ public class WalletServiceImpl implements WalletService {
|
||||
@Override
|
||||
public AccountDataVO getAccountList(AccountQueryRequest request) {
|
||||
String storeId = getStoreId(request);
|
||||
// 处理shopInfo和store表storeId不一致的问题,使用开店shop_info表的storeId
|
||||
if (StringUtils.isNotBlank(request.getStoreId())) {
|
||||
StoreDO storeDO = storeDao.getByStoreId(request.getStoreId());
|
||||
ShopInfoDO shopInfo = shopInfoDAO.getShopInfoByShopCode(storeDO.getStoreNum());
|
||||
if (Objects.nonNull(shopInfo) && !storeDO.getStoreId().equals(shopInfo.getStoreId())) {
|
||||
storeId = shopInfo.getStoreId();
|
||||
}
|
||||
}
|
||||
List<AccountInfoDTO> accountInfo = walletApiService.getAccountInfo(new OutStoreIdRequest(storeId));
|
||||
String finalStoreId = storeId;
|
||||
List<AccountInfoVO> accountList = accountInfo.stream()
|
||||
.filter(v -> Objects.isNull(request.getWalletType()) || request.getWalletType().equals(v.getWalletType()))
|
||||
.map(v -> {
|
||||
AccountInfoVO vo = BeanUtil.toBean(v, AccountInfoVO.class);
|
||||
String key = MessageFormat.format(RedisConstant.WALLET_OPEN_FAIL, storeId, String.valueOf(v.getWalletType()));
|
||||
String key = MessageFormat.format(RedisConstant.WALLET_OPEN_FAIL, finalStoreId, String.valueOf(v.getWalletType()));
|
||||
vo.setFailReason(redisUtilPool.getString(key));
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
@@ -52,4 +52,10 @@ public class PCBuildInformationController {
|
||||
LoginUserInfo user = CurrentUserHolder.getUser();
|
||||
return ResponseResult.success(buildInformationService.operationsConsultantAudit(request, user));
|
||||
}
|
||||
|
||||
@ApiOperation("开票信息选择企业时校验")
|
||||
@GetMapping("/companyInvoiceVerify")
|
||||
public ResponseResult<Boolean> companyInvoiceVerify(@RequestParam(value = "shopId") Long shopId) {
|
||||
return ResponseResult.success(buildInformationService.companyInvoiceVerify(shopId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,4 +53,9 @@ public class MiniBuildInformationController {
|
||||
return ResponseResult.success(buildInformationService.updateBuildSettler(request,user.getPartnerId()));
|
||||
}
|
||||
|
||||
@ApiOperation("开票信息选择企业时校验")
|
||||
@GetMapping("/companyInvoiceVerify")
|
||||
public ResponseResult<Boolean> companyInvoiceVerify(@RequestParam(value = "shopId") Long shopId) {
|
||||
return ResponseResult.success(buildInformationService.companyInvoiceVerify(shopId));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user