|
|
|
@ -16,6 +16,7 @@
|
|
|
|
|
*/ |
|
|
|
|
package com.logpm.distribution.service.impl; |
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
@ -23,7 +24,10 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
|
|
|
|
import com.logpm.basic.entity.BasicMaterialEntity; |
|
|
|
|
import com.logpm.basic.entity.BasicPrintTemplateEntity; |
|
|
|
|
import com.logpm.basic.feign.IBasicMaterialClient; |
|
|
|
|
import com.logpm.basic.feign.IBasicPrintTemplateClient; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataGoodsShelfEntity; |
|
|
|
|
import com.logpm.distribution.dto.DistributionStockArticleDTO; |
|
|
|
|
import com.logpm.distribution.entity.*; |
|
|
|
|
import com.logpm.distribution.excel.DistributionStockArticleExcel; |
|
|
|
@ -36,6 +40,9 @@ import com.logpm.distribution.wrapper.DistributionStockArticleWrapper;
|
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springblade.common.constant.DictBizConstant; |
|
|
|
|
import org.springblade.common.utils.FileUtil; |
|
|
|
|
import org.springblade.common.utils.QRCodeUtil; |
|
|
|
|
import org.springblade.common.utils.TemplateUtil; |
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
@ -48,11 +55,19 @@ import org.springblade.system.cache.DictBizCache;
|
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import javax.imageio.ImageIO; |
|
|
|
|
import javax.servlet.ServletOutputStream; |
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
|
import java.io.File; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.Optional; |
|
|
|
|
import java.util.concurrent.ScheduledThreadPoolExecutor; |
|
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 配送在库订单 服务实现类 |
|
|
|
@ -73,6 +88,9 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
|
|
|
|
|
// private final IDistributionStockService distributionStockService;
|
|
|
|
|
|
|
|
|
|
private IBasicPrintTemplateClient basicPrintTemplateClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final IDistributionAddvalueService distributionAddvalueService; |
|
|
|
|
|
|
|
|
|
private final DistributionAddvalueMapper distributionAddvalueMapper; |
|
|
|
@ -372,4 +390,70 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
}); |
|
|
|
|
return R.data(distributionStockArticleVOList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R<?> getShowTemplate(Map<String, Object> params, HttpServletResponse response) { |
|
|
|
|
String tenantId = AuthUtil.getTenantId(); |
|
|
|
|
// String templateId = (String) params.get("templateId");
|
|
|
|
|
BasicPrintTemplateEntity template = basicPrintTemplateClient.getTemplate(tenantId); |
|
|
|
|
String qrCode = (String) params.get("qrCode"); |
|
|
|
|
if (Func.isBlank(qrCode)){ |
|
|
|
|
log.error("参数异常:+{"+qrCode+"}"); |
|
|
|
|
return R.fail("服务器正忙!!!"); |
|
|
|
|
} |
|
|
|
|
String filename = QRCodeUtil.createCodeToFile(qrCode); |
|
|
|
|
params.put("img","/"+filename); |
|
|
|
|
ServletOutputStream os =null; |
|
|
|
|
try { |
|
|
|
|
BufferedImage image = TemplateUtil.turnImage(template.getTemplateName(), params,template.getTemplateUrl(),template.getTemplateWidth(),template.getTemplateHeight()); |
|
|
|
|
os = response.getOutputStream(); |
|
|
|
|
ImageIO.write(image, "png",os); |
|
|
|
|
os.flush(); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
log.error("获取响应流失败+{"+e.getMessage()+"}"); |
|
|
|
|
}finally { |
|
|
|
|
File file = new File(filename); |
|
|
|
|
file.delete(); |
|
|
|
|
try { |
|
|
|
|
os.close(); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return R.success("二维码模板"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R<?> getPrintTemplates(List<String> ids, HttpServletResponse response) { |
|
|
|
|
String tenantId = AuthUtil.getTenantId(); |
|
|
|
|
String templateByUrl = null; |
|
|
|
|
StringBuffer buffer = new StringBuffer(); |
|
|
|
|
//待删除文件列表
|
|
|
|
|
List<String> list= new ArrayList<>(); |
|
|
|
|
for (String id : ids) { |
|
|
|
|
// BasicdataGoodsShelfEntity basicdataGoodsShelfEntity = basicdataGoodsShelfMapper.selectById(id);
|
|
|
|
|
BasicdataGoodsShelfEntity basicdataGoodsShelfEntity = new BasicdataGoodsShelfEntity(); |
|
|
|
|
String templateId = basicdataGoodsShelfEntity.getTemplateId(); |
|
|
|
|
BasicPrintTemplateEntity template = basicPrintTemplateClient.getTemplate(templateId); |
|
|
|
|
if (Func.isEmpty(basicdataGoodsShelfEntity)){ |
|
|
|
|
return R.fail("货架信息异常+{"+basicdataGoodsShelfEntity+"}"); |
|
|
|
|
} |
|
|
|
|
Map<String,Object> map = JSONObject.parseObject(JSONObject.toJSONString(basicdataGoodsShelfEntity), Map.class); |
|
|
|
|
String qrCode = (String) map.get("qrCode"); |
|
|
|
|
String filename = QRCodeUtil.createCodeToFile(qrCode); |
|
|
|
|
list.add(filename); |
|
|
|
|
map.put("img",filename); |
|
|
|
|
try { |
|
|
|
|
templateByUrl = TemplateUtil.getTemplateByUrl(template.getFileName(), map, template.getTemplateUrl()); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
return R.fail("模板获取异常"); |
|
|
|
|
} |
|
|
|
|
buffer.append(templateByUrl); |
|
|
|
|
} |
|
|
|
|
ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(5); |
|
|
|
|
scheduledThreadPoolExecutor.schedule(new FileUtil(list),30, TimeUnit.SECONDS); |
|
|
|
|
return R.data(buffer.toString()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|