| package com.zy.asrs.wms.asrs.controller; | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.zy.asrs.framework.common.Cools; | 
| import com.zy.asrs.framework.common.R; | 
| import com.zy.asrs.framework.exception.CoolException; | 
| import com.zy.asrs.wms.asrs.entity.*; | 
| import com.zy.asrs.wms.asrs.entity.template.WaitPakinTemplate; | 
| import com.zy.asrs.wms.asrs.service.*; | 
| import com.zy.asrs.wms.common.annotation.OperationLog; | 
| import com.zy.asrs.wms.common.domain.BaseParam; | 
| import com.zy.asrs.wms.common.domain.KeyValVo; | 
| import com.zy.asrs.wms.common.domain.PageParam; | 
| import com.zy.asrs.wms.system.controller.BaseController; | 
| import com.zy.asrs.wms.utils.ExcelUtil; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.security.access.prepost.PreAuthorize; | 
| import org.springframework.web.bind.annotation.*; | 
| import org.springframework.web.multipart.MultipartFile; | 
|   | 
| import javax.servlet.http.HttpServletResponse; | 
| import java.util.*; | 
|   | 
| @RestController | 
| @RequestMapping("/api") | 
| public class WaitPakinController extends BaseController { | 
|   | 
|     @Autowired | 
|     private WaitPakinService waitPakinService; | 
|     @Autowired | 
|     private OrderService orderService; | 
|     @Autowired | 
|     private OrderDetlService orderDetlService; | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @PostMapping("/waitPakin/page") | 
|     public R page(@RequestBody Map<String, Object> map) { | 
|         BaseParam baseParam = buildParam(map, BaseParam.class); | 
|         PageParam<WaitPakin, BaseParam> pageParam = new PageParam<>(baseParam, WaitPakin.class); | 
|         return R.ok().add(waitPakinService.page(pageParam, pageParam.buildWrapper(true))); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @PostMapping("/waitPakin/list") | 
|     public R list(@RequestBody Map<String, Object> map) { | 
|         return R.ok().add(waitPakinService.list()); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @GetMapping("/waitPakin/{id}") | 
|     public R get(@PathVariable("id") Long id) { | 
|         return R.ok().add(waitPakinService.getById(id)); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @GetMapping("/waitPakin/orderDetlId/{orderDetlId}") | 
|     public R getByOrderDetlId(@PathVariable("orderDetlId") Long orderDetlId) { | 
|         return R.ok().add(waitPakinService.getByOrderDetlId(orderDetlId)); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:save')") | 
|     @OperationLog("添加组托通知档") | 
|     @PostMapping("/waitPakin/save") | 
|     public R save(@RequestBody WaitPakin waitPakin) { | 
|         try { | 
|             waitPakinService.comb(waitPakin); | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|             return R.error(e.getMessage()); | 
|         } | 
|         return R.ok("添加成功"); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:update')") | 
|     @OperationLog("修改组托通知档") | 
|     @PostMapping("/waitPakin/update") | 
|     public R update(@RequestBody WaitPakin waitPakin) { | 
|         if (!waitPakinService.updateById(waitPakin)) { | 
|             return R.error("修改失败"); | 
|         } | 
|         return R.ok("修改成功"); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:remove')") | 
|     @OperationLog("删除组托通知档") | 
|     @PostMapping("/waitPakin/remove/{ids}") | 
|     public R remove(@PathVariable Long[] ids) { | 
|         if (!waitPakinService.removeByIds(Arrays.asList(ids))) { | 
|             return R.error("删除失败"); | 
|         } | 
|         return R.ok("删除成功"); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @PostMapping("/waitPakin/query") | 
|     public R query(@RequestParam(required = false) String condition) { | 
|         List<KeyValVo> vos = new ArrayList<>(); | 
|         LambdaQueryWrapper<WaitPakin> wrapper = new LambdaQueryWrapper<>(); | 
|         if (!Cools.isEmpty(condition)) { | 
|             wrapper.like(WaitPakin::getId, condition); | 
|         } | 
|         waitPakinService.page(new Page<>(1, 30), wrapper).getRecords().forEach( | 
|                 item -> vos.add(new KeyValVo(item.getId(), item.getId())) | 
|         ); | 
|         return R.ok().add(vos); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @PostMapping("/waitPakin/barcode/query") | 
|     public R barcodeQuery(@RequestParam(required = false) String condition) { | 
|         List<KeyValVo> vos = new ArrayList<>(); | 
|         QueryWrapper<WaitPakin> queryWrapper = new QueryWrapper<>(); | 
|         queryWrapper.select("distinct barcode"); | 
|         if (!Cools.isEmpty(condition)) { | 
|             queryWrapper.like("barcode", condition); | 
|         } | 
|         waitPakinService.page(new Page<>(1, 30), queryWrapper).getRecords().forEach( | 
|                 item -> vos.add(new KeyValVo(item.getBarcode(), item.getBarcode())) | 
|         ); | 
|         return R.ok().add(vos); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @PostMapping("/waitPakin/export") | 
|     public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { | 
|         ExcelUtil.build(ExcelUtil.create(waitPakinService.list(), WaitPakin.class), response); | 
|     } | 
|   | 
|     @PreAuthorize("hasAuthority('asrs:waitPakin:list')") | 
|     @PostMapping("/waitPakin/exportTemplate") | 
|     public void exportTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { | 
|         ArrayList<WaitPakinTemplate> list = new ArrayList<>(); | 
|         ExcelUtil.build(ExcelUtil.create(list, WaitPakinTemplate.class), response); | 
|     } | 
|   | 
|     @PostMapping("/waitPakin/upload") | 
|     public R upload(@RequestParam("file") MultipartFile file) { | 
|         List<WaitPakinTemplate> list = ExcelUtil.parseExcelFile(file, WaitPakinTemplate.class); | 
|         for (WaitPakinTemplate waitPakinTemplate : list) { | 
|             Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, waitPakinTemplate.getOrderNo()).eq(Order::getStatus, 1)); | 
|             if (order == null) { | 
|                 throw new CoolException("订单不存在"); | 
|             } | 
|   | 
|             LambdaQueryWrapper<OrderDetl> wrapper = new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()); | 
|             if (!Cools.isEmpty(waitPakinTemplate.getBatch())) { | 
|                 wrapper.eq(OrderDetl::getBatch, waitPakinTemplate.getBatch()); | 
|             } | 
|             List<OrderDetl> orderDetls = orderDetlService.list(wrapper); | 
|             if (orderDetls.isEmpty()) { | 
|                 throw new CoolException("订单明细不存在"); | 
|             } | 
|   | 
|             Long detlId = null; | 
|             for (OrderDetl orderDetl : orderDetls) { | 
|                 Mat mat = orderDetl.getMat$(); | 
|                 if (mat.getMatnr().equals(waitPakinTemplate.getMatnr())) { | 
|                     detlId = orderDetl.getId(); | 
|                 } | 
|             } | 
|   | 
|             if (detlId == null) { | 
|                 throw new CoolException("订单明细不存在"); | 
|             } | 
|   | 
|             WaitPakin waitPakin = new WaitPakin(); | 
|             waitPakin.setOrderId(order.getId()); | 
|             waitPakin.setOrderNo(order.getOrderNo()); | 
|             waitPakin.setAnfme(waitPakinTemplate.getAnfme()); | 
|             waitPakin.setBarcode(waitPakinTemplate.getBarcode()); | 
|             waitPakin.setDetlId(detlId); | 
|             waitPakinService.comb(waitPakin); | 
|         } | 
|         return R.ok(); | 
|     } | 
|   | 
| } |