zhupei 3 years ago
parent
commit
83d2f97c73

+ 227 - 295
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/weixin/WxLoginController.cs

@@ -1039,17 +1039,11 @@ namespace CallCenterApi.Interface.Controllers.weixin
1039 1039
                                 }
1040 1040
                                 break;
1041 1041
                             case 2://待完成的(待接单)
1042
-                                string strsql = GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode, ua.F_Flag);
1042
+                                string strsql = GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode);
1043 1043
                                 if (strsql != "")
1044 1044
                                 {
1045
-                                    if (ua.F_Flag == 1)
1046
-                                    {
1047
-                                        sql += $" and F_State in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  ";
1048
-                                    }
1049
-                                    else if (ua.F_Flag == 2)
1050
-                                    {
1051
-                                        sql += $" and F_State2 in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ") ";
1052
-                                    }
1045
+                                    sql += $" and (F_State in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ") ";                 
1046
+                                    sql += $" or F_State2 in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")) ";
1053 1047
                                     sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql + ")";
1054 1048
                                 }
1055 1049
                                 else
@@ -1073,34 +1067,21 @@ namespace CallCenterApi.Interface.Controllers.weixin
1073 1067
                                 }
1074 1068
                                 break;
1075 1069
                             case 4://待完成的(待处理)
1076
-                                string dealstr = GetDWCWorkOrderID(ua.F_UserCode, ua.F_DeptId, ua.F_Flag);
1070
+                                string dealstr = GetDWCWorkOrderID(ua.F_UserCode, ua.F_DeptId);
1077 1071
                                 if (!string.IsNullOrEmpty(dealstr))
1078
-                                {
1079
-                                    if (ua.F_Flag == 1)
1080
-                                    {
1081
-                                        sql += " and (F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ")";
1082
-                                    }
1083
-                                    else if (ua.F_Flag == 2)
1084
-                                    {
1085
-                                        sql += " and (F_State2 in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ")";
1086
-                                    }
1072
+                                {                                 
1073
+                                    sql += " and (F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ")";
1074
+                              
1075
+                                    sql += " or F_State2 in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + "))";                               
1087 1076
                                     sql += "  and T_Wo_WorkOrder.F_ID in ( " + dealstr + ") ";
1088 1077
                                     if (!string.IsNullOrEmpty(GetRevokeWo(ua.F_UserCode)))
1089 1078
                                     {
1090
-                                      sql += " or ((F_State=" + (int)EnumWorkOrderState.assign + " or F_State2=" + (int)EnumWorkOrderState.assign + ") and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + ")))";
1091
-                                        //if (ua.F_Flag == 1)
1092
-                                        //{
1093
-                                        //    sql += " or (F_State=" + (int)EnumWorkOrderState.assign + " and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + ")))";
1094
-                                        //}
1095
-                                        //else if (ua.F_Flag == 2)
1096
-                                        //{
1097
-                                        //    sql += " or (F_State2=" + (int)EnumWorkOrderState.assign + " and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + ")))";
1098
-                                        //}
1099
-                                    }
1100
-                                    else
1101
-                                    {
1102
-                                        sql += $")";
1079
+                                      sql += " or ((F_State=" + (int)EnumWorkOrderState.assign + " or F_State2=" + (int)EnumWorkOrderState.assign + ") and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + "))";                
1103 1080
                                     }
1081
+                                    //else
1082
+                                    //{
1083
+                                    //    sql += $")";
1084
+                                    //}
1104 1085
                                 }
1105 1086
                                 else
1106 1087
                                 {
@@ -1110,14 +1091,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
1110 1091
                             case 10://已完成的
1111 1092
                                 if (GetDeptUserCode(ua.F_DeptId) != "")
1112 1093
                                 {
1113
-                                    if (ua.F_Flag == 1)
1114
-                                    {
1115
-                                        sql += " and F_State in(10,11)";
1116
-                                    }
1117
-                                    else if (ua.F_Flag == 2)
1118
-                                    {
1119
-                                        sql += " and F_State2 in(10,11)";
1120
-                                    }
1094
+                                    sql += " and (F_State in(10,11) or  F_State2 in(10,11))";
1121 1095
                                     sql += "  and F_DealBy in(" + GetDeptUserCode(ua.F_DeptId) + ") ";
1122 1096
                                 }
1123 1097
                                 //  sql += " and F_State in(10,11) and F_DealBy = '" + ua.F_UserCode + "' ";
@@ -1142,7 +1116,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
1142 1116
                                 {
1143 1117
                                     return Success("无操作权限"); ;
1144 1118
                                 }
1145
-                                sql += $" and F_State=" + (int)EnumWorkOrderState.finish + " and F_State2=" + (int)EnumWorkOrderState.finish + " and F_IsVisit = '" + "1" + "' " + uwhere; ;
1119
+                                sql += $" and ((F_State=" + (int)EnumWorkOrderState.finish + " and F_State2!=" + (int)EnumWorkOrderState.evaluate + ") or (F_State!=" + (int)EnumWorkOrderState.evaluate + " and F_State2=" + (int)EnumWorkOrderState.finish + "))  and F_IsVisit = '" + "1" + "' " + uwhere; ;
1146 1120
                                 break;
1147 1121
                             case 7://已回访
1148 1122
                                 if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX")
@@ -1217,21 +1191,15 @@ namespace CallCenterApi.Interface.Controllers.weixin
1217 1191
                                 {
1218 1192
                                     return Success("无操作权限"); ;
1219 1193
                                 }
1220
-                                sql += $" and F_State=" + (int)EnumWorkOrderState.finish + " and F_State2=" + (int)EnumWorkOrderState.finish + " and ( F_IsVisit = '" + "0" + "' or  F_Type = 3)"; ;
1194
+                                sql += $" and (F_State=" + (int)EnumWorkOrderState.finish + " or F_State2=" + (int)EnumWorkOrderState.finish + ") and ( F_IsVisit = '" + "0" + "' or  F_Type = 3)"; ;
1221 1195
                                 break;
1222 1196
                             case 9://待接单
1223 1197
 
1224
-                                string strsql2 = GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode, ua.F_Flag);
1198
+                                string strsql2 = GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode);
1225 1199
                                 if (strsql2 != "")
