Browse Source

医院科室

wu 3 months ago
parent
commit
4d0d954bd4
1 changed files with 154 additions and 8 deletions
  1. 154 8
      src/custom/restcontroller/prsx/hospitaldep/hospitaldep.java

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

@@ -11,7 +11,6 @@ import common.data.*;
 import restcontroller.R;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.HashMap;
 
 /**
@@ -39,7 +38,7 @@ 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();
         }
-
+        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");
             InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_hospitaldep");
@@ -49,6 +48,7 @@ public class hospitaldep extends Controller {
             insertSQL.setValue("sa_customersid", sa_customersid);
             insertSQL.setValue("type", content.getStringValue("type"));
             insertSQL.setValue("remarks", content.getStringValue("remarks"));
+            insertSQL.setValue("stagename", stagenameRows.isNotEmpty() ? stagenameRows.get(0).getString("stagename") : "");
             sqlList.add(insertSQL.getSQL());
             sqlList.add(DataContrlLog.createLog(this, "sa_hospitaldep", sa_hospitaldepid, "新建", "新建成功").getSQL());
             //数据团队新增
@@ -77,7 +77,8 @@ public class hospitaldep extends Controller {
 
         Long sa_hospitaldepid = content.getLongValue("sa_hospitaldepid");
         QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_hospitaldep", "*").setTableAlias("t1");
-
+        querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t2", "t2.sa_customersid=t1.sa_customersid and t2.siteid=t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid", "enterprisename");
         querySQL.setSiteid(siteid);
         querySQL.setWhere("t1.sa_hospitaldepid", sa_hospitaldepid);
         Rows rows = querySQL.query();
@@ -88,7 +89,6 @@ public class hospitaldep extends Controller {
         HashMap<Long, ArrayList<String>> tagList = DataTag.queryTag(this, "sa_hospitaldep", ids, false);
         //系统标签
         HashMap<Long, ArrayList<String>> sysTagList = DataTag.queryTag(this, "sa_hospitaldep", ids, true);
-
         for (Row row : rows) {
             Long id = row.getLong("sa_hospitaldepid");
             row.put("leader", leaderRows.get(row.getString("sa_hospitaldepid")));
@@ -101,8 +101,8 @@ public class hospitaldep extends Controller {
             row.put("tag", tag);
             //系统标签
             row.put("tag_sys", sys_tag);
-            //预估手术总量
-            row.putIfAbsent("totalop", 0);
+            //科室负责人
+            row.putIfAbsent("doctors", "");
         }
 
         Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
@@ -125,12 +125,158 @@ public class hospitaldep extends Controller {
 
     @API(title = "列表", apiversion = R.ID2025101409402402.v1.class)
     public String list() throws YosException {
-        return getSucReturnObject().toString();
+        //  1:我负责的;2:我参与的;3:我下属负责的;4:我下属参与的
+        String tablename = "sa_hospitaldep";
+        int type = content.getIntValue("type");
+        StringBuffer where = new StringBuffer(" 1=1 ");
+        if (content.containsKey("where")) {
+            JSONObject whereObject = content.getJSONObject("where");
+
+            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
+                where.append(" and(");
+                where.append("t1.hospitaldepname like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.remarks like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+
+            if (whereObject.containsKey("startdate") && !"".equals(whereObject.getString("startdate"))) {
+                where.append(" and(");
+                where.append("t1.createdate >='").append(whereObject.getString("startdate")).append(" 00:00:00' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
+                where.append(" and(");
+                where.append("t1.createdate <='").append(whereObject.getString("enddate")).append(" 23:59:59' ");
+                where.append(")");
+            }
+            //科室类别
+            if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) {
+                where.append(" and(");
+                where.append("t1.type ='").append(whereObject.getString("type")).append("' ");
+                where.append(")");
+            }
+            //开发阶段
+            if (whereObject.containsKey("stagename") && !"".equals(whereObject.getString("stagename"))) {
+                where.append(" and(");
+                where.append("t1.stagename ='").append(whereObject.getString("stagename")).append("' ");
+                where.append(")");
+            }
+
+        }
+
+
+        String where2 = " 1=1 ";
+        if (type == 0) {
+            where2 = "(" + DataTeam.getDataWhereStr(this, tablename, "t1", 1)
+                    + " or " + DataTeam.getDataWhereStr(this, tablename, "t1", 2) + ")";
+        } else {
+            where2 = DataTeam.getDataWhereStr(this, tablename, "t1", type);
+        }
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_hospitaldep", "*").setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t2", "t2.sa_customersid=t1.sa_customersid and t2.siteid=t1.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t3", "t3.sys_enterpriseid=t2.sys_enterpriseid and t3.siteid=t2.siteid", "enterprisename");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where);
+        querySQL.setWhere(where2);
+        Rows rows = querySQL.query();
+
+        ArrayList<Long> ids = rows.toArrayList("sa_hospitaldepid", new ArrayList<>());
+        RowsMap leaderRows = DataTeam.getLeader(this, "sa_hospitaldep", rows.toArrayList("sa_hospitaldepid")).toRowsMap("ownerid");
+        //标签
+        HashMap<Long, ArrayList<String>> tagList = DataTag.queryTag(this, "sa_hospitaldep", ids, false);
+        //系统标签
+        HashMap<Long, ArrayList<String>> sysTagList = DataTag.queryTag(this, "sa_hospitaldep", ids, true);
+        for (Row row : rows) {
+            Long id = row.getLong("sa_hospitaldepid");
+            row.put("leader", leaderRows.get(row.getString("sa_hospitaldepid")));
+            if (leaderRows.get(String.valueOf(id)).isNotEmpty()) {
+                row.put("depname", leaderRows.get(String.valueOf(id)).get(0).getString("depname"));
+            }
+            ArrayList<String> tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<>();
+            ArrayList<String> sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<>();
+            //非系统标签
+            row.put("tag", tag);
+            //系统标签
+            row.put("tag_sys", sys_tag);
+            //科室负责人
+            row.putIfAbsent("doctors", "");
+        }
+
+        return getSucReturnObject().setData(rows).toString();
     }
 
     @API(title = "选择医院列表", apiversion = R.ID2025101409411402.v1.class)
     public String chooseHospital() throws YosException {
-        return getSucReturnObject().toString();
+
+        String tablename = "sa_customers";
+        StringBuffer where = new StringBuffer(" 1=1 ");
+        if (content.containsKey("where")) {
+            JSONObject whereObject = content.getJSONObject("where");
+
+            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
+                where.append(" and(");
+                where.append("t1.billno like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.province like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.city like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.county like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.address like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.abbreviation like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t6.name like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t8.depname like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+
+
+        }
+
+        where.append(" and ( t1.datastatus in (0,2) )");
+
+        String where2 = "(" + DataTeam.getDataWhereStr(this, tablename, "t1", 1)
+                + " or " + DataTeam.getDataWhereStr(this, tablename, "t1", 2) + ")";
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_customers", "sa_customersid", "createby", "createdate",
+                "sys_enterpriseid", "status", "type", "tradingstatus", "datastatus", "billno", "province", "city", "county", "address", "stagename", "grade");
+        querySQL.setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid AND t2.siteid = t1.siteid", "enterprisename");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t3", "t3.sa_saleareaid = t1.sa_saleareaid AND t3.siteid = t1.siteid", "areaname");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_datateam", "t6", "t6.ownerid = t1.sa_customersid and t6.siteid = t1.siteid and t6.ownertable = 'sa_customers' and t6.isleader = 1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_hr", "t7", "t7.userid = t6.userid and t7.siteid = t6.siteid ");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_department", "t8", "t8.departmentid = t7.departmentid and t8.siteid = t7.siteid ");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere(where);
+        querySQL.setWhere(where2);
+        querySQL.setPage(pageSize, pageNumber);
+        querySQL.setOrderBy(pageSorting);
+        querySQL.setRoleDataLimit(false);
+        querySQL.withDeleteData(true);
+        Rows rows = querySQL.query();
+        RowsMap leaderRows = DataTeam.getLeaderWithoutHeadpic(this, "sa_customers", rows.toArrayList("sa_customersid")).toRowsMap("ownerid");
+        ArrayList<Long> ids = rows.toArrayList("sa_customersid", new ArrayList<>());
+        //标签
+        HashMap<Long, ArrayList<String>> tagList = DataTag.queryTag(this, tablename, ids, false);
+        //系统标签
+        HashMap<Long, ArrayList<String>> sysTagList = DataTag.queryTag(this, tablename, ids, true);
+        for (Row row : rows) {
+            Long id = row.getLong("sa_customersid");
+            row.put("leader", leaderRows.get(String.valueOf(id)));
+            if (leaderRows.get(String.valueOf(id)).isNotEmpty()) {
+                row.put("name", leaderRows.get(String.valueOf(id)).get(0).getString("name"));
+                row.put("depname", leaderRows.get(String.valueOf(id)).get(0).getString("depname"));
+            }
+            ArrayList<String> tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<String>();
+            ArrayList<String> sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<String>();
+            if (row.getString("agentsstatus").equals("禁用") || row.getString("agentsstatus").equals("作废")) {
+                tag.removeAll(row.getJSONArray("agentstag").toJavaList(String.class));
+                sys_tag.removeAll(row.getJSONArray("agentstag").toJavaList(String.class));
+            }
+            //非系统标签
+            row.put("tag", tag);
+            //系统标签
+            row.put("tag_sys", sys_tag);
+        }
+        return getSucReturnObject().setData(rows).toString();
     }