|
|
@@ -2698,6 +2698,286 @@ namespace Dongke.IBOSS.PRD.Service.PMModuleService
|
|
|
|
|
|
#endregion 条码绑定
|
|
|
|
|
|
+ #region 取消最后注浆
|
|
|
+ /// <summary>
|
|
|
+ /// 验证成型线编码是否能取消最后注浆
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="user"></param>
|
|
|
+ /// <param name="glcode"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static ServiceResultEntity CheckFPM0106GLCode(SUserInfo user, string glcode)
|
|
|
+ {
|
|
|
+ ServiceResultEntity sre = new ServiceResultEntity();
|
|
|
+ if (string.IsNullOrWhiteSpace(glcode))
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 1;
|
|
|
+ sre.Message = $"成型线【{glcode}】不存在";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ IDBConnection conn = null;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
|
|
|
+ //输入成型线号,1.验证是否存在、2.最后注浆日期、批次是否存在,3.是否有报损、是否绑定条码。 返回【最后注浆日期、批次】。
|
|
|
+
|
|
|
+ string sqlString = "select GL.GroutingLineID\n" +
|
|
|
+ " ,gl.GroutingLineCode\n" +
|
|
|
+ " ,gl.GroutingLineName\n" +
|
|
|
+ " ,GL.LastGroutingDate\n" +
|
|
|
+ " ,GL.LastGroutingBatchNo\n" +
|
|
|
+ " ,gd.usercode\n" +
|
|
|
+ " ,gd.GroutingDailyID\n" +
|
|
|
+ " from TP_PC_GroutingLine gl\n" +
|
|
|
+ " left join TP_PM_GroutingDaily gd\n" +
|
|
|
+ " on gd.GroutingLineID = gl.GroutingLineID\n" +
|
|
|
+ " and gd.GroutingDate = GL.LastGroutingDate\n" +
|
|
|
+ " and gd.GroutingBatchNo = gl.LastGroutingBatchNo\n" +
|
|
|
+ " where gl.valueflag = '1'\n" +
|
|
|
+ " and gl.GroutingLineCode = :glcode";
|
|
|
+ OracleParameter[] ps = new OracleParameter[]
|
|
|
+ {
|
|
|
+ new OracleParameter(":glcode", glcode),
|
|
|
+ };
|
|
|
+ DataTable data = conn.GetSqlResultToDt(sqlString, ps);
|
|
|
+ if (data == null || data.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 1;
|
|
|
+ sre.Message = $"成型线【{glcode}】不存在";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ sre.Data = new DataSet();
|
|
|
+ sre.Data.Tables.Add(data);
|
|
|
+
|
|
|
+ object objgdid = data.Rows[0]["GroutingDailyID"];
|
|
|
+ if (objgdid == null || objgdid == DBNull.Value)
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 2;
|
|
|
+ sre.Message = $"成型线【{glcode}】未注浆";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ int gdid = Convert.ToInt32(objgdid);
|
|
|
+
|
|
|
+ sqlString = "select count(gdd.GroutingDailyDetailID) dc\n" +
|
|
|
+ " from TP_PM_GroutingDailyDetail gdd\n" +
|
|
|
+ " where gdd.valueflag = '1'\n" +
|
|
|
+ " and gdd.GroutingDailyID = :gdid\n" +
|
|
|
+ " and (gdd.ScrapFlag <> '0' or gdd.barcode is not null)";
|
|
|
+ ps = new OracleParameter[]
|
|
|
+ {
|
|
|
+ new OracleParameter(":gdid", gdid),
|
|
|
+ };
|
|
|
+ int dcount = Convert.ToInt32(conn.GetSqlResultToObj(sqlString, ps));
|
|
|
+ if (dcount > 0)
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 3;
|
|
|
+ sre.Message = $"成型线【{glcode}】最后注浆登记中有已报损或绑定条码的注浆明细";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 'S_PM_022', '注浆编辑限制天数' add by chenxy 2018-12-15 begin
|
|
|
+ sre.Result = 1;
|
|
|
+ string spm022 = conn.GetSqlResultToStr("select ss.SETTINGVALUE from tp_mst_systemsetting ss where ss.SETTINGCODE = 'S_PM_022' and ss.AccountID = " + user.AccountID);
|
|
|
+ int spm022Value = 0;
|
|
|
+ if (!string.IsNullOrWhiteSpace(spm022) && int.TryParse(spm022, out spm022Value) && spm022Value > 0)
|
|
|
+ {
|
|
|
+ DateTime tDate = DateTime.Now.Date;
|
|
|
+ DateTime lastDate = tDate.AddDays(1 - spm022Value);
|
|
|
+ DateTime gData = (DateTime)data.Rows[0]["LastGroutingDate"];
|
|
|
+ if (gData < lastDate || gData > tDate)
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 9;
|
|
|
+ sre.Message = string.Format("允许注浆编辑的日期范围【{0:yyyy-MM-dd}】-【{1:yyyy-MM-dd}】", lastDate, tDate);
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 'S_PM_022', '注浆编辑限制天数' add by chenxy 2018-12-15 end
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ finally
|
|
|
+ {
|
|
|
+ if (conn != null &&
|
|
|
+ conn.ConnState == ConnectionState.Open)
|
|
|
+ {
|
|
|
+ conn.Close();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 验证成型线编码是否能取消最后注浆
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="user"></param>
|
|
|
+ /// <param name="glcode"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static ServiceResultEntity SetFPM0106GLCode(SUserInfo user, ClientRequestEntity cre)
|
|
|
+ {
|
|
|
+ string glcode = cre.Data.Tables[0].Rows[0]["GroutingLineCode"] + "";
|
|
|
+ int glID = Convert.ToInt32(cre.Data.Tables[0].Rows[0]["GroutingLineID"]);
|
|
|
+ int gdID = Convert.ToInt32(cre.Data.Tables[0].Rows[0]["GroutingDailyID"]);
|
|
|
+ ServiceResultEntity sre = new ServiceResultEntity();
|
|
|
+ if (string.IsNullOrWhiteSpace(glcode))
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 1;
|
|
|
+ sre.Message = $"成型线【{glcode}】不存在";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ IDBTransaction conn = null;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ conn = ClsDbFactory.CreateDBTransaction(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
|
|
|
+ //输入成型线号,1.验证是否存在、2.最后注浆日期、批次是否存在,3.是否有报损、是否绑定条码。 返回【最后注浆日期、批次】。
|
|
|
+
|
|
|
+ string sqlString = "select GL.GroutingLineID\n" +
|
|
|
+ //" ,gl.GroutingLineCode\n" +
|
|
|
+ //" ,gl.GroutingLineName\n" +
|
|
|
+ //" ,nvl(GL.LastGroutingDate, to_date('1900-01-01','yyyy-mm-dd')) LastGroutingDate\n" +
|
|
|
+ //" ,nvl(GL.LastGroutingBatchNo,0) LastGroutingBatchNo\n" +
|
|
|
+ //" ,gd.usercode\n" +
|
|
|
+ " ,gd.GroutingDailyID\n" +
|
|
|
+ " from TP_PC_GroutingLine gl\n" +
|
|
|
+ " inner join TP_PM_GroutingDaily gd\n" +
|
|
|
+ " on gd.GroutingLineID = gl.GroutingLineID\n" +
|
|
|
+ " and gd.GroutingDate = GL.LastGroutingDate\n" +
|
|
|
+ " and gd.GroutingBatchNo = gl.LastGroutingBatchNo\n" +
|
|
|
+ " where gl.valueflag = '1'\n" +
|
|
|
+ " and gl.GroutingLineID = :glID\n" +
|
|
|
+ " for update";
|
|
|
+ OracleParameter[] ps = new OracleParameter[]
|
|
|
+ {
|
|
|
+ new OracleParameter(":glID", glID),
|
|
|
+ };
|
|
|
+ DataTable data = conn.GetSqlResultToDt(sqlString, ps);
|
|
|
+ if (data == null || data.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 1;
|
|
|
+ sre.Message = $"成型线【{glcode}】不存在";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ //sre.Data = new DataSet();
|
|
|
+ //sre.Data.Tables.Add(data);
|
|
|
+
|
|
|
+ //DateTime lgd = Convert.ToDateTime(data.Rows[0]["LastGroutingDate"]);
|
|
|
+ //int lgb = Convert.ToInt32(data.Rows[0]["LastGroutingBatchNo"]);
|
|
|
+
|
|
|
+ //if (lgd != Convert.ToDateTime(cre.Data.Tables[0].Rows[0]["LastGroutingDate"]) ||
|
|
|
+ // lgb != Convert.ToInt32(cre.Data.Tables[0].Rows[0]["LastGroutingBatchNo"]))
|
|
|
+ //{
|
|
|
+ // sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ // sre.OtherStatus = 2;
|
|
|
+ // sre.Message = $"成型线【{glcode}】最后注浆日期和批次已变更";
|
|
|
+ // return sre;
|
|
|
+ //}
|
|
|
+ int lgdid = Convert.ToInt32(data.Rows[0]["GroutingDailyID"]);
|
|
|
+ if (lgdid != gdID)
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 2;
|
|
|
+ sre.Message = $"成型线【{glcode}】最后注浆日期和批次已变更";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlString = "select count(gdd.GroutingDailyDetailID) dc\n" +
|
|
|
+ " from TP_PM_GroutingDailyDetail gdd\n" +
|
|
|
+ " where gdd.valueflag = '1'\n" +
|
|
|
+ " and gdd.GroutingDailyID = :gdid\n" +
|
|
|
+ " and (gdd.ScrapFlag <> '0' or gdd.barcode is not null)";
|
|
|
+ ps = new OracleParameter[]
|
|
|
+ {
|
|
|
+ new OracleParameter(":gdid", gdID),
|
|
|
+ };
|
|
|
+ int dcount = Convert.ToInt32(conn.GetSqlResultToObj(sqlString, ps));
|
|
|
+ if (dcount > 0)
|
|
|
+ {
|
|
|
+ sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ sre.OtherStatus = 3;
|
|
|
+ sre.Message = $"成型线【{glcode}】最后注浆登记中有已报损或绑定条码的注浆明细";
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 'S_PM_022', '注浆编辑限制天数' add by chenxy 2018-12-15 begin
|
|
|
+ //sre.Result = 1;
|
|
|
+ //string spm022 = conn.GetSqlResultToStr("select ss.SETTINGVALUE from tp_mst_systemsetting ss where ss.SETTINGCODE = 'S_PM_022' and ss.AccountID = " + user.AccountID);
|
|
|
+ //int spm022Value = 0;
|
|
|
+ //if (!string.IsNullOrWhiteSpace(spm022) && int.TryParse(spm022, out spm022Value) && spm022Value > 0)
|
|
|
+ //{
|
|
|
+ // DateTime tDate = DateTime.Now.Date;
|
|
|
+ // DateTime lastDate = tDate.AddDays(1 - spm022Value);
|
|
|
+ // DateTime gData = (DateTime)data.Rows[0]["LastGroutingDate"];
|
|
|
+ // if (gData < lastDate || gData > tDate)
|
|
|
+ // {
|
|
|
+ // sre.Status = Constant.ServiceResultStatus.Other;
|
|
|
+ // sre.OtherStatus = 9;
|
|
|
+ // sre.Message = string.Format("允许注浆编辑的日期范围【{0:yyyy-MM-dd}】-【{1:yyyy-MM-dd}】", lastDate, tDate);
|
|
|
+ // return sre;
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ // 'S_PM_022', '注浆编辑限制天数' add by chenxy 2018-12-15 end
|
|
|
+
|
|
|
+ //2.然后取消注浆,3.并valueflag=0。4.修改成型线的最后注浆日期、批次。
|
|
|
+
|
|
|
+ string sql =
|
|
|
+ "UPDATE TP_PM_GroutingDailyDetail" +
|
|
|
+ " SET GroutingCount = CASE" +
|
|
|
+ " WHEN GroutingFlag = '1'" +
|
|
|
+ " THEN GroutingCount - 1" +
|
|
|
+ " ELSE GroutingCount END," +
|
|
|
+ " GroutingFlag = '0'," +
|
|
|
+ " valueflag = '0'," +
|
|
|
+ " UpdateUserID = :UpdateUserID" +
|
|
|
+ " WHERE GroutingDailyID = :gdid and valueflag = '1'";
|
|
|
+ ps = new OracleParameter[]
|
|
|
+ {
|
|
|
+ new OracleParameter(":UpdateUserID", user.UserID),
|
|
|
+ new OracleParameter(":gdid", gdID),
|
|
|
+ };
|
|
|
+ int r = conn.ExecuteNonQuery(sql, ps);
|
|
|
+
|
|
|
+ sql = "update TP_PM_GroutingDaily gd set gd.valueflag='0', updateuserid = :UpdateUserID where gd.GroutingDailyID = :gdid";
|
|
|
+ r = conn.ExecuteNonQuery(sql, ps);
|
|
|
+
|
|
|
+ sql = "update TP_PC_GroutingLine gl\n" +
|
|
|
+ " set (gl.LastGroutingDate, gl.LastGroutingBatchNo) =\n" +
|
|
|
+ " (select gd.GroutingDate, gd.GroutingBatchNo\n" +
|
|
|
+ " from TP_PM_GroutingDaily gd\n" +
|
|
|
+ " where gd.GroutingDailyID =\n" +
|
|
|
+ " (select max(gm.GroutingDailyID)\n" +
|
|
|
+ " from TP_PM_GroutingDaily gm\n" +
|
|
|
+ " where gm.GroutingLineID = :glid\n" +
|
|
|
+ " and gm.valueflag = '1'))\n" +
|
|
|
+ " ,gl.UpdateUserID = :UpdateUserID\n" +
|
|
|
+ " where gl.GroutingLineID = :glid";
|
|
|
+ r = conn.ExecuteNonQuery(sql, ps);
|
|
|
+
|
|
|
+ conn.Commit();
|
|
|
+ return sre;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ finally
|
|
|
+ {
|
|
|
+ if (conn != null &&
|
|
|
+ conn.ConnState == ConnectionState.Open)
|
|
|
+ {
|
|
|
+ conn.Disconnect();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
#endregion 注浆管理
|
|
|
|
|
|
#region 条码管理
|