| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- using com.steering.pss.plnsaleord.ordAmCal.model;
- using com.steering.pss.plnsaleord.order.model;
- using Core.Mes.Client.Comm.Server;
- using CoreFS.CA06;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- namespace Core.StlMes.Client.PlnSaleOrd.BaseMethod
- {
- class PlnOrdProcRefresCal
- {
- /// <summary>
- /// 重算
- /// </summary>
- public static bool RefresCal(string ordLnDlyPk, string plnDivideId, OpeBase _ob, out string message)
- {
- message = "";
- bool fl = false;
- PlnSaleordProcEntity ordProcEntity = new PlnSaleordProcEntity();
- DataTable dtProc = ServerHelper.GetData("com.steering.pss.plnsaleord.order.baseMethod.CoreOrdProcRefresCal.queryPlnOrdProc",
- new object[] { ordLnDlyPk, plnDivideId }, _ob);
- if (dtProc == null || dtProc.Rows.Count <= 0)
- {
- message = "未找到排产记录!";
- return false;
- }
- if (!dtProc.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
- {
- message = "合同已经下发。";
- return false;
- }
- string outsStlPipeFl = dtProc.Rows[0]["OUTS_STL_PIPE_FL"].ToString();
- string processSeq = dtProc.Rows[0]["PROCESS_SEQ"].ToString();
- string desginKey = dtProc.Rows[0]["DESGIN_KEY"].ToString();
- string mscpline = dtProc.Rows[0]["INDEX_SEQ"].ToString();
- string bom = dtProc.Rows[0]["BOM"].ToString();
- string plineD = dtProc.Rows[0]["GROUP_ROLL"].ToString();
- string codeJg = dtProc.Rows[0]["CODE_JG"].ToString();
- string orderUnit = dtProc.Rows[0]["ORDER_UNIT"].ToString();
- string rollMonth = dtProc.Rows[0]["ROLL_MONTH"].ToString();
- double orderQtyD = 0;
- double.TryParse(dtProc.Rows[0]["ORDER_QTY_D"].ToString(), out orderQtyD);
- if (orderQtyD <= 0)
- {
- message = "排产分配订货量有误!";
- return false;
- }
- if (processSeq.Contains("D")
- && !plineD.Trim().Equals("C072")
- && !outsStlPipeFl.Equals("121903")
- && !outsStlPipeFl.Equals("121902")
- || orderUnit.Trim().Equals("支"))
- {
- #region 合同量转换
- OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
- InOrdParamEntity inOrdParam = new InOrdParamEntity();
- PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(_ob);
- string errMessage = "";
- DateTime date = new DateTime();
- double putRate = 1;
- if (DateTime.TryParse(rollMonth, out date))
- {
- //投料率
- putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, _ob);
- }
- inOrdParam = ordAmountCal.getInOrdPlnQtyParam(orderQtyD, orderUnit,
- desginKey, mscpline, ordLnDlyPk, plineD,
- bom, codeJg, putRate);
- if (!ordAmountCal.isRightParam(inOrdParam, desginKey,
- codeJg, bom, plineD, out errMessage))
- {
- message = errMessage;
- return false;
- }
- ordAmountCal.InEnity = inOrdParam;
- outOrdParam = ordAmountCal.getOrdAmount();
- if (outOrdParam.ErrCode == -1)
- {
- message = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
- return false;
- }
- ordProcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
- ordProcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
- ordProcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
- ordProcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
- ordProcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
- ordProcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
- ordProcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
- ordProcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
- ordProcEntity.CutNumP = outOrdParam.CutNumP.ToString();
- ordProcEntity.RollLength = outOrdParam.RollLength.ToString();
- ordProcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
- ordProcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
- ordProcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
- #endregion
- }
- else
- {
- #region 外购管
- double orderWeight = 0;
- double aimLenEnd = 0;
- double weightPerM = 0;
- int planNum = 0;
- double.TryParse(dtProc.Rows[0]["WEIGHT_PER_M"].ToString(), out weightPerM);
- double.TryParse(dtProc.Rows[0]["AIM_LEN_END"].ToString(), out aimLenEnd);
- if (orderUnit.Equals("米"))
- {
- orderWeight = Math.Round((orderQtyD * weightPerM), 3);
- }
- else if (orderUnit.Equals("英尺"))
- {
- double lengqty = PlanComm.FootoMi(orderQtyD);
- orderWeight = Math.Round((lengqty * weightPerM), 3);
- }
- else if (orderUnit.Equals("英磅"))
- {
- orderWeight = PlanComm.PoundtoTon(orderQtyD);
- }
- else
- {
- orderWeight = orderQtyD;
- }
- //目标长度,取长度上下限中间值,计算计划支数
- if ((orderWeight % (aimLenEnd * weightPerM)) == 0)
- {
- planNum = (int)(orderWeight / (aimLenEnd * weightPerM));
- }
- else
- {
- planNum = (int)(orderWeight / (aimLenEnd * weightPerM)) + 1;
- }
- ordProcEntity.PlanWtD = orderWeight.ToString();
- ordProcEntity.PlanNumD = planNum.ToString();
- ordProcEntity.AimLenEnd = aimLenEnd.ToString();
- ordProcEntity.PlanPMain = orderWeight.ToString();
- ordProcEntity.PlanTotLenD = (planNum * aimLenEnd).ToString();
- #endregion
- }
- ordProcEntity.OrdLnDlyPk = ordLnDlyPk;
- ordProcEntity.PlnDivideId = plnDivideId;
- int suceed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.baseMethod.CoreOrdProcRefresCal.updatePlnOrdProc",
- new object[] { ordProcEntity }, _ob);
- if (suceed > 0)
- {
- fl = true;
- }
- return fl;
- }
- }
- }
|