From 3873a663f81666517d4b0a1f2afd0bb6a4cc0f87 Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Mon, 24 Mar 2025 15:19:31 +0800 Subject: [PATCH] 20240324 --- .../controller/CatchPalletController.java | 70 +++++++++ .../pallet/controller/PalletController.java | 25 ++++ .../modules/pallet/entity/CatchPallet.java | 49 ++++++ .../gaotao/modules/pallet/entity/Pallet.java | 34 +++++ .../pallet/mapper/CatchPalletMapper.java | 12 ++ .../modules/pallet/mapper/PalletMapper.java | 12 ++ .../pallet/service/CatchPalletService.java | 23 +++ .../modules/pallet/service/PalletService.java | 11 ++ .../service/impl/CatchPalletServiceImpl.java | 140 ++++++++++++++++++ .../service/impl/PalletServiceImpl.java | 27 ++++ .../mapper/pallet/CatchPalletMapper.xml | 11 ++ .../resources/mapper/pallet/PalletMapper.xml | 11 ++ 12 files changed, 425 insertions(+) create mode 100644 src/main/java/com/gaotao/modules/pallet/controller/CatchPalletController.java create mode 100644 src/main/java/com/gaotao/modules/pallet/controller/PalletController.java create mode 100644 src/main/java/com/gaotao/modules/pallet/entity/CatchPallet.java create mode 100644 src/main/java/com/gaotao/modules/pallet/entity/Pallet.java create mode 100644 src/main/java/com/gaotao/modules/pallet/mapper/CatchPalletMapper.java create mode 100644 src/main/java/com/gaotao/modules/pallet/mapper/PalletMapper.java create mode 100644 src/main/java/com/gaotao/modules/pallet/service/CatchPalletService.java create mode 100644 src/main/java/com/gaotao/modules/pallet/service/PalletService.java create mode 100644 src/main/java/com/gaotao/modules/pallet/service/impl/CatchPalletServiceImpl.java create mode 100644 src/main/java/com/gaotao/modules/pallet/service/impl/PalletServiceImpl.java create mode 100644 src/main/resources/mapper/pallet/CatchPalletMapper.xml create mode 100644 src/main/resources/mapper/pallet/PalletMapper.xml diff --git a/src/main/java/com/gaotao/modules/pallet/controller/CatchPalletController.java b/src/main/java/com/gaotao/modules/pallet/controller/CatchPalletController.java new file mode 100644 index 0000000..ac98339 --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/controller/CatchPalletController.java @@ -0,0 +1,70 @@ +package com.gaotao.modules.pallet.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gaotao.common.utils.R; +import com.gaotao.modules.pallet.entity.CatchPallet; +import com.gaotao.modules.pallet.entity.Pallet; +import com.gaotao.modules.pallet.service.CatchPalletService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@RestController +@RequestMapping("/catch/pallet") +public class CatchPalletController { + + @Autowired + private CatchPalletService catchPalletService; + + @PostMapping("/export") + public void export(HttpServletResponse response, @RequestBody CatchPallet pallet) { + catchPalletService.export(response,pallet); + } + + @PostMapping("/save") + public R save(@RequestBody CatchPallet pallet) { + catchPalletService.saveCatchPallet(pallet); + return R.ok(); + } + @PostMapping("/save/batch") + public R saveBatch(@RequestBody List palletList) { + catchPalletService.saveCatchPalletBatch(palletList); + return R.ok(); + } + @PostMapping("/remove") + public R remove(@RequestBody CatchPallet pallet) { + catchPalletService.removeCatchPallet(pallet); + return R.ok(); + } + + @PostMapping("/remove/{id}") + public R removeById(@PathVariable Long id) { + catchPalletService.removeById(id); + return R.ok(); + } + + @PostMapping("/remove/all") + public R removeAll(@RequestBody CatchPallet pallet) { + catchPalletService.removeAllCatchPallet(pallet); + return R.ok(); + } + + @PostMapping("/list") + public R list(@RequestBody CatchPallet pallet) { + List list = catchPalletService.list(new QueryWrapper<>(pallet)); + return R.ok().put("rows", list); + } + + @PostMapping("/{no}/{size}") + public R update(@PathVariable("no") Integer no, + @PathVariable("size") Integer size, + @RequestBody CatchPallet pallet) { + IPage page = catchPalletService.queryPage(no,size,pallet); + return R.ok().put("rows", page.getRecords()).put("total", page.getTotal()); + } + + +} diff --git a/src/main/java/com/gaotao/modules/pallet/controller/PalletController.java b/src/main/java/com/gaotao/modules/pallet/controller/PalletController.java new file mode 100644 index 0000000..798fcee --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/controller/PalletController.java @@ -0,0 +1,25 @@ +package com.gaotao.modules.pallet.controller; + +import cn.idev.excel.FastExcel; +import com.gaotao.common.utils.R; +import com.gaotao.modules.pallet.entity.Pallet; +import com.gaotao.modules.pallet.service.PalletService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; + +@RestController +@RequestMapping("/pallet") +public class PalletController { + @Autowired + private PalletService palletService; + + @PostMapping("/save/batch") + public R saveBatch(@RequestBody List pallets) { + palletService.saveBatchPallet(pallets); + return R.ok("操作成功"); + } +} diff --git a/src/main/java/com/gaotao/modules/pallet/entity/CatchPallet.java b/src/main/java/com/gaotao/modules/pallet/entity/CatchPallet.java new file mode 100644 index 0000000..3e96ee3 --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/entity/CatchPallet.java @@ -0,0 +1,49 @@ +package com.gaotao.modules.pallet.entity; + +import cn.idev.excel.annotation.ExcelIgnore; +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@TableName("catch_pallet") +@Data +@HeadRowHeight(value = -1) +@ColumnWidth(value = 25) +public class CatchPallet { + + + @ExcelIgnore + private Long id; + + @ExcelIgnore + private String site; + + @ExcelProperty(value = "Pallet Label",index = 1) + private String palletNo; + + @ExcelProperty(value = "SN",index = 2) + private String sn; + + @ExcelProperty(value = "SKU",index = 3) + private String sku; + + @ExcelProperty(value = "Part Description",index = 4) + private String partDesc; + + @ExcelIgnore + private String erpPartNo; + + @ExcelIgnore + private String createBy; + + @ExcelIgnore + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; +} diff --git a/src/main/java/com/gaotao/modules/pallet/entity/Pallet.java b/src/main/java/com/gaotao/modules/pallet/entity/Pallet.java new file mode 100644 index 0000000..79b64ec --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/entity/Pallet.java @@ -0,0 +1,34 @@ +package com.gaotao.modules.pallet.entity; + +import cn.idev.excel.annotation.ExcelIgnore; +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import cn.idev.excel.annotation.write.style.HeadStyle; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@TableName("pallet") +@Data +@HeadRowHeight(value = -1) +@ColumnWidth(value = 25) +public class Pallet { + + @ExcelIgnore + private Long id; + + @ExcelProperty("Pallet Label") + private String palletNo; + + @ExcelProperty("SN") + private String sn; + + @ExcelProperty("SKU") + private String sku; + + @ExcelProperty("Part Description") + private String partDesc; + + @ExcelIgnore + private String erpPartNo; +} diff --git a/src/main/java/com/gaotao/modules/pallet/mapper/CatchPalletMapper.java b/src/main/java/com/gaotao/modules/pallet/mapper/CatchPalletMapper.java new file mode 100644 index 0000000..14e04b4 --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/mapper/CatchPalletMapper.java @@ -0,0 +1,12 @@ +package com.gaotao.modules.pallet.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gaotao.modules.pallet.entity.CatchPallet; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface CatchPalletMapper extends BaseMapper { + int saveBatch(List catchPalletList); +} diff --git a/src/main/java/com/gaotao/modules/pallet/mapper/PalletMapper.java b/src/main/java/com/gaotao/modules/pallet/mapper/PalletMapper.java new file mode 100644 index 0000000..ccb87f4 --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/mapper/PalletMapper.java @@ -0,0 +1,12 @@ +package com.gaotao.modules.pallet.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gaotao.modules.pallet.entity.Pallet; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface PalletMapper extends BaseMapper { + int saveBatch(List pallets); +} diff --git a/src/main/java/com/gaotao/modules/pallet/service/CatchPalletService.java b/src/main/java/com/gaotao/modules/pallet/service/CatchPalletService.java new file mode 100644 index 0000000..5cc5c9f --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/service/CatchPalletService.java @@ -0,0 +1,23 @@ +package com.gaotao.modules.pallet.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.gaotao.modules.pallet.entity.CatchPallet; +import com.gaotao.modules.pallet.entity.Pallet; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +public interface CatchPalletService extends IService { + void export(HttpServletResponse response, CatchPallet pallet); + + void saveCatchPallet(CatchPallet pallet); + + void removeCatchPallet(CatchPallet pallet); + + IPage queryPage(Integer no, Integer size, CatchPallet pallet); + + void removeAllCatchPallet(CatchPallet pallet); + + void saveCatchPalletBatch(List palletList); +} diff --git a/src/main/java/com/gaotao/modules/pallet/service/PalletService.java b/src/main/java/com/gaotao/modules/pallet/service/PalletService.java new file mode 100644 index 0000000..f734e9d --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/service/PalletService.java @@ -0,0 +1,11 @@ +package com.gaotao.modules.pallet.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gaotao.modules.pallet.entity.Pallet; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +public interface PalletService extends IService { + void saveBatchPallet(List pallets); +} diff --git a/src/main/java/com/gaotao/modules/pallet/service/impl/CatchPalletServiceImpl.java b/src/main/java/com/gaotao/modules/pallet/service/impl/CatchPalletServiceImpl.java new file mode 100644 index 0000000..e4a2b8d --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/service/impl/CatchPalletServiceImpl.java @@ -0,0 +1,140 @@ +package com.gaotao.modules.pallet.service.impl; + +import cn.idev.excel.FastExcel; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gaotao.modules.pallet.entity.CatchPallet; +import com.gaotao.modules.pallet.entity.Pallet; +import com.gaotao.modules.pallet.mapper.CatchPalletMapper; +import com.gaotao.modules.pallet.mapper.PalletMapper; +import com.gaotao.modules.pallet.service.CatchPalletService; +import com.gaotao.modules.pallet.service.PalletService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class CatchPalletServiceImpl extends ServiceImpl implements CatchPalletService { + + @Autowired + private PalletService palletService; + + @Override + public void export(HttpServletResponse response, CatchPallet pallet) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + List list = list(new QueryWrapper<>(pallet)); + if (list.isEmpty()) { + throw new RuntimeException("not find any Pallet Label"); + } + try { + String fileName = URLEncoder.encode("Pallet Check List", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + + FastExcel.write(response.getOutputStream(), Pallet.class) + .sheet() + .doWrite(list); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Override + @Transactional + public void saveCatchPallet(CatchPallet pallet) { + // 1、判断CatchPallet 是否扫托盘 + if (!StringUtils.hasText(pallet.getPalletNo())) { + throw new RuntimeException("please input Pallet Label"); + } + + List list = palletService.lambdaQuery() + .eq(Pallet::getPalletNo, pallet.getPalletNo().trim()) + .list(); + if (list.isEmpty()){ + throw new RuntimeException("no Pallet Label found "+pallet.getPalletNo().trim()); + } + + int count = lambdaQuery() + .eq(CatchPallet::getSite, pallet.getSite()) + .eq(CatchPallet::getPalletNo, pallet.getPalletNo().trim()) + .eq(CatchPallet::getCreateBy, pallet.getCreateBy()) + .count(); + if (count > 0){ + throw new RuntimeException("Pallet Label \""+pallet.getPalletNo()+"\" already exist"); + } + Date date = new Date(); + List catchPalletList = new ArrayList<>(); + for (Pallet value : list) { + CatchPallet catchPallet = new CatchPallet(); + catchPallet.setPalletNo(value.getPalletNo()); + catchPallet.setPartDesc(value.getPartDesc()); + catchPallet.setSn(value.getSn()); + catchPallet.setSku(value.getSku()); + catchPallet.setErpPartNo(value.getErpPartNo()); + + catchPallet.setSite(pallet.getSite()); + catchPallet.setCreateBy(pallet.getCreateBy()); + catchPallet.setCreateTime(date); + catchPalletList.add(catchPallet); + } + int i = baseMapper.saveBatch(catchPalletList); + } + + @Override + public void removeCatchPallet(CatchPallet pallet) { + // 1、判断CatchPallet 是否扫托盘 + if (!StringUtils.hasText(pallet.getPalletNo())) { + throw new RuntimeException("please input Pallet Label"); + } + Integer count = lambdaQuery() + .eq(CatchPallet::getSite, pallet.getSite()) + .eq(CatchPallet::getPalletNo, pallet.getPalletNo()) + .eq(CatchPallet::getCreateBy, pallet.getCreateBy()) + .count(); + if (count == 0){ + throw new RuntimeException("not find any Pallet Label"); + } + lambdaUpdate() + .eq(CatchPallet::getSite, pallet.getSite()) + .eq(CatchPallet::getPalletNo, pallet.getPalletNo()) + .eq(CatchPallet::getCreateBy, pallet.getCreateBy()) + .remove(); + } + + @Override + public IPage queryPage(Integer no, Integer size, CatchPallet pallet) { + Page page = new Page<>(no, size); + + return lambdaQuery() + .eq(CatchPallet::getSite,pallet.getSite()) + .eq(CatchPallet::getCreateBy,pallet.getCreateBy()) + .orderByDesc(CatchPallet::getId) + .page(page); + } + + @Override + public void removeAllCatchPallet(CatchPallet pallet) { + lambdaUpdate() + .eq(CatchPallet::getSite, pallet.getSite()) + .eq(CatchPallet::getCreateBy, pallet.getCreateBy()) + .remove(); + } + + @Override + @Transactional + public void saveCatchPalletBatch(List palletList) { + for (CatchPallet pallet : palletList) { + saveCatchPallet(pallet); + } + } +} diff --git a/src/main/java/com/gaotao/modules/pallet/service/impl/PalletServiceImpl.java b/src/main/java/com/gaotao/modules/pallet/service/impl/PalletServiceImpl.java new file mode 100644 index 0000000..4b018f3 --- /dev/null +++ b/src/main/java/com/gaotao/modules/pallet/service/impl/PalletServiceImpl.java @@ -0,0 +1,27 @@ +package com.gaotao.modules.pallet.service.impl; + +import cn.idev.excel.FastExcel; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gaotao.modules.pallet.entity.Pallet; +import com.gaotao.modules.pallet.mapper.PalletMapper; +import com.gaotao.modules.pallet.service.PalletService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.List; + +@Service +public class PalletServiceImpl extends ServiceImpl implements PalletService { + + @Override + @Transactional + public void saveBatchPallet(List pallets) { + if (pallets.isEmpty()){ + return; + } + int i = baseMapper.saveBatch(pallets); + } +} diff --git a/src/main/resources/mapper/pallet/CatchPalletMapper.xml b/src/main/resources/mapper/pallet/CatchPalletMapper.xml new file mode 100644 index 0000000..4fe71e7 --- /dev/null +++ b/src/main/resources/mapper/pallet/CatchPalletMapper.xml @@ -0,0 +1,11 @@ + + + + + + insert into catch_pallet(site, pallet_no, sn, sku, part_desc, erp_part_no, create_by, create_time) values + + (#{item.site},#{item.palletNo},#{item.sn},#{item.sku},#{item.partDesc},#{item.erpPartNo},#{item.createBy},#{item.createTime}) + + + diff --git a/src/main/resources/mapper/pallet/PalletMapper.xml b/src/main/resources/mapper/pallet/PalletMapper.xml new file mode 100644 index 0000000..8ceb561 --- /dev/null +++ b/src/main/resources/mapper/pallet/PalletMapper.xml @@ -0,0 +1,11 @@ + + + + + + insert into pallet(pallet_no, sn, sku, part_desc, erp_part_no) values + + (#{item.palletNo},#{item.sn},#{item.sku},#{item.partDesc},#{item.erpPartNo}) + + +