自动化立体仓库 - WMS系统
#1
dubin
昨天 864c18c46c2db1ae92220181e40b291b3b0d9446
#1
11个文件已修改
1个文件已添加
173 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/ImagePreviewController.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ImageView.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AdminInterceptor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/AuthController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/mapper/UserLoginMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/mapper/UserMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/service/UserLoginService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/service/UserService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/service/impl/UserLoginServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/service/impl/UserServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locDetl/locDetl.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/locDetl/locDetl.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ImagePreviewController.java
@@ -1,10 +1,14 @@
package com.zy.asrs.controller;
import com.core.common.R;
import com.sun.prism.Image;
import com.zy.asrs.entity.ImageView;
import com.zy.asrs.utils.ImagePreviewUtils;
import com.zy.common.web.BaseController;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -14,14 +18,16 @@
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Files;
import java.util.*;
@Slf4j
@RestController
@RequestMapping()
public class ImagePreviewController extends BaseController {
    //上传图片
    @ApiResponses({@ApiResponse(code = 200, message = "上传成功"), @ApiResponse(code = 400, message = "上传失败"), @ApiResponse(code = 500, message = "服务器内部错误")})
    //@RequestMapping(value = "/saveImage", method = RequestMethod.POST)
    @RequestMapping(value = "/saveImage", method = RequestMethod.POST)
    public Map<String, Object> saveImage(@RequestParam("files") MultipartFile[] files) {
        Map<String, Object> map = new HashMap<>();
        List<String> list = new ArrayList<>();
@@ -30,14 +36,14 @@
            //获取文件后缀
            String suffixName = ImagePreviewUtils.getSaveImagePath(mfile);
            //生成新文件名称
            String newFileName = ImagePreviewUtils.getNewImageFileName(suffixName);
            //String newFileName = ImagePreviewUtils.getNewImageFileName(suffixName);
            //保存文件
            File file = new File(ImagePreviewUtils.getNewImagePath(newFileName));
            File file = new File(ImagePreviewUtils.getNewImagePath(mfile.getOriginalFilename()));
            boolean state = ImagePreviewUtils.saveImage(mfile, file);
            if (state) {
//                 list.add(ImageUtil.getNewImagePath(newFileName));
                //保存数据库的图片路径为  相对路径
                list.add("uploadimage/" + newFileName);
                list.add("uploadimage/" + mfile.getOriginalFilename());
            }
        }
        map.put("imgList", list);
@@ -46,18 +52,16 @@
    }
    //预览图片
    //@RequestMapping("previewImage")
    @RequestMapping("/previewImage")
    @ApiOperation(value = "根据文件名实现预览功能")
    public void previewFile(
            HttpServletResponse response) throws IOException {
        showImg("D:\\"+"images\\"+"20251022efda188c-56b3-4c38-9940-78d0b61b43a1.png", response);
    }
    public static void showImg(String path, HttpServletResponse response){
        if(path!=null&&!path.equals("")){
    public String previewFile(
            HttpServletResponse response,String maktx) throws IOException {
//        String[] s = matnr.split("__");
        showImg("D:\\"+"images\\"+maktx+".png", response,maktx);
        if("D:\\"+"images\\"+maktx+".png"!=null){
            try {
                FileInputStream fis = new FileInputStream(path);
                FileInputStream fis = new FileInputStream("D:\\"+"images\\"+maktx+".png");
                ServletOutputStream os = response.getOutputStream();
                byte [] b = new byte[1024*8];
@@ -66,9 +70,37 @@
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return "该简图不存在,请上传";
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "";
    }
    public static void showImg(String path, HttpServletResponse response,String maktx){
    }
    public static R showImgToBase64(String path, HttpServletResponse response,String maktx){
            byte[] imageBytes = null;
            try {
                File file =new File(path);
                imageBytes = Files.readAllBytes(file.toPath());
            }catch (IOException e){
                e.printStackTrace();
                return null;
            }
            String pics = Base64.getEncoder().encodeToString(imageBytes);
            List<String> list = new ArrayList<>();
            List<ImageView> imageViewList = new ArrayList<>();
            ImageView imageView = new ImageView();
            //String s = "http://192.168.0.2/image/"+pics+".jpg";
            list.add(pics);
            imageView.setPics(list);
            imageView.setMaktx(maktx);
            imageViewList.add(imageView);
            //log.info(s);
            log.info(pics);
            return R.ok().add(imageViewList);
    }
}
src/main/java/com/zy/asrs/entity/ImageView.java
New file
@@ -0,0 +1,13 @@
package com.zy.asrs.entity;
import lombok.Data;
import java.util.List;
@Data
public class ImageView {
    //图片的base64
    private List<String> pics;
    private String maktx;
}
src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -116,7 +116,7 @@
//            String deToken = Cools.deTokn(token, user.getPassword());
//            long timestamp = Long.parseLong(deToken.substring(0, 13));
            // 15分钟后过期
            if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 900000){
            if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 86400000){
                Http.response(response, BaseRes.DENIED);
                return false;
            }
src/main/java/com/zy/common/web/AuthController.java
@@ -18,6 +18,7 @@
import com.zy.system.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -382,4 +383,16 @@
        return R.ok("激活成功,有效期至"+DateUtils.convert(exprTime));
    }
//    @Scheduled(cron = "*/30 * * * * *")
//    public void deleteToken(){
//        List<User> userList = userService.selectAll();
//        for (User user : userList) {
//           UserLogin userLogin = userLoginService.selectByUserId(user.getId());
//            if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 30){
//                    userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", userLogin.getId()));
//                }
//        }
//    }
}
src/main/java/com/zy/system/mapper/UserLoginMapper.java
@@ -6,6 +6,8 @@
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserLoginMapper extends BaseMapper<UserLogin> {
@@ -13,4 +15,7 @@
    @Select("select count(1) from sys_user_login where yearweek(date_format(create_time,'%Y-%m-%d')) = yearweek(now())")
    int selectCountByCurrentWeek();
    @Select("select * from sys_user_login where user_id = #{userId}")
    UserLogin selectByUserId(Long id);
}
src/main/java/com/zy/system/mapper/UserMapper.java
@@ -3,10 +3,15 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.system.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {
    @Select("select * from sys_user;")
    List<User> selectAll();
}
src/main/java/com/zy/system/service/UserLoginService.java
@@ -3,8 +3,11 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.system.entity.UserLogin;
import java.util.List;
public interface UserLoginService extends IService<UserLogin> {
    int selectCountByCurrentWeek();
    UserLogin selectByUserId(Long id);
}
src/main/java/com/zy/system/service/UserService.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.system.entity.User;
import java.util.List;
public interface UserService extends IService<User> {
    List<User> selectAll();
}
src/main/java/com/zy/system/service/impl/UserLoginServiceImpl.java
@@ -7,6 +7,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service("userLoginService")
public class UserLoginServiceImpl extends ServiceImpl<UserLoginMapper, UserLogin> implements UserLoginService {
@@ -17,4 +20,9 @@
    public int selectCountByCurrentWeek() {
        return userLoginMapper.selectCountByCurrentWeek();
    }
    @Override
    public UserLogin selectByUserId(Long id) {
        return userLoginMapper.selectByUserId(id);
    }
}
src/main/java/com/zy/system/service/impl/UserServiceImpl.java
@@ -4,9 +4,19 @@
import com.zy.system.entity.User;
import com.zy.system.mapper.UserMapper;
import com.zy.system.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public List<User> selectAll() {
        return userMapper.selectAll();
    }
}
src/main/webapp/static/js/locDetl/locDetl.js
@@ -17,7 +17,12 @@
        ,{field: 'brand', align: 'center',title: '品牌', hide: true}
        ,{field: 'unit', align: 'center',title: '单位', hide: true}
        ,{field: 'price', align: 'center',title: '单价', hide: true}
        ,{field: 'sku', align: 'center',title: '简图', hide: false}
        // ,{fixed: 'right', title:'简图', align: 'center', toolbar: '#operate1', width: 300}
        ,{field: 'right', align: 'center',title: '简图', templet:function(row){
                var html = "<img  src='http://127.0.0.1:8080/czkhasrs/previewImage?maktx=" +row.maktx+"'/>";
                return html;
            }}
        ,{field: 'units', align: 'center',title: '单位量', hide: true}
        ,{field: 'barcode', align: 'center',title: '条码', hide: true}
        ,{field: 'origin', align: 'center',title: '产地', hide: true}
