package restcontroller.webmanage.sale.logistics; import beans.data.BatchDeleteErr; import beans.datacontrllog.DataContrlLog; import beans.order.Order; import beans.parameter.Parameter; import beans.remind.Remind; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import common.Controller; import common.YosException; import common.annotation.API; import common.annotation.CACHEING; import common.annotation.CACHEING_CLEAN; import common.data.QuerySQL; import common.data.Rows; import common.data.RowsMap; import common.data.SQLFactory; import restcontroller.R; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; @API(title = "物流单") public class Logistics extends Controller { /** * 构造函数 * * @param content */ public Logistics(JSONObject content) throws YosException { super(content); } @API(title = "新增或更新", apiversion = R.ID20221122132704.v1.class) @CACHEING_CLEAN(apiversions = {R.ID20221122132804.v1.class, R.ID20230219093203.v1.class}) public String insertOrUpdate() throws YosException { ArrayList sqlList = new ArrayList<>(); Long sa_logisticsid = content.getLong("sa_logisticsid"); Long sys_enterpriseid = content.getLong("sys_enterpriseid"); Long sa_logiscompid = content.getLongValue("sa_logiscompid"); String remarks = content.getStringValue("remarks"); String logisticno = content.getStringValue("logisticno"); String paytype = content.getStringValue("paytype"); Date billdate = content.getDate("billdate"); BigDecimal freightamount = content.getBigDecimal("freightamount"); String carnum = content.getStringValue("carnum"); String logisphone = content.getStringValue("logisphone"); String logiscontact = content.getStringValue("logiscontact"); if (sys_enterpriseid <= 0 || dbConnect.runSqlQuery("select sys_enterpriseid from sys_enterprise where siteid = '" + siteid + "' and sys_enterpriseid = " + sys_enterpriseid).isEmpty()) { return getErrReturnObject().setErrMsg("未选择企业").toString(); } Rows rows = dbConnect.runSqlQuery("select sa_logisticsid,status from sa_logistics where siteid = '" + siteid + "' and sa_logisticsid = " + sa_logisticsid); SQLFactory sqlFactory = new SQLFactory(this, "物流单新增"); if (sa_logisticsid <= 0 || rows.isEmpty()) { sa_logisticsid = createTableID("sa_logistics"); sqlFactory.addParameter("billno", createBillCode("logisticsbill")); sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid); String sql = DataContrlLog.createLog(this, "sa_logistics", sa_logisticsid, "新增", "物流单新增:" + sa_logisticsid).getSQL(); sqlList.add(sql); //sqlFactory.addParameter("billno", sa_logisticsid); } else { if (!rows.get(0).getString("status").equals("新建")) { return getErrReturnObject().setErrMsg("该物流单非新建状态,无法修改").toString(); } sqlFactory = new SQLFactory(this, "物流单更新"); String sql = DataContrlLog.createLog(this, "sa_logistics", sa_logisticsid, "更新", "物流单更新:" + sa_logisticsid).getSQL(); sqlList.add(sql); } sqlFactory.addParameter("sa_logiscompid", sa_logiscompid); sqlFactory.addParameter("sa_logisticsid", sa_logisticsid); sqlFactory.addParameter("remarks", remarks); sqlFactory.addParameter("billdate", billdate); sqlFactory.addParameter("freightamount", freightamount); sqlFactory.addParameter("logisticno", logisticno); sqlFactory.addParameter("paytype", paytype); sqlFactory.addParameter("carnum", carnum); sqlFactory.addParameter("logisphone", logisphone); sqlFactory.addParameter("logiscontact", logiscontact); sqlFactory.addParameter("username", username); sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("siteid", siteid); sqlList.add(sqlFactory.getSQL()); dbConnect.runSqlUpdate(sqlList); return getSucReturnObject().toString(); } @API(title = "列表(管理员端)", apiversion = R.ID20221122132804.v1.class) @CACHEING public String queryList_manage() throws YosException { 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 (t1.billno like '%").append(whereObject.getString("condition")).append("%'"); where.append("or t1.logisticno like '%").append(whereObject.getString("condition")).append("%'"); where.append("or t3.agentnum like '%").append(whereObject.getString("condition")).append("%'"); where.append("or t2.enterprisename like '%").append(whereObject.getString("condition")).append("%')"); } if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) { where.append(" and t1.billdate >='").append(whereObject.getString("begindate")).append("'"); } if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) { where.append(" and t1.billdate <='").append(whereObject.getString("enddate")).append("'"); } if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) { where.append(" and t1.status = '").append(whereObject.getString("status")).append("'"); } if (whereObject.containsKey("sonum") && !"".equals(whereObject.getString("sonum"))) { where.append(" and exists(select 1 from sa_logistics_items s1 left join sa_dispatch s2 on s1.sa_dispatchid=s2.sa_dispatchid and s1.siteid=s2.siteid left join sa_order s3 on s2.sa_orderid=s3.sa_orderid and s2.siteid=s3.siteid where s3.sonum='").append(whereObject.getString("sonum")).append("' and s1.sa_logisticsid=t1.sa_logisticsid)"); } } // SQLFactory sqlFactory = new SQLFactory(this, "物流单列表查询", pageSize, pageNumber, pageSorting); // sqlFactory.addParameter("siteid", siteid); // sqlFactory.addParameter_SQL("where", where); // String sql = sqlFactory.getSQL(); // Rows rows = dbConnect.runSqlQuery(sql); QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_logistics", "sa_logisticsid", "siteid", "billno","rec_contactsid","logisticno","sys_enterpriseid","remarks","name","status","checkdate","receivedate","billdate", "freightamount","carnum","logiscontact","logisphone","province","city","county","address"); querySQL.setTableAlias("t1"); querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid","enterprisename"); querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.siteid = t3.siteid and t1.sys_enterpriseid = t3.sys_enterpriseid","agentnum"); querySQL.setSiteid(siteid); querySQL.setWhere(where.toString()); querySQL.setPage(pageSize, pageNumber); Rows rows = querySQL.query(); return getSucReturnObject().setData(rows).toString(); } @API(title = "列表(业务员端)", apiversion = R.ID20230219093203.v1.class) @CACHEING public String queryList_Saler() throws YosException { 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 (t1.billno like '%").append(whereObject.getString("condition")).append("%'"); where.append("or t1.logisticno like '%").append(whereObject.getString("condition")).append("%'"); where.append("or t3.agentnum like '%").append(whereObject.getString("condition")).append("%'"); where.append("or t2.enterprisename like '%").append(whereObject.getString("condition")).append("%')"); } if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) { where.append(" and t1.receivedate >='").append(whereObject.getString("begindate")).append("'"); } if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) { where.append(" and t1.receivedate <='").append(whereObject.getString("enddate")).append("'"); } if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) { where.append(" and t1.status = '").append(whereObject.getString("status")).append("'"); } } // SQLFactory sqlFactory = new SQLFactory(this, "物流单列表查询业务员", pageSize, pageNumber, pageSorting); // sqlFactory.addParameter("siteid", siteid); // sqlFactory.addParameter("hrid", hrid); // sqlFactory.addParameter_SQL("where", where); // Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL()); QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_logistics", "sa_logisticsid", "siteid", "billno","rec_contactsid","logisticno","sys_enterpriseid","remarks","name","status","checkdate","receivedate","billdate"); querySQL.setTableAlias("t1"); querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid","enterprisename"); querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.siteid = t3.siteid and t1.sys_enterpriseid = t3.sys_enterpriseid","agentnum"); querySQL.setSiteid(siteid); querySQL.setWhere("t1.sys_enterpriseid in (SELECT sys_enterpriseid\n" + " from sys_enterprise_tradefield\n" + " WHERE sa_saleareaid in (SELECT sa_saleareaid\n" + " from sa_salearea_hr t1\n" + " left join sys_hr t2 on t1.hrid=t2.hrid and t1.siteid=t2.siteid\n" + " WHERE t2.userid = '"+hrid+"'\n" + " )\n" + " and siteid = '"+siteid+"')"); querySQL.setWhere(where.toString()); querySQL.setPage(pageSize, pageNumber); Rows rows = querySQL.query(); return getSucReturnObject().setData(rows).toString(); } @API(title = "删除", apiversion = R.ID20221122132904.v1.class) @CACHEING_CLEAN(apiversions = {R.ID20221122132804.v1.class, R.ID20230219093203.v1.class}) public String delete() throws YosException { JSONArray sa_logisticsids = content.getJSONArray("sa_logisticsids"); BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_logisticsids.size()); ArrayList sqlList = new ArrayList<>(); // String str = sa_logisticsids.toString().replace("[", "(").replace("]", ")"); // RowsMap boxmxidRowsMap = dbConnect.runSqlQuery("select sa_logisticsid,sa_logistics_boxid from sa_logistics_box where siteid='" + siteid + "' and sa_logisticsid in " + str).toRowsMap("sa_logisticsid"); for (Object o : sa_logisticsids) { Rows rows = dbConnect.runSqlQuery("select billno,status from sa_logistics where siteid = '" + siteid + "' and sa_logisticsid = " + o); if (rows.isEmpty()) { batchDeleteErr.addErr(Long.parseLong(o.toString()), "该数据不存在"); continue; } if (!rows.get(0).getString("status").equals("新建")) { batchDeleteErr.addErr(Long.parseLong(o.toString()), "非新建状态,不能删除"); continue; } String sql = "delete from sa_logistics where siteid = '" + siteid + "' and sa_logisticsid = " + o; sqlList.add(sql); sql = "delete from sa_logistics_items where siteid = '" + siteid + "' and sa_logisticsid = " + o; sqlList.add(sql); // sql = "delete from sa_logistics_box where siteid='" + siteid + "' and sa_logisticsid= " + o; // sqlList.add(sql); // if (boxmxidRowsMap.containsKey(o.toString())) { // str = Arrays.toString(boxmxidRowsMap.get(o.toString()).toArray("sa_logistics_boxid")).replace("[", "(").replace("]", ")"); // sql = "delete from sa_logistics_boxmx where siteid='" + siteid + "' and sa_logistics_boxid in " + str; // sqlList.add(sql); // } sql = DataContrlLog.createLog(this, "sa_logistics", Long.parseLong(o.toString()), "删除", "物流单删除:" + Long.parseLong(o.toString())).getSQL(); sqlList.add(sql); } dbConnect.runSqlUpdate(sqlList); return batchDeleteErr.getReturnObject().toString(); } //TODO 审核时必填字段? @API(title = "审核、反审核", apiversion = R.ID20221122133104.v1.class) @CACHEING_CLEAN(apiversions = {R.ID20221122132804.v1.class, R.ID20221122133004.v1.class, R.ID20221114135303.v1.class, R.ID20230219093203.v1.class}) public String checkOrUncheck() throws YosException { Long sa_logisticsid = content.getLong("sa_logisticsid"); ArrayList sqlList = new ArrayList<>(); Rows rows = dbConnect.runSqlQuery("select * from sa_logistics where siteid = '" + siteid + "' and sa_logisticsid = " + sa_logisticsid); if (!rows.isEmpty()) { if (rows.get(0).getString("status").equals("收货")) { return getErrReturnObject().setErrMsg("该物流单为收货状态,无法审核与反审核").toString(); } String billno = rows.get(0).getString("billno"); String[] sa_dispatchids = dbConnect.runSqlQuery("select sa_dispatchid from sa_logistics_items where siteid = '" + siteid + "' and sa_logisticsid =" + sa_logisticsid).toArray("sa_dispatchid"); SQLFactory sqlFactory = new SQLFactory(this, "发货单状态查询"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter_in("sa_dispatchids", sa_dispatchids); Rows dispatch = dbConnect.runSqlQuery(sqlFactory.getSQL()); RowsMap dispatchRowsMap = dispatch.toRowsMap("status"); sqlFactory = new SQLFactory(this, "发货单关闭"); if (rows.get(0).getString("status").equals("新建")) { if (dispatchRowsMap.containsKey("新建") || dispatchRowsMap.containsKey("关闭")) { return getErrReturnObject().setErrMsg("物流单中存在非审核状态或非复核状态的发货单,请检查").toString(); } } else { sqlFactory = new SQLFactory(this, "发货单复核"); } sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("username", username); sqlFactory.addParameter_in("sa_dispatchids", sa_dispatchids); String dispatch_recheck = Parameter.getString(siteid, "dispatch_recheck"); if (dispatch_recheck.equals("1")) { sqlFactory.addParameter_SQL("sql", "status='复核'"); } else { sqlFactory.addParameter_SQL("sql", "status='审核'"); } sqlList.add(sqlFactory.getSQL()); sqlFactory = new SQLFactory(this, "物流单审核"); if (rows.get(0).getString("status").equals("审核")) { sqlFactory = new SQLFactory(this, "物流单反审核"); sqlList.add(DataContrlLog.createLog(this, "sa_logistics", sa_logisticsid, "反审核", "反审核:" + sa_logisticsid).getSQL()); } else { RowsMap dispatchqtyRowsMap = dbConnect.runSqlQuery("select t2.sa_dispatch_itemsid,t2.qty from sa_logistics_items t1 inner join sa_dispatch_items t2 on t1.siteid=t2.siteid and t1.sa_dispatchid=t2.sa_dispatchid where t1.siteid='" + siteid + "' and t1.sa_logisticsid=" + sa_logisticsid).toRowsMap("sa_dispatch_itemsid"); RowsMap logisticsboxmxrowsMap = dbConnect.runSqlQuery("select t2.sa_dispatch_itemsid,sum(t2.qty) qty from sa_logistics_box t1 inner join sa_logistics_boxmx t2 on t1.siteid=t2.siteid and t1.sa_logistics_boxid=t2.sa_logistics_boxid where t1.siteid='" + siteid + "' and t1.sa_logisticsid=" + sa_logisticsid + " group by t1.siteid,t2.sa_dispatch_itemsid").toRowsMap("sa_dispatch_itemsid"); for (String sa_dispatch_itemsid : dispatchqtyRowsMap.keySet()) { if (!logisticsboxmxrowsMap.containsKey(sa_dispatch_itemsid)) { return getErrReturnObject().setErrMsg("装箱数量与发货数量不相等,审核失败").toString(); } Rows dispatchqtyRows = dispatchqtyRowsMap.get(sa_dispatch_itemsid); Rows logisticsboxmxRows = logisticsboxmxrowsMap.get(sa_dispatch_itemsid); if (dispatchqtyRows.get(0).getBigDecimal("qty").compareTo(logisticsboxmxRows.get(0).getBigDecimal("qty")) != 0) { return getErrReturnObject().setErrMsg("装箱数量与发货数量不相等,审核失败").toString(); } } sqlList.add(DataContrlLog.createLog(this, "sa_logistics", sa_logisticsid, "审核", "审核:" + sa_logisticsid).getSQL()); Rows dispatchRows = dbConnect.runSqlQuery("SELECT sa_orderid from sa_dispatch WHERE sa_dispatchid in (SELECT sa_dispatchid from sa_logistics_items WHERE sa_logisticsid = '" + sa_logisticsid + "' and siteid='" + siteid + "') and siteid = '" + siteid + "'"); Long sa_orderid = 0L; if (dispatchRows.isNotEmpty()) { sa_orderid = dispatchRows.get(0).getLong("sa_orderid"); } String sonum = ""; Rows orderRows = Order.getOrderRows(this, sa_orderid); Long sys_enterpriseid = 0L; if (orderRows.isNotEmpty()) { sonum = orderRows.get(0).getString("sonum"); sys_enterpriseid = orderRows.get(0).getLong("sys_enterpriseid"); } sendMsg("您的订单【" + sonum + "】已发货,物流单号【" + billno + "】 !", sa_orderid, sys_enterpriseid); } sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("username", username); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sa_logisticsid", sa_logisticsid); sqlList.add(sqlFactory.getSQL()); dbConnect.runSqlUpdate(sqlList); return getSucReturnObject().toString(); } return getErrReturnObject().setErrMsg("请选择物流单").toString(); } public void sendMsg(String content, Long sa_orderid, Long sys_enterpriseid) throws YosException { ArrayList userList = getEnterpriseHrs(sys_enterpriseid).toArrayList("userid", new ArrayList<>()); Remind remind = new Remind(this); remind.setTitle("物流消息"); remind.setContent(content); remind.setType("应用"); remind.setObjectid(sa_orderid); remind.setObjectname("sa_order"); remind.setTouserid(userList); remind.createSys_message(); } // @API(title = "收货、取消收货", apiversion = R.ID20221122133204.v1.class) // @CACHEING_CLEAN(apiversions = {R.ID20221122132804.v1.class, R.ID20230219093203.v1.class}) // public String receive() throws YosException { // ArrayList sqlList = new ArrayList<>(); // Long sa_logisticsid = content.getLong("sa_logisticsid"); // Rows rows = dbConnect.runSqlQuery("select status from sa_logistics where siteid = '" + siteid + "' and sa_logisticsid = " + sa_logisticsid); // if (!rows.isEmpty()) { // SQLFactory sqlFactory = new SQLFactory(this, "物流单确认收货"); // if (rows.get(0).getString("status").equals("新建")) { // return getErrReturnObject().setErrMsg("该物流单为新建状态,无法确认收货与取消收货").toString(); // } else if (rows.get(0).getString("status").equals("收货")) { // String sql = DataContrlLog.createLog(this, "sa_logistics", sa_logisticsid, "取消收货", "物流单取消收货:" + sa_logisticsid).getSQL(); // sqlList.add(sql); // sqlFactory = new SQLFactory(this, "物流单取消收货"); // } else { // String sql = DataContrlLog.createLog(this, "sa_logistics", sa_logisticsid, "收货", "物流单收货:" + sa_logisticsid).getSQL(); // sqlList.add(sql); // } // sqlFactory.addParameter("siteid", siteid); // sqlFactory.addParameter("sa_logisticsid", sa_logisticsid); // sqlFactory.addParameter("userid", userid); // sqlFactory.addParameter("username", username); // sqlList.add(sqlFactory.getSQL()); // dbConnect.runSqlUpdate(sqlList); // return getSucReturnObject().toString(); // } // return getErrReturnObject().setErrMsg("请选择物流单").toString(); // // } @API(title = "详情", apiversion = R.ID20221204201804.v1.class) public String queryById() throws YosException { Long sa_logisticsid = content.getLong("sa_logisticsid"); SQLFactory sqlFactory = new SQLFactory(this, "物流单详情"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sa_logisticsid", sa_logisticsid); Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL()); return getSucReturnObject().setData(rows).toString(); } @API(title = "一键生成物流单", apiversion = R.ID20230216185104.v1.class) @CACHEING_CLEAN(apiversions = {R.ID20221122132804.v1.class, R.ID20230219093203.v1.class}) public String generatelogisticsid() throws YosException { Long sa_dispatchid = content.getLong("sa_dispatchid"); Rows dispatchRows = dbConnect.runSqlQuery("select freightstatus,sys_enterpriseid,rec_contactsid,status from sa_dispatch where siteid='" + siteid + "' and sa_dispatchid=" + sa_dispatchid); if (dispatchRows.isEmpty()) { return getErrReturnObject().setErrMsg("发货单无效").toString(); } Rows siteRows = dbConnect.runSqlQuery("select 1 from sys_site_parameter where siteid='" + siteid + "' and dispatch_recheck=1"); if (siteRows.isEmpty() && (dispatchRows.get(0).getString("status").equals("新建") || dispatchRows.get(0).getString("status").equals("关闭"))) { return getErrReturnObject().setErrMsg("非审核状态不能生成物流单").toString(); } if (siteRows.isNotEmpty() && !dispatchRows.get(0).getString("status").equals("复核")) { return getErrReturnObject().setErrMsg("非复核状态不能生成物流单").toString(); } Rows contactsRows = dbConnect.runSqlQuery("select name,phonenumber,province,city,county,address from sys_enterprise_contacts where siteid='" + siteid + "' and deleted=0 and contactsid=" + dispatchRows.get(0).getLong("rec_contactsid")); ArrayList sqlList = new ArrayList<>(); long sa_logisticsid = createTableID("sa_logistics"); SQLFactory sqlFactory = new SQLFactory(this, "发货单生成物流单新增"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("username", username); sqlFactory.addParameter("sa_logisticsid", sa_logisticsid); sqlFactory.addParameter("paytype", dispatchRows.get(0).getString("freightstatus")); sqlFactory.addParameter("sys_enterpriseid", dispatchRows.get(0).getString("sys_enterpriseid")); sqlFactory.addParameter("sa_logiscompid", 0); sqlFactory.addParameter("rec_contactsid", dispatchRows.get(0).getString("rec_contactsid")); sqlFactory.addParameter("billno", createBillCode("logisticsbill")); sqlFactory.addParameter("name", contactsRows.isNotEmpty() ? contactsRows.get(0).getString("name") : ""); sqlFactory.addParameter("phonenumber", contactsRows.isNotEmpty() ? contactsRows.get(0).getString("phonenumber") : ""); sqlFactory.addParameter("province", contactsRows.isNotEmpty() ? contactsRows.get(0).getString("province") : ""); sqlFactory.addParameter("city", contactsRows.isNotEmpty() ? contactsRows.get(0).getString("city") : ""); sqlFactory.addParameter("county", contactsRows.isNotEmpty() ? contactsRows.get(0).getString("county") : ""); sqlFactory.addParameter("address", contactsRows.isNotEmpty() ? contactsRows.get(0).getString("address") : ""); sqlList.add(sqlFactory.getSQL()); long sa_logistics_itemsid = createTableID("sa_logistics_items"); sqlFactory = new SQLFactory(this, "物流单发货明细新增"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("username", username); sqlFactory.addParameter("sa_logisticsid", sa_logisticsid); sqlFactory.addParameter("sa_logistics_itemsid", sa_logistics_itemsid); sqlFactory.addParameter("sa_dispatchid", sa_dispatchid); sqlList.add(sqlFactory.getSQL()); dbConnect.runSqlUpdate(sqlList); content.put("sa_logisticsid", sa_logisticsid); return queryById(); } @API(title = "收货人查询", apiversion = R.ID20230220164804.v1.class) public String querycon() throws YosException { JSONArray sa_dispatchids = content.getJSONArray("sa_dispatchids"); // SQLFactory sqlFactory = new SQLFactory(this, "发货单收货人查询", pageSize, pageNumber, pageSorting); // sqlFactory.addParameter("siteid", siteid); // sqlFactory.addParameter_in("sa_dispatchids", sa_dispatchids.toArray()); // Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL()); QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_dispatch", "rec_contactsid"); querySQL.setTableAlias("t2"); querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t3", "t2.siteid = t3.siteid and t2.rec_contactsid = t3.contactsid", "name","phonenumber","address","city","province","county"); querySQL.setSiteid(siteid); querySQL.setWhere("t1.sa_dispatchid",sa_dispatchids.toArray()); querySQL.addGroupBy("t2.rec_contactsid,\n" + " t3.name,\n" + " t3.phonenumber,\n" + " t3.address,\n" + " t3.city,\n" + " t3.province,\n" + " t3.county"); querySQL.setPage(pageSize, pageNumber); Rows rows = querySQL.query(); return getSucReturnObject().setData(rows).toString(); } }