1226 1200
                                 {
1227
-                                    if (ua.F_Flag == 1)
1228
-                                    {
1229
-                                        sql += $" and F_State in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  ";
1230
-                                    }
1231
-                                    else if (ua.F_Flag == 2)
1232
-                                    {
1233
-                                        sql += $" and F_State2 in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ") ";
1234
-                                    }
1201
+                                    sql += $" and (F_State in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  ";
1202
+                                    sql += $" or F_State2 in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")) ";
1235 1203
                                     sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql2 + ")";
1236 1204
                                 }
1237 1205
                                 else
@@ -1802,7 +1770,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
1802 1770
         /// <returns></returns>
1803 1771
         public string GetDWCWorkOrderID(string user, int deptid, int flag = 1)
1804 1772
         {
1805
-            string str = string.Empty;
1773
+             string str = string.Empty;
1806 1774
             string strsql = "";
1807 1775
 
1808 1776
             if (flag == 1)
@@ -1814,9 +1782,9 @@ namespace CallCenterApi.Interface.Controllers.weixin
1814 1782
                 strsql = "and F_Type in(2,3)";
1815 1783
             }
1816 1784
             str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1817
-               + " and (F_WoState in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ") and "
1818
-               + "(F_CreateUser='" + user + "' or F_NextDept='" + deptid + "')) "//办理中和接单状态的操作人,退回下一步操作人,撤回下一步操作人
1819
-               + " and isnull(F_IsUsed,'0')='0' " + strsql + "";
1785
+                + " and "
1786
+                + "F_WoState in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ") and (F_NextUser like '%" + user + "%' or F_NextDept='" + deptid + "') "//办理中和接单状态的操作人,退回下一步操作人,撤回下一步操作人
1787
+                + " and isnull(F_IsUsed,'0')='0'";
1820 1788
             return str;
1821 1789
         }
1822 1790
         public string GetHApproval(string user)
@@ -1849,40 +1817,16 @@ namespace CallCenterApi.Interface.Controllers.weixin
1849 1817
             }
1850 1818
             if (!string.IsNullOrEmpty(deptuser))
1851 1819
             {
1852
-                if (flag == 1)
1853
-                {
1854
-                    // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
1855
-                    str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1856
-                        + " and isnull(F_IsUsed,'0')='0'  and F_Type in(1,3)" + " and "
1857
-                       + " F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + ") and (F_NextUser in('" + deptuser + "') or  F_NextDept =" + deptid + ") "; //办理中和接单状态的操作人
1820
+                str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1821
+                      + " and isnull(F_IsUsed,'0')='0'" + " and "
1822
+                     + " F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + ") and (F_NextUser in('" + deptuser + "') or  F_NextDept =" + deptid + ") ";//办理中和接单状态的操作人
1858 1823
 
1859
-
1860
-                }
1861
-                else if (flag == 2) //内线
1862
-                {
1863
-                    // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
1864
-                    str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1865
-                        + " and isnull(F_IsUsed,'0')='0'  and F_Type in(2,3)" + " and "
1866
-                        + " F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + ") and (F_NextUser in('" + deptuser + "') or F_NextDept =" + deptid + ") ";//办理中和接单状态的操作人
1867
-                                                                                                                                                                                                  
1868
-                }
1869 1824
             }
1870 1825
             else
1871 1826
             {
1872
-                if (flag == 1)
1873
-                {
1874
-                    str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1875
-                       + " and "
1876
-                           + "F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + ") and F_NextDept =" + deptid + " "//办理中和接单状态的操作人
1877
-                            + " and isnull(F_IsUsed,'0')='0' and F_Type in(1,3)";
1878
-                }
1879
-                else if (flag == 2)
1880
-                {
1881
-                    str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1882
-                      + " and "
1883
-                          + "F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + ") and F_NextDept =" + deptid + " "//办理中和接单状态的操作人
1884
-                           + " and isnull(F_IsUsed,'0')='0' and F_Type in(2,3)";
1885
-                }
1827
+                str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1828
+                        + " and F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + ") and F_NextDept =" + deptid + " "//办理中和接单状态的操作人
1829
+                             + " and isnull(F_IsUsed,'0')='0'";
1886 1830
             }
1887 1831
 
1888 1832
             return str;
@@ -1922,14 +1866,14 @@ namespace CallCenterApi.Interface.Controllers.weixin
1922 1866
                         string strsql = GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode, ua.F_Flag);
1923 1867
                         if (strsql != "")
1924 1868
                         {
1925
-                            if (ua.F_Flag == 1)
1926
-                            {
1927
-                                sql += $" and F_State in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  ";
1928
-                            }
1929
-                            else if (ua.F_Flag == 2)
1930
-                            {
1931
-                                sql += $" and F_State2 in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ") ";
1932
-                            }
1869
+                            //if (ua.F_Flag == 1)
1870
+                            //{
1871
+                            sql += $" and (F_State in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  ";
1872
+                            //}
1873
+                            //else if (ua.F_Flag == 2)
1874
+                            //{
1875
+                            sql += $" or F_State2 in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")) ";
1876
+                            //}
1933 1877
                             sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql + ")";
