From d701ad7384ded4b77632804435d2cb74ba5389a6 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期一, 28 八月 2023 11:14:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OutController.java | 73 ++++++++++++++++++++++++++++++++++++ 1 files changed, 72 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 51b87f7..34bff88 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -7,8 +7,11 @@ import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; +import com.core.common.DateUtils; import com.core.common.R; +import com.core.exception.CoolException; import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.common.model.LocDto; @@ -16,17 +19,27 @@ import com.zy.common.model.OrderMergeVo; import com.zy.common.model.TaskDto; import com.zy.common.web.BaseController; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.DataFormatter; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; 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 java.io.IOException; +import java.io.InputStream; import java.util.*; import java.util.stream.Collectors; /** * Created by vincent on 2022/3/26 */ - +@Slf4j @RestController public class OutController extends BaseController { @@ -280,4 +293,62 @@ return R.ok().add(locDtos); } + /** + * excel瀵煎叆 + */ + @PostMapping(value = "/checkout/excel/import/auth") + @ManagerAuth(memo = "鐩樼偣瀵煎叆") + @Transactional + public R cstmrExcelImport(MultipartFile file) throws IOException { + InputStream inStream = file.getInputStream(); + String fileMime = file.getContentType(); + int excelVersion = 2007; + if ("application/vnd.ms-excel".equals(fileMime)) { + excelVersion = 2003; + } + Workbook book = null; + try { + if (excelVersion == 2003) { + book = new HSSFWorkbook(inStream); + } + else { // 褰� excel 鏄� 2007 鏃� + book = new XSSFWorkbook(inStream); + } + } catch (Exception e) { + log.error("fail", e); + return R.error("瀵煎叆鏂囦欢鏍煎紡閿欒锛岃浣跨敤xls鍚庣紑鐨勬枃浠讹紒"); + } + + Sheet sheet = book.getSheetAt(0); + int totalRows = sheet.getLastRowNum() + 1; // 鎬� + Long userId = getUserId(); + Date now = new Date(); + DataFormatter dataFormatter = new DataFormatter(); + for (int i = 1; i < totalRows; i++) { + Row row = sheet.getRow(i); + // 搴撲綅鍙� + String locno = dataFormatter.formatCellValue(row.getCell(0)); + // 鍑哄簱绔� + Integer outSite = Integer.parseInt(dataFormatter.formatCellValue(row.getCell(1))); + + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locno)); + StockOutParam param = new StockOutParam(); + + if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")) { + List<LocDetl> locDetls = locDetlService.selectByLocNo(locno); + List<StockOutParam.LocDetl> locDes = new ArrayList<>(); + for (LocDetl locDetl : locDetls) { + StockOutParam.LocDetl SOlocDetl = new StockOutParam.LocDetl(locDetl.getLocNo(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getAnfme()); + locDes.add(SOlocDetl); + } + param.setLocDetls(locDes); + param.setOutSite(outSite); + workService.locCheckOut(param, getUserId()); + } else { + return R.error("鍑哄簱澶辫触"); + } + } + return R.ok("鍑哄簱瀹屾垚"); + } + } -- Gitblit v1.9.1