package com.unis.crk.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.unis.crk.common.entity.Billnonewgjj;

/**
 * <p>
 * 专用于生成国家局业务单据号 服务类
 * </p>
 *
 * @author TangSong
 * @since 2023-08-03
 */
public interface IBillnonewgjjService extends IService<Billnonewgjj> {

    /**
     * 获取关于某个指标的最新一个业务序号值，业务序号包括一个字符串表达式和自增序号两部分，且自增序号总是在序号的最后面
     *
     * @param tableName 表名
     * @param unitId    单位id
     * @param BillNo    业务单号
     * @param prefix    前缀
     * @param NoLen     自增序号部分的长度
     * @param cpzRq     称皮重日期，用户汽车入库生成业务单号
     * @return
     */
    String createNewNo(String prefix, String tableName, String unitId, String BillNo,
                       int NoLen, String... cpzRq);

    /**
     * 创建倒仓业务数据
     *
     * @param unitId
     * @param zycx
     * @param dcdh
     * @param isKcdbYc
     * @return
     */
    String createDcyw(String unitId, String zycx, String dcdh, boolean isKcdbYc);

    /**
     * 创建账面库存业务数据
     *
     * @param unitId
     * @param zmkcId
     * @param bizno
     * @return
     */
    String createZmkcyw(String unitId, String zmkcId, String bizno);

    /**
     * 创建性质变动业务数据
     *
     * @param unitId
     * @param bddh
     * @param lsxzzbdh
     * @return
     */
    String createXzbdyw(String unitId, String bddh, String lsxzzbdh);

    /**
     * 创建损益单业务数据
     *
     * @param unitId
     * @param bddh
     * @param sydh
     * @return
     */
    String createSydyw(String unitId, String bddh, String sydh);

    /**
     * 创建入库业务数据
     *
     * @param unitId
     * @param bizNo
     * @param rkywdh
     * @return
     */
    String createRkyw(String unitId, String bizNo, String rkywdh);

    /**
     * 创建出库业务数据
     *
     * @param unitId
     * @param bizNo
     * @param ckywdh
     * @return
     */
    String createCkyw(String unitId, String bizNo, String ckywdh);

    /**
     * 创建入库检验业务数据
     *
     * @param unitId
     * @param bizNo
     * @param rkywdh
     * @return
     */
    String createRkJyyw(String unitId, String bizNo, String rkywdh);

    /**
     * 创建入库检验业务明细数据
     *
     * @param unitId
     * @param bizNo
     * @param rkywdh
     * @return
     */
    String cerateRjjymx(String bizNo, String dataId);

    /**
     * 创建入库结算业务数据
     *
     * @param unitId
     * @param bizNo
     * @param rkjsdh
     * @return
     */
    String createRkJsyw(String unitId, String bizNo, String rkjsdh);

    /**
     * 通用删除，修改操作标识状态为u
     *
     * @param dataId
     * @return
     */
    String deleteYw(String dataId, String tableName);

    /**
     * 通用删除，修改操作标识状态为u
     *
     * @param bizNo
     * @return
     */
    String deleteYwByBizNo(String bizNo, String tableName);

}
