首页 > 其他分享 >利用编码规则生成除单据编码字段以外的字段的自定义编码

利用编码规则生成除单据编码字段以外的字段的自定义编码

时间:2023-12-09 16:35:22浏览次数:30  
标签:编码 CITY string 自定义 billData JNXM 单据 Num

/// <summary>
/// 生成母单号
/// </summary>
/// <param name="billData"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public void CreateMuOrderNo(DynamicObject billData)
{
    string F_JNXM_MuOrderNum = billData["F_JNXM_MuOrderNum"].GetStringJNXM();
    if (F_JNXM_MuOrderNum == "")//母单号为空
    {
        string CITY_Num = "";
        var BD_CUSTOMEREXT = billData["BD_CUSTOMEREXT"] as DynamicObjectCollection;
        if (BD_CUSTOMEREXT != null && BD_CUSTOMEREXT.Count > 0)
        {
            string CITY_Id = BD_CUSTOMEREXT.First()["CITY_Id"].GetStringJNXM();
            CITY_Num = Synthesize.GetAuxiliaryFiledValue(this.Context, CITY_Id, "F_JNXM_Selfdefine1").Trim();
        }
        string F_JNXM_County_Id = billData["F_JNXM_County_Id"].GetStringJNXM();
        string F_JNXM_County_Num = Synthesize.GetAuxiliaryFiledValue(this.Context, F_JNXM_County_Id, "F_JNXM_Selfdefine1").Trim();
        if (CITY_Num != "" && F_JNXM_County_Num != "")
        {
            billData["F_JNXM_CityCountyNum"] = CITY_Num + F_JNXM_County_Num;//更新城市区县编码组合
            //获取自动编码
            var BillCodeRule = Synthesize.GetDataValue(this.Context, "BOS_BillCodeRuleRuntime", "FName = '客户母单号编码规则'");
            if (BillCodeRule != null)
            {
                string Number = billData["Number"].GetStringJNXM();//保存原来的编码
                billData["Number"] = "";
                BusinessDataService dataService = new BusinessDataService();
                FormMetadata metadata = (FormMetadata)AppServiceContext.MetadataService.Load(this.Context, "BD_Customer");
                var businInfo = metadata.BusinessInfo;
                bool isUpdateMax = true;
                var dataObjs = new DynamicObject[] { billData };
                string specifiedRuleId = Convert.ToString(BillCodeRule["Id"]);//编码规则
                var billNoList = dataService.GetBillNo(Context, businInfo, dataObjs, isUpdateMax, specifiedRuleId);
                billData["F_JNXM_MuOrderNum"] = billNoList[0].BillNo;
                billData["Number"] = Number;//恢复原来的编码
            }
            else
            {
                throw new KDBusinessException("", "未配置客户母单号编码规则");
            }
        }
        else
        {
            throw new KDBusinessException("", "请在辅助资料类别【市\\区】的【自定义字段1】中配置对应的编码");
        }
    }
}

 

标签:编码,CITY,string,自定义,billData,JNXM,单据,Num
From: https://www.cnblogs.com/zouhuaxin/p/17891125.html

相关文章

  • 成品直播源码,如何在开发时自定义缓存策略
    缓存在成品直播源码中所占用的空间往往会成为迫使用户卸载应用的最后一根稻草。开发者不能无上限对音视频资源进行缓存,通常的维护手法是通过限制空间大小,比如,用户通常可以接受视频类应用有1G左右的缓存空间,即时通信类应用也许会更大些。因此我们的成品直播源码缓存库也需要提供......
  • 【Base64】二进制数据编码解码(OpenSSL BIO)
    1.问题引出计算机中数据使用ascii码存储,而ascii码在128~255之间是不可见字符,网络上传输数据时往往经过多个路由设备,不同设备不同的处理方式也可能导致数据传输过程中处理出现问题。所以我们通过Base64将数据全部编码成可见字符(A-Z,a-z,0-9,+,/共64个)可以降低出错的可能。B......
  • VUE框架CLI组件化组件的自定义事件和子组件向父组件传递数据的实现------VUE框架
    <template> <div> <!--内置函数的实现步骤--> <!--提供事件源,给事件源绑定事件,编写回调函数,将回调函数和事件进行绑定--> <!--等待事件的触发,事件触发执行回调函数--> <!--组件的自定义事件实现步骤--> <button@click="Hello()">你好</button> <!--给Us......
  • JAVA自定义对象序列化,自定义的控制每个字节的序列化情况
    在java中,正常来说序列化是可以直接继承Serializable,或使用类似于fastjson,protobuf等框架。但是这些框架对于二进制协议,自定义协议,私有协议方面却不太好使,私有协议大多还是按照字节的方式组织数据,对于java来说需要控制每个属性的序列化方式,所以这块主要还是以传统的方式,读字节......
  • 线路编码方案 —— 《数据通信与网络》4th
    线路编码方案分类单极编码方案在单级编码方案中,所有的信号电平都在时间轴的一边,或者时间轴的上面或者时间轴的下面。不归零(NRZ)一般,单级编码方案设计成不归军(non-return-to-zeroNRZ)方案,在此方案中正电平定义成位而零电平定义成位。之所以称为NRZ,是因为......
  • URL编码
    一、引言URL编码(URLencoding)是一种将文本转换为特定格式的过程,以便在互联网上传输和解析。它是网络通信中不可或缺的技术。本文将详细介绍URL编码的原理、方法与应用,帮助读者深入了解这一技术。URL编码解码--一个覆盖广泛主题工具的高效在线平台(amd794.com)https://am......
  • 自定义session Provider随笔[由多个请求阻塞排队处理发现]
    引用:Session,有没有必要使用它?usingIDH.Common.BaseInfoCacheManagement;usingNewtonsoft.Json;usingSystem;usingSystem.Collections.Generic;usingSystem.Collections.Specialized;usingSystem.Web;usingSystem.Web.SessionState;namespaceIdhWebApplication.E......
  • scrapy框架之自定义扩展
    自定义扩展时,利用信号在指定位置注册制定操作源码剖析:1fromscrapy.extensions.telnetimportTelnetConsole#查看TelnetConsole源码23#Enableordisableextensions4#Seehttps://doc.scrapy.org/en/latest/topics/extensions.html5EXTENSIONS={6'scrapy.......
  • scrapy框架之自定义简易scrapy框架
    自定义low版Scrapy框架:1fromtwisted.internetimportreactor#事件循环(终止条件,所有的socket都已经移除)2fromtwisted.web.clientimportgetPage#socket对象(如果下载完成..自动从事件循环中移除)3fromtwisted.internetimportdefer#defer.Deferred特殊的soc......
  • 12、QT自定义消息框
     #include"dialog.h"Dialog::Dialog(QWidget*parent):QDialog(parent){resize(260,80);glayout=newQGridLayout(this);labelmsg=newQLabel("自定义消息框");msgButton=newQPushButton("测试操作");labeldis......