1934 1878
 
1935 1879
                         }
@@ -1943,34 +1887,26 @@ namespace CallCenterApi.Interface.Controllers.weixin
1943 1887
                     case 1://待完成的(待处理)
1944 1888
                         sql = "";
1945 1889
                         sql += $"  F_IsDelete=0";
1946
-                        string dealstr = GetDWCWorkOrderID(ua.F_UserCode, ua.F_DeptId, ua.F_Flag);
1890
+                        string dealstr = GetDWCWorkOrderID(ua.F_UserCode, ua.F_DeptId);
1947 1891
                         if (!string.IsNullOrEmpty(dealstr))
1948 1892
                         {
1949
-                            if (ua.F_Flag == 1)
1950
-                            {
1951
-                                sql += " and (F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ")";
1952
-                            }
1953
-                            else if (ua.F_Flag == 2)
1954
-                            {
1955
-                                sql += " and (F_State2 in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ")";
1956
-                            }
1893
+                            //if (ua.F_Flag == 1)
1894
+                            //{
1895
+                            sql += " and (F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + ")";
1896
+                            //}
1897
+                            //else if (ua.F_Flag == 2)
1898
+                            //{
1899
+                            sql += " or F_State2 in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.revoke + "))";
1900
+                            //}
1957 1901
                             sql += "  and T_Wo_WorkOrder.F_ID in ( " + dealstr + ") ";
1958 1902
                             if (!string.IsNullOrEmpty(GetRevokeWo(ua.F_UserCode)))
1959 1903
                             {
1960
-                                sql += " or ((F_State=" + (int)EnumWorkOrderState.assign + " or F_State2=" + (int)EnumWorkOrderState.assign + ") and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + ")))";
1961
-                                //if (ua.F_Flag == 1)
1962
-                                //{
1963
-                                //    sql += " or (F_State=" + (int)EnumWorkOrderState.assign + " and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + ")))";
1964
-                                //}
1965
-                                //else if (ua.F_Flag == 2)
1966
-                                //{
1967
-                                //    sql += " or (F_State2=" + (int)EnumWorkOrderState.assign + " and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + ")))";
1968
-                                //}
1969
-                            }
1970
-                            else
1971
-                            {
1972
-                                sql += $")";
1904
+                                sql += " or ((F_State=" + (int)EnumWorkOrderState.assign + " or F_State2=" + (int)EnumWorkOrderState.assign + ") and T_Wo_WorkOrder.F_ID in (" + GetRevokeWo(ua.F_UserCode) + "))";
1973 1905
                             }
1906
+                            //else
1907
+                            //{
1908
+                            //    sql += $")";
1909
+                            //}
1974 1910
 
1975 1911
                         }
1976 1912
                         else
@@ -1984,14 +1920,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
1984 1920
                     case 2://已完成的
1985 1921
                         sql = "";
1986 1922
                         sql += $"  F_IsDelete=0";
1987
-                        if (ua.F_Flag == 1)
1988
-                        {
1989
-                            sql += " and F_State in(10,11)";
1990
-                        }
1991
-                        else if (ua.F_Flag == 2)
1992
-                        {
1993
-                            sql += " and F_State2 in(10,11)";
1994
-                        }
1923
+                        sql += " and (F_State in(10,11) or  F_State2 in(10,11))";
1995 1924
                         if (GetDeptUserCode(ua.F_DeptId) != "")
