Browse Source

9519 【普瑞】【医院管理】【科室管理】【医生管理】新建科室、医生逻辑调整

wu 2 weeks ago
parent
commit
fca65b09d5

+ 37 - 0
src/custom/beans/datateam/DataTeam.java

@@ -284,6 +284,43 @@ public class DataTeam {
         return sqlist;
     }
 
+    public static ArrayList<String> createTeamSQL(Controller controller, String ownertable, long ownerid, long userid,int isleader) throws YosException {
+        if (controller.dbConnect.runSqlQuery("select * from sys_users where userid=" + userid).isEmpty()) {
+            return new ArrayList<>();
+        }
+        SQLFactory sqlFactory = new SQLFactory(new DataTeam(), "数据团队插入");
+        sqlFactory.addParameter("sys_datateamid", controller.createTableID("sys_datateam"));
+        sqlFactory.addParameter("siteid", controller.siteid);
+        sqlFactory.addParameter("userid", userid);
+        sqlFactory.addParameter("ownerid", ownerid);
+        sqlFactory.addParameter("ownertable", ownertable);
+        sqlFactory.addParameter("username", controller.username);
+        sqlFactory.addParameter("changeuserid", controller.userid);
+        sqlFactory.addParameter("editable", 1);
+
+        Row agenthrrow = controller.getEnterpriseHr(userid);
+        Row hrrow = controller.getHr(userid);
+        if (!agenthrrow.isEmpty()) {
+            sqlFactory.addParameter("position", agenthrrow.getString("position"));
+            sqlFactory.addParameter("name", agenthrrow.getString("name"));
+            sqlFactory.addParameter("sys_enterpriseid", agenthrrow.getLong("sys_enterpriseid"));
+        } else if (!hrrow.isEmpty()) {
+            sqlFactory.addParameter("position", hrrow.getString("position"));
+            sqlFactory.addParameter("name", hrrow.getString("name"));
+            sqlFactory.addParameter("sys_enterpriseid", 0);
+        } else {
+            sqlFactory.addParameter("position", "");
+            sqlFactory.addParameter("name", controller.getUser(userid).getString("name"));
+            sqlFactory.addParameter("sys_enterpriseid", 0);
+        }
+
+        sqlFactory.addParameter("isleader", isleader);
+
+        ArrayList<String> sqlist = new ArrayList<>();
+        sqlist.add(sqlFactory.getSQL());
+        return sqlist;
+    }
+
     /**
      * 为数据删除团队成员
      *

+ 13 - 1
src/custom/restcontroller/prsx/doctor/doctor.java

@@ -38,6 +38,12 @@ public class doctor extends Controller {
         Rows rows = dbConnect.runSqlQuery("SELECT * from sa_hospitaldep WHERE sa_hospitaldepid=" + sa_hospitaldepid + " and siteid='" + siteid + "'");
         Long sa_customersid = rows.isNotEmpty() ? rows.get(0).getLong("sa_customersid") : 0;
 
+        Long leaderUserid = 0L;
+        Rows leaderrows = DataTeam.getLeaderWithoutHeadpic(this, "sa_customers", sa_customersid);
+        if (leaderrows.isNotEmpty()) {
+            leaderUserid = leaderrows.get(0).getLong("userid");
+        }
+
         if (sa_doctorid <= 0) {
             sa_doctorid = createTableID("sa_doctor");
             InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_doctor");
@@ -52,7 +58,13 @@ public class doctor extends Controller {
             insertSQL.setValue("remarks", content.getStringValue("remarks"));
             sqlList.add(insertSQL.getSQL());
             sqlList.add(DataContrlLog.createLog(this, "sa_doctor", sa_doctorid, "新建", "新建成功").getSQL());
-            sqlList.addAll(DataTeam.createTeamSQL(this, "sa_doctor", sa_doctorid, userid));
+            //数据团队新增
+            if (leaderUserid == userid) {
+                sqlList.addAll(DataTeam.createTeamSQL(this, "sa_doctor", sa_doctorid, leaderUserid));
+            }else {
+                sqlList.addAll(DataTeam.createTeamSQL(this, "sa_doctor", sa_doctorid, leaderUserid));
+                sqlList.addAll(DataTeam.createTeamSQL(this, "sa_doctor", sa_doctorid, userid,0));
+            }
         } else {
             UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_doctor");
             updateSQL.setSiteid(siteid);

+ 19 - 8
src/custom/restcontroller/prsx/hospitaldep/hospitaldep.java

@@ -43,6 +43,12 @@ public class hospitaldep extends Controller {
         if (!dbConnect.runSqlQuery("select * from sa_hospitaldep  WHERE siteid='" + siteid + "' and sa_customersid=" + sa_customersid + " and  hospitaldepname='" + hospitaldepname + "' and sa_hospitaldepid !='" + sa_hospitaldepid + "'").isEmpty()) {
             return getErrReturnObject().setErrMsg("该医院科室不可重复创建!").toString();
         }
+        Long leaderUserid = 0L;
+        Rows leaderrows = DataTeam.getLeaderWithoutHeadpic(this, "sa_customers", sa_customersid);
+        if (leaderrows.isNotEmpty()) {
+            leaderUserid = leaderrows.get(0).getLong("userid");
+        }
+
         Rows stagenameRows = dbConnect.runSqlQuery("SELECT stagename from sa_devstage WHERE siteid='" + siteid + "' order by sequence  LIMIT 1");
         if (sa_hospitaldepid <= 0) {
             sa_hospitaldepid = createTableID("sa_hospitaldep");
@@ -59,7 +65,12 @@ public class hospitaldep extends Controller {
             sqlList.add(insertSQL.getSQL());
             sqlList.add(DataContrlLog.createLog(this, "sa_hospitaldep", sa_hospitaldepid, "新建", "新建成功").getSQL());
             //数据团队新增
-            sqlList.addAll(DataTeam.createTeamSQL(this, "sa_hospitaldep", sa_hospitaldepid, userid));
+            if (leaderUserid == userid) {
+                sqlList.addAll(DataTeam.createTeamSQL(this, "sa_hospitaldep", sa_hospitaldepid, leaderUserid));
+            }else {
+                sqlList.addAll(DataTeam.createTeamSQL(this, "sa_hospitaldep", sa_hospitaldepid, leaderUserid));
+                sqlList.addAll(DataTeam.createTeamSQL(this, "sa_hospitaldep", sa_hospitaldepid, userid,0));
+            }
         } else {
             UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_hospitaldep");
             updateSQL.setSiteid(siteid);
@@ -226,7 +237,7 @@ public class hospitaldep extends Controller {
             ArrayList<String> tags = new ArrayList<>();
             tags.addAll(tag);
             tags.addAll(sys_tag);
-            row.put("tagstr", StringUtils.join(tags,","));
+            row.put("tagstr", StringUtils.join(tags, ","));
             //科室负责人
 //            Rows doctorRows = doctorRowsMap.getOrDefault(id.toString(), new Rows());
 //            row.putIfAbsent("doctors", StringUtils.join(doctorRows.toArray("doctorname"), ","));
@@ -402,11 +413,11 @@ public class hospitaldep extends Controller {
 
 
         where.append(" and t1.sa_agentsid not in (SELECT sa_agentsid from sa_agents_hospital " +
-                "WHERE sa_hospitaldepid="+sa_hospitaldepid+")");
+                "WHERE sa_hospitaldepid=" + sa_hospitaldepid + ")");
 
-        String sql=" and t1.sa_agentsid  in (SELECT sa_agentsid from sys_enterprise_tradefield " +
-                "WHERE hrid in "+hrids+")";
-        sql= sql.replace("[","(").replace("]",")");
+        String sql = " and t1.sa_agentsid  in (SELECT sa_agentsid from sys_enterprise_tradefield " +
+                "WHERE hrid in " + hrids + ")";
+        sql = sql.replace("[", "(").replace("]", ")");
         where.append(sql);
 
 
@@ -525,9 +536,9 @@ public class hospitaldep extends Controller {
                 "erpagentnum");
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.siteid = t1.siteid and t4.sa_agentsid = t1.parentid");
         querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid");
-        querySQL.addJoinTable(JOINTYPE.inner, "sa_agents_hospital", "t6", "t6.siteid = t1.siteid and t6.sa_agentsid = t1.sa_agentsid","sa_agents_hospitalid");
+        querySQL.addJoinTable(JOINTYPE.inner, "sa_agents_hospital", "t6", "t6.siteid = t1.siteid and t6.sa_agentsid = t1.sa_agentsid", "sa_agents_hospitalid");
         querySQL.addQueryFields("parent_enterprisename", "t5.enterprisename");
-        querySQL.setWhere("t6.sa_hospitaldepid",sa_hospitaldepid);
+        querySQL.setWhere("t6.sa_hospitaldepid", sa_hospitaldepid);
         querySQL.setSiteid(siteid);
         querySQL.setWhere(where);
         querySQL.setPage(pageSize, pageNumber);

+ 1 - 1
src/custom/restcontroller/webmanage/sale/agents/agents2.java

@@ -292,7 +292,7 @@ public class agents2 extends Controller {
         Long sa_agentsid = content.getLongValue("sa_agentsid");
         where.append(" and t1.sa_hospitaldepid in (SELECT ownerid from sys_enterprise_tradefield t1 " +
                 "INNER JOIN sys_hr t2 ON t2.hrid=t1.hrid and t2.siteid=t1.siteid " +
-                "INNER JOIN sys_datateam t3 ON t3.userid=t2.userid and t3.ownertable='sa_hospitaldep' and t3.isleader=1 and t3.siteid=t2.siteid " +
+                "INNER JOIN sys_datateam t3 ON t3.userid=t2.userid and t3.ownertable='sa_hospitaldep'  and t3.siteid=t2.siteid " +
                 "WHERE sa_agentsid=" + sa_agentsid + ")");
         where.append(" and t1.sa_hospitaldepid not in (SELECT sa_hospitaldepid from sa_agents_hospital " +
                 "WHERE sa_agentsid=" + sa_agentsid + ")");