自动化立体仓库 - WMS系统
*
pjb
3 天以前 2b1c858126f9c059bd6e308923eabfc71b1b4e7a
*
4个文件已修改
1个文件已添加
228 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/WrkMastController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/deviceOperate/devpOperate.html 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WrkMastController.java
@@ -12,6 +12,7 @@
import com.core.common.R;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.service.CommonService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -23,6 +24,8 @@
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private CommonService commonService;
    @RequestMapping(value = "/wrkMast/{id}/auth")
    @ManagerAuth
@@ -166,4 +169,52 @@
    }
    @GetMapping("/wrkMast/ioType120/list/auth")
    @ManagerAuth(memo = "站位转移任务数据")
    public R wrkMastIoType120Select(){
        List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 120));
        return R.ok().add(wrkMastList);
    }
    @PostMapping("/wrkMast/ioType120/add")
    @ManagerAuth(memo = "修改站点数据")
    public R wrkMastIoType120Add(@RequestParam Integer sourceStaNo,
                            @RequestParam Integer staNo
    ) {
        // 生成工作号
        int workNo = commonService.getWorkNo(4);
        Date now = new Date();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
        wrkMast.setWrkNo(workNo);
        wrkMast.setIoTime(now);
        wrkMast.setWrkSts(51L); // 工作状态:生成入库ID
        wrkMast.setIoType(120); // 入出库状态:1.入库
        wrkMast.setIoPri(13D); // 优先级:13
        wrkMast.setCrnNo(0);
        wrkMast.setSourceStaNo(sourceStaNo);
        wrkMast.setStaNo(staNo);
        wrkMast.setLocNo("");
        wrkMast.setBarcode(""); // 托盘码
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
        wrkMast.setExitMk("N"); // 退出
        wrkMast.setEmptyMk("N"); // 空板
        wrkMast.setLinkMis("N");
//        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型
        wrkMast.setAppeUser(getUserId());
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(getUserId());
        wrkMast.setModiTime(now);
        if (!wrkMastService.insert(wrkMast)) {
//            throw new CoolException("保存工作档失败");
            return R.error().add("添加失败");
        }
        return R.ok().add("添加成功");
    }
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -823,7 +823,7 @@
        if (wrkMast.getStaNo() == 1090 && wrkMast.getLocNo() == null) {
            throw new CoolException(workNo+"工作档无法完成,库位号为空!");
        }
        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
        if (wrkMast.getWrkSts() == 4L || wrkMast.getWrkSts() == 14L || wrkMast.getWrkSts() == 54L) {
            throw new CoolException("当前工作档已完成");
        }
        // 完成空桶库入出库任务另一个任务
@@ -843,6 +843,9 @@
            workNoOther = wrkMast.getWorkNoOther();
        } else if(wrkMast.getIoType() == 1 && wrkMast.getWrkSts() == 10) {
            wrkMast.setWrkSts(2L);
            wrkMast.setRgvFinishTime(new Date());
        } else if(wrkMast.getIoType() == 120) {
            wrkMast.setWrkSts(54L);
            wrkMast.setRgvFinishTime(new Date());
        }
        Date now = new Date();
@@ -1101,7 +1104,7 @@
        String locNo = ""; // 待修改目标库位
        String locSts = ""; // 待修改目标库位状态
        // 入库取消(修改目标库位)
        if (wrkMast.getWrkSts() <= 10) {
        if (wrkMast.getWrkSts() <= 10  && wrkMast.getIoType()!=120) {
            locNo = wrkMast.getLocNo();
            locSts = "O";
@@ -1118,7 +1121,7 @@
                locMastService.updateById(locMast);
            }
        // 出库取消(修改源库位)
        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=120) {
            locNo = wrkMast.getSourceLocNo();
            if (wrkMast.getIoType() == 110) {
                if(wrkMast.getStaNo() == 1035) { // 子拆盘机站点
@@ -1143,6 +1146,16 @@
                locMast.setModiUser(userId);
                locMastService.updateById(locMast);
            }
        } else if (wrkMast.getIoType()==120){
            // 取消操作人员记录
            wrkMast.setWrkSts(54L);
            wrkMast.setManuType("手动取消");
            wrkMast.setModiUser(userId);
            wrkMast.setModiTime(now);
            if (!wrkMastService.updateById(wrkMast)) {
                throw new CoolException("取消工作档失败");
            }
            return;
        } else {
            throw new CoolException("当前工作状态无法取消");
        }
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -99,6 +99,17 @@
//                    }
//                }
            }
            if (wrkMast.getIoType()==120){
                // 保存工作主档历史档
                if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                    exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
                }
                // 删除工作主档
                if (!wrkMastService.deleteById(wrkMast)) {
                    exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo());
                }
                return SUCCESS;
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
src/main/resources/mapper/WrkMastMapper.xml
@@ -86,6 +86,8 @@
        a.modi_time &lt;= DATEADD(s, -10, GETDATE()) OR
        a.crn_end_time IS NULL
        ))
        OR
        (a.wrk_sts = 54 AND a.io_type = 120)
        ) OPTION (RECOMPILE)
    </select>