1996 1925
                         {
1997 1926
                             sql += "  and F_DealBy in(" + GetDeptUserCode(ua.F_DeptId) + ") ";
@@ -2898,6 +2827,8 @@ namespace CallCenterApi.Interface.Controllers.weixin
2898 2827
         {
2899 2828
             if (!string.IsNullOrEmpty(OpenId))
2900 2829
             {
2830
+                int woflag = 0;
2831
+                string markdepts = "37,57,74,88,268,295,339";
2901 2832
                 string sqlstr = "";
2902 2833
                 if (id <= 0)
2903 2834
                 {
@@ -2914,7 +2845,19 @@ namespace CallCenterApi.Interface.Controllers.weixin
2914 2845
                     FileUrl = GetFileData(model.F_Files, configfj.F_ParamValue);
2915 2846
                 }
2916 2847
                 var ua = userAccountBLL.GetModelList(" F_WxOpenId='" + OpenId + "'").FirstOrDefault();
2917
-                var itemlasts = itembll.GetModelList("  F_WoID=" + id + " and  F_Type=" + ua.F_Flag + " ");
2848
+                var itemlasts = itembll.GetModelList("  F_WoID=" + id + "");
2849
+                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_IsUsed=0 and F_WoState =1 and  F_WoID='" + id + "'and F_CreateUser='" + ua.F_UserCode + "' order by F_ID desc");
2850
+                if (itemlast != null && itemlast.Count > 0)
2851
+                {
2852
+                    if (markdepts.Contains(ua.F_DeptId.ToString()))
2853
+                    {
2854
+                        var itemnext = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and F_WoState =1 and  F_WoID='" + model.F_ID + "'and F_NextUser like '%" + ua.F_UserCode + "%' order by F_ID desc").FirstOrDefault();
2855
+                        if (itemlast.Count == 2 || itemnext.F_Flag == 9)
2856
+                        {
2857
+                            woflag = 9;
2858
+                        }
2859
+                    }
2860
+                }
2918 2861
                 //var itemlasts = itembll.GetModelList("  F_WoID=" + +id + " ");
2919 2862
                 if (list.Count > 0)
2920 2863
                 {
@@ -2928,6 +2871,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
2928 2871
                             rows = Input,
2929 2872
                             FileUrl,
2930 2873
                             total = itemlasts,
2874
+                            woflag = woflag
2931 2875
                         };
2932 2876
                        
2933 2877
                         return Content(obj.ToJson());
@@ -3022,6 +2966,46 @@ namespace CallCenterApi.Interface.Controllers.weixin
3022 2966
                 return Error("无操作权限!");
3023 2967
             }
3024 2968
         }
2969
+        /// <summary>
2970
+        /// 获取当前节点内外线状态
2971
+        /// </summary>
2972
+        /// <param name="fid"></param>
2973
+        /// <returns></returns>
2974
+        public int? GetNodeState(int fid, string usercode)
2975
+        {
2976
+            int? flag = 0;
2977
+
2978
+            string markdepts = "37,57,74,88,268,295,339";
2979
+            if (!string.IsNullOrEmpty(usercode))
2980
+            {
2981
+                Model.T_Sys_UserAccount ua = userAccountBLL.GetModel(usercode);
2982
+                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and F_OptType=1  and  F_WoID='" + fid + "' and F_NextUser like '%" + ua.F_UserCode + "%' order by F_ID").FirstOrDefault();
2983
+                if (itemlast != null)
2984
+                {
2985
+                    //if (!markdepts.Contains(ua.F_DeptId.ToString()))
2986
+                    //{
2987
+                    if (itemlast.F_Flag != 9)
2988
+                    {
2989
+                        flag = itemlast.F_Type;
2990
+                    }
2991
+                    //}
2992
+                    else if (itemlast.F_Flag == 9)
2993
+                    {
2994
+                        if (itemlast.F_IsUsed == 0)
2995
+                        {
2996
+                            flag = 9;
2997
+                        }
2998
+                        else
2999
+                        {
3000
+                            var itemnext = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and F_OptType=1  and  F_WoID='" + fid + "' and F_NextUser like '%" + ua.F_UserCode + "%' order by F_ID desc").FirstOrDefault();
3001
+                            if (itemnext != null)
3002
+                                flag = itemnext.F_Type;
3003
+                        }
3004
+                    }
3005
+                }
3006
+            }
3007
+            return flag;
3008
+        }
3025 3009
         public string GetID(string str, long id)
3026 3010
         {
3027 3011
             if (str != "")
@@ -3807,6 +3791,8 @@ namespace CallCenterApi.Interface.Controllers.weixin
3807 3791
                     model.F_WorkmanShip = model1[i].F_WorkmanShip;//质量管理科-工艺
3808 3792
                     model.F_Manufacturers = model1[i].F_Manufacturers;//质量管理科-原料及厂家
3809 3793
                     model.F_ProductionNum = model1[i].F_ProductionNum;//质量管理科-该批次生产数量
3794
+                    model.F_Flag = model1[i].F_Flag;//1单线外 2单线内 3双线 9市场科可以双线指派工单 0 未指派工单
3795
+                    model.inout = GetNodeState(model1[i].F_ID,ua.F_UserCode);
3810 3796
                     if (ua != null)
3811 3797
                     {
3812 3798
                         var deptmodel = departmentBLL.GetModel(ua.F_DeptId);
@@ -4894,7 +4880,8 @@ namespace CallCenterApi.Interface.Controllers.weixin
4894 4880
                                 //}
4895 4881
                                 if (nextda != 0)
4896 4882
                                 {
4897
-                                    var res = AssignWO(ua, modlelist, input, opt, "", nextda, 0, overtime, sms,0,0,0,"",1);
4883
+                                    model.F_Flag = 9;
4884
+                                    var res = AssignWO(ua, modlelist, input, opt, "", nextda, 0, overtime, sms,0,0,0,"",1,3,9);
4898 4885
                                     if (res)
4899 4886
                                         return Success("添加成功");
4900 4887
                                     else
@@ -5037,11 +5024,12 @@ namespace CallCenterApi.Interface.Controllers.weixin
5037 5024
                 }
5038 5025
                 if (model .F_State !=0)
5039 5026
                 {
5040
-                    var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + "and F_IsUsed=0 order by   F_ID desc ").FirstOrDefault();
5041
-                    if (modellist != null)
5027
+                    //string strsql = " and F_Type in(3,"+ua.F_Flag+")";
5028
+                    var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList($"F_WoID={model.F_ID} and (F_CreateUser={ua.F_UserCode} or F_NextUser like '%{ua.F_UserCode}%') and F_IsUsed=0 order by   F_ID desc ").FirstOrDefault();
5029
+                    if (modellist == null)
5042 5030
                     {
5043
-                        if (modellist.F_NextUser != ua.F_UserCode)
5044
-                            return Error("非接单人不可操作工单");
5031
+                        //if (modellist.F_NextUser != ua.F_UserCode)
5032
+                        return Error("非接单人不可操作工单");
5045 5033
                     }
5046 5034
                 }
5047 5035
                if (sms ==-1)
@@ -5078,7 +5066,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
5078 5066
                     {
5079 5067
                         return Error("请选择接收部门");
5080 5068
                     }
5081
-                    if (markdepts.Contains(ua.F_DeptId.ToString()))
5069
+                    if (markdepts.Contains(ua.F_DeptId.ToString()) && model.F_Flag == 9)
5082 5070
                     {
5083 5071
                         if (markdepts.Contains(ua.F_DeptId.ToString()))
5084 5072
                         {
@@ -5094,12 +5082,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
5094 5082
                                 input.F_SC_CJ_ApprovalNo = deptment.ApprovalNo;//市场管理科-抽检-对应审批工作流单号
5095 5083
                                 input.F_SC_CJ_ReturnAccount = deptment.ReturnAccount;//市场管理科-抽检-确认返账金额
5096 5084
                             }
5097
-                        }
5098
-                        if ((clbm == 0 && clid == 0) || (clbm2 == 0 && clid2 == 0))
5099
-                        {
5100
-                            return Error("请选择接收部门");
5101
-                        }
5102
-
5085
+                        }      
5103 5086
                         model.F_Flag = flag;
5104 5087
                         if (flag == 3)
5105 5088
                         {
@@ -5286,7 +5269,8 @@ namespace CallCenterApi.Interface.Controllers.weixin
5286 5269
                                 return Error("请选择接收部门");
5287 5270
                             }
5288 5271
                         }
