igds-inout/src/main/java/com/ld/igds/inout/controller/InoutController.java
@@ -33,6 +33,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -692,9 +694,33 @@ return inoutManager.submitComplete(data); } /** * 根据质检单号获取出入库信息 * @param param * @return */ @RequestMapping("/inout-check-scan-code") public PageResponse<InoutCheckData> inoutDataByCheckId(@RequestBody InoutCheckParam param) { if (null == param.getCompanyId()) { param.setCompanyId(ContextUtil.getCompanyId()); } return inoutManager.inoutDataByCheckId(param); } /** * 质检页面提交 * 质检页面仅提交保存化验信息 * * @param data * @return */ @RequestMapping("/submit-checkItem") @Transactional public PageResponse<InoutCheckData> submitCheckItem(@RequestBody InoutCheckData data)throws Exception { return inoutManager.submitCheckData(data); } /** * 质检页面提交下一流程 * * @param data * @return igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
@@ -881,6 +881,47 @@ return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功"); } public PageResponse<InoutCheckData> submitCheckData(InoutCheckData data) throws Exception { // 获取业务数据信息 InoutParam param = new InoutParam(); param.setCompanyId(data.getCompanyId()); param.setId(data.getId()); InoutData curData = inoutService.inoutProgressQuery(param); if (null == curData) { return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "没有获取到入库业务数据信息,更新失败", data); } if (InoutConstant.PROGRESS_RECORD.equals(curData.getProgress())) { return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "当前流程已经结束,不支持修改"); } // 更新化验项信息 CheckUpdateResult checkResult = checkStandardManager.updateCheckItems(data.getCheckId(), data.getCompanyId(), data.getCheckItems()); if (StringUtils.isNotEmpty(checkResult.getMsg())) { return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "后台执行异常:" + checkResult.getMsg(), data); } curData.setType(curData.getType()); curData.setFoodLevel(data.getFoodLevel()); curData.setFoodVariety(data.getFoodVariety()); curData.setPrice(data.getPrice()); curData.setDepotId(data.getDepotId()); curData.setCheckItems(data.getCheckItems()); String msg = inoutService.updateCheckData(curData); if (null != msg) { return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg); } return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "保存成功"); } /** * @param param * @return @@ -952,4 +993,32 @@ } } /** * * @param param * @return */ public PageResponse<InoutCheckData> inoutDataByCheckId(InoutCheckParam param) { if (StringUtils.isEmpty(param.getCheckId())) { return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "查询参数不完整,查询失败!"); } InoutCheckData result; try { param.setProgress(InoutConstant.PROGRESS_CHECK); result = inoutService.inoutDataByCheckId(param); if (null == result) { return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "系统未查询到执行中的车辆信息", null); } return new PageResponse<>(RespCodeEnum.CODE_0000, result); } catch (Exception e) { return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), e.getMessage()); } } } igds-inout/src/main/java/com/ld/igds/inout/mapper/InoutCheckMapper.java
@@ -58,4 +58,13 @@ * @return */ List<InoutPrice> getPrice(@Param("param") InoutCheckParam param); /** * 根据质检单号获取出入库数据 * * @param param * @return */ List<InoutCheckData> inoutDataByCheckId(@Param("param") InoutCheckParam param); } igds-inout/src/main/java/com/ld/igds/inout/service/InoutService.java
@@ -254,4 +254,13 @@ * @param id */ void delFromCache(String deptId, String type, String id); /** * 根据参数查询数据,流程中的数据 * * @param param * @return * @throws Exception */ InoutCheckData inoutDataByCheckId(InoutCheckParam param) throws Exception; } igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
@@ -712,4 +712,16 @@ } return inoutCheckMapper.getPrice(param); } @Override public InoutCheckData inoutDataByCheckId(InoutCheckParam param) throws Exception { List<InoutCheckData> list = inoutCheckMapper.inoutDataByCheckId(param); if (null == list || list.size() == 0) return null; if (list.size() == 1) { return list.get(0); } else { throw new Exception("当前条件下存在多个满足条件的数据,请核查!!"); } } } igds-inout/src/main/resources/mapper/InoutCheckMapper.xml
@@ -151,4 +151,40 @@ ORDER BY UPDATE_TIME_ </select> <!--分页获取化验数据--> <select id="inoutDataByCheckId" resultType="com.ld.igds.inout.dto.InoutCheckData" parameterType="com.ld.igds.inout.dto.InoutCheckParam"> select ID_ as id, COMPANY_ID_ as companyId, DEPT_ID_ as deptId, TYPE_ as type, PROGRESS_ as progress, RECORD_STATUS_ as recordStatus, INTEL_CARD_ as intelCard, REGISTER_TIME_ as registerTime, REGISTER_USER_ as registerUser, DEPOT_ID_ as depotId, FOOD_VARIETY_ as foodVariety, FOOD_LEVEL_ as foodLevel, PRICE_ as price, PLATE_NUM_ as plateNum, SAMPLE_USER_ as sampleUser, SAMPLE_TIME_ as sampleTime, CHECK_USER_ as checkUser, CHECK_TIME_ as checkTime, CHECK_ID_ as checkId, CHECK_STATUS_ AS checkStatus, REMARKS_ AS remarks from D_INOUT_RECORD <where> <if test="param.companyId != null and param.companyId != '' ">AND COMPANY_ID_ = #{param.companyId}</if> <if test="param.checkId != null and param.checkId != '' ">AND CHECK_ID_ = #{param.checkId}</if> <if test="param.progress != null and param.progress != '' ">AND PROGRESS_ = #{param.progress}</if> </where> AND RECORD_STATUS_ != 'DEL' ORDER BY REGISTER_TIME_ </select> </mapper> igds-web/src/main/resources/static/admin/inout/in-check.js
@@ -3,6 +3,7 @@ var laydate; var form; var table; var scanCodeTag = false; var page = 1; var limit = 10; var curCheckData = null;// 当前编辑数据 @@ -41,9 +42,9 @@ table.on('tool(tableData)', function (obj) { if (obj.event === 'edit') { //更新仓库下拉列表 updateSelect(obj); updateSelect(); //展示数据 showDetail(obj); showDetail(obj.data); } }); @@ -75,7 +76,7 @@ function socketOnMessage(packet) { layer.alert(packet.data); window.parent.sysNotify(packet.data); }; } //控制流程环节显示 function showProgress() { @@ -141,9 +142,8 @@ } //动态更换仓库下拉列表 function updateSelect(obj) { function updateSelect() { $('#depotId option').remove(); var dat = obj.data; for (var i = 0; i < listDepot.length; i++) { $('#depotId').append('<option value="' + listDepot[i].id + '">' + listDepot[i].name + '</option>'); } @@ -330,81 +330,6 @@ return str.slice(0, 1) + "***" + str.slice(split.length - 1); } function showDetail(obj) { curCheckData = obj.data; curSampleData = obj.data; if (!curCheckData.checkTime) { curCheckData.checkTime = dateFtt("yyyy-MM-dd hh:mm:ss", new Date()); } curCheckData.checkUser = checkUser; // 赋值 form.val("form-detail", curCheckData); form.render(); layer.open({ type: 1, title: "化验单明细", area: ['1400px', '700px'], shade: 0, content: $('#checkDetail'), btnAlign: 'c', btn: ['保存提交', '关闭取消'], yes: function () { // 更新到页面 var data = form.val("form-detail"); obj.update(data); // 合并更新當前编辑数据 Object.assign(curCheckData, data); submit(); }, btn2: function () { layer.closeAll(); }, closeBtn: 0 }); // 获取化验项信息 flushCheckItem(curCheckData.foodVariety); getPriceByFoodLevel(curCheckData.foodLevel); } /** * 刷新化验结果项 */ function flushCheckItem(foodVariety) { curCheckItems = null; $("#check-result-tip").text("检验结果:#"); $("#price-result-tip2").text("粮食定价:#元/公斤"); curCheckData.foodVariety = foodVariety; var index = layer.load(); $.ajax({ type: "POST", url: "../../basic/inout/get-check-item", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify(curCheckData), success: function (result) { if (result.code != "0000") { layer.msg(result.msg); } else { curCheckItems = result.data; // 根据化验结果提醒是否合格 updateCheckResultTip(); // 页面渲染检测项 renderTableCheckItem(); layer.close(index); } }, error: function () { layer.close(index); layer.msg("后台异常,请重试或者联系管理员!!"); } }); }; // 更新化验结果提醒,只做提醒,不做自动判断 function updateCheckResultTip() { if (!curCheckItems || curCheckItems.length == 0) { @@ -518,10 +443,129 @@ "border-bottom": "2px solid #53adce", "background": "#eff4f6" }); } function showDetail(data) { curCheckData = data; if (!curCheckData.checkTime) { curCheckData.checkTime = dateFtt("yyyy-MM-dd hh:mm:ss", new Date()); } curCheckData.checkUser = checkUser; // 赋值 form.val("form-detail", curCheckData); form.render(); layer.open({ type: 1, title: "化验单明细", area: ['1400px', '700px'], shade: 0, content: $('#checkDetail'), btnAlign: 'c', btn: ['仅保存', '保存提交','关闭取消'], yes: function () { // 更新到页面 var data = form.val("form-detail"); // 合并更新當前编辑数据 Object.assign(curCheckData, data); saveCheckData(); if(scanCodeTag){ showScanCode(); } }, btn2: function () { // 更新到页面 var data = form.val("form-detail"); // 合并更新當前编辑数据 Object.assign(curCheckData, data); submit(); if(scanCodeTag){ showScanCode(); } }, btn3: function () { parent.layer.closeAll(); if(scanCodeTag){ showScanCode(); } }, closeBtn: 0 }); // 获取化验项信息 flushCheckItem(curCheckData.foodVariety); getPriceByFoodLevel(curCheckData.foodLevel); } /** * 刷新化验结果项 */ function flushCheckItem(foodVariety) { curCheckItems = null; $("#check-result-tip").text("检验结果:#"); $("#price-result-tip2").text("粮食定价:#元/公斤"); curCheckData.foodVariety = foodVariety; var index = layer.load(); $.ajax({ type: "POST", url: "../../basic/inout/get-check-item", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify(curCheckData), success: function (result) { if (result.code != "0000") { layer.msg(result.msg); } else { curCheckItems = result.data; // 根据化验结果提醒是否合格 updateCheckResultTip(); // 页面渲染检测项 renderTableCheckItem(); layer.close(index); } }, error: function () { layer.close(index); layer.msg("后台异常,请重试或者联系管理员!!"); } }); }; //仅保存 function saveCheckData() { if (!curCheckData.foodVariety) { layer.alert("请确认粮食品种!!"); return; } curCheckData.checkItems = curCheckItems; var index1 = layer.load(); $.ajax({ type: "POST", url: "../../basic/inout/submit-checkItem", dataType: "json", contentType: "application/json;charset=UTF-8", async: false, data: JSON.stringify(curCheckData), success: function (result) { if (result.code != "0000") { layer.close(index1); notify(result.msg, result.data); } else { layer.closeAll(); curCheckData = null; notify("数据保存成功", result.data); flushData(); } }, error: function () { layer.close(index1); layer.alert("保存失败,请重新尝试!"); } }); } // 当前完成 //保存提交 function submit() { if (curCheckData.checkStatus == "NONE" || curCheckData.checkStatus == "NONE2") { layer.alert("请确认化验结果!!"); @@ -547,16 +591,15 @@ url: "../../basic/inout/submit-check", dataType: "json", contentType: "application/json;charset=UTF-8", async: false, data: JSON.stringify(curCheckData), success: function (result) { if (result.code != "0000") { layer.close(index); //layer.alert(result.msg); notify(result.msg, result.data); } else { layer.closeAll(); parent.layer.closeAll(); curCheckData = null; //layer.alert("数据提交成功!"); notify("数据提交成功", result.data); flushData(); } @@ -566,7 +609,69 @@ layer.alert("提交失败,请重新尝试!"); } }); }; } //扫码弹窗 function showScanCode() { //清空表单 $("#form-sacnCodeDetail")[0].reset(); form.render(); //扫码弹窗-赋值true scanCodeTag = true; layer.open({ type: 1, title: "扫码信息", area: ['700px', '320px'], shade: 0, content: $('#scanCodeDetail'), success: function(layero, index){ document.getElementById('checkId').focus(); }, btnAlign: 'c', btn: ['查询', '关闭取消'], yes: function () { getDataByCheckId(); }, btn2: function () { scanCodeTag = false; layer.closeAll(); }, closeBtn: 0 }); } //根据质检单号获取信息 function getDataByCheckId() { var param = form.val("form-sacnCodeDetail"); if(!param.checkId){ layer.alert("质检单号为空,请扫码或输入质检单号"); } var index = layer.load(); $.ajax({ type: "POST", url: "../../basic/inout/inout-check-scan-code", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify(param), success: function (result) { if (result.code != "0000") { layer.close(index); $("#form-sacnCodeDetail")[0].reset(); form.render(); notify(result.msg, result.data); } else { updateSelect(); showDetail(result.data); } }, error: function () { layer.close(index); $("#form-sacnCodeDetail")[0].reset(); form.render(); layer.alert("保存失败,请重新尝试!"); } }); } // 渲染表单数据 function renderTable() { igds-web/src/main/resources/templates/admin/inout/in-check.html
@@ -111,6 +111,11 @@ .input_ba { background: #e7eaec !important; } .layui-layer-btn .layui-layer-btn1 { border-color: #53adce; background-color: #53adce; color: #fff; } </style> </head> @@ -122,29 +127,32 @@ <div class="qyzj-btnbox layui-clear"> <div class="rkbk-quick fl"> <button type="button" class="rkbk-quick-btn layui-btn btn-violet" onclick="checkExe('big')"> <i><img th:src="@{../../static/images/icon-hyd.png}"/></i>大车扦样 <button type="button" class="rkbk-quick-btn layui-btn btn-violet" onclick="showScanCode()"> <i><img th:src="@{../../static/images/icon-hyd.png}"/></i>扫码录入 </button> <!-- <button type="button" class="rkbk-quick-btn layui-btn btn-violet"--> <!-- onclick="checkExe('big')">--> <!-- <i><img th:src="@{../../static/images/icon-hyd.png}"/></i>大车扦样--> <!-- </button>--> <button type="button" class="rkbk-quick-btn layui-btn btn-violet" onclick="checkExe('small')"> <i><img th:src="@{../../static/images/icon-hyd.png}"/></i>小车扦样 </button> <!-- <button type="button" class="rkbk-quick-btn layui-btn btn-violet"--> <!-- onclick="checkExe('small')">--> <!-- <i><img th:src="@{../../static/images/icon-hyd.png}"/></i>小车扦样--> <!-- </button>--> <button class="rkbk-quick-btn layui-btn btn-blue" onclick="checkReset()"> <i><img th:src="@{../../static/images/icon-fuwei.png}"/></i>扦样复位 </button> <!-- <button class="rkbk-quick-btn layui-btn btn-blue"--> <!-- onclick="checkReset()">--> <!-- <i><img th:src="@{../../static/images/icon-fuwei.png}"/></i>扦样复位--> <!-- </button>--> <button class="rkbk-quick-btn layui-btn btn-red" onclick="checkStop()"> <i><img th:src="@{../../static/images/icon-stop.png}"/></i>扦样急停 </button> <button class="rkbk-quick-btn layui-btn btn-blue" onclick="checkResetStop()"> <i><img th:src="@{../../static/images/icon-fuwei.png}"/></i>急停复位 </button> <!-- <button class="rkbk-quick-btn layui-btn btn-red"--> <!-- onclick="checkStop()">--> <!-- <i><img th:src="@{../../static/images/icon-stop.png}"/></i>扦样急停--> <!-- </button>--> <!-- <button class="rkbk-quick-btn layui-btn btn-blue"--> <!-- onclick="checkResetStop()">--> <!-- <i><img th:src="@{../../static/images/icon-fuwei.png}"/></i>急停复位--> <!-- </button>--> </div> <!--流程引导--> @@ -357,16 +365,38 @@ <script th:src="@{../../static/js/jquery.min.js}"></script> <script th:src="@{../../static/js/constant.js}"></script> <script th:src="@{../../static/js/igds-common.js}"></script> <script th:src="@{../../static/admin/inout/inout-common.js}"></script> <script th:src="@{../../static/admin/inout/in-check.js}"></script> <script type="text/html" id="barControl"> <a class="layui-btn control-btn" lay-event="edit">化验</a> <a class="layui-btn control-btn" lay-event="edit">结果录入</a> </script> </body> <!-- 扫码弹窗 --> <div class="layui-tab-content" id="scanCodeDetail" style="display: none;"> <!-- 表单基本信息 --> <form class="layui-form" id="form-sacnCodeDetail" lay-filter="form-sacnCodeDetail"> <!-- 化验信息 --> <div class="layui-col-xs12"> <div class="layui-form-item"> <label class="layui-form-label">质检单号</label> <div class="layui-input-block"> <input type="text" id="checkId" name="checkId" placeholder="请扫码,也可手动输入" class="layui-input"> </div> </div> </div> <div class="layui-col-xs12" style="margin-bottom: 10px"> <div style="padding-left: 50px; color: #2ab5ad;"> <span style="font-weight: bold; margin-right: 10px;">备注:质检单号可以扫码,也可以手动输入,手动输入后需要点击查询</span> </div> </div> </form> </div> <!-- 手动录取化验信息弹窗 --> <div class="layui-tab-content" id="checkDetail" style="display: none;"> <!-- 表单基本信息 -->