src/main/webapp/views/deviceOperate/devpOperate.html
New file
@@ -0,0 +1,145 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>手动站位转移</title>
    <link rel="stylesheet" href="../../static/css/element.css">
    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/js/common.js"></script>
    <script type="text/javascript" src="../../static/js/vue.min.js"></script>
    <script type="text/javascript" src="../../static/js/element.js"></script>
</head>
<body>
    <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
        <div style="width: 100%;display: flex;justify-content: center;">
            <div style="width: 100%;margin-right: 10px;">
                <el-card class="box-card">
                    <div slot="header" class="clearfix">
                        <span>手动站位转移</span>
                    </div>
                    <div>
                        <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
                            <el-form-item label="源站">
                                <el-input v-model="formParam.sourceStaNo" placeholder="源站"></el-input>
                            </el-form-item>
                            <el-form-item label="目标站">
                                <el-input v-model="formParam.staNo" placeholder="目标站"></el-input>
                            </el-form-item>
                        </el-form>
                        <div>
                            <el-button @click="requestOperate('add')" type="primary">添加</el-button>
                        </div>
                    </div>
                </el-card>
            </div>
        </div>
        <div style="width: 100%;margin-top: 10px;">
            <el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
                max-height="450" style="width: 100%">
                <el-table-column property="wrkNo" label="工作号">
                </el-table-column>
                <el-table-column property="wrkSts$" label="工作状态">
                </el-table-column>
                <el-table-column property="ioType$" label="入出库类型">
                </el-table-column>
                <el-table-column property="sourceStaNo" label="源站">
                </el-table-column>
                <el-table-column property="staNo" label="目标站">
                </el-table-column>
            </el-table>
        </div>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                tableData: [],
                currentRow: null,
                currentTitle: "未选择设备",
                currentIndex: null,
                formParam: {
                    sourceStaNo: null,
                    staNo: null
                }
            },
            created() {
                this.init()
            },
            watch: {
            },
            methods: {
                init() {
                    this.getTableData()
                    setInterval(() => {
                        this.getTableData()
                    }, 1000)
                },
                handleRowClick(row, col, event) {
                    const index = this.tableData.indexOf(row)
                    this.currentRow = row;
                    this.currentIndex = index
                    this.currentTitle = row.devNo + "站点"
                    this.formParam.devNo = row.devNo
                    this.formParam.workNo = row.workNo
                    this.formParam.staNo = row.staNo
                },
                getTableData() {
                    let that = this;
                    $.ajax({
                        url: baseUrl + "/wrkMast/ioType120/list/auth",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: {},
                        dataType: 'json',
                        contentType: 'application/json;charset=UTF-8',
                        method: 'GET',
                        success: function (res) {
                            that.tableData = res.data
                        }
                    });
                },
                requestOperate(method) {
                    let that = this
                    that.$confirm('此操作存在风险,是否继续','提示',{
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(()=>{
                        $.ajax({
                            url: baseUrl + "/wrkMast/ioType120/"+method,
                            headers: {
                                'token': localStorage.getItem('token')
                            },
                            data: this.formParam,
                            method: 'POST',
                            success: function (res) {
                                if (res.code == 200) {
                                    that.$message({
                                        message: res.msg,
                                        type: 'success'
                                    });
                                } else {
                                    that.$message({
                                        message: res.msg,
                                        type: 'error'
                                    });
                                }
                            }
                        });
                    })
                }
            }
        })
    </script>
</body>
</html>