فهرست منبع

Merge remote-tracking branch 'origin/develop' into develop

shenjingwei 4 ماه پیش
والد
کامیت
8b70aaa954

+ 7 - 1
src/custom/restcontroller/sale/order/Order.java

@@ -103,7 +103,13 @@ public class Order extends Controller {
             }
             //查询快递信息
             if(expressformrowsMap.containsKey(row.getString("sa_orderid"))){
-                row.put("expressform",expressformrowsMap.get(row.getString("sa_orderid")).get(0));
+                row.put("expressform_mailno",expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("mailno"));
+                row.put("expressform_txlogisticid",expressformrowsMap.get(row.getString("sa_orderid")).get(0).getString("txlogisticid"));
+
+            }else{
+                row.put("expressform_mailno","");
+                row.put("expressform_txlogisticid","");
+
             }
         }
 

+ 2 - 0
src/custom/restcontroller/webmanage/sale/expressform/expressform.java

@@ -314,6 +314,8 @@ public class expressform extends Controller {
         querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid",
                 "agentnum");
         querySQL.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t4", "t1.st_stockbillid = t4.st_stockbillid AND t1.siteid = t4.siteid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_department", "t5", "t5.departmentid = t1.departmentid AND t1.siteid = t5.siteid","depname");
+
         querySQL.setWhere("t1.siteid", siteid);
         querySQL.setWhere("t1.type='销售出库' and t4.expressformid='" + expressformid + "'");
         querySQL.setWhere(where);

