自动化立体仓库 - WMS系统
#
lsh
2024-06-06 da92f60f961b0c6ee5c509de1ca603edaaa85d06
#
16个文件已修改
1个文件已添加
182 ■■■■ 已修改文件
pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/BasBoxTypeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/BasCrnOptController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/BasJarController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/BasJarMastStatusController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocMastController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MatController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WaitPakinController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WrkMastSplitTwinController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WrkMastStaController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AdminInterceptor.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AspectConfig.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/AuthController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/OperateLog.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/UserLogin.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserLoginMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/userLogin/userLogin.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -37,6 +37,10 @@
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.cool</groupId>
            <artifactId>framework</artifactId>
            <version>${cool.version}</version>
src/main/java/com/zy/asrs/controller/BasBoxTypeController.java
@@ -61,7 +61,7 @@
    }
    @RequestMapping(value = "/basBoxType/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "basBoxType添加")
    public R add(BasBoxType basBoxType) {
        basBoxTypeService.insert(basBoxType);
        return R.ok();
src/main/java/com/zy/asrs/controller/BasCrnOptController.java
@@ -63,7 +63,7 @@
    }
    @RequestMapping(value = "/basCrnOpt/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "basCrnOpt添加")
    public R add(BasCrnOpt basCrnOpt) {
        basCrnOptService.insert(basCrnOpt);
        return R.ok();
src/main/java/com/zy/asrs/controller/BasJarController.java
@@ -15,6 +15,7 @@
import com.core.common.Cools;
import com.core.common.R;
import com.zy.common.web.BaseController;
import com.zy.system.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -125,7 +126,7 @@
    }
    @PostMapping("/table/jar/state")
    @ManagerAuth(memo = "JAR信息表")
//    @ManagerAuth(memo = "JAR信息表")
    public R jarStateTable(){
        List<JarStateTableVo> list = new ArrayList<>();
        List<BasJar> jars = basJarService.selectList(new EntityWrapper<BasJar>().orderBy("jar_no"));
src/main/java/com/zy/asrs/controller/BasJarMastStatusController.java
@@ -60,14 +60,14 @@
    }
    @RequestMapping(value = "/basJarMastStatus/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "硫化罐状态添加")
    public R add(BasJarMastStatus basJarMastStatus) {
        basJarMastStatusService.insert(basJarMastStatus);
        return R.ok();
    }
    @RequestMapping(value = "/basJarMastStatus/update/auth")
    @ManagerAuth
    @ManagerAuth(memo = "硫化罐状态更新")
    public R update(BasJarMastStatus basJarMastStatus){
        if (Cools.isEmpty(basJarMastStatus) || null==basJarMastStatus.getId()){
            return R.error();
@@ -77,7 +77,7 @@
    }
    @RequestMapping(value = "/basJarMastStatus/delete/auth")
    @ManagerAuth
    @ManagerAuth(memo = "硫化罐状态删除")
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            basJarMastStatusService.deleteById(id);
src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -34,6 +34,7 @@
    private LocDetlService locDetlService;
    @RequestMapping(value = "/locMast/init/pwd")
    @ManagerAuth(memo = "初始化口令验证")
    public R locMastInitPwd(@RequestParam(required = false) String pwd) {
        if (Cools.isEmpty(pwd)) {
            return R.error("请输入口令");
src/main/java/com/zy/asrs/controller/MatController.java
@@ -119,7 +119,7 @@
    }
    @RequestMapping(value = "/mat/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "新增商品档案")
    public R add(Mat mat) {
        if (null != matService.selectByMatnr(mat.getMatnr())) {
            return R.error("编号已存在");
src/main/java/com/zy/asrs/controller/WaitPakinController.java
@@ -73,14 +73,14 @@
    }
    @RequestMapping(value = "/waitPakin/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "入库通知档案添加")
    public R add(WaitPakin waitPakin) {
        waitPakinService.insert(waitPakin);
        return R.ok();
    }
    @RequestMapping(value = "/waitPakin/update/auth")
    @ManagerAuth
    @ManagerAuth(memo = "入库通知档案修改")
    public R update(WaitPakin waitPakin){
        if (Cools.isEmpty(waitPakin)){
            return R.error();
@@ -90,7 +90,7 @@
    }
    @RequestMapping(value = "/waitPakin/delete/auth")
    @ManagerAuth
    @ManagerAuth(memo = "入库通知档案删除")
    @Transactional
    public R delete(@RequestParam String param){
        List<WaitPakin> list = JSONArray.parseArray(param, WaitPakin.class);
src/main/java/com/zy/asrs/controller/WrkMastSplitTwinController.java
@@ -60,14 +60,14 @@
    }
    @RequestMapping(value = "/wrkMastSplitTwin/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "拆分双工位任务添加")
    public R add(WrkMastSplitTwin wrkMastSplitTwin) {
        wrkMastSplitTwinService.insert(wrkMastSplitTwin);
        return R.ok();
    }
    @RequestMapping(value = "/wrkMastSplitTwin/update/auth")
    @ManagerAuth
    @ManagerAuth(memo = "拆分双工位任务修改")
    public R update(WrkMastSplitTwin wrkMastSplitTwin){
        if (Cools.isEmpty(wrkMastSplitTwin) || null==wrkMastSplitTwin.getId()){
            return R.error();
@@ -77,7 +77,7 @@
    }
    @RequestMapping(value = "/wrkMastSplitTwin/delete/auth")
    @ManagerAuth
    @ManagerAuth(memo = "拆分双工位任务删除")
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            wrkMastSplitTwinService.deleteById(id);
src/main/java/com/zy/asrs/controller/WrkMastStaController.java
@@ -60,14 +60,14 @@
    }
    @RequestMapping(value = "/wrkMastSta/add/auth")
    @ManagerAuth
    @ManagerAuth(memo = "RGV任务添加")
    public R add(WrkMastSta wrkMastSta) {
        wrkMastStaService.insert(wrkMastSta);
        return R.ok();
    }
    @RequestMapping(value = "/wrkMastSta/update/auth")
    @ManagerAuth
    @ManagerAuth(memo = "RGV任务修改")
    public R update(WrkMastSta wrkMastSta){
        if (Cools.isEmpty(wrkMastSta) || null==wrkMastSta.getId()){
            return R.error();
@@ -77,7 +77,7 @@
    }
    @RequestMapping(value = "/wrkMastSta/delete/auth")
    @ManagerAuth
    @ManagerAuth(memo = "RGV任务删除")
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
            wrkMastStaService.deleteById(id);
src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -138,12 +138,12 @@
                    return false;
                }
                // 记录操作日志
                OperateLog operateLog = new OperateLog();
                operateLog.setAction(Cools.isEmpty(memo)?request.getRequestURI():memo);
                operateLog.setIp(request.getRemoteAddr());
                operateLog.setUserId(user.getId());
                operateLog.setRequest(JSON.toJSONString(request.getParameterMap()));
                request.setAttribute("operateLog", operateLog);
//                OperateLog operateLog = new OperateLog();
//                operateLog.setAction(Cools.isEmpty(memo)?request.getRequestURI():memo);
//                operateLog.setIp(request.getRemoteAddr());
//                operateLog.setUserId(user.getId());
//                operateLog.setRequest(JSON.toJSONString(request.getParameterMap()));
//                request.setAttribute("operateLog", operateLog);
            }
            return true;
        } catch (Exception e){
src/main/java/com/zy/common/config/AspectConfig.java
New file
@@ -0,0 +1,110 @@
package com.zy.common.config;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.zy.system.entity.OperateLog;
import com.zy.system.entity.User;
import com.zy.system.entity.UserLogin;
import com.zy.system.service.OperateLogService;
import com.zy.system.service.UserLoginService;
import com.zy.system.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Component
@Aspect
@Slf4j
public class AspectConfig {
    @Autowired
    private UserLoginService userLoginService;
    @Autowired
    private UserService userService;
    @Autowired
    private OperateLogService operateLogService;
    @Pointcut("execution(* com.zy.asrs.controller.*(..))")
    private void webLog() {
    }
    @Around("@within(org.springframework.web.bind.annotation.RestController)" +
            "||@within(org.springframework.stereotype.Controller)")
    public Object after(ProceedingJoinPoint joinPoint) throws Throwable{
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        //if(requestAttributes != null){
        //    return joinPoint.proceed();
        //}
        HttpServletRequest request = requestAttributes.getRequest();
        long start = System.currentTimeMillis();
        Object result = joinPoint.proceed(joinPoint.getArgs());
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        if (method.isAnnotationPresent(ManagerAuth.class)){
            ManagerAuth annotation = method.getAnnotation(ManagerAuth.class);
            if (annotation.value().equals(ManagerAuth.Auth.CHECK)){
                if (!Cools.isEmpty(annotation.memo())) {
                    saveLog(joinPoint, request, result,annotation.memo());
                }
            }
        }
        long end = System.currentTimeMillis();
//        log.info("请求日志的打印");
//        log.info("请求地址:{}", Optional.ofNullable(request.getRequestURI().toString()).orElse(null));
//        log.info("请求方式:{}",request.getMethod());
//        log.info("请求类方法:{}",joinPoint.getSignature());
//        log.info("请求类方法参数:{}", JSONObject.toJSONString(filterArgs(joinPoint.getArgs())));
//        log.info("请求响应参数{}", JSONObject.toJSONString(result));
//        log.info("执行耗时:{}", end - start);
        return result;
    }
    private List<Object> filterArgs(Object[] objects) {
        return Arrays.stream(objects).filter(obj -> !(obj instanceof MultipartFile)
                && !(obj instanceof HttpServletResponse)
                && !(obj instanceof HttpServletRequest)).collect(Collectors.toList());
    }
    private void saveLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, Object result,String memo) {
        Long userId = 9527L;
        String token = request.getHeader("token");
        UserLogin userLogin = userLoginService.selectOne(new EntityWrapper<UserLogin>().eq("token", token).eq("system", "WMS"));
        if (userLogin != null) {
            User user = userService.selectById(userLogin.getUserId());
            if (user != null) {
                userId = user.getId();
            }
        }
        // 记录操作日志
        OperateLog operateLog = new OperateLog();
        operateLog.setAction(Cools.isEmpty(memo)?request.getRequestURI():memo);
        operateLog.setIp(request.getRemoteAddr());
        operateLog.setUserId(userId);
        operateLog.setRequest(JSONObject.toJSONString(filterArgs(joinPoint.getArgs())));
        operateLog.setResponse(JSONObject.toJSONString(result));
        operateLogService.insert(operateLog);
    }
}
src/main/java/com/zy/common/web/AuthController.java
@@ -80,6 +80,7 @@
        userLogin.setUserId(user.getId());
        userLogin.setToken(token);
        userLogin.setCreateTime(new Date());
        userLogin.setSystem("WMS");
        userLoginService.insert(userLogin);
        Map<String, Object> res = new HashMap<>();
        res.put("username", user.getUsername());
src/main/java/com/zy/system/entity/OperateLog.java
@@ -80,6 +80,8 @@
        User user = service.selectById(this.userId);
        if (!Cools.isEmpty(user)){
            return user.getUsername();
        } else if (this.userId==9527L){
            return "自动";
        }
        return null;
    }
src/main/java/com/zy/system/entity/UserLogin.java
@@ -8,12 +8,14 @@
import com.core.common.Cools;
import com.core.common.SpringUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@TableName("sys_user_login")
@Data
public class UserLogin implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -30,6 +32,7 @@
    @ApiModelProperty(value= "所属项目")
    @TableField("host_id")
    private Long hostId;
    /**
     * 员工
     */
@@ -47,6 +50,12 @@
    @TableField("create_time")
    private Date createTime;
    /**
     * 登录系统
     */
    @TableField("system")
    private String system;
    public Long getId() {
        return id;
    }
@@ -62,6 +71,7 @@
    public void setHostId(Long hostId) {
        this.hostId = hostId;
    }
    public Long getUserId() {
        return userId;
    }
@@ -101,5 +111,11 @@
        this.createTime = createTime;
    }
    public String getSystem() {
        return system;
    }
    public void setSystem(String system) {
        this.system = system;
    }
}
src/main/resources/mapper/UserLoginMapper.xml
@@ -5,9 +5,11 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.zy.system.entity.UserLogin">
        <id column="id" property="id" />
        <result column="host_id" property="hostId" />
        <result column="user_id" property="userId" />
        <result column="token" property="token" />
        <result column="create_time" property="createTime" />
        <result column="system" property="system" />
    </resultMap>
src/main/webapp/static/js/userLogin/userLogin.js
@@ -21,6 +21,7 @@
            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
            ,{field: 'userUsername', align: 'center',title: '员工',event: 'User', style: 'text-decoration: underline;cursor:pointer'}
            ,{field: 'token', align: 'center',title: '凭证值'}
            ,{field: 'memo', align: 'center',title: '记录'}
            ,{field: 'createTime$', align: 'center',title: '添加时间'}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150}