5289
-                        var res = AssignWO(ua, model, input, cont, F_Files, clbm, clid, overtime, sms, isApprovalp, hclbm, hclid, "", 0, ua.F_Flag);
5272
+                        var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList($"F_WoID={model.F_ID} and (F_CreateUser={ua.F_UserCode} or F_NextUser like '%{ua.F_UserCode}%') and F_IsUsed=0 order by   F_ID desc ").FirstOrDefault();
5273
+                        var res = AssignWO(ua, model, input, cont, F_Files, clbm, clid, overtime, sms, isApprovalp, hclbm, hclid, "", 0, Convert.ToInt32(modellist.F_Type));
5290 5274
                         if (res)
5291 5275
                         {
5292 5276
                             return Success("转派成功");
@@ -5452,7 +5436,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
5452 5436
             if (!string.IsNullOrEmpty(cont))
5453 5437
                 optcont = ",说明:" + cont;
5454 5438
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "工单给 " + tousername + optcont;
5455
-            var itemid = AddLog(model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, clbm, nowUser, overtime, sms, creat,0,flag);
5439
+            var itemid = AddLog(model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, clbm, nowUser, overtime, sms, creat,0,flag,flagstate);
5456 5440
             if (itemid > 0)
5457 5441
             {
5458 5442
                 #region 处理工单
@@ -5825,41 +5809,27 @@ namespace CallCenterApi.Interface.Controllers.weixin
5825 5809
                     Model.T_Wo_WorkOrder model = woBLL.GetModel(orderid);
5826 5810
                     if (model != null)
5827 5811
                     {
5828
-                        string strsql = "";
5829
-                        if (ua.F_Flag == 1)
5830
-                        {
5831
-                            strsql = " and F_Type in(1,3)";
5832
-                        }
5833
-                        else if (ua.F_Flag == 2)
5834
-                        {
5835
-                            strsql = " and F_Type in(2,3)";
5836
-                        }
5812
+                        //string strsql = "";
5813
+                        //if (ua.F_Flag == 1)
5814
+                        //{
5815
+                        //    strsql = " and F_Type in(1,3)";
5816
+                        //}
5817
+                        //else if (ua.F_Flag == 2)
5818
+                        //{
5819
+                        //    strsql = " and F_Type in(2,3)";
5820
+                        //}
5837 5821
 
5838
-                        var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + "and F_IsUsed=0 " + strsql + "  order by  F_ID desc ").FirstOrDefault();
5839
-                        if (modellist != null)
5822
+                        var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + " and F_WoState=1 and F_IsUsed=0 and F_NextUser like '%" + ua.F_UserCode + "%' order by  F_ID desc ").FirstOrDefault();
5823
+                        if (modellist == null)
5840 5824
                         {
5841
-                            if (!string.IsNullOrEmpty(modellist.F_NextUser))
5842
-                            {
5843
-                                string[] sprt = modellist.F_NextUser.Split(',');
5844
-                                if (sprt.Length == 1)
5845
-                                {
5846
-                                    if (modellist.F_NextUser != ua.F_UserCode)
5847
-                                        return Error("非接单人不可操作工单");
5848
-                                }
5849
-                            }
5825
+                            return Error("非接单人不可操作工单");
5850 5826
 
5851 5827
                         }
5852
-                        if (ua.F_Flag == 1)
5853
-                        {
5854
-                            if (model.F_State == 2)
5855
-                                return Error("工单已接单无需重新接单");
5856
-                        }
5857
-                        else if (ua.F_Flag == 2)
5858
-                        {
5859
-                            if (model.F_State2 == 2)
5860
-                                return Error("工单已接单无需重新接单");
5861
-                        }
5862
-                        var res = SureWO(ua, model, ua.F_Flag);
5828
+                        var modellast = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + " and F_IsUsed=1 and F_WoState=1 and F_NextUser like '%" + ua.F_UserCode + "%'  order by  F_ID desc ").FirstOrDefault();
5829
+                        if (modellast != null && modellast.F_ID > modellist.F_ID)
5830
+                            return Error("工单已接单无需重新接单");
5831
+                        int? zflag = modellist.F_Type;
5832
+                        var res = SureWO(ua, model, Convert.ToInt32(zflag));
5863 5833
                         if (res)
5864 5834
                             return Success("接单成功");
5865 5835
                         else
@@ -5968,6 +5938,11 @@ namespace CallCenterApi.Interface.Controllers.weixin
5968 5938
                 {
5969 5939
                     model.F_State2 = wostate;//已接单待处理
5970 5940
                 }
5941
+                else
5942
+                {
5943
+                    model.F_State = wostate;//已接单待处理
5944
+                    model.F_State2 = wostate;//已接单待处理
5945
+                }
5971 5946
                 model.F_DealBy = nowUser.F_UserCode;//已接单待处理
