package com.dderp.common.api; import com.dderp.common.entity.base.InvokeCallParams; import com.dderp.common.entity.base.InvokeCallResult; import com.dderp.common.entity.base.ProcessSearchItem; import com.dderp.common.entity.base.ScriptContent; import com.dderp.common.entity.doc.BusinessScript; import com.dderp.common.entity.inquire.InquireExecRecord; import com.dderp.common.entity.inquire.InquireMainInfo; import com.dderp.common.entity.site.ERPTokenUser; import com.dderp.common.entity.system.CompanyInfo; import com.sweetfish.service.RetResult; import com.sweetfish.source.PageFlipper; import com.sweetfish.util.AutoLoad; import org.rex.RMap; import java.util.List; /** * Created by jlutt on 2020-07-28 * 基础档案 * 注意档案服务必须保证至少有一个和业务类服务order或者施工单在一个进程内 * 这样脚本才能返回 * * @author jlutt */ @AutoLoad(false) public interface DocInfoService extends ScriptService { //region 业务脚本 /** * 从redis中按code获取脚本 * 脚本数据量不会太大,维护从数据库中获取即可,但redis中会存有code对应的信息,用于其他业务快速使用 * * @param code 脚本编码 * @param supplierCode 分表 * @return 脚本信息 */ BusinessScript getRedisBusinessScript(String code, long supplierCode); /** * 从redis中获取脚本名称 * * @param code 脚本编码 * @param supplierCode 分表 * @return 脚本名称 */ String getRedisBusinessScriptName(String code, long supplierCode); /** * 分页获取业务脚本列表 * 从数据库中获取数据 * * @param searchData 查询条件 * @param pageFlipper 分页信息 * @return 脚本列表 */ @SuppressWarnings({"rawtypes"}) RMap getBusinessScriptList(RMap searchData, PageFlipper pageFlipper, String dataSourceId, long supplierCode); /** * 从code获取业务脚本信息 * * @param code 脚本编码 * @param supplierCode 分表 * @return 脚本信息 */ @SuppressWarnings({"rawtypes"}) RMap getBusinessScriptInfo(String code, String dataSourceId, long supplierCode); /** * 增加业务脚本 * * @param businessScript * @param currentUser * @param dataSourceId * @param supplierCode */ int addBusinessScriptLocal(BusinessScript businessScript, ERPTokenUser currentUser, String dataSourceId, long supplierCode); /** * 增加业务脚本 * * @param businessScript * @param currentUser * @return */ @SuppressWarnings({"rawtypes"}) RMap addBusinessScript(BusinessScript businessScript, ERPTokenUser currentUser, String dataSourceId, long supplierCode); /** * 修改业务脚本 * * @param businessScript * @param currentUser * @return */ @SuppressWarnings({"rawtypes"}) RMap updateBusinessScript(BusinessScript businessScript, ERPTokenUser currentUser, String dataSourceId, long supplierCode); /** * 启用、禁用业务脚本 * * @param businessScript * @param currentUser * @return */ @SuppressWarnings({"rawtypes"}) RMap voidBusinessScript(BusinessScript businessScript, ERPTokenUser currentUser, String dataSourceId, long supplierCode); /** * 获取业务脚本脚本内容 * * @param code 脚本编号 * @return 脚本内容 */ RetResult getBusinessScriptContent(String code, String dataSourceId, long supplierCode); /** * 编译业务脚本脚本 * * @param script * @return */ @SuppressWarnings({"rawtypes"}) RMap compileBusinessScriptContent(ScriptContent script, String dataSourceId, long supplierCode); /** * 存储业务脚本脚本 * * @param script * @return */ int saveBusinessScriptContent(ScriptContent script, boolean clearCache, String dataSourceId, long supplierCode, ERPTokenUser currentUser); //endregion //region 查询统计 RetResult> queryInquireMainInfo(RMap searchData, PageFlipper pageFlipper, ERPTokenUser currentUser, String dataSourceId, long supplierCode); RetResult getInquireMainInfo(long id, ERPTokenUser currentUser, String dataSourceId, long supplierCode); RetResult addInquireInfo(InquireMainInfo mainInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode); RetResult updateInquireInfo(InquireMainInfo inquireMainInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode); RetResult voidInquireInfo(InquireMainInfo inquireMainInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode); RetResult> execInquireResult(ProcessSearchItem source); RetResult addExcelTemplate(long id, ERPTokenUser currentUser, String dataSourceId, long supplierCode); //endregion //region 分厂档案 /** * 从id获取分厂信息信息 * @param id id * @return 分厂对象 */ CompanyInfo getCompanyInfo(long id, long supplierCode); /** * 从redis中获取分厂信息 * @param id id * @param supplierCode 分表 * @return 分行名 */ String getRedisCompanyInfoName(long id, long supplierCode); /** * 分页获取分厂信息列表 * 从数据库中获取数据 * @param searchData 查询条件 * @param pageFlipper 分页 * @return 分厂列表 */ @SuppressWarnings({"rawtypes"}) RetResult> getCompanyInfoList(RMap searchData, PageFlipper pageFlipper, String dataSourceId, long supplierCode); /** * 获取所有的分厂信息,供下拉方式选择 * @param dataSourceId 分库 * @param supplierCode 分表 * @return 分厂列表 */ RetResult> getAllCompanyInfoList(String dataSourceId, long supplierCode); /** * 增加分厂信息 * @param companyInfo 分厂对象 * @param currentUser 当前用户 * @return 成功失败 */ RetResult addCompanyInfo(CompanyInfo companyInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode); /** * 修改分厂信息 * @param companyInfo 分厂对象 * @param currentUser 当前用户 * @return 成功失败 */ RetResult updateCompanyInfo(CompanyInfo companyInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode); /** * 启用、禁用分厂信息 * @param companyInfo 分厂对象 * @param currentUser 当前用户 * @return 成功失败 */ RetResult voidCompanyInfo(CompanyInfo companyInfo, ERPTokenUser currentUser, String dataSourceId, long supplierCode); //endregion RetResult callDoc(InvokeCallParams source, ERPTokenUser currentUser, String dataSourceId, long supplierCode); }