@@ -371,6 +376,48 @@
                   });
                }
                break;
            // 查看简图
            case 'showPic':
                let imgHtml = '<div style="height:100%;display: flex;justify-content: space-around;align-items: center;flex-wrap: wrap;">';
                $.ajax({
                    url: baseUrl+"/previewImage",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        maktx: data.maktx
                    },
                    method: 'GET',
                    traditional:true,
                    success: function (res) {
                        if (res.code === 200){
                            res.data.forEach((item) => {
                                let maktx = item.maktx;
                                let pics = item.pics;
                                pics.forEach((pic) => {
                                    let tmp = '<div><div><img width="600" src="' + pic + '" /></div><div>' + maktx + '</div></div>';
                                    imgHtml += tmp;
                                })
                            })
                            imgHtml += "</div>";
                            layer.open({
                                type: 1,
                                title: '查看简图',
                                area: [top.detailWidth, top.detailHeight],
                                shadeClose: true,
                                content: imgHtml,
                                success: function(layero, index){
                                }
                            });
                        } else if (res.code === 403){
                            top.location.href = baseUrl+"/";
                        } else {
                            layer.msg(res.msg)
                        }
                    }
                });
                console.log(imgHtml)
                break;
        }
    });
src/main/webapp/views/locDetl/locDetl.html
@@ -88,7 +88,9 @@
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a>
</script>
<script type="text/html" id="operate1">
    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="showPic" >查看简图</a>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>