|  | @@ -10,9 +10,12 @@ import com.kmall.common.dao.TemplateConfDao;
 | 
	
		
			
				|  |  |  import com.kmall.common.entity.FormIdsEntity;
 | 
	
		
			
				|  |  |  import com.kmall.common.entity.TemplateConfVo;
 | 
	
		
			
				|  |  |  import com.kmall.common.service.FormIdsService;
 | 
	
		
			
				|  |  | +import com.kmall.common.service.print.ticket.PrintTicketPropertiesBuilder;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.DateUtils;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.RRException;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.StringUtils;
 | 
	
		
			
				|  |  | +import com.kmall.common.utils.print.ticket.TicketPrintUtil;
 | 
	
		
			
				|  |  | +import com.kmall.common.utils.print.ticket.item.*;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.printer.FeiGeUtils;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.wxtemplate.TemplateData;
 | 
	
		
			
				|  |  |  import com.kmall.common.utils.wxtemplate.WxTemplate;
 | 
	
	
		
			
				|  | @@ -57,6 +60,8 @@ public class ApiOrderService {
 | 
	
		
			
				|  |  |      private ApiFreightService apiFreightService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private ApiOrderProcessRecordMapper orderProcessRecordMapper;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private ApiStoreMapper apiStoreMapper;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public OrderVo queryObject(Long id) {
 | 
	
		
			
				|  |  |          return apiOrderMapper.queryObject(id);
 | 
	
	
		
			
				|  | @@ -163,7 +168,7 @@ public class ApiOrderService {
 | 
	
		
			
				|  |  |          List<ProductVo> productVos = new ArrayList();
 | 
	
		
			
				|  |  |          for (CartVo goodsItem : checkedGoodsList) {
 | 
	
		
			
				|  |  |              //取得规格的信息,判断规格库存
 | 
	
		
			
				|  |  | -            ProductVo productInfo = apiProductMapper.queryObjectByStoreId(goodsItem.getProduct_id(), storeId);
 | 
	
		
			
				|  |  | +            ProductVo productInfo = apiProductMapper.queryByStoreId(goodsItem.getProduct_id(), storeId);
 | 
	
		
			
				|  |  |              if (null == productInfo || null == productInfo.getStock_num() || productInfo.getStock_num() < goodsItem.getNumber()) {
 | 
	
		
			
				|  |  |                  resultObj.put("errno", 400);
 | 
	
		
			
				|  |  |                  resultObj.put("errmsg", "库存不足,仅剩余" + productInfo.getStock_num());
 | 
	
	
		
			
				|  | @@ -623,7 +628,7 @@ public class ApiOrderService {
 | 
	
		
			
				|  |  |          apiOrderMapper.update(orderVo);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public String printMsg(Long orderId) {
 | 
	
		
			
				|  |  | +    /*public String printMsgs(Long orderId) {
 | 
	
		
			
				|  |  |          OrderVo orderEntity = queryObject(orderId);
 | 
	
		
			
				|  |  |          Map<String, Object> map = new HashMap<String, Object>();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -668,6 +673,67 @@ public class ApiOrderService {
 | 
	
		
			
				|  |  |              sn = printerEntities.get(0).getSn();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return FeiGeUtils.printMsg(sn, content, "1");
 | 
	
		
			
				|  |  | +    }*/
 | 
	
		
			
				|  |  | +    public Ticket printMsg(Long orderId) {
 | 
	
		
			
				|  |  | +        OrderVo orderEntity = queryObject(orderId);
 | 
	
		
			
				|  |  | +        if(orderEntity != null) {
 | 
	
		
			
				|  |  | +            if (orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_10.getItem())
 | 
	
		
			
				|  |  | +                    || orderEntity.getOrderBizType().equalsIgnoreCase(Dict.orderBizType.item_02.getItem())) {
 | 
	
		
			
				|  |  | +                Map<String, Object> map = new HashMap<String, Object>();
 | 
	
		
			
				|  |  | +                map.put("order_id", orderEntity.getId());
 | 
	
		
			
				|  |  | +                List<OrderGoodsVo> orderGoodsEntityList = apiOrderGoodsMapper.queryList(map);
 | 
	
		
			
				|  |  | +                // 获取门店
 | 
	
		
			
				|  |  | +                StoreVo storeEntity = apiStoreMapper.queryObject(orderEntity.getStore_id());
 | 
	
		
			
				|  |  | +                // 获取清关信息
 | 
	
		
			
				|  |  | +                OrderProcessRecordEntity orderProcessRecordEntity = orderProcessRecordMapper.queryObjectByOrderSn(orderEntity.getOrder_sn());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                UserVo userVo = apiUserMapper.queryObject(orderEntity.getUser_id());
 | 
	
		
			
				|  |  | +                // 小票头
 | 
	
		
			
				|  |  | +                TicketHead head = new TicketHead();
 | 
	
		
			
				|  |  | +                head.setTitle(OmsMerchPropertiesBuilder.instance().getMerchName() + storeEntity.getStoreName());
 | 
	
		
			
				|  |  | +                head.setMemberId(userVo.getUsername().toString());
 | 
	
		
			
				|  |  | +                head.setOrderId(orderEntity.getOrder_sn());
 | 
	
		
			
				|  |  | +                head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(new Date()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                // 商品信息
 | 
	
		
			
				|  |  | +                Integer goodsTotal = 0; // 商品总个数
 | 
	
		
			
				|  |  | +                BigDecimal total = new BigDecimal(0); // 商品总计
 | 
	
		
			
				|  |  | +                List<Goods> goodsList = new ArrayList<>();
 | 
	
		
			
				|  |  | +                for (OrderGoodsVo orderGoods : orderGoodsEntityList) {
 | 
	
		
			
				|  |  | +                    goodsTotal += orderGoods.getNumber();
 | 
	
		
			
				|  |  | +                    total = total.add(orderGoods.getRetail_price().subtract(new BigDecimal(orderGoods.getNumber()))).setScale(2, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +                    Goods goods = new Goods(orderGoods.getGoods_name(), orderGoods.getRetail_price().toString(), orderGoods.getNumber().toString(),
 | 
	
		
			
				|  |  | +                            orderGoods.getRetail_price().multiply(new BigDecimal(orderGoods.getNumber()).setScale(2, BigDecimal.ROUND_HALF_UP)).toString());
 | 
	
		
			
				|  |  | +                    goodsList.add(goods);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                // 收银信息
 | 
	
		
			
				|  |  | +                CashInfo cashInfo = new CashInfo();
 | 
	
		
			
				|  |  | +                cashInfo.setGoodsTotal(goodsTotal.toString());
 | 
	
		
			
				|  |  | +                cashInfo.setTotal(total.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
 | 
	
		
			
				|  |  | +                cashInfo.setReceipts(orderEntity.getActual_price().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
 | 
	
		
			
				|  |  | +                cashInfo.setOddChange("0.00");
 | 
	
		
			
				|  |  | +                cashInfo.setCoupon(orderEntity.getCoupon_price().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
 | 
	
		
			
				|  |  | +                cashInfo.setFreight(new BigDecimal(orderEntity.getFreight_price()).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
 | 
	
		
			
				|  |  | +                cashInfo.setPaymentMode("微信支付");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                // 海关清单
 | 
	
		
			
				|  |  | +                CusListing cusListing = new CusListing();
 | 
	
		
			
				|  |  | +                cusListing.setOrderId(orderEntity.getOrder_sn());
 | 
	
		
			
				|  |  | +                cusListing.setWaybillId(orderProcessRecordEntity.getLogisticsNo());
 | 
	
		
			
				|  |  | +                cusListing.setInvtNo(orderProcessRecordEntity.getInvtNo());
 | 
	
		
			
				|  |  | +                cusListing.setConsignee(orderEntity.getConsignee());
 | 
	
		
			
				|  |  | +                cusListing.setConsigneeTel(orderEntity.getMobile());
 | 
	
		
			
				|  |  | +                cusListing.setOriginAddress(PrintTicketPropertiesBuilder.instance().getAddress());
 | 
	
		
			
				|  |  | +                cusListing.setDeliveryAddress(storeEntity.getStoreAddress());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing);
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                return null;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }else{
 | 
	
		
			
				|  |  | +            return null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public List<OrderVo> queryObjectByIdList(List<Long> orderIdList){
 | 
	
	
		
			
				|  | @@ -676,6 +742,5 @@ public class ApiOrderService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public List<OrderVo> queryObjectByMerchOrderSn(String merchOrderSn){
 | 
	
		
			
				|  |  |          return apiOrderMapper.queryObjectByMerchOrderSn(merchOrderSn);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |