Example #1
0
 public static string GetDepartmentName(H3.IEngine engine, string userId)
 {
     H3.Organization.User employee = engine.Organization.GetUnit(userId) as H3.Organization.User;
     if (employee == null)
     {
         return(null);
     }
     return(employee.DepartmentName);
 }
Example #2
0
    public void UpdateRecordForm(string actionName, string activityCode)
    {
        H3.DataModel.BizObject       thisObj  = this.Request.BizObject;
        H3.DataModel.BizObjectSchema schema   = this.Request.Engine.BizObjectManager.GetPublishedSchema(this.Request.SchemaCode);
        H3.DataModel.BizObject[]     lstArray = thisObj["D001419F790f3a6b004e4988abe9511380792293"] as H3.DataModel.BizObject[]; //获取子表
        //完成总量
        decimal count = thisObj["F0000073"] + string.Empty != string.Empty ? decimal.Parse(thisObj["F0000073"] + string.Empty) : 0;
        //任务计数器
        int taskNum = count < 1 ? int.Parse(thisObj["F0000166"] + string.Empty) - 2 : int.Parse(thisObj["F0000166"] + string.Empty) - 1;

        if (actionName == "Submit" && activityCode == "Activity35" && lstArray != null) //钻孔下机
        {
            //当前任务记录
            H3.DataModel.BizObject currentTask = lstArray[taskNum];
            //设备工时系数表-子表
            H3.DataModel.BizObject[] subObj = null;
            //设备工时系数表
            H3.DataModel.BizObject mtObj = null;
            //当前加工者
            H3.Organization.User employee = this.Engine.Organization.GetUnit(currentTask["F0000143"] + string.Empty) as H3.Organization.User;

            //总下屑量
            string totalxx = "";
            //本工序产品工时
            string productTime = "";
            //轧制方式
            //string zzMode = thisObj["F0000122"] + string.Empty;
            //产品小类
            string productType = thisObj["F0000103"] + string.Empty;
            //设备类型
            string deviceType = currentTask["F0000139"] + string.Empty;
            //设备工时系数
            string deviceParam = string.Empty;

            //产品小类
            if (productType != string.Empty)
            {
                //获取设备工时系数模块
                string    command = string.Format("Select ObjectId From i_D0014195ed7e837ecee4f97800877820d9a2f05 Where F0000001 = '钻孔' and F0000003 = '{0}'", productType);//产品小类
                DataTable data    = this.Engine.Query.QueryTable(command, null);
                if (data != null && data.Rows != null && data.Rows.Count > 0)
                {
                    mtObj = H3.DataModel.BizObject.Load(H3.Organization.User.SystemUserId, this.Engine, "D0014195ed7e837ecee4f97800877820d9a2f05", data.Rows[0]["ObjectId"] + string.Empty, true);
                }
            }

            //设备工时系数表-子表
            subObj = mtObj != null ? mtObj["D001419Fbb7854d117af4bba8eff4de46d128f63"] as H3.DataModel.BizObject[] : null;

            if (subObj != null)
            {
                foreach (H3.DataModel.BizObject item in subObj)
                {
                    if (deviceType != string.Empty)
                    {        //按设备类型查找
                        if (item["F0000004"] + string.Empty == deviceType)
                        {
                            if (item["F0000007"] != null)
                            {               //设备工时系数
                                deviceParam = item["F0000007"] + string.Empty;
                            }
                        }
                    }
                }
            }

            //产品参数表
            H3.DataModel.BizObject productObj = H3.DataModel.BizObject.Load(H3.Organization.User.SystemUserId,
                                                                            this.Engine, "D0014196b62f7decd924e1e8713025dc6a39aa5", thisObj["F0000090"] + string.Empty, false);

            if (productObj != null)
            {
                //根据本表单产品轧制方式从产品参数表中获取"钻孔工时"
                productTime = productObj["F0000052"] + string.Empty;
                //钻孔下屑
                totalxx = productObj["F0000074"] + string.Empty;
            }

            //机加工记录模块
            H3.DataModel.BizObjectSchema recordSchema = this.Engine.BizObjectManager.GetPublishedSchema("D0014194963919529e44d60be759656d4a16b63");
            //新建机加工记录数据对象
            H3.DataModel.BizObject recordObj = new H3.DataModel.BizObject(this.Engine, recordSchema, H3.Organization.User.SystemUserId);
            recordObj.Status = H3.DataModel.BizObjectStatus.Effective;                                                                         //设置为生效状态

            recordObj["F0000001"]  = "钻孔";                                                                                                     //工序
            recordObj["F0000031"]  = "正常钻孔";                                                                                                   //任务类型
            recordObj["F0000003"]  = thisObj["F0000003"] + string.Empty;                                                                       //产品规格
            recordObj["ID"]        = thisObj["F0000029"] + string.Empty;                                                                       //工件ID
            recordObj["F0000040"]  = thisObj["F0000001"] + string.Empty;                                                                       //工件号
            recordObj["F0000002"]  = taskNum;                                                                                                  //任务计数器
            recordObj["F0000011"]  = currentTask["F0000143"] + string.Empty;                                                                   //加工者
            recordObj["F0000030"]  = employee != null ? employee.DepartmentName : "";                                                          //部门名称
            recordObj["startTime"] = currentTask["F0000142"] + string.Empty;                                                                   //加工开始时间
            recordObj["F0000007"]  = currentTask["F0000137"] + string.Empty;                                                                   //设备名称
            recordObj["F0000014"]  = currentTask["F0000138"] + string.Empty;                                                                   //设备编号
            recordObj["F0000041"]  = currentTask["F0000139"] + string.Empty;                                                                   //设备类型
            recordObj["F0000008"]  = deviceParam;                                                                                              //设备工时系数
            recordObj["F0000023"]  = totalxx;                                                                                                  //工艺下屑量
            recordObj["F0000010"]  = currentTask["F0000140"] + string.Empty;                                                                   //任务加工量
            recordObj["EndTime"]   = DateTime.Now;                                                                                             //加工结束时间
            double pTime  = productTime != string.Empty ? double.Parse(productTime) : 0;                                                       //本工序产品工时转换
            double dParam = deviceParam != string.Empty ? double.Parse(deviceParam) : 0;                                                       //设备工时系数转换
            double mScale = currentTask["F0000140"] + string.Empty != string.Empty ? double.Parse(currentTask["F0000140"] + string.Empty) : 0; //加工量转换
            recordObj["F0000004"] = pTime;                                                                                                     //本工序产品工时
            recordObj["F0000005"] = pTime * dParam;                                                                                            //单件拟定工时
            recordObj["F0000006"] = pTime * dParam * mScale;                                                                                   //任务工时

            if (productObj != null)
            {
                recordObj["F0000026"]   = productObj["F0000067"] + string.Empty; //产品名称
                recordObj["F0000027"]   = productObj["F0000004"] + string.Empty; //产品类别
                recordObj["F0000025"]   = productObj["F0000006"] + string.Empty; //产品小类
                recordObj["ProductNum"] = productObj["F0000073"] + string.Empty; //产品编号
                recordObj["F0000017"]   = productObj["F0000014"] + string.Empty; //成品单重
                recordObj["F0000016"]   = productObj["F0000008"] + string.Empty; //工件外径
                recordObj["F0000018"]   = productObj["F0000009"] + string.Empty; //工件内径
                recordObj["F0000020"]   = productObj["F0000010"] + string.Empty; //工件总高
                recordObj["F0000019"]   = productObj["F0000011"] + string.Empty; //工件片厚
                recordObj["F0000021"]   = productObj["F0000012"] + string.Empty; //工件孔数
                recordObj["F0000022"]   = productObj["F0000013"] + string.Empty; //工件孔径
            }

            DateTime startTime = recordObj["StartTime"] + string.Empty != string.Empty ? Convert.ToDateTime(recordObj["StartTime"] + string.Empty) : DateTime.Now; //加工开始时间
            TimeSpan delayTime = DateTime.Now.Subtract(startTime);                                                                                                 //与现在时间的差值
            recordObj["F0000013"] = delayTime.TotalHours;                                                                                                          //实际耗时

            recordObj["F0000015"] = thisObj["F0000048"] + string.Empty;                                                                                            //数据代码
            recordObj.Create();

            currentTask["F0000144"] = recordObj.ObjectId;  //当前任务加工记录
            currentTask.Update();
        }

        if (actionName == "Submit" && activityCode == "Activity68")  //质量检验
        {
            H3.DataModel.BizObject recordObj = null;                 //机加工任务记录
            string systemUserId = H3.Organization.User.SystemUserId; //系统用户

            if (lstArray != null && lstArray.Length > 0)
            {
                for (int i = taskNum - 1; i >= 0; i--)
                {
                    recordObj = null; //清空机加工任务记录数据值
                    //循环加载机加工任务记录数据
                    recordObj = H3.DataModel.BizObject.Load(systemUserId, this.Engine, "D0014194963919529e44d60be759656d4a16b63", lstArray[i]["F0000144"] + string.Empty, false);
                    if (recordObj != null)
                    {
                        recordObj["F0000009"] = i == taskNum ? thisObj["F0000020"] + string.Empty : "合格";  //检验结果
                        //recordObj["F0000029"] = thisObj["F0000138"] + string.Empty; //探伤结果

                        recordObj["F0000033"] = thisObj["F0000091"] + string.Empty; //实际外径
                        recordObj["F0000034"] = thisObj["F0000092"] + string.Empty; //实际内径
                        recordObj["F0000035"] = thisObj["F0000093"] + string.Empty; //实际总高
                        recordObj["F0000036"] = thisObj["F0000094"] + string.Empty; //实际片厚
                        recordObj["F0000038"] = thisObj["F0000095"] + string.Empty; //实际孔数
                        recordObj["F0000039"] = thisObj["F0000096"] + string.Empty; //实际孔径
                        recordObj["F0000037"] = thisObj["F0000097"] + string.Empty; //实际单重

                        recordObj.Update();
                    }
                }
            }
        }
    }