From 11ec1c23a9f47ed70b124e413e33e3696897390f Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 14 二月 2025 15:04:41 +0800 Subject: [PATCH] bug修改 --- optometrist/src/main/java/com/jilongda/optometrist/model/TTicket.java | 2 common/src/main/java/com/jilongda/common/Ticket/TicketUtil.java | 262 +++++++++++++++++++++++++++++------- manage/src/main/java/com/jilongda/manage/controller/TOrderController.java | 51 ++++++ common/src/main/java/com/jilongda/common/Ticket/TAddOptometryVO.java | 6 common/src/main/java/com/jilongda/common/Ticket/TOrderGoodsPrintVO.java | 74 ++++++++++ 5 files changed, 334 insertions(+), 61 deletions(-) diff --git a/common/src/main/java/com/jilongda/common/Ticket/TAddOptometryVO.java b/common/src/main/java/com/jilongda/common/Ticket/TAddOptometryVO.java index e37e48e..5581721 100644 --- a/common/src/main/java/com/jilongda/common/Ticket/TAddOptometryVO.java +++ b/common/src/main/java/com/jilongda/common/Ticket/TAddOptometryVO.java @@ -15,6 +15,8 @@ private Integer id; @ApiModelProperty(value = "验光单详情") private List<TOptometryDetailVO> optometryDetailVOS; + @ApiModelProperty(value = "商品列表") + private List<TOrderGoodsPrintVO> orderGoods; @ApiModelProperty(value = "门店名称") private String shopName; @ApiModelProperty(value = "验光师名称") @@ -25,4 +27,8 @@ private String phone; @ApiModelProperty(value = "小票机编号") private String sn; + @ApiModelProperty(value = "备注") + private String remark; + @ApiModelProperty(value = "加工编号") + private String machiningCode; } diff --git a/common/src/main/java/com/jilongda/common/Ticket/TOrderGoodsPrintVO.java b/common/src/main/java/com/jilongda/common/Ticket/TOrderGoodsPrintVO.java new file mode 100644 index 0000000..9c95277 --- /dev/null +++ b/common/src/main/java/com/jilongda/common/Ticket/TOrderGoodsPrintVO.java @@ -0,0 +1,74 @@ +package com.jilongda.common.Ticket; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * <p> + * 销售订单表 + * </p> + * + * @author 无关风月 + * @since 2024-12-09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="TOrderGoods对象", description="销售订单商品详情表") +public class TOrderGoodsPrintVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键id") + private Integer id; + + @ApiModelProperty(value = "订单id") + private Integer orderId; + + @ApiModelProperty(value = "色号") + private String color; + + @ApiModelProperty(value = "镜片右 球镜+柱镜 逗号拼接 字段为空 客户自带") + private String rLens; + + @ApiModelProperty(value = "镜片左 球镜+柱镜 逗号拼接 字段为空 客户自带") + private String lLens; + + @ApiModelProperty(value = "1球 2非球面 3双非") + private Integer type; + + @ApiModelProperty(value = "折射率") + private String refractiveIndex; + + @ApiModelProperty(value = "品牌名称") + private String brandName; + + @ApiModelProperty(value = "镜片-系列名称") + private String seriesName; + + @ApiModelProperty(value = "镜架-型号名称") + private String modelName; + @ApiModelProperty(value = "镜架型号id 前端忽略") + private Integer modelId; + @ApiModelProperty(value = "类型 1镜架 2镜片") + private Integer status; + + @ApiModelProperty(value = "商品价格") + private BigDecimal goodsMoney; + @ApiModelProperty(value = "系统成本价") + private BigDecimal cost; + @ApiModelProperty(value = "核算成本价") + private BigDecimal constConfirm; + @ApiModelProperty(value = "镜片右 球镜+柱镜") + private String rightLens; + + @ApiModelProperty(value = "镜片左 球镜+柱镜") + private String leftLens; + + @ApiModelProperty(value = "材质") + private String material; +} diff --git a/common/src/main/java/com/jilongda/common/Ticket/TicketUtil.java b/common/src/main/java/com/jilongda/common/Ticket/TicketUtil.java index 8bb4526..b62f028 100644 --- a/common/src/main/java/com/jilongda/common/Ticket/TicketUtil.java +++ b/common/src/main/java/com/jilongda/common/Ticket/TicketUtil.java @@ -51,58 +51,58 @@ List<TOptometryDetailVO> temp = new ArrayList<>(); TOptometryDetailVO t1 = new TOptometryDetailVO(); t1.setType(3); - t1.setBallMirror(-1.00D); - t1.setColumnMirror(-0.10D); - t1.setAxis("30"); - t1.setPupilDistance("33"); +// t1.setBallMirror(-1.00D); +// t1.setColumnMirror(-0.10D); +// t1.setAxis("30"); +// t1.setPupilDistance("33"); t1.setStatus(1); temp.add(t1); TOptometryDetailVO t2 = new TOptometryDetailVO(); t2.setType(3); - t2.setBallMirror(-1.00D); - t2.setColumnMirror(-0.10D); - t2.setAxis("30"); - t2.setPupilDistance("33"); +// t2.setBallMirror(-1.00D); +// t2.setColumnMirror(-0.10D); +// t2.setAxis("30"); +// t2.setPupilDistance("33"); t2.setStatus(2); temp.add(t2); TOptometryDetailVO t3 = new TOptometryDetailVO(); t3.setType(2); - t3.setBallMirror(-1.00D); - t3.setColumnMirror(-0.10D); - t3.setAxis("30"); - t3.setPupilDistance("33"); - t3.setCorrect("1.0"); +// t3.setBallMirror(-1.00D); +// t3.setColumnMirror(-0.10D); +// t3.setAxis("30"); +// t3.setPupilDistance("33"); +// t3.setCorrect("1.0"); t3.setStatus(1); temp.add(t3); TOptometryDetailVO t4 = new TOptometryDetailVO(); t4.setType(2); - t4.setBallMirror(-1.00D); - t4.setColumnMirror(-0.10D); - t4.setAxis("30"); - t4.setPupilDistance("33"); - t4.setCorrect("1.0"); +// t4.setBallMirror(-1.00D); +// t4.setColumnMirror(-0.10D); +// t4.setAxis("30"); +// t4.setPupilDistance("33"); +// t4.setCorrect("1.0"); t4.setStatus(2); temp.add(t4); TOptometryDetailVO t5 = new TOptometryDetailVO(); t5.setType(1); - t5.setBallMirror(-1.00D); - t5.setColumnMirror(-0.10D); - t5.setAxis("30"); - t5.setAddS("50"); - t5.setPupilHeight("50"); - t5.setPupilDistance("33"); - t5.setCorrect("1.0"); +// t5.setBallMirror(-1.00D); +// t5.setColumnMirror(-0.10D); +// t5.setAxis("30"); +// t5.setAddS("50"); +// t5.setPupilHeight("50"); +// t5.setPupilDistance("33"); +// t5.setCorrect("1.0"); t5.setStatus(1); temp.add(t5); TOptometryDetailVO t6 = new TOptometryDetailVO(); t6.setType(1); - t6.setBallMirror(-1.00D); - t6.setColumnMirror(-0.10D); - t6.setAxis("30"); - t6.setAddS("50"); - t6.setPupilHeight("50"); - t6.setPupilDistance("33"); - t6.setCorrect("1.0"); +// t6.setBallMirror(-1.00D); +// t6.setColumnMirror(-0.10D); +// t6.setAxis("30"); +// t6.setAddS("50"); +// t6.setPupilHeight("50"); +// t6.setPupilDistance("33"); +// t6.setCorrect("1.0"); t6.setStatus(2); temp.add(t6); @@ -340,31 +340,33 @@ Comparator.comparingInt(TOptometryDetailVO::getType) .thenComparingInt(TOptometryDetailVO::getStatus).reversed() ); + for (TOptometryDetailVO s : optometryDetailVOS) { switch (s.getType()){ case 3: if (s.getStatus()==2){ content.append("<BOLD>旧镜信息<BR>"); content.append("R:<BR>"); - content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); - content.append("瞳距:"+s.getPupilDistance()+"<BR>"); + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+"<BR>"); }else if (s.getStatus()==1){ content.append("L:<BR>"); - content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); - content.append("瞳距:"+s.getPupilDistance()+"<BR>"); + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+"<BR>"); content.append("--------------------------------<BR>"); } break; case 2: + if (s.getStatus()==2){ content.append("完全矫正<BR>"); content.append("R:<BR>"); - content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); - content.append("瞳距:"+s.getPupilDistance()+" 矫正:"+s.getCorrect()+"<BR>"); + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+" 矫正:"+(s.getCorrect()==null?"-":s.getCorrect())+"<BR>"); }else if (s.getStatus()==1){ content.append("L:<BR>"); - content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); - content.append("瞳距:"+s.getPupilDistance()+" 矫正:"+s.getCorrect()+"<BR>"); + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+" 矫正:"+(s.getCorrect()==null?"-":s.getCorrect())+"<BR>"); content.append("--------------------------------<BR>"); } break; @@ -372,14 +374,14 @@ if (s.getStatus()==2){ content.append("配镜处方<BR>"); content.append("R:<BR>"); - content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); - content.append("ADD:"+s.getAddS()+" 瞳距:"+s.getPupilDistance()+" 瞳高:"+s.getPupilHeight()+"<BR>"); - content.append("矫正:"+s.getCorrect()+"<BR>"); + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("ADD:"+(s.getAddS()==null?"-":s.getAddS())+" 瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+" 瞳高:"+(s.getPupilHeight()==null?"-":s.getPupilHeight())+"<BR>"); + content.append("矫正:"+(s.getCorrect()==null?"-":s.getCorrect())+"<BR>"); }else if (s.getStatus()==1){ content.append("L:<BR>"); - content.append("度数:"+s.getBallMirror()+" 散光:"+s.getColumnMirror()+" 轴位:"+s.getAxis()+"<BR>"); - content.append("ADD:"+s.getAddS()+" 瞳距:"+s.getPupilDistance()+" 瞳高:"+s.getPupilHeight()+"<BR>"); - content.append("矫正:"+s.getCorrect()+"<BR>"); + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("ADD:"+(s.getAddS()==null?"-":s.getAddS())+" 瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+" 瞳高:"+(s.getPupilHeight()==null?"-":s.getPupilHeight())+"<BR>"); + content.append("矫正:"+(s.getCorrect()==null?"-":s.getCorrect())+"<BR>"); content.append("--------------------------------<BR>"); } break; @@ -387,15 +389,15 @@ } content.append("</BOLD>"); //通过POST请求,发送打印信息到服务器 - RequestConfig requestConfig = RequestConfig.custom() - .setSocketTimeout(30000)//读取超时 + RequestConfig requestConfig = RequestConfig.custom() + .setSocketTimeout(30000)//读取超时 .setConnectTimeout(30000)//连接超时 .build(); - + CloseableHttpClient httpClient = HttpClients.custom() .setDefaultRequestConfig(requestConfig) - .build(); - + .build(); + HttpPost post = new HttpPost(URL); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("user",USER)); @@ -406,7 +408,7 @@ nvps.add(new BasicNameValuePair("sn",dto.getSn())); nvps.add(new BasicNameValuePair("content", content.toString())); nvps.add(new BasicNameValuePair("times","1"));//打印联数 - + CloseableHttpResponse response = null; String result = null; try @@ -415,7 +417,7 @@ response = httpClient.execute(post); int statecode = response.getStatusLine().getStatusCode(); if(statecode == 200){ - HttpEntity httpentity = response.getEntity(); + HttpEntity httpentity = response.getEntity(); if (httpentity != null){ //服务器返回的JSON字符串,建议要当做日志记录起来 result = EntityUtils.toString(httpentity); @@ -446,7 +448,159 @@ } } return unescapeUnicode(result); - + + } + public static String printMatch(TAddOptometryVO dto){ + //标签说明: + //单标签: + //"<BR>"为换行,"<CUT>"为切刀指令(主动切纸,仅限切刀打印机使用才有效果) + //"<LOGO>"为打印LOGO指令(前提是预先在机器内置LOGO图片),"<PLUGIN>"为钱箱或者外置音响指令 + //成对标签: + //"<CB></CB>"为居中放大一倍,"<B></B>"为放大一倍,"<C></C>"为居中,<L></L>字体变高一倍 + //<W></W>字体变宽一倍,"<QR></QR>"为二维码,"<BOLD></BOLD>"为字体加粗,"<RIGHT></RIGHT>"为右对齐 + //拼凑订单内容时可参考如下格式 + //根据打印纸张的宽度,自行调整内容的格式,可参考下面的样例格式 + + StringBuilder content; + content=new StringBuilder("<BOLD>"); + content.append("隼目加工单<BR>"); + content.append(dto.getShopName()).append("<BR>"); + content.append("订单时间:").append(dto.getTime()).append("<BR>"); + content.append("--------------------------------<BR>"); + content.append("加工编号:").append("<BR>"); + content.append("<CB>"); + content.append(dto.getMachiningCode()).append("</CB>").append("<BR>"); + content.append("--------------------------------<BR>"); + List<TOptometryDetailVO> optometryDetailVOS = dto.getOptometryDetailVOS(); + // 使用 List.sort 和 Comparator 进行多字段倒序排序 + optometryDetailVOS.sort( + Comparator.comparingInt(TOptometryDetailVO::getType) + .thenComparingInt(TOptometryDetailVO::getStatus).reversed() + ); + for (TOptometryDetailVO s : optometryDetailVOS) { + switch (s.getType()){ + case 1: + if (s.getStatus()==2){ + content.append("配镜处方<BR>"); + content.append("R:<BR>"); +// (s.getAddS()==null?"-":s.getAddS()) +// (s.getPupilDistance()==null?"-":s.getPupilDistance()) +// +// (s.getCorrect()==null?"-":s.getCorrect()) +// (s.getBallMirror()==null?"-":s.getBallMirror()) +// (s.getColumnMirror()==null?"-":s.getColumnMirror()) +// (s.getAxis()==null?"-":s.getAxis()) +// (s.getAddS()==null?"-":s.getAddS()) +// (s.getPupilDistance()==null?"-":s.getPupilDistance()) +// (s.getPupilHeight()==null?"-":s.getPupilHeight()) +// (s.getCorrect()==null?"-":s.getCorrect()) + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("ADD:"+(s.getAddS()==null?"-":s.getAddS())+" 瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+" 瞳高:"+(s.getPupilHeight()==null?"-":s.getPupilHeight())+"<BR>"); + content.append("矫正:"+(s.getCorrect()==null?"-":s.getCorrect())+"<BR>"); + }else if (s.getStatus()==1){ + content.append("L:<BR>"); + content.append("度数:"+(s.getBallMirror()==null?"-":s.getBallMirror())+" 散光:"+(s.getColumnMirror()==null?"-":s.getColumnMirror())+" 轴位:"+(s.getAxis()==null?"-":s.getAxis())+"<BR>"); + content.append("ADD:"+(s.getAddS()==null?"-":s.getAddS())+" 瞳距:"+(s.getPupilDistance()==null?"-":s.getPupilDistance())+" 瞳高:"+(s.getPupilHeight()==null?"-":s.getPupilHeight())+"<BR>"); + content.append("矫正:"+(s.getCorrect()==null?"-":s.getCorrect())+"<BR>"); + content.append("--------------------------------<BR>"); + } + break; + } + } + content.append("订单详情:").append("<BR>"); + List<TOrderGoodsPrintVO> orderGoods = dto.getOrderGoods(); + List<TOrderGoodsPrintVO> tOrderGoodsPrintVOS = new ArrayList<>(); + for (TOrderGoodsPrintVO orderGood : orderGoods) { + if (orderGood.getModelId()!=null){ + tOrderGoodsPrintVOS.add(orderGood); + } + } + for (TOrderGoodsPrintVO orderGood : orderGoods) { + if (orderGood.getRLens()!=null){ + tOrderGoodsPrintVOS.add(orderGood); + } + } + for (TOrderGoodsPrintVO orderGood : orderGoods) { + if (orderGood.getLLens()!=null){ + tOrderGoodsPrintVOS.add(orderGood); + } + } + for (TOrderGoodsPrintVO tOrderGoodsPrintVO : tOrderGoodsPrintVOS) { + if (tOrderGoodsPrintVO.getModelId()!=null){ + content.append("镜架:").append(tOrderGoodsPrintVO.getBrandName()+"-").append(tOrderGoodsPrintVO.getMaterial()+"-").append(tOrderGoodsPrintVO.getModelName()).append("<BR>"); + } + if (tOrderGoodsPrintVO.getRLens()!=null){ + content.append("右眼镜片:").append(tOrderGoodsPrintVO.getBrandName()+"-").append(tOrderGoodsPrintVO.getSeriesName()+"-").append(tOrderGoodsPrintVO.getRefractiveIndex()).append("<BR>"); + } + if (tOrderGoodsPrintVO.getModelId()!=null){ + content.append("左眼镜片:").append(tOrderGoodsPrintVO.getBrandName()+"-").append(tOrderGoodsPrintVO.getSeriesName()+"-").append(tOrderGoodsPrintVO.getRefractiveIndex()).append("<BR>"); + } + } + content.append("客户电话:").append(dto.getPhone()).append("<BR>"); + content.append("备注:").append(dto.getRemark()==null?"-":dto.getRemark()).append("<BR>"); + content.append("</BOLD>"); + + //通过POST请求,发送打印信息到服务器 + RequestConfig requestConfig = RequestConfig.custom() + .setSocketTimeout(30000)//读取超时 + .setConnectTimeout(30000)//连接超时 + .build(); + + CloseableHttpClient httpClient = HttpClients.custom() + .setDefaultRequestConfig(requestConfig) + .build(); + + HttpPost post = new HttpPost(URL); + List<NameValuePair> nvps = new ArrayList<NameValuePair>(); + nvps.add(new BasicNameValuePair("user",USER)); + String STIME = String.valueOf(System.currentTimeMillis()/1000); + nvps.add(new BasicNameValuePair("stime",STIME)); + nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME))); + nvps.add(new BasicNameValuePair("apiname","Open_printMsg"));//固定值,不需要修改 + nvps.add(new BasicNameValuePair("sn",dto.getSn())); + nvps.add(new BasicNameValuePair("content", content.toString())); + nvps.add(new BasicNameValuePair("times","1"));//打印联数 + + CloseableHttpResponse response = null; + String result = null; + try + { + post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); + response = httpClient.execute(post); + int statecode = response.getStatusLine().getStatusCode(); + if(statecode == 200){ + HttpEntity httpentity = response.getEntity(); + if (httpentity != null){ + //服务器返回的JSON字符串,建议要当做日志记录起来 + result = EntityUtils.toString(httpentity); + } + } + } + catch (Exception e) + { + e.printStackTrace(); + } + finally{ + try { + if(response!=null){ + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + try { + post.abort(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return unescapeUnicode(result); + } diff --git a/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java b/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java index d75ff74..b977a7c 100644 --- a/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java +++ b/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.jilongda.common.Ticket.TAddOptometryVO; +import com.jilongda.common.Ticket.TOrderGoodsPrintVO; +import com.jilongda.common.Ticket.TicketUtil; import com.jilongda.common.basic.ApiResult; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.authority.model.SecUser; @@ -14,12 +17,10 @@ import com.jilongda.manage.service.*; import com.jilongda.manage.utils.LoginInfoUtil; import com.jilongda.manage.utils.OssUploadUtil; -import com.jilongda.manage.vo.TModelVO; -import com.jilongda.manage.vo.TOptometryVO; -import com.jilongda.manage.vo.TOrderListVO; -import com.jilongda.manage.vo.TOrderVO; +import com.jilongda.manage.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; @@ -28,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -178,7 +180,8 @@ return ApiResult.success(tCouponReceives); } - + @Autowired + private TTicketService tTicketService; @ApiOperation(value = "添加订单") @PostMapping(value = "/addOrder") public ApiResult addOrder(@RequestBody TOrderDTO dto) { @@ -228,7 +231,7 @@ .eq(split.length>=2,TLensGoods::getColumnMirror, split[1]) .one(); if (one!=null){ - if (one.getTotal()-1<0){ + if (one.getTotal()-1<0 && lensSeries.getType()==1 ){ return ApiResult.failed("库存不足"); } // 减少对应库存 @@ -369,6 +372,42 @@ orderGoodsService.saveBatch(orderGoods); lensGoodsService.updateBatchById(tLensGoods); frameGoodsService.updateBatchById(tFrameGoods); + TAddOptometryVO tAddOptometryVO = new TAddOptometryVO(); + TTicket tTicket = tTicketService.lambdaQuery().eq(TTicket::getStoreId, dto.getStoreId()) + .eq(TTicket::getType,1) + .eq(TTicket::getStatus, 1).list().stream().findFirst().orElse(null); + if (tTicket==null){ + return ApiResult.failed("当前门店未绑定小票机"); + } + tAddOptometryVO.setSn(tTicket.getCloudId()+""); + tAddOptometryVO.setPhone(dto.getPhone()); + List<TOrderGoods> orderGoods1 = dto.getOrderGoods(); + ArrayList<TOrderGoodsPrintVO> tOrderGoodsPrintVOS = new ArrayList<>(); + // 复制 + for (TOrderGoods orderGood : orderGoods1) { + TOrderGoodsPrintVO tOrderGoodsPrintVO = new TOrderGoodsPrintVO(); + BeanUtils.copyProperties(orderGood,tOrderGoodsPrintVO); + if (orderGood.getModelId()!=null){ + TModel byId = modelService.getById(orderGood.getModelId()); + if (byId!=null){ + TMaterial byId1 = materialService.getById(byId.getMaterialId()); + if (byId1!=null){ + tOrderGoodsPrintVO.setMaterial(byId1.getName()); + } + } + } + tOrderGoodsPrintVOS.add(tOrderGoodsPrintVO); + } + tAddOptometryVO.setOrderGoods(tOrderGoodsPrintVOS); + tAddOptometryVO.setRemark(dto.getRemark()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String format = simpleDateFormat.format(new Date()); + tAddOptometryVO.setTime(format); + tAddOptometryVO.setMachiningCode(dto.getMachiningCode()); + if (dto.getIsMachining()==1){ + // 打印加工单 + TicketUtil.printMatch(tAddOptometryVO); + } return ApiResult.success(dto.getId()); } diff --git a/optometrist/src/main/java/com/jilongda/optometrist/model/TTicket.java b/optometrist/src/main/java/com/jilongda/optometrist/model/TTicket.java index 64bfd82..66013d3 100644 --- a/optometrist/src/main/java/com/jilongda/optometrist/model/TTicket.java +++ b/optometrist/src/main/java/com/jilongda/optometrist/model/TTicket.java @@ -33,7 +33,7 @@ @ApiModelProperty(value = "小票机名称") @TableField("name") - private Integer name; + private String name; @ApiModelProperty(value = "类型 1验光单 2加工单") @TableField("type") -- Gitblit v1.7.1