之前写过一个打印机的一段代码,由于之前的代码存在缺陷,现在我来做下补充:
直接上干货:
@Scheduled(cron = "0/5 * * * * ?")
public void shopCancelOrder(){
logger.info("开始打印商家端订单小票");
QueryWrapper<ShopOrder> queryWrapper = new QueryWrapper<ShopOrder>();
queryWrapper.eq("status", 2);//待发货
queryWrapper.eq("is_del",2);//未删除的
List<ShopOrder> shopOrderList = shopOrderService.list(queryWrapper); //得到订单表
for (ShopOrder shopOrder : shopOrderList) {
// 遍历订单表
String content ="";
List<OrderInfo> orderInfoList = orderGoodsService.selectShopIdAndOther(shopOrder.getId()); //只搜索打印状态为0的 ,可以得到商品id的
for (int i =0 ; i< orderInfoList.size();) {
int num = 1;
List<OrderInfo> orListChange = new ArrayList<>();
BigDecimal totalPrice = new BigDecimal(0);
BigDecimal totalPrice2 = new BigDecimal(0);
BigDecimal totalPriceTotal = new BigDecimal(0);
OrderInfo orderInfo = orderInfoList.get(i);
Goods goods = goodsService.getById(orderInfo.getGoodsId());
Long shopId = goods.getShopId();
int returnCount = orderGoodsService.selectByShopIdReturnCount(shopOrder.getId(), shopId);
SysUser sysUser = userService.selectByPrimaryKey(shopId);
int flag = 0;
if(flag == 0){
if(sysUser!=null){
content = "<CB>"+sysUser.getShopName()+"</CB><BR>";
content += "序号 名称 单价 数量 ";
content += "--------------------------------<BR>";
flag++;
}
else{
logger.error("商家端打印失败:无此商家" );}
}
for (int j =i+1 ; j< orderInfoList.size(); j++){
OrderInfo orderInfo1 = orderInfoList.get(j);
Goods goods1 = goodsService.