zhupei лет назад: 3
Родитель
Сommit
83d2f97c73

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

1039
                                 }
1039
                                 }
1040
                                 break;
1040
                                 break;
1041
                             case 2://待完成的(待接单)
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
                                 if (strsql != "")
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
                                     sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql + ")";
1047
                                     sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql + ")";
1054
                                 }
1048
                                 }
1055
                                 else
1049
                                 else
1073
                                 }
1067
                                 }
1074
                                 break;
1068
                                 break;
1075
                             case 4://待完成的(待处理)
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
                                 if (!string.IsNullOrEmpty(dealstr))
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
                                     sql += "  and T_Wo_WorkOrder.F_ID in ( " + dealstr + ") ";
1076
                                     sql += "  and T_Wo_WorkOrder.F_ID in ( " + dealstr + ") ";
1088
                                     if (!string.IsNullOrEmpty(GetRevokeWo(ua.F_UserCode)))
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
                                 else
1086
                                 else
1106
                                 {
1087
                                 {
1110
                             case 10://已完成的
1091
                             case 10://已完成的
1111
                                 if (GetDeptUserCode(ua.F_DeptId) != "")
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
                                     sql += "  and F_DealBy in(" + GetDeptUserCode(ua.F_DeptId) + ") ";
1095
                                     sql += "  and F_DealBy in(" + GetDeptUserCode(ua.F_DeptId) + ") ";
1122
                                 }
1096
                                 }
1123
                                 //  sql += " and F_State in(10,11) and F_DealBy = '" + ua.F_UserCode + "' ";
1097
                                 //  sql += " and F_State in(10,11) and F_DealBy = '" + ua.F_UserCode + "' ";
1142
                                 {
1116
                                 {
1143
                                     return Success("无操作权限"); ;
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
                                 break;
1120
                                 break;
1147
                             case 7://已回访
1121
                             case 7://已回访
1148
                                 if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX")
1122
                                 if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX")
1217
                                 {
1191
                                 {
1218
                                     return Success("无操作权限"); ;
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
                                 break;
1195
                                 break;
1222
                             case 9://待接单
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
                                 if (strsql2 != "")
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
                                     sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql2 + ")";
1203
                                     sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql2 + ")";
1236
                                 }
1204
                                 }
1237
                                 else
1205
                                 else
1802
         /// <returns></returns>
1770
         /// <returns></returns>
1803
         public string GetDWCWorkOrderID(string user, int deptid, int flag = 1)
1771
         public string GetDWCWorkOrderID(string user, int deptid, int flag = 1)
1804
         {
1772
         {
1805
-            string str = string.Empty;
1773
+             string str = string.Empty;
1806
             string strsql = "";
1774
             string strsql = "";
1807
 
1775
 
1808
             if (flag == 1)
1776
             if (flag == 1)
1814
                 strsql = "and F_Type in(2,3)";
1782
                 strsql = "and F_Type in(2,3)";
1815
             }
1783
             }
1816
             str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
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
             return str;
1788
             return str;
1821
         }
1789
         }
1822
         public string GetHApproval(string user)
1790
         public string GetHApproval(string user)
1849
             }
1817
             }
1850
             if (!string.IsNullOrEmpty(deptuser))
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
             else
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
             return str;
1832
             return str;
1922
                         string strsql = GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode, ua.F_Flag);
1866
                         string strsql = GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode, ua.F_Flag);
1923
                         if (strsql != "")
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
                             sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql + ")";
1877
                             sql += " and T_Wo_WorkOrder.F_ID in ( " + strsql + ")";
1934
 
1878
 
1935
                         }
1879
                         }
1943
                     case 1://待完成的(待处理)
1887
                     case 1://待完成的(待处理)
1944
                         sql = "";
1888
                         sql = "";
1945
                         sql += $"  F_IsDelete=0";
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
                         if (!string.IsNullOrEmpty(dealstr))
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
                             sql += "  and T_Wo_WorkOrder.F_ID in ( " + dealstr + ") ";
1901
                             sql += "  and T_Wo_WorkOrder.F_ID in ( " + dealstr + ") ";
1958
                             if (!string.IsNullOrEmpty(GetRevokeWo(ua.F_UserCode)))
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
                         else
1912
                         else
1984
                     case 2://已完成的
1920
                     case 2://已完成的
1985
                         sql = "";
1921
                         sql = "";
1986
                         sql += $"  F_IsDelete=0";
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
                         if (GetDeptUserCode(ua.F_DeptId) != "")
1924
                         if (GetDeptUserCode(ua.F_DeptId) != "")
1996
                         {
1925
                         {
1997
                             sql += "  and F_DealBy in(" + GetDeptUserCode(ua.F_DeptId) + ") ";
1926
                             sql += "  and F_DealBy in(" + GetDeptUserCode(ua.F_DeptId) + ") ";
2898
         {
2827
         {
2899
             if (!string.IsNullOrEmpty(OpenId))
2828
             if (!string.IsNullOrEmpty(OpenId))
2900
             {
2829
             {
2830
+                int woflag = 0;
2831
+                string markdepts = "37,57,74,88,268,295,339";
2901
                 string sqlstr = "";
2832
                 string sqlstr = "";
2902
                 if (id <= 0)
2833
                 if (id <= 0)
2903
                 {
2834
                 {
2914
                     FileUrl = GetFileData(model.F_Files, configfj.F_ParamValue);
2845
                     FileUrl = GetFileData(model.F_Files, configfj.F_ParamValue);
2915
                 }
2846
                 }
2916
                 var ua = userAccountBLL.GetModelList(" F_WxOpenId='" + OpenId + "'").FirstOrDefault();
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
                 //var itemlasts = itembll.GetModelList("  F_WoID=" + +id + " ");
2861
                 //var itemlasts = itembll.GetModelList("  F_WoID=" + +id + " ");
2919
                 if (list.Count > 0)
2862
                 if (list.Count > 0)
2920
                 {
2863
                 {
2928
                             rows = Input,
2871
                             rows = Input,
2929
                             FileUrl,
2872
                             FileUrl,
2930
                             total = itemlasts,
2873
                             total = itemlasts,
2874
+                            woflag = woflag
2931
                         };
2875
                         };
2932
                        
2876
                        
2933
                         return Content(obj.ToJson());
2877
                         return Content(obj.ToJson());
3022
                 return Error("无操作权限!");
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
         public string GetID(string str, long id)
3009
         public string GetID(string str, long id)
3026
         {
3010
         {
3027
             if (str != "")
3011
             if (str != "")
3807
                     model.F_WorkmanShip = model1[i].F_WorkmanShip;//质量管理科-工艺
3791
                     model.F_WorkmanShip = model1[i].F_WorkmanShip;//质量管理科-工艺
3808
                     model.F_Manufacturers = model1[i].F_Manufacturers;//质量管理科-原料及厂家
3792
                     model.F_Manufacturers = model1[i].F_Manufacturers;//质量管理科-原料及厂家
3809
                     model.F_ProductionNum = model1[i].F_ProductionNum;//质量管理科-该批次生产数量
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
                     if (ua != null)
3796
                     if (ua != null)
3811
                     {
3797
                     {
3812
                         var deptmodel = departmentBLL.GetModel(ua.F_DeptId);
3798
                         var deptmodel = departmentBLL.GetModel(ua.F_DeptId);
4894
                                 //}
4880
                                 //}
4895
                                 if (nextda != 0)
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
                                     if (res)
4885
                                     if (res)
4899
                                         return Success("添加成功");
4886
                                         return Success("添加成功");
4900
                                     else
4887
                                     else
5037
                 }
5024
                 }
5038
                 if (model .F_State !=0)
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
                if (sms ==-1)
5035
                if (sms ==-1)
5078
                     {
5066
                     {
5079
                         return Error("请选择接收部门");
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
                         if (markdepts.Contains(ua.F_DeptId.ToString()))
5071
                         if (markdepts.Contains(ua.F_DeptId.ToString()))
5084
                         {
5072
                         {
5094
                                 input.F_SC_CJ_ApprovalNo = deptment.ApprovalNo;//市场管理科-抽检-对应审批工作流单号
5082
                                 input.F_SC_CJ_ApprovalNo = deptment.ApprovalNo;//市场管理科-抽检-对应审批工作流单号
5095
                                 input.F_SC_CJ_ReturnAccount = deptment.ReturnAccount;//市场管理科-抽检-确认返账金额
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
                         model.F_Flag = flag;
5086
                         model.F_Flag = flag;
5104
                         if (flag == 3)
5087
                         if (flag == 3)
5105
                         {
5088
                         {
5286
                                 return Error("请选择接收部门");
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
                         if (res)
5274
                         if (res)
5291
                         {
5275
                         {
5292
                             return Success("转派成功");
5276
                             return Success("转派成功");
5452
             if (!string.IsNullOrEmpty(cont))
5436
             if (!string.IsNullOrEmpty(cont))
5453
                 optcont = ",说明:" + cont;
5437
                 optcont = ",说明:" + cont;
5454
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "工单给 " + tousername + optcont;
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
             if (itemid > 0)
5440
             if (itemid > 0)
5457
             {
5441
             {
5458
                 #region 处理工单
5442
                 #region 处理工单
5825
                     Model.T_Wo_WorkOrder model = woBLL.GetModel(orderid);
5809
                     Model.T_Wo_WorkOrder model = woBLL.GetModel(orderid);
5826
                     if (model != null)
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
                         if (res)
5833
                         if (res)
5864
                             return Success("接单成功");
5834
                             return Success("接单成功");
5865
                         else
5835
                         else
5968
                 {
5938
                 {
5969
                     model.F_State2 = wostate;//已接单待处理
5939
                     model.F_State2 = wostate;//已接单待处理
5970
                 }
5940
                 }
5941
+                else
5942
+                {
5943
+                    model.F_State = wostate;//已接单待处理
5944
+                    model.F_State2 = wostate;//已接单待处理
5945
+                }
5971
                 model.F_DealBy = nowUser.F_UserCode;//已接单待处理
5946
                 model.F_DealBy = nowUser.F_UserCode;//已接单待处理
5972
                 woBLL.Update(model);
5947
                 woBLL.Update(model);
5973
                 #endregion
5948
                 #endregion
6009
          string uncont = "",
5984
          string uncont = "",
6010
         int isvisit = 1, int isover = 0)
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
             if (!string.IsNullOrEmpty(OpenId))
5989
             if (!string.IsNullOrEmpty(OpenId))
6013
             {
5990
             {
6014
                 if (string.IsNullOrEmpty(cont))
5991
                 if (string.IsNullOrEmpty(cont))
6018
                 if (ua != null)
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
                         return Error("权限不足");
5999
                         return Error("权限不足");
6023
                     Model.T_Wo_WorkOrder model = woBLL.GetModel(orderid);
6000
                     Model.T_Wo_WorkOrder model = woBLL.GetModel(orderid);
6024
                     var deptmodel = departmentBLL.GetModel(ua.F_DeptId);
6001
                     var deptmodel = departmentBLL.GetModel(ua.F_DeptId);
6026
                     {
6003
                     {
6027
                         if (model != null)
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
                             if (markdepts.Contains(ua.F_DeptId.ToString()) || qualdepts.Contains(ua.F_DeptId.ToString()))
6022
                             if (markdepts.Contains(ua.F_DeptId.ToString()) || qualdepts.Contains(ua.F_DeptId.ToString()))
6047
                             {
6023
                             {
6048
                                 input.F_ZL_ResponsibleUnit = deptment.ResponsibleUnit;// 责任单位
6024
                                 input.F_ZL_ResponsibleUnit = deptment.ResponsibleUnit;// 责任单位
6049
                                 //input.F_EventReason = deptment.EventReason;// 事件原因
6025
                                 //input.F_EventReason = deptment.EventReason;// 事件原因
6050
                                 input.F_ZL_ImprovementRequirements = deptment.ImprovementRequirements;// 改进要求
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
                         else
6044
                         else
6102
                             return Error("工单不存在!");
6045
                             return Error("工单不存在!");
6105
                     {
6048
                     {
6106
                         return Error("请选择接收部门");
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
             return Error("无操作权限!");
6054
             return Error("无操作权限!");
6231
                     //验证信息
6159
                     //验证信息
6232
                     if (model != null)
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
                         if (res)
6178
                         if (res)
6258
                             return Success("退回成功");
6179
                             return Success("退回成功");
6259
                         else
6180
                         else
6273
         /// <param name="cont"></param>
6194
         /// <param name="cont"></param>
6274
         /// <returns></returns>
6195
         /// <returns></returns>
6275
         [WechatActionFilter]
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
             if (!string.IsNullOrEmpty(OpenId))
6200
             if (!string.IsNullOrEmpty(OpenId))
6288
                     {
6209
                     {
6289
                         int flag = 0;
6210
                         int flag = 0;
6290
                         Model.T_Sys_RoleInfo ro = rolebll.GetModel(ua.F_RoleId);
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
                         if (modellist != null)
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
                         return Error("操作失败!");
6240
                         return Error("操作失败!");
6320
                     }
6241
                     }
7134
         {
7055
         {
7135
             Model.T_Wo_WorkOrderItem_New itemModel = new Model.T_Wo_WorkOrderItem_New();
7056
             Model.T_Wo_WorkOrderItem_New itemModel = new Model.T_Wo_WorkOrderItem_New();
7136
             #region 
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
             else
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
             //var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_ItemType=" + itemtype + " and  F_WoID=" + woid + " ");
7079
             //var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_ItemType=" + itemtype + " and  F_WoID=" + woid + " ");
7164
             }
7094
             }
7165
 
7095
 
7166
             #endregion
7096
             #endregion
7097
+
7098
+
7167
             itemModel.F_WoID = woid;
7099
             itemModel.F_WoID = woid;
7168
             itemModel.F_IsSMS = sms;
7100
             itemModel.F_IsSMS = sms;
7169
             itemModel.F_WoState = wostate;
7101
             itemModel.F_WoState = wostate;