自动化立体仓库 - WMS系统
1
zhang
4 天以前 2a2d0aa9f6c42789faeb90ccda0bdf415614d533
src/main/java/com/zy/asrs/controller/ReviewController.java
@@ -1,6 +1,7 @@
package com.zy.asrs.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
@@ -10,6 +11,7 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.Review;
import com.zy.asrs.entity.ReviewDetl;
import com.zy.asrs.importexcle.ImportReviewDto;
import com.zy.asrs.importexcle.ImportReviewListener;
import com.zy.asrs.mapper.ReviewDetlMapper;
@@ -19,6 +21,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,9 +30,10 @@
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import java.net.URLEncoder;
import java.util.*;
@RestController
public class ReviewController extends BaseController {
@@ -41,8 +45,39 @@
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private PlatformTransactionManager transactionManager;
    @Resource
    private ReviewDetlMapper reviewDetlMapper;
    @Resource
    private HttpServletResponse response;
    @RequestMapping("/exportReview")
    public synchronized void exportReview(String ids) throws IOException {
        if (Cools.isEmpty(ids)) {
            return;
        }
        String[] idsArr = ids.split(",");
        Set set = new HashSet<Long>();
        for (String id : idsArr) {
            if (!Cools.isEmpty(id)) {
                set.add(Long.parseLong(id));
            }
        }
        List<ReviewDetl> reviewDetls = reviewDetlService.selectList(new EntityWrapper<ReviewDetl>().in("order_id", set));
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        String fileName = URLEncoder.encode("单据复核明细表", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), ReviewDetl.class)
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                .sheet("表1")
                .doWrite(reviewDetls);
    }
    @PostMapping("/importReview")
    @ManagerAuth(memo = "单据导入")
@@ -61,7 +96,7 @@
    public void importOrder(MultipartFile multipartFile) throws IOException {
        // 考核数据的判重使用order_id,check_type的组合唯一索引解决
        EasyExcel.read(multipartFile.getInputStream(), ImportReviewDto.class,
                new ImportReviewListener(snowflakeIdWorker, getUserId())).sheet().doReadSync();
                new ImportReviewListener(transactionManager, reviewService, reviewDetlService, snowflakeIdWorker, getUserId())).sheet().doReadSync();
    }
@@ -113,4 +148,14 @@
        return R.ok();
    }
    @RequestMapping(value = "/review/delete/auth")
    @ManagerAuth(memo = "手动删除订单")
    @Transactional
    public R delete(@RequestParam Long orderId) {
        Review review = reviewService.selectById(orderId);
        reviewDetlService.delete(new EntityWrapper<ReviewDetl>().eq("order_id", orderId));
        reviewService.deleteById(orderId);
        return R.ok();
    }
}