+ 7 - 2
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -76,6 +76,7 @@ public class OrderItems extends Controller {
         RowsMap itemRowsMap = orderItemsHelper.getItemRowsMap(items);
 
         BigDecimal sumqty = BigDecimal.ZERO;
+        ArrayList<Long> sa_orderitemsids_insert =new ArrayList<>();
         for (Object obj : items) {
             JSONObject item = (JSONObject) obj;
             Long itemid = item.getLong("itemid");
@@ -193,6 +194,7 @@ public class OrderItems extends Controller {
             }
             defaultprice = price.multiply(rwpricerate);
             if (isInsert) {
+                sa_orderitemsids_insert.add(sa_orderitemsid);
                 price = price.multiply(rwpricerate).add(custamount);
                 sqlList.add(orderItemsHelper.getInsertSQL(customproperties, sa_orderitemsid, item, itemRow, type, defaultprice, price, saleprice, itemPrice.getMarketprice(), spec, promotionitems, width, length, custamount, rwpricerate, pricerate).getSQL());
                 if (item.getLongValue("sa_workorderid") != 0) {
@@ -273,8 +275,11 @@ public class OrderItems extends Controller {
                             billingstatus = "保内收费";
                         } else {
                             billingstatus = "保内免费";
-                            price = BigDecimal.ZERO;
-                            amount = BigDecimal.ZERO;
+                            if(sa_orderitemsids_insert.contains(rowsdetail.getLong("sa_orderitemsid"))){
+                                price = BigDecimal.ZERO;
+                                amount = BigDecimal.ZERO;
+                            }
+
                         }
                     }else{
                         billingstatus = "保外收费";

+ 12 - 2
src/custom/restcontroller/webmanage/sale/serviceorder/serviceorder.java

@@ -611,7 +611,7 @@ public class serviceorder extends Controller {
                         + sa_serviceorderid + "' and  siteid='" + siteid + "'");
 
         Rows workorderRows = dbConnect
-                .runSqlQuery("select sa_workorderid,status,billno from sa_workorder where sa_serviceorderid ='"
+                .runSqlQuery("select sa_workorderid,status,billno,sa_serviceorderid from sa_workorder where sa_serviceorderid ='"
                         + sa_serviceorderid + "' and  siteid='" + siteid + "'");
         if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("此服务单不存在").toString();
@@ -619,6 +619,16 @@ public class serviceorder extends Controller {
             if (!rows.get(0).getString("status").equals("待受理")) {
                 return getErrReturnObject().setErrMsg("非待受理状态无法生成工单").toString();
             }
+            Rows serviceorderitems = dbConnect.runSqlQuery("select sku from sa_serviceorderitems where sa_serviceorderid="+sa_serviceorderid);
+            if(serviceorderitems.isNotEmpty()){
+                if(StringUtils.isNotBlank(serviceorderitems.get(0).getString("sku"))){
+                    if (dbConnect.runSqlQuery("select * from sa_warrantycard where sku='" + serviceorderitems.get(0).getString("sku") + "' and siteid='" + siteid + "' and isvoid=0").isNotEmpty()) {
+                        return getErrReturnObject().setErrMsg("该序列号已安装,无法再次安装").toString();
+                    }
+                }
+
+            }
+
         }
 
         if (!workorderRows.isEmpty()) {
@@ -814,7 +824,7 @@ public class serviceorder extends Controller {
         dbConnect.runSqlUpdate("update sa_workorder set verificationcode='"+verificationCode+"' where sa_workorderid="+sa_workorderid);
         Rows wxserviceRows = dbConnect.runSqlQuery("select t2.userid from sys_wechatapp_openids t1 inner join sys_users t2 on t1.userid=t2.userid where t2.phonenumber='"+customerphone+"'");
         Row row = new Row();
-        if(wxserviceRows.isNotEmpty()){
+        if(wxserviceRows.isEmpty()){
             ArrayList<Long> userids = wxserviceRows.toArrayList("userid",new ArrayList<>());
             JSONObject extradata = new JSONObject();
             extradata.put("extraUserList", userids);

+ 53 - 4
src/custom/restcontroller/webmanage/sale/stockbill/stockbill.java

@@ -291,7 +291,14 @@ public class stockbill extends Controller {
             row.put("billno_hong", "");
         }
         row.put("qty",rowsdetail.sum("qty"));
-        row.put("expressform",expressformrows);
+        if(expressformrows.isEmpty()){
+            row.put("expressform_mailno","");
+            row.put("expressform_txlogisticid","");
+        }else{
+            row.put("expressform_mailno",expressformrows.get(0).getString("mailno"));
+            row.put("expressform_txlogisticid",expressformrows.get(0).getString("txlogisticid"));
+        }
+
 
 
         return getSucReturnObject().setData(row).toString();
@@ -384,9 +391,7 @@ public class stockbill extends Controller {
         if (billtypes.contains("返修出库")) {
             querySQL.addJoinTable(JOINTYPE.left, "sa_sendrepair", "t10", "t10.sourceid=t1.st_stockbillid and t10.siteid = t1.siteid and t10.sourcetable='st_stockbill'","instockdate");
         }
-        if(billtypes.contains("返修入库")){
-            //querySQL.addJoinTable(JOINTYPE.left, "(SELECT st_stockbillid,itemno,itemname,model,sku,siteid FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY st_stockbillid ORDER BY st_stockbill_itemsid ASC) AS szrowno FROM st_stockbill_items) t WHERE szrowno = 1)", "t11", "t1.st_stockbillid=t11.st_stockbillid and t1.siteid = t11.siteid","itemno","itemname","model","sku");
-        }
+
 
         querySQL.setWhere("t1.siteid", siteid);
         querySQL.setWhere("t1.type", billtypes);
@@ -418,6 +423,50 @@ public class stockbill extends Controller {
             }
         }
 
+        if(billtypes.contains("返修入库")){
+            //querySQL.addJoinTable(JOINTYPE.left, "(SELECT st_stockbillid,itemno,itemname,model,sku,siteid FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY st_stockbillid ORDER BY st_stockbill_itemsid ASC) AS szrowno FROM st_stockbill_items) t WHERE szrowno = 1)", "t11", "t1.st_stockbillid=t11.st_stockbillid and t1.siteid = t11.siteid","itemno","itemname","model","sku");
+            QuerySQL querySQLDatail = SQLFactory.createQuerySQL(this, "st_stockbill_items","itemname","itemno","model","sku", "st_stockbillid").setTableAlias("t1");
+            querySQLDatail.setWhere("t1.st_stockbillid",ids);
+            Rows rowsdatail = querySQLDatail.query();
+            RowsMap rowsdatailMap = rowsdatail.toRowsMap("st_stockbillid");
+            for(Row row :rows){
+                if(rowsdatailMap.containsKey(row.getString("st_stockbillid"))){
+                    row.put("itemno",rowsdatailMap.get(row.getString("st_stockbillid")).get(0).getString("itemno"));
+                    row.put("itemname",rowsdatailMap.get(row.getString("st_stockbillid")).get(0).getString("itemname"));
+                    row.put("model",rowsdatailMap.get(row.getString("st_stockbillid")).get(0).getString("model"));
+                    row.put("sku",rowsdatailMap.get(row.getString("st_stockbillid")).get(0).getString("sku"));
+                }else{
+                    row.put("itemno","");
+                    row.put("itemname","");
+                    row.put("model","");
+                    row.put("sku","");
+                }
+            }
+
+        }
+        if(billtypes.contains("销售出库")){
+            //querySQL.addJoinTable(JOINTYPE.left, "(SELECT st_stockbillid,itemno,itemname,model,sku,siteid FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY st_stockbillid ORDER BY st_stockbill_itemsid ASC) AS szrowno FROM st_stockbill_items) t WHERE szrowno = 1)", "t11", "t1.st_stockbillid=t11.st_stockbillid and t1.siteid = t11.siteid","itemno","itemname","model","sku");
+            QuerySQL expressformQuery = SQLFactory.createQuerySQL(this, "expressform", "*").setTableAlias("t1");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "sa_expressform_stockbill", "t2", "t2.expressformid = t1.expressformid");
+            expressformQuery.addJoinTable(JOINTYPE.inner, "st_stockbill", "t3", "t3.st_stockbillid = t2.st_stockbillid","tracknumber","st_stockbillid");
+            expressformQuery.setWhere("t3.st_stockbillid", ids);
+            expressformQuery.setOrderBy("t1.createdate asc");
+            expressformQuery.setDistinct(true);
+            Rows expressformrows = expressformQuery.query();
+            RowsMap expressformrowsMap = expressformrows.toRowsMap("st_stockbillid");
+            for(Row row :rows){
+                if(expressformrowsMap.containsKey(row.getString("st_stockbillid"))){
+                    row.put("expressform_mailno",expressformrowsMap.get(row.getString("st_stockbillid")).get(0).getString("mailno"));
+                    row.put("expressform_txlogisticid",expressformrowsMap.get(row.getString("st_stockbillid")).get(0).getString("txlogisticid"));
+                }else{
+                    row.put("expressform_mailno","");
+                    row.put("expressform_txlogisticid","");
+
+                }
+            }
+
+        }
+
 
 
         return getSucReturnObject().setData(rows).toString();

+ 7 - 3
src/custom/restcontroller/webmanage/sale/workorder/workorder.java

@@ -1063,7 +1063,7 @@ public class workorder extends Controller {
         }
 
         if (rows.get(0).getString("type").equals("安装")) {
-            Rows itemrows = dbConnect.runSqlQuery("select t1.sku,t3.sa_customersid,t5.sa_agentsid customeragentsid,t3.name,t3.phonenumber,t3.province,t3.city,t3.county,t3.address,t1.sku,ifnull(t2.warrantyday,0) warrantyday,t4.sa_agentsid,t3.sys_enterpriseid,t6.sa_agentsid sa_agentsid_to,t6.agentnum toagentnum,t7.itemid from sa_serviceorderitems t1 " +
+            Rows itemrows = dbConnect.runSqlQuery("select t1.sku,t3.sa_customersid,t5.sa_agentsid customeragentsid,t5.name,t5.phonenumber,t3.province,t3.city,t3.county,t5.address,t1.sku,ifnull(t2.warrantyday,0) warrantyday,t4.sa_agentsid,t3.sys_enterpriseid,t6.sa_agentsid sa_agentsid_to,t6.agentnum toagentnum,t7.itemid from sa_serviceorderitems t1 " +
                     " inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid " +
                     " left join sa_serviceorder t3 on t1.sa_serviceorderid=t3.sa_serviceorderid and t1.siteid=t3.siteid " +
                     " left join sa_agents t4 on t3.sys_enterpriseid=t4.sys_enterpriseid and t3.siteid=t4.siteid " +
@@ -1132,10 +1132,14 @@ public class workorder extends Controller {
                 insertSQL.setValue("enddate", formattedDate);
                 insertSQL.setValue("begdate", getDateTime_Str());
                 insertSQL.setValue("itemid",  itemrows.get(0).getLong("itemid"));
-
-                sqlList.add(insertSQL.getSQL());
+                if (dbConnect.runSqlQuery("select * from sa_warrantycard where sku='" + itemrows.get(0).getString("sku") + "' and siteid='" + siteid + "' and isvoid=0").isNotEmpty()) {
+                    return getErrReturnObject().setErrMsg("该序列号已安装,无法再次安装").toString();
+                }else{
+                    sqlList.add(insertSQL.getSQL());
+                }
             }
 
+
         }
 
         sqlList.add("update sa_workorder set status='已完工',finishby='" + username