From 7045b984af43d5825058b4df4b4dbc7a08cf2db2 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 20 十月 2025 08:33:53 +0800
Subject: [PATCH] 对接
---
src/main/java/com/zy/asrs/controller/MatController.java | 160 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 146 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java
index c8ef714..a3f5928 100644
--- a/src/main/java/com/zy/asrs/controller/MatController.java
+++ b/src/main/java/com/zy/asrs/controller/MatController.java
@@ -1,6 +1,8 @@
package com.zy.asrs.controller;
import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -10,10 +12,12 @@
import com.core.annotations.ManagerAuth;
import com.core.common.*;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.Mat;
-import com.zy.asrs.entity.MatPrint;
+import com.zy.asrs.entity.*;
import com.zy.asrs.entity.result.KeyValueVo;
+import com.zy.asrs.mapper.TagMapper;
+import com.zy.asrs.service.ManPakOutService;
import com.zy.asrs.service.MatService;
+import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.utils.MatExcelListener;
import com.zy.common.CodeRes;
import com.zy.common.config.AdminInterceptor;
@@ -21,25 +25,34 @@
import com.zy.common.utils.BarcodeUtils;
import com.zy.common.utils.QrCode;
import com.zy.common.web.BaseController;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.*;
+import java.util.stream.Collectors;
@RestController
+@Slf4j
public class MatController extends BaseController {
@Autowired
private MatService matService;
@Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private ManPakOutService manPakOutService;
@RequestMapping(value = "/mat/auto/matnr/auth")
public R autoMatnr(){
@@ -56,6 +69,7 @@
return R.ok().add(mats);
}
+
@RequestMapping(value = "/mat/search/pda/auth")
@ManagerAuth
public R pdaSearch(@RequestParam(required = false)String condition){
@@ -67,6 +81,16 @@
List<Mat> mats = matService.selectList(wrapper);
return R.ok().add(mats);
}
+ @RequestMapping(value = "/mat/list/pda/page/auth")
+ @ManagerAuth
+ public R pdaPageList(@RequestParam(required = true)Long tagId,
+ @RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit){
+ EntityWrapper<Mat> wrapper = new EntityWrapper<>();
+ wrapper.eq("tag_id", tagId);
+ wrapper.orderBy("create_time", false);
+ return R.ok().add(matService.selectPage(new Page<>(curr, limit), wrapper));
+ }
@RequestMapping(value = "/mat/{id}/auth")
@ManagerAuth
@@ -74,7 +98,7 @@
return R.ok(matService.selectById(String.valueOf(id)));
}
- @RequestMapping(value = "/matCode/auth0")
+ @RequestMapping(value = "/mat/auth")
@ManagerAuth
public R find(@RequestParam("matnr") String matnr) {
return R.ok(matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnr)));
@@ -94,7 +118,8 @@
return R.ok(matService.getPage(new Page<>(curr, limit)
, String.valueOf(tagId)
, param.get("matnr")
- , param.get("maktx"))
+ , param.get("maktx")
+ , param.get("batch"))
);
}
@@ -156,16 +181,72 @@
}
return R.ok();
}
+ @Resource
+ private TagMapper tagMapper;
@RequestMapping(value = "/mat/export/auth")
@ManagerAuth
- public R export(@RequestBody JSONObject param){
- EntityWrapper<Mat> wrapper = new EntityWrapper<>();
- List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
- Map<String, Object> map = excludeTrash(param.getJSONObject("mat"));
- convert(map, wrapper);
- List<Mat> list = matService.selectList(wrapper);
- return R.ok(exportSupport(list, fields));
+ public void export(@RequestBody JSONObject param, HttpServletResponse response) throws IOException {
+ //鏂囦欢鍚�
+ String fileName =String.valueOf(System.currentTimeMillis());
+
+ OutputStream outputStream =null;
+ try {
+ //璁板綍鎬绘暟:瀹為檯涓渶瑕佹牴鎹煡璇㈡潯浠惰繘琛岀粺璁″嵆鍙�:涓�鍏卞灏戞潯
+ int totalCount=matService.selectCount(null);
+ //姣忎竴涓猄heet瀛樻斁100w鏉℃暟鎹�
+ Integer sheetDataRows = 400000;
+ //姣忔鍐欏叆鐨勬暟鎹噺20w,姣忛〉鏌ヨ20W
+ Integer writeDataRows = 200000;
+ //璁$畻闇�瑕佺殑Sheet鏁伴噺
+ Integer sheetNum = totalCount % sheetDataRows == 0 ? (totalCount / sheetDataRows) : (totalCount / sheetDataRows + 1);
+ //璁$畻涓�鑸儏鍐典笅姣忎竴涓猄heet闇�瑕佸啓鍏ョ殑娆℃暟(涓�鑸儏鍐典笉鍖呭惈鏈�鍚庝竴涓猻heet,鍥犱负鏈�鍚庝竴涓猻heet涓嶇‘瀹氫細鍐欏叆澶氬皯鏉℃暟鎹�)
+ Integer oneSheetWriteCount = sheetDataRows / writeDataRows;
+ //璁$畻鏈�鍚庝竴涓猻heet闇�瑕佸啓鍏ョ殑娆℃暟
+ Integer lastSheetWriteCount = totalCount % sheetDataRows == 0 ? oneSheetWriteCount : (totalCount % sheetDataRows % writeDataRows == 0 ? (totalCount / sheetDataRows / writeDataRows) : ((totalCount % sheetDataRows) / writeDataRows + 1));
+ outputStream = response.getOutputStream();
+ //蹇呴』鏀惧埌寰幆澶栵紝鍚﹀垯浼氬埛鏂版祦
+ ExcelWriter excelWriter = EasyExcel.write(outputStream).build();
+ //寮�濮嬪垎鎵规煡璇㈠垎娆″啓鍏�
+ for (int i = 0; i < sheetNum; i++) {
+ //鍒涘缓Sheet
+ WriteSheet sheet = new WriteSheet();
+ sheet.setSheetName("Sheet"+i);
+ sheet.setSheetNo(i);
+ //寰幆鍐欏叆娆℃暟: j鐨勮嚜澧炴潯浠舵槸褰撲笉鏄渶鍚庝竴涓猄heet鐨勬椂鍊欏啓鍏ユ鏁颁负姝e父鐨勬瘡涓猄heet鍐欏叆鐨勬鏁�,濡傛灉鏄渶鍚庝竴涓氨闇�瑕佷娇鐢ㄨ绠楃殑娆℃暟lastSheetWriteCount
+ for (int j = 0; j < (i != sheetNum - 1 ? oneSheetWriteCount : lastSheetWriteCount); j++) {
+ //鍒嗛〉鏌ヨ涓�娆�20w
+ Page page1 = new Page(j + 1 + oneSheetWriteCount * i, writeDataRows);
+ //鏌ヨ鍒嗛〉鍒楄〃---鎸夌収鑷繁鐨勪笟鍔℃煡鍒楄〃锛屽垎椤佃繖涓竴瀹氳浣跨敤杩欎釜锛歱age1.getPageNum(),page1.getPageSize()锛侊紒锛�
+ List<Mat> list = matService.selectPage(new Page<>(page1.getCurrent(), page1.getLimit())).getRecords();
+ List<Tag> tags = tagMapper.selectList(null);
+ // 鎵�鏈夌被鍒�
+ Map<Long, String> tagMaps = tags.stream().collect(Collectors.toMap(Tag::getId,Tag::getName,(v1,v2) -> v1));
+ // 褰掔被id瀵绘壘褰掔被鍚嶇О
+ list = list.stream().peek(mat -> mat.setUuid(tagMaps.get(mat.getTagId()))).collect(Collectors.toList());
+ //鍐欏叆鍒癳xcel:
+ /**************z鍙渶瑕侀�夋嫨涓�绉嶆柟寮忓嵆鍙�*****************/
+ //杩欓噷鍙互閫氳繃璁剧疆includeColumnFiledNames銆乪xcludeColumnFiledNames瀵煎嚭浠�涔堝瓧娈碉紝鍙互鍔ㄦ�侀厤缃紝鍓嶇浼犺繃鏉ラ偅浜涘垪锛屽氨瀵煎嚭閭d簺鍒�
+ //鏂瑰紡3銆佷笉鍋氳缃紝鍏ㄩ儴瀵煎嚭
+ WriteSheet writeSheet = EasyExcel.writerSheet(i, "Sheet" + (i + 1)).head(Mat.class)
+ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+ excelWriter.write(list, writeSheet);
+ }
+ }
+ // 涓嬭浇EXCEL锛岃繑鍥炵粰鍓嶆stream娴�
+ response.setContentType("application/octet-stream");
+ response.setCharacterEncoding("utf-8");
+ response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+ excelWriter.finish();
+ outputStream.flush();
+ outputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ if (outputStream != null) {
+ outputStream.close();
+ }
+ }
}
@RequestMapping(value = "/matQuery/auth")
@@ -192,6 +273,19 @@
return R.parse(BaseRes.REPEAT).add(getComment(Mat.class, String.valueOf(param.get("key"))));
}
return R.ok();
+ }
+
+ @RequestMapping(value = "/mat/covert/{id}/auth")
+ @ManagerAuth
+ public R covert(@PathVariable("id") String id) {
+ Mat mat = matService.selectByMatnr(String.valueOf(id));
+ if (mat == null) {
+ return R.ok();
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setAnfme(0.0D);
+ return R.ok().add(orderDetl);
}
/*************************************** 鎵撳嵃鐩稿叧 ***********************************************/
@@ -221,7 +315,7 @@
// 鎵撳嵃
@RequestMapping(value = "/mat/print/auth")
- @ManagerAuth(memo = "鍟嗗搧缂栫爜鎵撳嵃")
+ @ManagerAuth(memo = "鍝佸彿鎵撳嵃")
public R matCodePrint(@RequestParam(value = "param[]") String[] param) {
if(Cools.isEmpty(param)) {
return R.parse(CodeRes.EMPTY);
@@ -241,6 +335,44 @@
}
return R.ok().add(res);
}
+
+ @RequestMapping(value = "/order/print/auth")
+ @ManagerAuth(memo = "璁㈠崟缂栫爜鎵撳嵃")
+ public R orderPrint(@RequestParam(value = "param[]") String[] param) {
+ if(Cools.isEmpty(param)) {
+ return R.parse(CodeRes.EMPTY);
+ }
+ List<OrderDetl> res = new ArrayList<>();
+ for (String orderNo : param){
+ res = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
+ }
+ for (OrderDetl orderDetl:
+ res) {
+ orderDetl.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty());
+ }
+ return R.ok().add(res);
+ }
+
+ @RequestMapping(value = "/pakOut/print/auth")
+ @ManagerAuth(memo = "鎷h揣鍗曠紪鐮佹墦鍗�")
+ public R pakOutPrint(@RequestParam(value = "param[]") String[] param) {
+ if(Cools.isEmpty(param)) {
+ return R.parse(CodeRes.EMPTY);
+ }
+ List<ManPakOut> res = new ArrayList<>();
+ for (String docNum : param){
+ ManPakOut manPakOut = manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("doc_num", docNum));
+ res.add(manPakOut);
+ break;
+ }
+ return R.ok().add(res);
+ }
+ @RequestMapping(value = "/pakOut/show")
+ public R showQR(){
+ List<ManPakOut> manPakOuts = manPakOutService.selectList(null);
+ return R.ok(manPakOuts);
+ }
+
/*************************************** 鏁版嵁鐩稿叧 ***********************************************/
@@ -274,7 +406,7 @@
/*************************************** xm-select ***********************************************/
// xm-select 鎼滅储鍟嗗搧鍒楄〃
- @RequestMapping("/mat/all/get/kv0") // todo:luxiaotao
+ @RequestMapping("/mat/all/get/kv")
@ManagerAuth
public R getMatDataKV(@RequestParam(required = false) String condition) {
Wrapper<Mat> wrapper = new EntityWrapper<Mat>()
@@ -285,7 +417,7 @@
for (Mat mat : mats) {
KeyValueVo vo = new KeyValueVo();
vo.setName(mat.getMatnr() + " - " + mat.getMaktx());
- vo.setValue(mat.getId());
+ vo.setValue(mat.getMatnr());
valueVos.add(vo);
}
return R.ok().add(valueVos);
--
Gitblit v1.9.1