From 4c971d88f584f5161ed1a44a4ebdac9d31efc1fc Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Sun, 17 Dec 2023 11:16:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5excel=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yyth/api/lpkgiftcard/ReturnExcelInfo.java | 2 + .../yyth/biz/lpkgiftcard/LpkGiftCardRest.java | 11 + .../biz/lpkgiftcard/LpkGiftCardService.java | 213 ++++++++++++++++++ .../yxt/yyth/biz/lpkgoods/LpkGoodsRest.java | 2 +- .../yyth/biz/lpkgoods/LpkGoodsService.java | 10 +- 5 files changed, 234 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/yxt/yyth/api/lpkgiftcard/ReturnExcelInfo.java b/src/main/java/com/yxt/yyth/api/lpkgiftcard/ReturnExcelInfo.java index 65a3fc0..3ae883d 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgiftcard/ReturnExcelInfo.java +++ b/src/main/java/com/yxt/yyth/api/lpkgiftcard/ReturnExcelInfo.java @@ -13,4 +13,6 @@ import java.util.List; @Data public class ReturnExcelInfo { List infoDetails; + private String name; + private String phone; } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardRest.java b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardRest.java index 91f08c6..7981adb 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardRest.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardRest.java @@ -131,4 +131,15 @@ public class LpkGiftCardRest { } + @ApiOperation(value = "批量发行导入") + @PostMapping("/getExcelInfo2") + public ResultBean getExcelInfo2( + @RequestParam(value = "startDate") String startDate, + @RequestParam(value = "endDate") String endDate, + @RequestParam(value = "file") MultipartFile file, + HttpServletRequest request, + HttpServletResponse response) throws IOException, ParseException { + return lpkGiftCardService.getExcelInfo2(startDate,endDate,file,request,response); + } + } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java index dbb21d3..49f9df7 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java @@ -32,6 +32,7 @@ import com.yxt.yyth.api.lpkgiftbag.LpkGiftBagDto; import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoodsVo; import com.yxt.yyth.api.lpkgiftcard.*; import com.yxt.yyth.api.lpkgoods.LpkGoods; +import com.yxt.yyth.api.lpkgoods.LpkGoodsDto; import com.yxt.yyth.api.lpkreserveorder.LpkReserveOrderCardVo; import com.yxt.yyth.api.lpkreserveorder.LpkReserveOrderVo; import com.yxt.yyth.api.lpkreserveordergoods.LpkReserveOrderGoods; @@ -1085,6 +1086,218 @@ public class LpkGiftCardService extends MybatisBaseService setMsg = returnMsg.getSetMsg(); + StringBuffer sbMsg = new StringBuffer(); + if (null != setMsg && setMsg.size() > 0) { + for (String s : setMsg) { + sbMsg.append(s).append(","); + } + sbMsg.delete(sbMsg.length() - 1, sbMsg.length()); + if (StringUtils.isNotBlank(sbMsg.toString())) { + return rb.setMsg(sbMsg.toString()); + } + } + List importReturn = returnMsg.getInfos(); + importReturn.removeAll(Collections.singleton(null)); + if (!importReturn.isEmpty()) { + for (ReturnExcelInfo info : importReturn) { + //生成礼包 + LpkGiftCardDto dtoCard = new LpkGiftCardDto(); + dtoCard.setCardArea("88"); + dtoCard.setNum("1"); + String cardSid = getCardByExcel(dtoCard); + LpkGiftCard lpkGiftCard = fetchBySid(cardSid); + String cardNo = ""; + if (null != lpkGiftCard) { + if (StringUtils.isNotBlank(lpkGiftCard.getSerialNumber())) { + cardNo = lpkGiftCard.getSerialNumber(); + } + } + LpkGiftBagDto dtoBag = new LpkGiftBagDto(); + dtoBag.setDateStart(startDate); + dtoBag.setDateEnd(endDate); + List infoDetails = info.getInfoDetails(); + List goods = new ArrayList<>(); + if (!infoDetails.isEmpty()) { + for (ReturnExcelInfoDetails detail : infoDetails) { + GiftBagGoods giftBagGoods = new GiftBagGoods(); + if (StringUtils.isNotBlank(detail.getGoodNum()) && StringUtils.isNotBlank(detail.getGoodName())) { + LpkGoods lpkGoods = lpkGoodsService.getGoodsByName(detail.getGoodName()); + if (null != lpkGoods) { + giftBagGoods.setName(lpkGoods.getName()); + giftBagGoods.setGoodsSid(lpkGoods.getSid()); + if (detail.getGoodNum().contains(".")) { + String num = detail.getGoodNum().substring(0, detail.getGoodNum().indexOf(".")); + giftBagGoods.setGoodsNumber(num); + } else { + giftBagGoods.setGoodsNumber(detail.getGoodNum()); + } + goods.add(giftBagGoods); + } else { + //没有新增商品 + LpkGoodsDto goodsDto = new LpkGoodsDto(); + goodsDto.setName(detail.getGoodName()); + String goodsSid = lpkGoodsService.saveGoods(goodsDto).getData(); + if (StringUtils.isNotBlank(goodsSid)) { + giftBagGoods.setName(detail.getGoodName()); + giftBagGoods.setGoodsSid(goodsSid); + if (detail.getGoodNum().contains(".")) { + String num = detail.getGoodNum().substring(0, detail.getGoodNum().indexOf(".")); + giftBagGoods.setGoodsNumber(num); + } else { + giftBagGoods.setGoodsNumber(detail.getGoodNum()); + } + goods.add(giftBagGoods); + } + } + } + } + } + dtoBag.setGoods(goods); + dtoBag.setName("家庭菜窖" + cardNo); + String bagSid = lpkGiftBagService.saveGiftBag(dtoBag).getData(); + if (StringUtils.isNotBlank(bagSid)) { + lpkGiftCard.setGiftbagSid(bagSid); + baseMapper.updateById(lpkGiftCard); + LpkCardBuildRecord cardBuildRecord = lpkCardBuildRecordService.fetchBySid(lpkGiftCard.getRecordSid()); + cardBuildRecord.setGiftbagSid(bagSid); + lpkCardBuildRecordService.updateById(cardBuildRecord); + + } + } + } + return rb.success().setMsg("导入成功"); + } + + private ReturnMsg getSheetVal2(Sheet sheet, int[] resultCell) { + ReturnMsg returnMsg = new ReturnMsg(); + List voList = new ArrayList<>(); + int[] resultIndex = new int[resultCell.length]; + Set setMsg = new HashSet<>(); + Row row1 = sheet.getRow(1); + int startNo = 0; + int endNo = 0; + for (int i = 0; i < row1.getPhysicalNumberOfCells(); i++) { + String trim = new String(); + try { + trim = getCellVal(row1.getCell(i)).toString().trim(); + String temp = getCellVal(row1.getCell(i)).toString().trim(); + if (StringUtils.isNotBlank(temp)) { + if (temp.equals("菜品")) { + startNo = i; + } + if (temp.equals("菜窖重量合计(斤)")) { + endNo = i - 1; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + Row row2 = sheet.getRow(2); + Map mapGoods = new HashMap<>(); + for (int i = startNo; i <= endNo; i++) { + String trim = new String(); + try { + trim = getCellVal(row2.getCell(i)).toString().trim(); + String temp = getCellVal(row2.getCell(i)).toString().trim(); + if (StringUtils.isNotBlank(temp)) { + String substring = temp.substring(0, temp.indexOf("(")); + mapGoods.put(i,substring); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + for (int r = 3; r <= sheet.getLastRowNum(); r++) { + ReturnExcelInfo info = new ReturnExcelInfo(); + List importVoList = new ArrayList<>(); + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + String name = new String(); + String phone = new String(); + for (int i = 4; i <= endNo; i++) { + String trim = new String(); + try { + trim = getCellVal(row.getCell(i)).toString().trim(); + String temp = getCellVal(row.getCell(i)).toString().trim(); + if (i == 4 ) { + info.setName(temp); + } + if (i == 5) { + info.setPhone(temp); + } + if (StringUtils.isNotBlank(temp)) { + if (i > 5 && i <= endNo) { + ReturnExcelInfoDetails details = new ReturnExcelInfoDetails(); + details.setGoodNum(temp); + String goodsName = mapGoods.get(i); + details.setGoodName(goodsName); + importVoList.add(details); + if (!isNum(temp)) { + setMsg.add("菜品数量必须为整数"); + } else { + if (temp.contains(".")) { + String num = temp.substring(temp.indexOf(".") + 1); + if (Integer.parseInt(num) != 0) { + setMsg.add("菜品数量必须为整数"); + } + } + } + info.setInfoDetails(importVoList); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + if (!importVoList.isEmpty()) { + voList.add(info); + } + } + if (voList != null && voList.size() > 0) { + for (ReturnExcelInfo returnExcelInfoDetails : voList) { + if (StringUtils.isBlank(returnExcelInfoDetails.getName())) { + setMsg.add("客户姓名不能为空"); + } + if (StringUtils.isBlank(returnExcelInfoDetails.getPhone())) { + setMsg.add("客户电话不能为空"); + } + } + } + returnMsg.setSetMsg(setMsg); + returnMsg.setInfos(voList); + return returnMsg; + } // public static void main(String[] args) { // LocalDate start = LocalDate.of(2021, Month.JANUARY, 1); // 设置起始日期为2021年1月1日 // LocalDate end = LocalDate.now(); // 设置结束日期为当前日期 diff --git a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java index 338a749..6ec526f 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java @@ -35,7 +35,7 @@ public class LpkGoodsRest { @ApiOperation("保存修改") @PostMapping("/saveGoods") - public ResultBean saveGoods(@RequestBody LpkGoodsDto dto) { + public ResultBean saveGoods(@RequestBody LpkGoodsDto dto) { return lpkGoodsService.saveGoods(dto); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java index 6d87f7f..47adc32 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java @@ -34,7 +34,7 @@ public class LpkGoodsService extends MybatisBaseService qw = new QueryWrapper<>(); - qw.eq("1","1"); + qw.eq("1", "1"); if (StringUtils.isNotBlank(query.getName())) { qw.like("name", query.getName()); } @@ -54,9 +54,11 @@ public class LpkGoodsService extends MybatisBaseService saveGoods(LpkGoodsDto dto) { ResultBean rb = ResultBean.fireFail(); + String sid = ""; if (StringUtils.isNotBlank(dto.getSid())) { + sid = dto.getSid(); LpkGoods lpkGoods = fetchBySid(dto.getSid()); BeanUtil.copyProperties(dto, lpkGoods, "id", "sid"); if (StringUtils.isNotBlank(dto.getPicUrl())) { @@ -67,6 +69,7 @@ public class LpkGoodsService extends MybatisBaseService goodsInit(String sid) { @@ -93,6 +96,7 @@ public class LpkGoodsService extends MybatisBaseService goodsDetails(String sid) { ResultBean rb = ResultBean.fireFail(); LpkGoodsDetailsVo vo = new LpkGoodsDetailsVo();