package org.jeecg.modules.arj.b.controller; import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.modules.arj.b.entity.Pplan; import org.jeecg.modules.arj.b.entity.Pplan2; import org.jeecg.modules.arj.b.entity.Sbjx; import org.jeecg.modules.arj.b.service.Pplan2Service; import org.jeecg.modules.arj.b.service.PplanService; import org.jeecg.modules.arj.b.vo.PplanVo; import org.jeecg.modules.arj.b.vo.SbjxVo; import org.jeecg.modules.arj.config.AjaxResult; import org.jeecg.modules.arj.entity.Head; import org.jeecg.modules.arj.service.HeadService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.net.URLEncoder; import java.util.List; /*其中com.terra.arj.b.service就等于 com.example.demo.service,PplanService就等于SpiderdataSpiderxrmmwService*/ /*其中com.terra.arj.b.entity就等于com.example.demo.entity,Pplan就等于SpiderdataSpiderxrmmw,一种Java的模板引擎语法*/ /** *

* 生产计划执行单 前端控制器 *

* * @author hyy * @since 2023-05-17 */ @Api(tags = "B3-生产计划执行通知单") @RestController @RequestMapping("/b/pplan") public class PplanController { @Resource private PplanService pplanService; @Autowired private HeadService headService; @Autowired private Pplan2Service pplan2Service; //新增和修改接口 @ApiOperation("增加新数据") @PostMapping("/add") public AjaxResult save(@RequestBody PplanVo pplanVo) { //新增或者更新 Head head = headService.insert(pplanVo.getHead()); pplanVo.getPplan().setHeadId(head.getId()); if (pplanVo.getPplan2List().size() > 0) { pplanVo.getPplan2List().stream().forEach(item -> item.setHeadId(head.getId())); } pplanService.saveOrUpdate(pplanVo.getPplan()); pplan2Service.saveOrUpdateBatch(pplanVo.getPplan2List()); return AjaxResult.success(head.getId()); } //查询所有内容接口 @ApiOperation("获取最新数据") @GetMapping("/last") public AjaxResult findAll() { Head head = headService.queryLeixingChanxian("B3", null); PplanVo pplanVo = new PplanVo(); if (head == null) return AjaxResult.error("访问无数据"); List pplan2List = pplan2Service.queryByHeadId(head.getId()); pplanVo.setHead(head); if (pplan2List != null) pplanVo.setPplan2List(pplan2List); pplanVo.setPplan(pplanService.queryByHeadId(head.getId())); return AjaxResult.success(pplanVo); } //根据id查询 @ApiOperation("通过ID查询单条数据") @GetMapping("/id") public AjaxResult findOne(String id) { Head head = headService.queryById(id); if (head == null) return AjaxResult.error("访问无数据"); PplanVo pplanVo = new PplanVo(); List pplan2List = pplan2Service.queryByHeadId(head.getId()); pplanVo.setHead(head); if (pplan2List != null) pplanVo.setPplan2List(pplan2List); pplanVo.setPplan(pplanService.queryByHeadId(head.getId())); return AjaxResult.success(pplanVo); } //导入接口 @PostMapping("/import") public Boolean imp(MultipartFile file) throws Exception { //返回一个布尔值 InputStream inputStream = file.getInputStream(); //获取流文件内容 ExcelReader reader = ExcelUtil.getReader(inputStream); //第一种方式,通过javabean的方式读取Excel内的对象,要求导入的表头要是英文,和导出的英文字段要一致 // 比较推荐这种方法 List list = reader.readAll(Pplan.class); //定义一个SpiderdataSpiderxrmmw 用于接收读取到的内容 System.out.println(list); //保持数据到数据库 //pplanService.save(one); //save方法,插入单个 pplanService.saveBatch(list); //saveBatch方法批量插入 return true; //返回一个true,表示插入成功 } }