5972 5947
                 woBLL.Update(model);
5973 5948
                 #endregion
@@ -6009,6 +5984,8 @@ namespace CallCenterApi.Interface.Controllers.weixin
6009 5984
          string uncont = "",
6010 5985
         int isvisit = 1, int isover = 0)
6011 5986
         {
5987
+            string markdepts = "37,57,74,88,268,422,339";
5988
+            string qualdepts = "12,36,295,245";
6012 5989
             if (!string.IsNullOrEmpty(OpenId))
6013 5990
             {
6014 5991
                 if (string.IsNullOrEmpty(cont))
@@ -6018,7 +5995,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
6018 5995
                 if (ua != null)
6019 5996
                 {
6020 5997
 
6021
-                    if (isover == 1 && ua.F_DeptId != 36 && ua.F_DeptId != 37)
5998
+                    if (!markdepts.Contains(ua.F_DeptId.ToString()) && !qualdepts.Contains(ua.F_DeptId.ToString()))
6022 5999
                         return Error("权限不足");
6023 6000
                     Model.T_Wo_WorkOrder model = woBLL.GetModel(orderid);
6024 6001
                     var deptmodel = departmentBLL.GetModel(ua.F_DeptId);
@@ -6026,77 +6003,43 @@ namespace CallCenterApi.Interface.Controllers.weixin
6026 6003
                     {
6027 6004
                         if (model != null)
6028 6005
                         {
6029
-                            string markdepts = "37,57,74,88,268,422,339";
6030
-                            string qualdepts = "12,36,295,245";
6031
-                            string strsql = "";
6032
-                            if (ua.F_Flag == 1)
6033
-                            {
6034
-                                strsql = " and F_Type in(1,3)";
6035
-                            }
6036
-                            else if (ua.F_Flag == 2)
6037
-                            {
6038
-                                strsql = " and F_Type in(2,3)";
6039
-                            }
6040
-                            var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + "and F_IsUsed=0 " + strsql + "  order by  F_ID desc ").FirstOrDefault();
6041
-                            if (modellist != null)
6006
+
6007
+                            //string strsql = "";
6008
+                            //if (ua.F_Flag == 1)
6009
+                            //{
6010
+                            //    strsql = " and F_Type in(1,3)";
6011
+                            //}
6012
+                            //else if (ua.F_Flag == 2)
6013
+                            //{
6014
+                            //    strsql = " and F_Type in(2,3)";
6015
+                            //}
6016
+                            var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + " and F_IsUsed=0 and F_NextUser like '%" + ua.F_UserCode + "%' order by  F_ID desc ").FirstOrDefault();
6017
+                            if (modellist == null)
6042 6018
                             {
6043
-                                if (modellist.F_NextUser != ua.F_UserCode)
6044
-                                    return Error("非接单人不可操作工单");
6019
+                                //if (modellist.F_NextUser != ua.F_UserCode)
6020
+                                return Error("非接单人不可操作工单");
6045 6021
                             }
6046 6022
                             if (markdepts.Contains(ua.F_DeptId.ToString()) || qualdepts.Contains(ua.F_DeptId.ToString()))
6047 6023
                             {
6048 6024
                                 input.F_ZL_ResponsibleUnit = deptment.ResponsibleUnit;// 责任单位
6049 6025
                                 //input.F_EventReason = deptment.EventReason;// 事件原因
6050 6026
                                 input.F_ZL_ImprovementRequirements = deptment.ImprovementRequirements;// 改进要求
6027
+                                input.F_IsVisit = isvisit.ToString();
6051 6028
 
6052 6029
                             }
6053
-                            #region nouser
6054
-                            //if (model.F_Type == "2" || model.F_Type == "5")
6055
-                            //{
6056
-                            //    if (deptmodel.F_DeptId == 37)
6057
-                            //    {
6058
-                            //        input.F_SC_ProductBase = deptment.ProductBase;//
6059
-
6060
-                            //    }
6061
-                            //    else if (deptmodel.F_DeptId == 12)
6062
-                            //    {
6063
-                            //        input.F_IsVisit = isvisit.ToString();
6064
-                            //        input.F_ZL_QualityEventLevel = deptment.QualityEventLevel;//质量管理科-质量事件等级(未遂、一般、较大、重大)
6065
-                            //        input.F_ZL_ClaimAmount = deptment.ClaimAmount;// 质量管理科-索赔金额(单位元,对应责任单位)
6066
-                            //        input.F_ZL_ResponsibleUnit = deptment.ResponsibleUnit;// 质量管理科-责任单位(需列出,可选多个)
6067
-                            //        input.F_ZL_ApprovalOpinions = deptment.ApprovalOpinions;// 质量管理科-审批意见(同意、不同意,若选择不同意,增加输入框输入补充内容)
6068
-                            //        input.F_ZL_ApprovalDisagree = deptment.ApprovalDisagree;// 质量管理科-审批不同意意见
6069
-                            //        input.F_ZL_CompensationMethod = deptment.CompensationMethod;// 质量管理科-补偿方式(实物、钱款【单位元】,若选择钱款,增加输入框输入补充内容)
6070
-                            //        input.F_ZL_CompensationMoney = deptment.CompensationMoney;// 质量管理科-补偿钱款
6071
-                            //        input.F_ZL_CResponsibleUnits = deptment.CResponsibleUnits;//质量管理科-对应责任单位(生产、研发、农化、物流、质量管理科,销售内勤)
6072
-                            //        input.F_ZL_Fquantity = deptment.Fquantity;//质量管理科-确认实收数量(吨)
6073
-                            //        input.F_ZL_ImprovementRequirements = deptment.ImprovementRequirements;//  质量管理科-改进要求
6074
-                            //        input.F_ZL_CApprovalNo = deptment.CApprovalNo;// 质量管理科-对应审批工作流单号
6075
-                            //    }
6076
-
6077
-                            //}
6078
-                            //else if (model.F_Type == "3")
6079
-                            //{
6080
-                            //    if (deptmodel.F_DeptId == 37)
6081
-                            //    {
6082
-                            //        input.F_SC_ProductBase = deptment.ProductBase;//
6083
-                            //    }
6084
-                            //    else if (deptmodel.F_DeptId == 12)
6085
-                            //    {
6086
-                            //        input.F_IsVisit = isvisit.ToString();
6087
-                            //        input.F_ZL_CJ_IsRecord = deptment.IsRecord;//质量管理科-抽检-未备案、已备案
6088
-                            //    }
6089
-                            //}
6090
-                            //if (deptmodel.F_DeptId == 25)
6091
-                            //{
6030
+                            
6031
+                            var modellast = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + "and F_IsUsed=0   order by  F_ID desc ").FirstOrDefault();
6032
+                            if (model.F_State == 10 && model.F_State2 == 10)
6033
+                                return Error("工单已处理请勿重复操作!");
6034
+                            else
6035
+                            {
6036
+                                var res = DealWO(ua, model, F_Files, input, cont, isover, uncont, Convert.ToInt32(modellist.F_Type), deptment.EventReason);
6037
+                                if (res)
6038
+                                    return Success("处理成功");
6039
+                                else
6040
+                                    return Error("处理失败!");
6041
+                            }
6092 6042
 
6093
-                            //    input.F_SC_CJ_ReturnAccount = deptment.ReturnAccount;//销售内勤-确认返账金额
6094
-                            //}
6095
-                            //else if (deptmodel.F_DeptId == 36)
6096
-                            //{
6097
-                            //    input.F_ZL_Fquantity = deptment.Fquantity;//质量管理科-确认实收数量(吨)
6098
-                            //}
6099
-                            #endregion
6100 6043
                         }
6101 6044
                         else
6102 6045
                             return Error("工单不存在!");
@@ -6105,22 +6048,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
6105 6048
                     {
6106 6049
                         return Error("请选择接收部门");
6107 6050
                     }
6108
-                    if (model != null)
6109
-                    {
6110
-                        if (model.F_State == 10 && model.F_State2 == 10)
6111
-                            return Error("工单已处理请勿重复操作!");
6112
-                        else
6113
-                        {
6114
-                            var res = DealWO(ua, model, F_Files, input, cont, isover, uncont, ua.F_Flag, deptment.EventReason);
6115
-                            if (res)
6116
-                                return Success("处理成功");
6117
-                            else
6118
-                                return Error("处理失败!");
6119
-                        }
6120
-                       
6121
-                    }
6122
-                    else
6123
-                        return Error("工单不存在!");
6051
+       
6124 6052
                 }
