自动化立体仓库 - WMS系统
123
zhang
3 天以前 21d0e7ab9d5c7316225a3e9eecf465cd37c9bd85
src/main/java/com/zy/asrs/controller/MatController.java
@@ -13,8 +13,11 @@
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.MatPrint;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.dto.OrderDetlWithSum;
import com.zy.asrs.entity.result.KeyValueVo;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.utils.MatExcel2Listener;
import com.zy.asrs.utils.MatExcelListener;
import com.zy.common.CodeRes;
import com.zy.common.config.AdminInterceptor;
@@ -31,6 +34,8 @@
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;
@@ -41,6 +46,9 @@
    private MatService matService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private LocDetlService locDetlService;
    @RequestMapping(value = "/mat/auto/matnr/auth")
    public R autoMatnr(){
@@ -89,7 +97,11 @@
    @RequestMapping(value = "/mat/auth")
    @ManagerAuth
    public R find(@RequestParam("matnr") String matnr) {
        return R.ok(matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnr)));
        Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnr));
        if(Cools.isEmpty(mat)){
            return R.error("物料数据不存在,请检查物料档案");
        }
        return R.ok(mat);
    }
    @RequestMapping(value = "/mat/list/auth")
@@ -108,6 +120,7 @@
                , param.get("matnr")
                , param.get("maktx")
                , param.get("specs")
                , param.get("mat_type")
                )
        );
@@ -144,8 +157,8 @@
        return R.ok();
    }
   @RequestMapping(value = "/mat/update/auth")
   @ManagerAuth
    @RequestMapping(value = "/mat/update/auth")
    @ManagerAuth
    public R update(Mat mat){
        if (Cools.isEmpty(mat) || null==mat.getId()){
            return R.error();
@@ -210,14 +223,18 @@
    @RequestMapping(value = "/mat/covert/{id}/auth")
    @ManagerAuth
    public R covert(@PathVariable("id") String id) {
        Mat mat = matService.selectByMatnr(String.valueOf(id));
    public R covert(@PathVariable("id") String id) throws UnsupportedEncodingException{
        byte[] decode = Base64.getDecoder().decode(id);
        String id2 = new String(decode, "utf-8");
        Mat mat = matService.selectByMatnr(id2);
        if (mat == null) {
            return R.ok();
        }
//        OrderDetlWithSum orderDetl = new OrderDetlWithSum();
        OrderDetl orderDetl = new OrderDetl();
        orderDetl.sync(mat);
        orderDetl.setAnfme(0.0D);
//        orderDetl.setSum(locDetlService.selectSumByMatnr(mat.getMatnr()));
        return R.ok().add(orderDetl);
    }
@@ -256,6 +273,9 @@
        List<MatPrint> res = new ArrayList<>();
        for (String matnr : param){
            Mat mat = matService.selectByMatnr(matnr);
            if(Cools.isEmpty(mat)) {
                continue;
            }
            // 打印数据注入
            MatPrint print = new MatPrint();
            print.setMatnr(mat.getMatnr());
@@ -298,6 +318,29 @@
        return R.ok("成功同步"+listener.getTotal()+"条商品数据");
    }
    // 新商品编号同步
    @PostMapping(value = "/mat/excel/importNewMatnr/auth")
    @ManagerAuth(memo = "新商品编号同步")
    @Transactional
    public R matExcelImportNewMatnr(MultipartFile file) throws IOException {
        MatExcel2Listener listener = new MatExcel2Listener(getUserId());
        EasyExcel.read(file.getInputStream(), MatExcel.class, listener).sheet().doRead();
        return R.ok("成功同步"+listener.getTotal()+"条商品数据");
    }
    @RequestMapping(value = "/mat/excel/export/auth")
    @ManagerAuth(memo = "商品档案数据导出")
    @Transactional
    public void matExcelExport(@RequestParam Map<String, Object> param, HttpServletResponse response) throws IOException {
        List<Mat> data = matService.exportData(param.get("matnr"), param.get("maktx"), param.get("specs"));
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
        String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream(), Mat.class).sheet("模板").doWrite(data);
    }
    /*************************************** xm-select ***********************************************/
    // xm-select 搜索商品列表
@@ -305,13 +348,13 @@
    @ManagerAuth
    public R getMatDataKV(@RequestParam(required = false) String condition) {
        Wrapper<Mat> wrapper = new EntityWrapper<Mat>()
                .andNew().like("matnr", condition).or().like("maktx", condition)
                .andNew().like("matnr", condition).or().like("maktx", condition).or().like("specs", condition)
                .orderBy("create_time", false);
        List<Mat> mats = matService.selectPage(new Page<>(1, 30), wrapper).getRecords();
        List<KeyValueVo> valueVos = new ArrayList<>();
        for (Mat mat : mats) {
            KeyValueVo vo = new KeyValueVo();
            vo.setName(mat.getMatnr() + " - " + mat.getMaktx());
            vo.setName(mat.getSpecs() + "-" + mat.getMaktx() + " - " + mat.getMatnr());
            vo.setValue(mat.getMatnr());
            valueVos.add(vo);
        }