소스 검색

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

# Conflicts:
#	watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl
liujiankang 5 년 전
부모
커밋
7d9a1782ff
23개의 변경된 파일510개의 추가작업 그리고 126개의 파일을 삭제
  1. 13 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java
  2. 21 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerStatisticalInfo.java
  3. 28 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java
  4. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrderItem.java
  5. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/tools/LogisticsInfo.java
  6. 10 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java
  7. 3 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java
  8. 10 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  9. 10 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java
  10. 1 6
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml
  11. 43 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  12. 7 2
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java
  13. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml
  14. 2 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/order/mapper/logisticsInfoMapper.xml
  15. 58 43
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  16. 45 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java
  17. 94 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java
  18. 4 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_relation.ftl
  19. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl
  20. 6 1
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/list_wait_send_order.ftl
  21. 113 56
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/print_order.ftl
  22. 19 7
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl
  23. 2 0
      watero-rst-web/src/main/webapp/common/lib/jquery/1.9.1/rst_brcode.js

+ 13 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java

@@ -1,5 +1,6 @@
 package com.iamberry.rst.core.cm;
 
+import com.iamberry.rst.core.fm.ComplaintSignclosedInfo;
 import com.iamberry.rst.core.fm.SignclosedProductInfo;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -112,9 +113,13 @@ public class CustomerCommon implements Serializable {
      /*订单集合*/
      private List<SalesOrder> salesOrderList = new ArrayList<>();
 
+
     //售后签收产品表
     private List<SignclosedProductInfo> signclosedProductInfos = new ArrayList<SignclosedProductInfo>();
 
+    //售后签收信息表
+    private List<ComplaintSignclosedInfo> signclosedInfos = new ArrayList<ComplaintSignclosedInfo>();
+
     public String getSalesOrderId() {
         return salesOrderId;
     }
@@ -470,4 +475,12 @@ public class CustomerCommon implements Serializable {
     public void setSignclosedProductInfos(List<SignclosedProductInfo> signclosedProductInfos) {
         this.signclosedProductInfos = signclosedProductInfos;
     }
+
+    public List<ComplaintSignclosedInfo> getSignclosedInfos() {
+        return signclosedInfos;
+    }
+
+    public void setSignclosedInfos(List<ComplaintSignclosedInfo> signclosedInfos) {
+        this.signclosedInfos = signclosedInfos;
+    }
 }

+ 21 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerStatisticalInfo.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.core.cm;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.iamberry.rst.core.fm.ComplaintSignclosedInfo;
 import com.iamberry.rst.core.fm.SignclosedProductInfo;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -49,10 +50,14 @@ public class CustomerStatisticalInfo implements Serializable {
     private String procMethodName;//处理详细方式
     private String postageString;//邮费信息
     private String typeName;//产品类型名称
+    private String signclosedProductInfo;//产品名称
 
     //售后签收产品表
     private List<SignclosedProductInfo> signclosedProductInfos = new ArrayList<SignclosedProductInfo>();
 
+    //售后签收信息表
+    private List<ComplaintSignclosedInfo> signclosedInfos = new ArrayList<ComplaintSignclosedInfo>();
+
     public Integer getCustomerId() {
         return customerId;
     }
@@ -324,4 +329,20 @@ public class CustomerStatisticalInfo implements Serializable {
     public void setTypeName(String typeName) {
         this.typeName = typeName;
     }
+
+    public List<ComplaintSignclosedInfo> getSignclosedInfos() {
+        return signclosedInfos;
+    }
+
+    public void setSignclosedInfos(List<ComplaintSignclosedInfo> signclosedInfos) {
+        this.signclosedInfos = signclosedInfos;
+    }
+
+    public String getSignclosedProductInfo() {
+        return signclosedProductInfo;
+    }
+
+    public void setSignclosedProductInfo(String signclosedProductInfo) {
+        this.signclosedProductInfo = signclosedProductInfo;
+    }
 }

+ 28 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -168,6 +168,10 @@ public class SalesOrder implements Serializable {
     private List<ComplaintDetectInfo> complaintDetectInfoList;
 
     private Integer salesPostageCost;//邮费成本
+
+    private Integer salesIsSublist;//是否属于子单 1否 2是
+    private Integer salesBelongOrderId;//所属订单
+    private List<SalesOrderItem> suSalesOrderItemList = new ArrayList<SalesOrderItem>();
     public Integer getSalesOldOrderStatus() {
         return salesOldOrderStatus;
     }
@@ -990,4 +994,28 @@ public class SalesOrder implements Serializable {
     public void setDealerAdminId(Integer dealerAdminId) {
         this.dealerAdminId = dealerAdminId;
     }
+
+    public Integer getSalesIsSublist() {
+        return salesIsSublist;
+    }
+
+    public void setSalesIsSublist(Integer salesIsSublist) {
+        this.salesIsSublist = salesIsSublist;
+    }
+
+    public Integer getSalesBelongOrderId() {
+        return salesBelongOrderId;
+    }
+
+    public void setSalesBelongOrderId(Integer salesBelongOrderId) {
+        this.salesBelongOrderId = salesBelongOrderId;
+    }
+
+    public List<SalesOrderItem> getSuSalesOrderItemList() {
+        return suSalesOrderItemList;
+    }
+
+    public void setSuSalesOrderItemList(List<SalesOrderItem> suSalesOrderItemList) {
+        this.suSalesOrderItemList = suSalesOrderItemList;
+    }
 }

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrderItem.java

@@ -39,6 +39,7 @@ public class SalesOrderItem implements Serializable {
     private String salesDealCode;   //交易号
     private Integer itemReturnNum;   //退货数量
     private String typeName;   //产品类型名称
+    private Integer salesBelongOrderId;   //所属订单
 
     public Integer getItemIsSource() {
         return itemIsSource;
@@ -239,4 +240,12 @@ public class SalesOrderItem implements Serializable {
     public void setTypeName(String typeName) {
         this.typeName = typeName;
     }
+
+    public Integer getSalesBelongOrderId() {
+        return salesBelongOrderId;
+    }
+
+    public void setSalesBelongOrderId(Integer salesBelongOrderId) {
+        this.salesBelongOrderId = salesBelongOrderId;
+    }
 }

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/LogisticsInfo.java

@@ -16,6 +16,7 @@ public class LogisticsInfo implements Serializable {
     //备注
     private String logisticsReamk;
     private Date createDate;//创建时间
+    private Integer logisticsIsLashSingle;//是否支持子母单 1是 2否
 
     public Integer getLogisticsId() {
         return logisticsId;
@@ -72,4 +73,12 @@ public class LogisticsInfo implements Serializable {
     public void setCreateDate(Date createDate) {
         this.createDate = createDate;
     }
+
+    public Integer getLogisticsIsLashSingle() {
+        return logisticsIsLashSingle;
+    }
+
+    public void setLogisticsIsLashSingle(Integer logisticsIsLashSingle) {
+        this.logisticsIsLashSingle = logisticsIsLashSingle;
+    }
 }

+ 10 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java

@@ -478,4 +478,14 @@ public interface SalesOrderService {
      * 根据订单号修改邮费成本
      */
     Integer updateSalesOrderBySalesPostNum(SalesOrder salesOrder);
+
+    /**
+     * 根据收件人信息查询字母单
+     */
+    List<SalesOrder> listSalesOrderByAddr(SalesOrder salesOrder);
+
+    /**
+     *查询子订单数量
+     */
+    List<SalesOrder> listSublistCount(Integer salesId);
 }

+ 3 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -1414,7 +1414,9 @@ public class CustomerServiceImpl implements CustomerService {
             List<ClosedProdcue> closedProdcueList = closedProdcueMapper.listclosedProdcue(closedProdcue);
             c.setClosedProdcues(closedProdcueList);
             //查询实际签收产品
-            c.setSignclosedProductInfos(complaintSignclosedInfoMapper.listSignclosedProductById(c.getCustomerId()));
+            ComplaintSignclosedInfo record = new ComplaintSignclosedInfo();
+            record.setSignclosedCustomerId(c.getCustomerId());
+            c.setSignclosedInfos(complaintSignclosedInfoMapper.listSignclosed(record));
         }
         return customerCommonList;
     }

+ 10 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -552,7 +552,6 @@ public class SalesOrderServiceImpl implements SalesOrderService {
                     }
                     listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
                     listSalesOrder.get(i).setSalesId(null);
-
                     calculationTotal(listSalesOrder.get(i),listSalesOrder.get(i).getSalesOrderItemList());
                     orderNum = salesOrderMapper.addSalesOrder(listSalesOrder.get(i));
                     if (orderNum <= 0) {
@@ -1635,6 +1634,16 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         return salesOrderMapper.updateSalesOrderBySalesPostNum(salesOrder);
     }
 
+    @Override
+    public List<SalesOrder> listSalesOrderByAddr(SalesOrder salesOrder) {
+        return salesOrderMapper.listSalesOrderByAddr(salesOrder);
+    }
+
+    @Override
+    public List<SalesOrder> listSublistCount(Integer salesId) {
+        return salesOrderMapper.listSublistCount(salesId);
+    }
+
     /***
      * 计算金额
      * @param salesOrder

+ 10 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java

@@ -391,4 +391,14 @@ public interface SalesOrderMapper {
      * 根据订单号修改邮费成本
      */
     Integer updateSalesOrderBySalesPostNum(SalesOrder salesOrder);
+
+    /**
+     * 根据收件人信息查询字母单
+     */
+    List<SalesOrder> listSalesOrderByAddr(SalesOrder salesOrder);
+
+    /**
+     *查询子订单数量
+     */
+    List<SalesOrder> listSublistCount(Integer salesId);
 }

+ 1 - 6
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerInfoMapper.xml

@@ -521,7 +521,7 @@
         and cd.complete_cut_time &lt; now()   AND cc.procTypeId = 3 and cd.detect_placeorder = 1  and detect_state != 32 AND detect_state != 36
       </if>
       <if test="afterState != null and afterState == 11">
-        and  cc.procTypeId = 2  AND cs.signclosed_is_receiving = 2 AND (soi.sales_shipping_status = 0 OR soi.sales_shipping_status is NULL)
+        and  cc.procTypeId = 2  AND cs.signclosed_is_receiving = 2 AND (soi.sales_shipping_status = 0 OR soi.sales_shipping_status is NULL) AND  soi.sales_status != 3
       </if>
       <if test="warehouseDate != null">
         and cs.signclosed_date = #{warehouseDate}
@@ -904,10 +904,6 @@ ELSE
 	'未知'
 END) AS customerSecondaryCustomer,
 sa.admin_name AS adminName,
-csi.sendback_logistics_company AS relationBackLogisticsCompany,
-csi.sendback_logistics_no AS relationBackLogisticsNo,
-csi.sendback_sign_time AS relationBackReceiptDate,
-csi.sendback_status AS relationBackStatus,
 cr.relation_send_logistics_company AS relationSendLogisticsCompany,
 cr.relation_send_logistics_no AS relationSendLogisticsNo,
 cr.relation_factory_costs AS relationFactoryCosts,
@@ -926,7 +922,6 @@ LEFT JOIN tb_rst_sys_admin sa ON c.admin_id = sa.admin_id
 LEFT JOIN tb_rst_cm_relation cr ON cr.customer_id = c.customer_id
 LEFT JOIN tb_rst_cm_proc_method cpm ON cpm.proc_method_id = cr.proc_method_id
 LEFT JOIN tb_rst_cm_proc_type cpt ON cpt.proc_type_id = cpm.proc_type_id
-LEFT JOIN tb_rst_cm_sendback_info csi ON csi.relation_id = cr.relation_id
 <where>
   <if test="companyId != null and companyId!=''">
     c.company_id = #{companyId}

+ 43 - 3
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -295,6 +295,7 @@
         LEFT JOIN tb_rst_sales_order_item oi ON tb_rst_sales_order_info.sales_id = oi.item_order_id
         <where>
             tb_rst_sales_order_info.sales_batch_id != 'KS00000000000001'
+            AND sales_is_sublist = 1
             <if test="salesIsDownload !=null and salesIsDownload !=''">
                 AND sales_is_download = #{salesIsDownload}
             </if>
@@ -508,6 +509,9 @@
           <if test="itemOrderId !=null and itemOrderId !=''">
               AND item_order_id = #{itemOrderId}
           </if>
+          <if test="salesBelongOrderId !=null and salesBelongOrderId !=''">
+              AND oi.sales_belong_orderId = #{salesBelongOrderId}
+          </if>
       </where>
   </select>
 
@@ -666,7 +670,9 @@
                 sales_admin_id,
                 sales_customer_id,
                 sales_address_postcode,
-                sales_warehouse_id
+                sales_warehouse_id,
+                sales_is_sublist,
+                sales_belong_orderId
             )
         values
             (
@@ -713,7 +719,9 @@
                 #{salesAdminId},
                 #{salesCustomerId},
                 #{salesAddressPostcode},
-                #{salesWarehouseId}
+                #{salesWarehouseId},
+                #{salesIsSublist},
+                #{salesBelongOrderId}
             )
   </insert>
 
@@ -922,6 +930,12 @@
       <if test="salesAddressPostcode != null and salesAddressPostcode != ''">
           sales_address_postcode = #{salesAddressPostcode}
       </if >
+      <if test="salesIsSublist != null and salesIsSublist != ''">
+          sales_is_sublist = #{salesIsSublist}
+      </if >
+      <if test="salesBelongOrderId != null and salesBelongOrderId != ''">
+          sales_belong_orderId = #{salesBelongOrderId}
+      </if >
     </set>
     where sales_id = #{salesId}
     <if test="salesOldOrderStatus != null">
@@ -1346,7 +1360,9 @@
           sales_shipping_status = #{salesShippingStatus},
           sales_orderId = #{salesOrderId},
           sales_distribution_time = NOW(),
-          sales_warehouse_id = #{salesWarehouseId}
+          sales_warehouse_id = #{salesWarehouseId},
+          sales_is_sublist = #{salesIsSublist},
+          sales_belong_orderId = #{salesBelongOrderId}
         WHERE
           sales_shipping_status = 0
         AND
@@ -1494,6 +1510,7 @@
             GROUP BY xxsoi.sales_id
         )xxnewsoi ON tt.sales_id = xxnewsoi.sales_id
         <where>
+            sales_status != 3
             <if test="salesShippingStatus !=null">
                 AND tt.sales_shipping_status = #{salesShippingStatus}
             </if>
@@ -1906,4 +1923,27 @@
         </set>
         where sales_post_num = #{salesPostNum}
     </update>
+<!--根据收件人信息查询字母单-->
+    <select id="listSalesOrderByAddr" parameterType="SalesOrder" resultType="SalesOrder">
+        SELECT
+            *
+        FROM
+            tb_rst_sales_order_info
+        WHERE
+            sales_is_sublist = 1
+        AND sales_shipping_status IN (0, 3, 4, 11)
+        AND sales_status IN (1, 2)
+        AND sales_address_info = #{salesAddressInfo}
+        AND sales_address_tel = #{salesAddressTel}
+        AND sales_address_name = #{salesAddressName}
+    </select>
+<!--查询子订单数量-->
+    <select id="listSublistCount" parameterType="Integer" resultType="SalesOrder">
+        SELECT
+            *
+        FROM
+            tb_rst_sales_order_info
+        WHERE
+            sales_belong_orderId = #{salesId}
+    </select>
 </mapper>

+ 7 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java

@@ -478,8 +478,13 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
                 }
                 break;
             case 34:
-                detectInfo.setDetectState(35);
-                detectInfo.setCompleteCutTime(date.getTime());
+                if(detectInfo.getDetectProcessingResults() == null || detectInfo.getDetectProcessingResults() == 2 ){//免费维修
+                    detectInfo.setDetectState(35);
+                    detectInfo.setCompleteCutTime(date.getTime());
+                }
+                if(detectInfo.getDetectProcessingResults() == 5){//原机退回
+                    detectInfo.setDetectState(33);
+                }
                 break;
             case 37:
                 if(detectInfo.getDetectProcessingResults() == 1){//付费维修

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml

@@ -393,7 +393,7 @@
     LEFT JOIN tb_rst_cm_proc_type cc ON cc.proc_type_id = tb_rst_cm_proc_method.proc_type_id
     LEFT JOIN tb_rst_complaint_signclosed s on c.customer_id = s.signclosed_customer_id
     LEFT JOIN tb_rst_sales_order_info soi ON soi.sales_customer_id = c.customer_id
-    WHERE cc.proc_type_id = 2 AND s.signclosed_is_receiving = 2 AND (soi.sales_shipping_status = 0 OR soi.sales_shipping_status is NULL)
+    WHERE cc.proc_type_id = 2 AND s.signclosed_is_receiving = 2 AND ((soi.sales_shipping_status = 0 and soi.sales_status != 3) OR soi.sales_shipping_status is NULL)
     GROUP BY c.customer_id) cs
     <where>
       <if test="adminId != null and adminId != ''" >

+ 2 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/order/mapper/logisticsInfoMapper.xml

@@ -17,7 +17,8 @@
         t.logistics_efast_code,
         t.logistics_onehundred_code,
         t.logistics_reamk,
-        t.create_date
+        t.create_date,
+        t.logistics_is_lash_single
     </sql>
     <select id="getLogisticsInfoList" resultMap="BaseResultMap" parameterType="LogisticsInfo" >
         select

+ 58 - 43
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -1828,9 +1828,10 @@ public class AdminCustomerController {
                     "问题类别", "小类名称", "客诉问题", "处理过程", "购买日期",
                     "处理方式","处理结果", "销售公司", "销售渠道", "产品型号", "产品颜色","产品类型",
                     "产品数量", "寄回快递", "寄回单号", "签收日期",
-                    "状态", "寄出快递", "寄出快递", "开箱损", "二次客诉", "跟进客服", "工厂报价", "客户报价", "邮费信息"
+                    "状态", "寄出快递", "寄出单号", "开箱损", "二次客诉", "跟进客服", "工厂报价", "客户报价", "邮费信息"
             };
             List<CustomerStatisticalInfo> customerStatisticalInfoList = new ArrayList<>();
+            SimpleDateFormat sdf4=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             for (CustomerStatisticalInfo customerInfo : customerList) {
                 long startTime=System.currentTimeMillis();   //获取开始时间
                 s++;
@@ -1848,49 +1849,58 @@ public class AdminCustomerController {
                             for (SalesOrder salesOrder : common.getSalesOrderList()) {
                                 if (salesOrder.getSalesOrderItemList().size() > 0) {
                                     for (SalesOrderItem salesOrderItem : salesOrder.getSalesOrderItemList()) {
-                                        //将数据copy到新容器
-                                        CustomerStatisticalInfo customers = new CustomerStatisticalInfo();
-                                        BeanUtils.copyProperties(customer, customers);
-                                        customers.setRelationBackLogisticsCompany(customerInfo.getRelationBackLogisticsCompany());
-                                        customers.setRelationBackLogisticsNo(customerInfo.getRelationBackLogisticsNo());
-                                        customers.setRelationSendLogisticsCompany(customerInfo.getRelationSendLogisticsCompany());
-                                        customers.setRelationSendLogisticsNo(customerInfo.getRelationSendLogisticsNo());
-                                        customers.setRelationBackStatus(String.valueOf(customerInfo.getRelationBackStatus()));
-                                                if(customerInfo.getRelationBackReceiptDate() == null){
-                                                    customers.setRelationBackReceiptDate(null);
-                                                }else{
-                                                    customers.setRelationBackReceiptDate(customerInfo.getRelationBackReceiptDate());
+                                        if(common.getSignclosedInfos().size() > 0){
+                                            for(ComplaintSignclosedInfo signclosedInfo : common.getSignclosedInfos()){
+                                                for (SignclosedProductInfo signclosedProductInfo : signclosedInfo.getSignclosedProductInfoList()) {
+                                                    //将数据copy到新容器
+                                                    CustomerStatisticalInfo customers = new CustomerStatisticalInfo();
+                                                    BeanUtils.copyProperties(customer, customers);
+                                                    customers.setRelationBackLogisticsCompany(signclosedInfo.getSignclosedLogistics());
+                                                    customers.setRelationBackLogisticsNo(signclosedInfo.getSignclosedLogisticsNumber());
+                                                    customers.setRelationBackStatus(String.valueOf(signclosedInfo.getSignclosedIsReceiving()));
+                                                    if(signclosedInfo.getSignclosedDate() == null){
+                                                        customers.setRelationBackReceiptDate(null);
+                                                    }else{
+                                                        customers.setRelationBackReceiptDate(sdf4.format(signclosedInfo.getSignclosedDate()));
+                                                    }
+                                                    customers.setSignclosedProductInfo(signclosedProductInfo.getProductName()+"("+signclosedProductInfo.getColorName()+")"+"*"+signclosedProductInfo.getProductNum());
+                                                    customers.setItemProductColor(signclosedProductInfo.getColorName());
+                                                    customers.setRelationSendLogisticsCompany(salesOrder.getSalesPostNum());
+                                                    customers.setRelationSendLogisticsNo(salesOrder.getSalesPostFirm());
+
+                                                    customers.setSalesPayTime(salesOrder.getSalesPayTime());
+                                                    customers.setItemProductName(salesOrderItem.getItemProductName());
+
+                                                    customers.setItemNum(String.valueOf(salesOrderItem.getItemNum()));
+                                                    if(salesOrderItem.getTypeName() != null || !salesOrderItem.getTypeName().equals("")){
+                                                        customers.setTypeName(String.valueOf(salesOrderItem.getTypeName()));
+                                                    }
+                                                    customers.setRelationFactoryCosts(customerInfo.getRelationFactoryCosts());
+                                                    customers.setRelationCustomerCosts(customerInfo.getRelationCustomerCosts());
+                                                    customers.setSignclosedProductInfos(common.getSignclosedProductInfos());
+                                                    String postageString = "";
+                                                    //查询邮费信息
+                                                    List<PostageInfo> listPostageInfo = customerService.listPostageInfo(customers.getRelationId());
+                                                    if(listPostageInfo.size() > 0){
+                                                        for(PostageInfo postageInfo : listPostageInfo){
+                                                            String state = "";
+                                                            if(postageInfo.getPostageStatus() == 1){
+                                                                state = "未申请";
+                                                            }
+                                                            if(postageInfo.getPostageStatus() == 2){
+                                                                state = "已申请(待转账)";
+                                                            }
+                                                            if(postageInfo.getPostageStatus() == 3){
+                                                                state = "已转账";
+                                                            }
+                                                            postageString = postageString+"状态:"+state+" ,金额:"+postageInfo.getPostageAmount()/100+" ,支付宝账号:"+postageInfo.getPostageAlipay()+";";
+                                                        }
+                                                    }
+                                                    customers.setPostageString(postageString);
+                                                    customerStatisticalInfoList.add(customers);
                                                 }
-                                        customers.setSalesPayTime(salesOrder.getSalesPayTime());
-                                        customers.setItemProductName(salesOrderItem.getItemProductName());
-                                        customers.setItemProductColor(salesOrderItem.getItemProductColor());
-                                        customers.setItemNum(String.valueOf(salesOrderItem.getItemNum()));
-                                        if(salesOrderItem.getTypeName() != null || !salesOrderItem.getTypeName().equals("")){
-                                            customers.setTypeName(String.valueOf(salesOrderItem.getTypeName()));
-                                        }
-                                        customers.setRelationFactoryCosts(customerInfo.getRelationFactoryCosts());
-                                        customers.setRelationCustomerCosts(customerInfo.getRelationCustomerCosts());
-                                        customers.setSignclosedProductInfos(common.getSignclosedProductInfos());
-                                        String postageString = "";
-                                        //查询邮费信息
-                                        List<PostageInfo> listPostageInfo = customerService.listPostageInfo(customers.getRelationId());
-                                        if(listPostageInfo.size() > 0){
-                                            for(PostageInfo postageInfo : listPostageInfo){
-                                                String state = "";
-                                                if(postageInfo.getPostageStatus() == 1){
-                                                    state = "未申请";
-                                                }
-                                                if(postageInfo.getPostageStatus() == 2){
-                                                    state = "已申请(待转账)";
-                                                }
-                                                if(postageInfo.getPostageStatus() == 3){
-                                                    state = "已转账";
-                                                }
-                                                postageString = postageString+"状态:"+state+" ,金额:"+postageInfo.getPostageAmount()/100+" ,支付宝账号:"+postageInfo.getPostageAlipay()+";";
                                             }
                                         }
-                                        customers.setPostageString(postageString);
-                                        customerStatisticalInfoList.add(customers);
                                     }
                                 } else {
                                     customerStatisticalInfoList.add(customer);
@@ -2015,13 +2025,18 @@ public class AdminCustomerController {
             row.createCell(11).setCellValue(customerStatisticalInfo.getCustomerIsSolve() == null ? null : customerStatisticalInfo.getCustomerIsSolve());
             row.createCell(12).setCellValue(customerStatisticalInfo.getCompanyName() == null ? null : customerStatisticalInfo.getCompanyName());
             row.createCell(13).setCellValue(customerStatisticalInfo.getStoreName() == null ? null : customerStatisticalInfo.getStoreName());
-            StringBuffer sb = new StringBuffer("");
+            /*StringBuffer sb = new StringBuffer("");
             if(customerStatisticalInfo.getSignclosedProductInfos().size() > 0){
                 for(SignclosedProductInfo sign : customerStatisticalInfo.getSignclosedProductInfos()){
                     sb.append(sign.getProductName()+"("+sign.getColorName()+")"+"*"+sign.getProductNum()+";");
                 }
+            }*/
+            if(customerStatisticalInfo.getSignclosedProductInfo() == null){
+                row.createCell(14).setCellValue("");
+            }else{
+                row.createCell(14).setCellValue(customerStatisticalInfo.getSignclosedProductInfo().toString());
             }
-            row.createCell(14).setCellValue(sb.toString());
+
 
             row.createCell(15).setCellValue(customerStatisticalInfo.getItemProductColor() == null ? null : customerStatisticalInfo.getItemProductColor());
             row.createCell(16).setCellValue(customerStatisticalInfo.getTypeName() == null ? null : customerStatisticalInfo.getTypeName());

+ 45 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -1109,6 +1109,11 @@ public class AdminSalesOrderController {
                    newOrder.setSalesOrderId(salesOrder.getSalesDealCode());
                    newOrder.setSalesShippingStatus(11);
                    newOrder.setSalesWarehouseId(warehouseId);
+
+                   /*判断主订单是否是其它订单的子订单 2019-10-08新需求     state*/
+                   newOrder = suSalesOrder(newOrder);
+                   /*判断主订单是否是其它订单的子订单 2019-10-08新需求     end*/
+
                    flag = salesOrderService.noticeDistribution(newOrder);
                    if(flag < 1){
                        errorId.append(salesOrder.getSalesDealCode()).append(",");
@@ -1126,6 +1131,11 @@ public class AdminSalesOrderController {
                        newOrder.setSalesOrderId(so.getSalesDealCode());
                        newOrder.setSalesShippingStatus(11);
                        newOrder.setSalesWarehouseId(warehouseId);
+
+                       /*判断主订单是否是其它订单的子订单 2019-10-08新需求     state*/
+                       newOrder = suSalesOrder(newOrder);
+                       /*判断主订单是否是其它订单的子订单 2019-10-08新需求     end*/
+
                        flag = salesOrderService.noticeDistribution(newOrder);
                        if(flag < 1){
                            errorId.append(so.getSalesDealCode()).append(",");
@@ -1147,6 +1157,41 @@ public class AdminSalesOrderController {
         return rj;
     }
 
+    public SalesOrder suSalesOrder(SalesOrder salesOrder){
+        boolean is = false;
+        SalesOrder order  = new SalesOrder();
+        if(salesOrder.getSalesId() != null){
+            order = salesOrderService.getSalesOrderById(salesOrder.getSalesId());
+            if(order != null && order.getSalesOrderStatus() !=null && order.getSalesOrderStatus() == 1){
+                is = true;
+            }
+        }
+        //查询物流方式是否支持子母单
+        LogisticsInfo logisticsInfo = new LogisticsInfo();
+        logisticsInfo.setLogisticsRstCode(order.getSalesPostFirm());
+        List<LogisticsInfo> logis = logisticsInfoService.getLogisticsInfoList(logisticsInfo);
+        if(logis != null && logis.size() >0){
+            if(logis.get(0).getLogisticsIsLashSingle() == 2){
+                is = false;
+            }
+        }
+        if(is){
+            SalesOrder isOrder = new SalesOrder();
+            isOrder.setSalesAddressInfo(order.getSalesAddressInfo());
+            isOrder.setSalesAddressTel(order.getSalesAddressTel());
+            isOrder.setSalesAddressName(order.getSalesAddressName());
+            List<SalesOrder> listOrder = salesOrderService.listSalesOrderByAddr(isOrder);
+            if(listOrder != null &&  listOrder.size() > 0){
+                salesOrder.setSalesIsSublist(2);
+                salesOrder.setSalesBelongOrderId(listOrder.get(0).getSalesId());
+            }else{
+                salesOrder.setSalesIsSublist(1);
+            }
+        }
+        salesOrder.setSalesPostFirm(null);
+        return salesOrder;
+    }
+
     /**
      * 通知配货
      * @param request

+ 94 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -39,7 +39,7 @@ import java.io.FileWriter;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.*;
-
+import com.alibaba.fastjson.JSONArray;
 /**
  * @author 献
  * @company 深圳爱贝源科技有限公司
@@ -119,6 +119,10 @@ public class AwaitSendController {
                 //查询封装维修编号
                 List<ComplaintDetectInfo> listDetect  = complaintDetectInfoService.listComplaintDetectBySalesId(temp.getSalesOrderId());
                 temp.setComplaintDetectInfoList(listDetect);
+                //查询子订单订单项
+                SalesOrderItem itemTwo = new SalesOrderItem();
+                itemTwo.setSalesBelongOrderId(temp.getSalesId());
+                temp.setSuSalesOrderItemList(salesOrderService.listSalesOrderItem(itemTwo));
             }
         }
         int errorOrderNum = 0;
@@ -190,6 +194,11 @@ public class AwaitSendController {
                     }
                 }
                 temp.setSalesOrderItemList(items);
+
+                //查询子订单订单项
+                SalesOrderItem itemTwo = new SalesOrderItem();
+                itemTwo.setSalesBelongOrderId(temp.getSalesId());
+                temp.setSuSalesOrderItemList(salesOrderService.listSalesOrderItem(itemTwo));
             }
         }
 
@@ -345,7 +354,15 @@ public class AwaitSendController {
         commodity.add(product1);
         eOrderRequestData.Commodity = (commodity);
         eOrderRequestData.Weight = (colorIsWeight/1000);
-        eOrderRequestData.Quantity = (1);
+
+        //如果支持字母件则按照子母件方式传值
+       List<SalesOrder> orders = salesOrderService.listSublistCount(salesId);
+        if(logisticsInfo.getLogisticsIsLashSingle() == 1 && orders != null && orders.size() > 0){
+            eOrderRequestData.Quantity = (orders.size() + 1);
+        }else{
+            eOrderRequestData.Quantity = (1);
+        }
+
         eOrderRequestData.IsReturnPrintTemplate = (1);
         try {
             // 向第三方系统【快递鸟】提交订单数据,第三方系统会检测订单是否重复
@@ -387,6 +404,81 @@ public class AwaitSendController {
                         fileWriter.close();
                     }
                 }
+
+                /*子母单设置 state*/
+                if(logisticsInfo.getLogisticsIsLashSingle() == 1 && orders != null && orders.size() > 0){
+                    //获取子单打印模板集合
+                    JSONArray subPrintTemplates = jsonObject.getJSONArray("SubPrintTemplates");
+                    //获取子单物流单号集合
+                    JSONArray subOrders = jsonObject.getJSONArray("SubOrders");
+                    //替换子单产品名称
+                    JSONArray subTemplates = new JSONArray();
+                    if(orders.size() == subPrintTemplates.size() && subPrintTemplates.size() == subOrders.size()){
+                        // 整个产品的重量
+                        Double productWeight = 0.00;
+                        SalesOrderItem it = new SalesOrderItem();
+                        for(int i = 0 ;i < subPrintTemplates.size(); i++){
+                            String subTemplate = subPrintTemplates.getString(i);
+                            StringBuilder productName = new StringBuilder();
+                            int productsquantity = 0;
+
+                            it.setItemOrderId(orders.get(i).getSalesId());
+                            List<SalesOrderItem> its = salesOrderService.listSalesOrderItem(it);
+                            for (SalesOrderItem temp : its) {
+                                productName.append(temp.getProductAbbreviation())
+                                        .append("(").append(temp.getColorAbbreviation()).append(")*")
+                                        .append(temp.getItemNum()).append(";");
+                                if(temp.getColorIsWeight() != null){
+                                    productWeight += temp.getColorIsWeight();
+                                }
+                                productsquantity += temp.getItemNum();
+                            }
+                            //替换产品名
+                            subTemplate = subTemplate.replace(uuid, productName.toString());
+                            //替换订单号
+                            subTemplate = subTemplate.replace(orderId, orders.get(i).getSalesOrderId());
+                            //替换备注
+                            subTemplate = subTemplate.replace(salesId.toString(), orders.get(i).getSalesId().toString());
+                            subTemplates.add(subTemplate);
+
+                            //修改订单状态
+                            // 订单发货 : 仅针对已经通知通知配货的订单(如果已发货,此处不修改对应的订单数据)
+                            SalesOrder order = new SalesOrder();
+                            order.setSalesPostNum(subOrders.get(i).toString());
+                            order.setSalesShippingStatus(1);
+                            order.setSalesSendTime(new Date());
+                            order.setSalesId(orders.get(i).getSalesId());
+                            order.setSalesOldOrderStatus(11);
+                            Integer msg = salesOrderService.updateSalesOrder(order);
+                            if (msg == null || msg <= 0) {
+                                return ResponseJson.getFAILURE().addResponseKeyValue("error", "子订单状态非通知配货,无法打印");
+                            }
+
+
+                            File fileTwo = new File(dir.getAbsolutePath() + File.separator + orders.get(i).getSalesOrderId() + ".txt");
+                            if (!fileTwo.createNewFile()) {
+                                return ResponseJson.getFAILURE().addResponseKeyValue("error", "创建子订单文件失败");
+                            }
+                            try {
+                                fileWriter = new FileWriter(fileTwo, false);
+                                fileWriter.write(subTemplates.toString());
+                            } catch (Exception e) {
+                                LOGGER.error("", e);
+                            } finally {
+                                if (fileWriter != null) {
+                                    fileWriter.close();
+                                }
+                            }
+                        }
+                        JSONObject jsonObject2 = JSONObject.parseObject(json);
+                        jsonObject2.put("SubPrintTemplates",subTemplates);
+                        json = jsonObject2.toString();
+                    }else{
+                        // 获取电子面单失败
+                        LOGGER.error("{} 获取电子面单失败,原因:{}", orderId, "子订单数量异常");
+                    }
+                }
+                /*子母单设置 end*/
             } else {
                 // 获取电子面单失败
                 LOGGER.error("{} 获取电子面单失败,原因:{}", orderId, jsonObject.get("Reason"));

+ 4 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/update_relation.ftl

@@ -1116,6 +1116,10 @@
                                         <input type="radio" id="tel-002" name="detectProcessingResults_2" checked value="2">
                                         <label for="tel-002">免费维修</label>
                                     </div>
+                                    <div class="radio-box">
+                                        <input type="radio" id="tel-005" name="detectProcessingResults_2" value="5">
+                                        <label for="tel-005">原机退回</label>
+                                    </div>
                                 </div>
                             </div>
                             <div class="row cl" id="updateDetect_3" style="display: none;">

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl

@@ -313,14 +313,14 @@
                            onclick="add_remark('维修记录','${path}/admin/detect/to_add_content?detectId=${detect.detectId!''}','570','450');">
                             <i class="Hui-iconfont">维修记录</i>
                         </a><br>-->
-                        <#if detect.detectState == 21 ||detect.detectState == 32 || detect.detectState == 36>
+                        <#if detect.detectState == 21 ||detect.detectState == 32 || detect.detectState == 36 || detect.detectState == 39>
                             <#--<#if detect.maintenanceResults == 2>
                                 <a style="text-decoration:none" href="javascript:;" title="QC检测"
                                    onclick="add_remark('QC检测','${path}/admin/detect/to_add_QC?detectId=${detect.detectId!''}','570','450');">
                                     <i class="Hui-iconfont">QC检测</i>
                                 </a><br>
                             </#if>-->
-                            <#if !detect.maintenanceResults?? || detect.maintenanceResults == 2>
+                            <#if !detect.maintenanceResults?? || detect.maintenanceResults == 2 >
                                 <a style="text-decoration:none" href="javascript:;" title="QC检测"
                                    onclick="add_remark('QC检测','${path}/admin/detect/to_add_QC?detectId=${detect.detectId!''}','570','450');">
                                     <i class="Hui-iconfont">QC检测</i>

+ 6 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/list_wait_send_order.ftl

@@ -148,7 +148,12 @@
                 <td style="text-align: left;">
                     <#if o.salesOrderItemList ??>
                         <#list o.salesOrderItemList as d>
-                            <span class="label label-success radius">${(d.itemProductName)!}(${(d.itemProductColor)!})*${(d.itemNum)!}</span>
+                            主:<span class="label label-success radius">${(d.itemProductName)!}(${(d.itemProductColor)!})*${(d.itemNum)!}</span><br>
+                        </#list>
+                    </#if>
+                    <#if o.suSalesOrderItemList ??>
+                        <#list o.suSalesOrderItemList as d>
+                            子:<span class="label label-success radius">${(d.itemProductName)!}(${(d.itemProductColor)!})*${(d.itemNum)!}</span><span style="display: none;">${(d.itemOrderId)!}</span><br>
                         </#list>
                     </#if>
                 </td>

+ 113 - 56
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/print_order.ftl

@@ -60,7 +60,12 @@
                                     <td style="text-align: left;">
                                         <#if o.salesOrderItemList ??>
                                             <#list o.salesOrderItemList as d>
-                                                <span class="label label-success radius">${(d.itemProductName)!}(${(d.itemProductColor)!})*${(d.itemNum)!}</span>
+                                                <#if o.suSalesOrderItemList ??>主:</#if><span class="label label-success radius">${(d.itemProductName)!}(${(d.itemProductColor)!})*${(d.itemNum)!}</span><br>
+                                            </#list>
+                                        </#if>
+                                        <#if o.suSalesOrderItemList ??>
+                                            <#list o.suSalesOrderItemList as d>
+                                                子:<span class="label label-success radius">${(d.itemProductName)!}(${(d.itemProductColor)!})*${(d.itemNum)!}</span><span style="display: none;">${(d.itemOrderId)!}</span><br>
                                             </#list>
                                         </#if>
                                     </td>
@@ -177,68 +182,120 @@
                         // 捕获系统级的错误(比如因为空指针抛出的Exception)
                         re_print(order, tempObject.error_msg, isIE, isFirst);
                     } else {
-                        if (data && data.returnCode && data.returnCode != 200) {
-                            // 捕获业务级的操作(如订单的店铺没有绑定发货人信息)
-                            re_print(order, data.returnMsg.error, isIE, isFirst);
-                        } else {
-                            var res = $.parseJSON(data.returnMsg.json);
-                            if (data.resultMsg && res.Success) {
-                                var html = res.PrintTemplate;
-                                $("#temp-print-order").html(html);
-                                LODOP.PRINT_INIT('打印订单'+orderId);
-                                LODOP.SET_PRINT_PAGESIZE(0, 0, 0,"");
-                                LODOP.ADD_PRINT_HTM("0mm","0mm","100%","100%", $("#temp-print-order").html());
-                                if (isIE) {
-                                    // IE类浏览器,直接打印
-                                    if (LODOP.PRINT()) {
-                                        startPrint(isIE, false);
-                                        $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
-                                    } else {
-                                        // 向后台提交失败打印的信息
-                                        order.attr("printState", "2");
-                                        $(order.find("td")[0]).html("<span style='color: red;'>失败(打印机异常)</span>");
-                                    }
-                                } else {
-                                    // 非IE 浏览器
-                                    if (isFirst) {
-                                        // 如果是第一次打印,调用选择打印机接口
-                                        LODOP.SELECT_PRINTER(true);
-                                        // 注意,选择打印机后,需要更改打印机事件,否则无法执行回调
-                                        var spans = $("span");
-                                        for (var i = 0; i < spans.length; i++) {
-                                            if ($(spans[i]).text() === "打印份数:") {
-                                                $(spans[i]).parent().next()[0].onclick = function () {
-                                                    CLODOP.SelectBox.clickOK(false);
-                                                    selPrinter = CLODOP.SelectBox.selPrinter.value;
-                                                    $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
-                                                    startPrint(isIE, false);
-                                                };
-                                            }
-                                        }
-                                    } else {
-                                        // 如果非第一次打印,则调用打印接口
-                                        console.log(selPrinter);
-                                        LODOP.SET_PRINTER_INDEX(selPrinter);
-                                        if (LODOP.PRINT()) {
-                                            startPrint(isIE, false);
-                                            $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
-                                        } else {
-                                            // 向后台提交失败打印的信息
-                                            order.attr("printState", "2");
-                                            $(order.find("td")[0]).html("<span style='color: red;'>失败(打印机异常)</span>");
-                                        }
-                                    }
-                                }
+                            if (data && data.returnCode && data.returnCode != 200) {
+                                // 捕获业务级的操作(如订单的店铺没有绑定发货人信息)
+                                re_print(order, data.returnMsg.error, isIE, isFirst);
                             } else {
-                                // 第三方接口错误
-                                re_print(order, res.Reason, isIE, isFirst);
+                                var res = $.parseJSON(data.returnMsg.json);
+                                if (data.resultMsg && res.Success) {
+                                    var html = res.PrintTemplate;
+                                    $("#temp-print-order").html(html);
+                                    LODOP.PRINT_INIT('打印订单' + orderId);
+                                    var SubPrintTemplates = res.SubPrintTemplates;
+                                    var SubOrders = res.SubOrders;
+                                    printing(isIE, isFirst,SubPrintTemplates,SubOrders,order);
+
+                                }else {
+                                    // 第三方接口错误
+                                    re_print(order, res.Reason, isIE, isFirst);
+                                 }
                             }
-                        }
                     }
                 }
             });
         }
 
+
+        function printing(isIE, isFirst,SubPrintTemplates,SubOrders,order) {
+            LODOP.SET_PRINT_PAGESIZE(0, 0, 0, "");
+            LODOP.ADD_PRINT_HTM("0mm", "0mm", "100%", "100%", $("#temp-print-order").html());
+            if (isIE) {
+                // IE类浏览器,直接打印
+                if (LODOP.PRINT()) {
+                    SubPrintTemplates.map(function (item,index,ary ) {
+                        console.log(item);
+                        $("#temp-print-order").html(item);
+                        var subPrintTemplate = $("#temp-print-order").html();
+                        var orderid = SubOrders[i];
+                        /* (function(){
+                                        LODOP.ADD_PRINT_HTM("0mm", "0mm", "100%", "100%", subPrintTemplate);
+                                        LODOP.PRINT();
+                                    })();*/
+                        suPrint(subPrintTemplate);
+                        $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
+                        startPrint(isIE, false);
+                    });
+
+                } else {
+                    order.attr("printState", "2");
+                    $(order.find("td")[0]).html("<span style='color: red;'>失败(打印机异常)</span>");
+                }
+            } else {
+                // 非IE 浏览器
+                if (isFirst) {
+                    // 如果是第一次打印,调用选择打印机接口
+                    LODOP.SELECT_PRINTER(true);
+                    // 注意,选择打印机后,需要更改打印机事件,否则无法执行回调
+                    var spans = $("span");
+                    for (var i = 0; i < spans.length; i++) {
+                        if ($(spans[i]).text() === "打印份数:") {
+                            $(spans[i]).parent().next()[0].onclick = function () {
+                                CLODOP.SelectBox.clickOK(false);
+                                selPrinter = CLODOP.SelectBox.selPrinter.value;
+                                if(SubPrintTemplates != null){
+                                    SubPrintTemplates.map(function (item,index,ary ) {
+                                        console.log(item);
+                                        $("#temp-print-order").html(item);
+                                        var subPrintTemplate = $("#temp-print-order").html();
+                                        var orderid = SubOrders[i];
+                                        /* (function(){
+                                            LODOP.ADD_PRINT_HTM("0mm", "0mm", "100%", "100%", subPrintTemplate);
+                                            LODOP.PRINT();
+                                        })();*/
+                                        suPrint(subPrintTemplate);
+                                    });
+                                }
+                                $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
+                                startPrint(isIE, false);
+                            };
+                        }
+                    }
+                } else {
+                    // 如果非第一次打印,则调用打印接口
+                    LODOP.SET_PRINTER_INDEX(selPrinter);
+                    if (LODOP.PRINT()) {
+                        /*startPrint(isIE, false);*/
+                        /*$(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");*/
+                        if(SubPrintTemplates != null){
+                            SubPrintTemplates.map(function (item,index,ary ) {
+                                console.log(item);
+                                $("#temp-print-order").html(item);
+                                var subPrintTemplate = $("#temp-print-order").html();
+                                var orderid = SubOrders[i];
+                                /*(function(){
+                                    LODOP.ADD_PRINT_HTM("0mm", "0mm", "100%", "100%", subPrintTemplate);
+                                    LODOP.PRINT();
+                                })();*/
+                                suPrint(subPrintTemplate);
+                            });
+                        }
+                        $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
+                        startPrint(isIE, false);
+                    } else {
+                        // 向后台提交失败打印的信息
+                        order.attr("printState", "2");
+                        $(order.find("td")[0]).html("<span style='color: red;'>失败(打印机异常)</span>");
+                    }
+                }
+            }
+        }
+        //子单打印调用
+        function suPrint(subPrintTemplate) {
+            console.log(subPrintTemplate);
+            LODOP.ADD_PRINT_HTM("0mm", "0mm", "100%", "100%", subPrintTemplate);
+            return LODOP.PRINT();
+        }
+
         /* 打印失败后,重新打印 */
         function re_print(order, errorMsg, isIE, isFirst) {
             // 设置当前被打印的内容为“未打印”

+ 19 - 7
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl

@@ -102,13 +102,15 @@
 
     <input type="hidden" value="${machineId!''}" name="machineId" id="machineId">
     <input type="hidden" value="" name="codeId" id="codeId">
-    <div style="position: absolute;top: 80px;height: 23px;display:none;" id="bcTarget" class="barcodeImg"></div>
+    <#--<div  id="bcTargetDiv"><img  style="width: 220px;" id="bcTarget"></div>-->
+    <div style="width: 220px;display: none;" id="bcTarget"></div>
     <div  style="display:none;" >
         <div id="printlist">
         </div>
     </div>
 </div>
 <script type="text/javascript" src="${path}/common/lib/jquery.PrintArea/jquery.PrintArea.js"></script>
+<#--<script type="text/javascript" src="${path}/common/lib/jquery/1.9.1/rst_brcode.js"></script>-->
 <script type="text/javascript" src="${path}/common/lib/jquery/1.9.1/jquery-barcode.js"></script>
 
 <script type="text/javascript">
@@ -146,10 +148,17 @@
     //生成128条形码
     function code128(barcode){
         $("#codeId").val(barcode);
-        $("#bcTarget").empty().barcode($("#codeId").val(), "code93",{
-            barWidth:1, barHeight:23,showHRI:false
+        $("#bcTarget").empty().barcode($("#codeId").val(), "code128",{
+            barWidth:1, barHeight:43,showHRI:true
         });
+    }
 
+    //生成128条形码
+    function code1282(barcode){
+        $("#codeId").val(barcode);
+        $("#bcTarget").empty().barcode($("#codeId").val(), "code128",{
+            barWidth:1, barHeight:23,showHRI:false
+        });
     }
     function  printList() {
         var machineBarcode = null;
@@ -184,19 +193,22 @@
             produceCreateTime = formatDate(new Date());
             var machineNo = "NO." + $("#"+machineBarcode+"Id").val();
             for (var i = 0; i < settingNumber; i++) {
-                code128(machineBarcode);
+                code1282(machineBarcode);
                 var barcodes = $("#bcTarget").html();
                 /*$("#barcodeId").html(machineBarcode);
                 $("#qrcodeImg").attr('src',machineQrcode);*/
                 if (isPrintQrcode == 2) {
                     if(berGenerateRules === 3){
+                        code128(machineBarcode);
+                        var barcodes2 = $("#bcTarget").html();
                         $("#printlist").append('<div style="width: 242px;height: 120px;position: relative;">' +
-                                '<span style="position: absolute;left: 10px;font-size: 14px;">反渗透净水机</span>' +
+                                '<span style="padding-left: 10px;">反渗透净水机</span>' +
                                 '<span style="position: absolute;top: 25px;left: 10px;font-size: 12px;visibility:hidden;">型号:'+producePattern+'-'+produceModel+'</span>' +
                                 '<span style="position: absolute;top: 40px;left: 10px;font-size: 12px;visibility:hidden;">S/N</span>' +
-                                '<div style="position: absolute;left: -12px;top: 64px;height: 30px;" id="bcTarget2" class="barcodeImg">'+barcodes+'</div>' +
-                                '<span style="position: absolute;top: 85px;left: 10px;font-size: 12px;width: 166px;text-align: center;" id="barcodeId">'+machineBarcode+'</span>' +
+                                '<div style="position: absolute;padding-top: 25px;" id="bcTarget2" class="barcodeImg">'+barcodes2+'</div>' +
+                                 /*'<span style="position: absolute;padding-top: 100px;padding-left: -100px;" id="barcodeId">'+machineBarcode+'</span>' +*/
                                 '</div>');
+                        // $("#printlist").append();
                     }else{
                         $("#printlist").append('<div style="width: 242px;height: 120px;position: relative;">' +
                                 '<span style="position: absolute;left: 10px;font-size: 14px;">反渗透净水机</span>' +

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2 - 0
watero-rst-web/src/main/webapp/common/lib/jquery/1.9.1/rst_brcode.js