6125 6053
             }
6126 6054
             return Error("无操作权限!");
@@ -6231,29 +6159,22 @@ namespace CallCenterApi.Interface.Controllers.weixin
6231 6159
                     //验证信息
6232 6160
                     if (model != null)
6233 6161
                     {
6234
-                        string strsql = "";
6235
-                        if (ua.F_Flag == 1)
6236
-                        {
6237
-                            strsql = $" and F_Type in(1,3)";
6238
-                        }
6239
-                        else if (ua.F_Flag == 2)
6240
-                        {
6241
-                            strsql = $" and F_Type in(2,3)";
6242
-                        }
6243
-                        var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList($"F_WoID={model.F_ID} and F_IsUsed=0 {strsql} order by   F_ID desc ").FirstOrDefault();
6244
-                        if (modellist != null)
6162
+                        //string strsql = "";
6163
+                        //if (ua.F_Flag == 1)
6164
+                        //{
6165
+                        //    strsql = $" and F_Type in(1,3)";
6166
+                        //}
6167
+                        //else if (ua.F_Flag == 2)
6168
+                        //{
6169
+                        //    strsql = $" and F_Type in(2,3)";
6170
+                        //}
6171
+                        var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList($"F_WoID={model.F_ID} and F_IsUsed=0 and (F_CreateUser={ua.F_UserCode} or F_NextUser like '%{ua.F_UserCode}%')  order by   F_ID desc ").FirstOrDefault();
6172
+
6173
+                        if (modellist == null)
6245 6174
                         {
6246
-                            if (modellist != null)
6247
-                            {
6248
-                                string[] sprt = modellist.F_NextUser.Split(',');
6249
-                                if (sprt.Length == 1)
6250
-                                {
6251
-                                    if (modellist.F_NextUser != ua.F_UserCode)
6252
-                                        return Error("非接单人不可操作工单");
6253
-                                }
6254
-                            }
6175
+                            return Error("非接单人不可操作工单");
6255 6176
                         }
6256
-                        var res = BackWO(ua, model, cont, type, ua.F_Flag);
6177
+                        var res = BackWO(ua, model, cont, type, (Convert.ToInt32(modellist.F_Type)));
6257 6178
                         if (res)
6258 6179
                             return Success("退回成功");
6259 6180
                         else
@@ -6273,7 +6194,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
6273 6194
         /// <param name="cont"></param>
6274 6195
         /// <returns></returns>
6275 6196
         [WechatActionFilter]
6276
-        public ActionResult RevokeWo(string OpenId,long orderid, string cont)
6197
+        public ActionResult RevokeWo(string OpenId, long orderid, string cont)
6277 6198
         {
6278 6199
 
6279 6200
             if (!string.IsNullOrEmpty(OpenId))
@@ -6288,33 +6209,33 @@ namespace CallCenterApi.Interface.Controllers.weixin
6288 6209
                     {
6289 6210
                         int flag = 0;
6290 6211
                         Model.T_Sys_RoleInfo ro = rolebll.GetModel(ua.F_RoleId);
6291
-                        var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList("F_WoID=" + model.F_ID + "and F_IsUsed=0 order by   F_ID desc ").FirstOrDefault();
6212
+                        var modellist = new BLL.T_Wo_WorkOrderItem_New().GetModelList($"F_WoID={model.F_ID} and F_OptType =1 and F_IsUsed=0 and F_CreateUser={ua.F_UserCode} order by   F_ID desc ").FirstOrDefault();
6292 6213
 
6293 6214
                         if (modellist != null)
6294 6215
                         {
6295
-                            string createuser = modellist.F_CreateUser;
6296
-                            if (!string.IsNullOrEmpty(createuser))
6216
+                            //string createuser = modellist.F_CreateUser;
6217
+                            //if (!string.IsNullOrEmpty(createuser))
6218
+                            //{
6219
+                            //    if (createuser != ua.F_UserCode)
6220
+                            //        return Error("无操作权限");
6221
+                            //}
6222
+                            //if (modellist.F_WoState == (int)EnumWorkOrderState.assign)
6223
+                            //{
6224
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
6297 6225
                             {
6298
-                                if (createuser != ua.F_UserCode)
6299
-                                    return Error("无操作权限");
6226
+                                flag = 3;
6300 6227
                             }
6301
-                            if (modellist.F_WoState == (int)EnumWorkOrderState.assign)
6228
+                            else
6302 6229
                             {
6303
-                                if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
6304
-                                {
6305
-                                    flag = 3;
6306
-                                }
6307
-                                else
6308
-                                {
6309
-                                    flag = ua.F_Flag;
6310
-                                }
6311
-                                var res = RevWO(ua, model, cont,flag);
6312
-                                if (res)
6313
-                                    return Success("撤回成功");
6314
-                                else return Error("撤回失败!");
6230
+                                flag = Convert.ToInt32(modellist.F_Type);
6315 6231
                             }
6316
-                            else
6317
-                                return Error("撤回失败!");
6232
+                            var res = RevWO(ua, model, cont, flag);
6233
+                            if (res)
6234
+                                return Success("撤回成功");
6235
+                            else return Error("撤回失败!");
6236
+                            //}
6237
+                            //else
6238
+                            //    return Error("撤回失败!");
6318 6239
                         }
6319 6240
                         return Error("操作失败!");
6320 6241
                     }
@@ -7134,16 +7055,25 @@ namespace CallCenterApi.Interface.Controllers.weixin
7134 7055
         {
7135 7056
             Model.T_Wo_WorkOrderItem_New itemModel = new Model.T_Wo_WorkOrderItem_New();
7136 7057
             #region 
7137
-            string strsql = "";
7138
-            Model.T_Sys_RoleInfo ro = rolebll.GetModel(nowUser.F_RoleId);
7139
-            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY" && flag != 3)
7058
+            string strsql = "";         
7059
+            if (nowUser != null)
7140 7060
             {
7141
-                strsql = $" F_OptType !=1 and isnull(F_IsUsed,'0')='0' and F_ItemType={itemtype} and  F_WoID={woid} and  F_CreateUser={nowUser.F_UserCode} and F_Type in({flag},3) ";
7061
+                string flagstr = "";
7062
+                if (flag != 3)
7063
+                    flagstr = $" and F_Type in({ flag},3)";
7064
+                Model.T_Sys_RoleInfo ro = rolebll.GetModel(nowUser.F_RoleId);
7065
+                if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY" && flag != 3)
7066
+                {
7067
+                    strsql = $" F_OptType !=1 and isnull(F_IsUsed,'0')='0' and F_ItemType={itemtype} and  F_WoID={woid} and  F_CreateUser={nowUser.F_UserCode}{flagstr}";
7068
+                }
7069
+                else
7070
+                {
7071
+                    strsql = $" isnull(F_IsUsed,'0')='0' and F_ItemType={itemtype} and  F_WoID={woid} and  (F_CreateUser={nowUser.F_UserCode} or F_NextUser like '%{nowUser.F_UserCode}%'){flagstr}";
7072
+                }
7142 7073
             }
7143 7074
             else
7144 7075
             {
7145
-                strsql = $" isnull(F_IsUsed,'0')='0' and F_ItemType={itemtype} and  F_WoID={woid} and  (F_CreateUser={nowUser.F_UserCode} or F_NextUser like '%{nowUser.F_UserCode}%')"
7146
-                       + $" and F_Type in({flag},3)";
7076
+                strsql = $" isnull(F_IsUsed,'0')='0' and F_ItemType={itemtype} and  F_WoID={woid}";
7147 7077
             }
7148 7078
             //处理当前工单的记录之前的记录过期
7149 7079
             //var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_ItemType=" + itemtype + " and  F_WoID=" + woid + " ");
@@ -7164,6 +7094,8 @@ namespace CallCenterApi.Interface.Controllers.weixin
7164 7094
             }
7165 7095
 
7166 7096
             #endregion
7097
+
7098
+
7167 7099
             itemModel.F_WoID = woid;
7168 7100
             itemModel.F_IsSMS = sms;
7169 7101
             itemModel.F_WoState = wostate;