| | |
| | | /* |
| | | 查询库存 入库订单与销售单号 |
| | | */ |
| | | @PostMapping("/query/locDetl/v3") |
| | | public R queryAgvLocDetl3(@RequestBody HashMap<String,String> params){ |
| | | |
| | | String orderNo = params.get("orderNo"); |
| | | String threeCode = params.get("threeCode"); |
| | | String matnr = params.get("matnr"); |
| | | String floor = params.get("floor"); |
| | | |
| | | Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts",1); |
| | | |
| | | |
| | | // wrapper.eq("orderNo",orderNo); |
| | | |
| | | wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code",threeCode); |
| | | |
| | | if (threeCode.substring(0,2).equals(30)) { |
| | | wrapper.isNull("specs").or().eq("specs","").eq("floor",1); |
| | | } |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(wrapper); |
| | | List<AgvLocDetl> locDetls = new ArrayList<>(); |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | AgvLocMast agvLocMast = new AgvLocMast(); |
| | | if (Cools.isEmpty(floor)) { |
| | | agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no","F1")); |
| | | } else { |
| | | agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor)); |
| | | } |
| | | |
| | | if (Cools.isEmpty(agvLocMast)) continue; |
| | | agvLocDetl.setLocSts(agvLocMast.getLocSts()); |
| | | agvLocDetl.setLocSts$(agvLocMast.getLocSts$()); |
| | | locDetls.add(agvLocDetl); |
| | | } |
| | | |
| | | |
| | | return R.ok(locDetls); |
| | | } |
| | | |
| | | /* |
| | | 查询库存 入库订单与销售单号 |
| | | */ |
| | | @PostMapping("/query/locDetl/v2") |
| | | public R queryAgvLocDetl2(@RequestBody HashMap<String,String> params){ |
| | | |
| | |
| | | throw new CoolException("保存工作明细失败"); |
| | | } |
| | | // 更新订单 |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); |
| | | } |
| | | } |
| | | // 更新源库位 |
| | | AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo)); |
| | | locMast.setLocSts("R"); |
| | | agvLocMastService.updateById(locMast); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/agv/v3/locMove") |
| | | @Transactional |
| | | @ManagerAuth(memo = "回调单任务下发") |
| | | @Synchronized |
| | | public R agvLocMove3(@RequestBody HashMap<String,Object> params){ |
| | | Date now = new Date(); |
| | | List<HashMap<String,String>> dbList = (List<HashMap<String, String>>) params.get("dbList"); |
| | | params.get("dbList"); |
| | | for (HashMap<String, String> map : dbList) { |
| | | String locNo = map.get("locNo"); |
| | | String barcode = map.get("suppCode"); |
| | | AgvWrkMast source_loc_no = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", locNo)); |
| | | if (!Cools.isEmpty(source_loc_no)) { |
| | | throw new CoolException("当前库位已生成任务!"); |
| | | } |
| | | AgvLocMast locMastS = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo).eq("loc_sts","F")); |
| | | if (Cools.isEmpty(locMastS)) { |
| | | throw new CoolException("当前库位非在库状态!库位号="+locNo); |
| | | } |
| | | AgvWrkMast wrkMast = createWrkMast(114, 22L, locNo, "", barcode, now, getUserId(), 30,1); |
| | | // 同步调拨单 |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); |
| | | for (AgvLocDetl agvLocDetl : agvLocDetls) { |
| | | AgvWrkDetl wrkDetl = new AgvWrkDetl(); |
| | | wrkDetl.setWrkNo(wrkMast.getWrkNo()); |
| | | wrkDetl.sync(agvLocDetl); |
| | | wrkDetl.setSuppCode(agvLocDetl.getSuppCode()); |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setAppeUser(getUserId()); |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setModiUser(getUserId()); |
| | | wrkDetl.setModiTime(now); |
| | | if (!agvWrkDetlService.insert(wrkDetl)) { |
| | | throw new CoolException("保存工作明细失败"); |
| | | } |
| | | // 更新订单 |
| | | // 先查询库订单明细 所属的订单 |
| | | |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); |
| | | orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); |
| | | if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ |
| | | throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); |
| | | } |
| | | } |
| | |
| | | } |
| | | return R.ok(page); |
| | | } |
| | | @RequestMapping(value = "/order/backStocks/detls/pakin/page/auth") |
| | | @ManagerAuth |
| | | public R backStocksOrderDetls(@RequestParam(defaultValue = "1")Integer curr, |
| | | @RequestParam(defaultValue = "100")Integer limit, |
| | | @RequestParam(required = false)String orderByField, |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam Map<String, Object> param){ |
| | | EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); |
| | | excludeTrash(param); |
| | | convert(param, wrapper); |
| | | // return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class))); |
| | | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); |
| | | List<Long> docIds = new ArrayList<>(); |
| | | for (DocType pakin : pakins) { |
| | | if (pakin.getDocId() == 36) { |
| | | docIds.add(pakin.getDocId()); |
| | | } |
| | | } |
| | | wrapper.in("source",docIds); |
| | | Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); |
| | | for (OrderDetl record : page.getRecords()) { |
| | | Double sumAnfme = agvLocDetlService.getSumAnfmeback(record.getMatnr(), record.getThreeCode(),1); |
| | | record.setStock(sumAnfme == null ? 0 : sumAnfme); |
| | | } |
| | | return R.ok(page); |
| | | } |
| | | |
| | | @RequestMapping(value = "/order/detl/all/auth") |
| | | @ManagerAuth |
| | |
| | | list.add(dto); |
| | | orderDetl.setOrderId(order.getId()); |
| | | orderDetl.setOrderNo(order.getOrderNo()); |
| | | orderDetl.setSource(param.getDocType().intValue()); |
| | | orderDetl.setCreateBy(getUserId()); |
| | | orderDetl.setCreateTime(now); |
| | | orderDetl.setUpdateBy(getUserId()); |
| | |
| | | @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where (b.loc_sts = 'F' or b.loc_sts = 'R') and b.floor = #{floor} and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1") |
| | | Double selectSumAnfmeByMatnr2(@Param("matnr") String matnr,@Param("threeCode") String threeCode,@Param("floor") Integer floor); |
| | | |
| | | @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where (b.loc_sts = 'F' or b.loc_sts = 'R') and b.floor != #{floor} and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1") |
| | | Double getSumAnfmeback(@Param("matnr") String matnr,@Param("threeCode") String threeCode,@Param("floor") Integer floor); |
| | | |
| | | @Select("SELECT SUM(anfme) FROM agv_loc_detl") |
| | | Integer sum(); |
| | | |
| | |
| | | |
| | | Double getSumAnfmeDb(String matnr, String threeCode, Integer floor); |
| | | |
| | | Double getSumAnfmeback(String matnr, String threeCode, Integer floor); |
| | | |
| | | Integer sum(); |
| | | |
| | | List<AgvLocDetl> getStockStatisExcel(); |
| | |
| | | return this.baseMapper.selectSumAnfmeByMatnr2(matnr, threeCode, floor); |
| | | } |
| | | |
| | | @Override |
| | | public Double getSumAnfmeback(String matnr, String threeCode,Integer floor) { |
| | | return this.baseMapper.getSumAnfmeback(matnr, threeCode, floor); |
| | | } |
| | | |
| | | /* |
| | | 获取库存总数 |
| | | */ |
| | |
| | | .or().eq("io_type",111) |
| | | .or().eq("io_type",112) |
| | | .or().eq("io_type",113) |
| | | .or().eq("io_type",114) |
| | | .or().eq("io_type",121) |
| | | ); |
| | | if(!Cools.isEmpty(agvWrkMastList)){ |
| | |
| | | |
| | | } |
| | | |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | private void execute4(){ |
| | | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() |
| | | .eq("wrk_sts", 22) |
| | | .andNew().eq("io_type",114) |
| | | .orderBy("io_pri",false) |
| | | .orderBy("appe_time",true) |
| | | ); |
| | | if (agvWrkMastList.isEmpty()) { |
| | | return; |
| | | } |
| | | for (AgvWrkMast agvWrkMast : agvWrkMastList) { |
| | | try{ |
| | | autoMoveHandler.start4(agvWrkMast); |
| | | } catch (Exception e){ |
| | | log.error("工作号"+agvWrkMast.getWrkNo()+"调拨出库,处理失败:===》异常原因:"+e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | // // 空板自动回库 库位-接驳点 |
| | | // //@Scheduled(cron = "0/2 * * * * ? ") |
| | | // private void autoEmptyBack(){ |
| | |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue()); |
| | | break; |
| | | case 108: |
| | | case 114: |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); |
| | | //更新库存明细 |
| | | agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); |
| | |
| | | doHandMove2(agvWrkMast); |
| | | return SUCCESS; |
| | | } |
| | | |
| | | public ReturnT<String> start4(AgvWrkMast agvWrkMast) { |
| | | // locType 1. 自动, 2. 手动 |
| | | doAutoMove3(agvWrkMast); |
| | | return SUCCESS; |
| | | } |
| | | //根据库位的loctype值发送任务--弃用 |
| | | private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) { |
| | | Date now = new Date(); |
| | |
| | | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | private ReturnT<String> doAutoMove3(AgvWrkMast agvWrkMast) { |
| | | Date now = new Date(); |
| | | //检索库位,选择合适的库位 |
| | | AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false); |
| | | if (Cools.isEmpty(locMast)) { |
| | | throw new CoolException("暂无库位"); |
| | | } |
| | | agvWrkMast.setWrkSts(201L); |
| | | agvWrkMast.setLocNo(locMast.getLocNo()); |
| | | agvWrkMastService.updateById(agvWrkMast); |
| | | //更新目标库位状态 |
| | | updateAgvLocMast(locMast,"S"); |
| | | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | private ReturnT<String> doHandMove2(AgvWrkMast agvWrkMast) { |
| | | Date now = new Date(); |
| | | String lev1 = agvWrkMast.getSourceLocNo().substring(agvWrkMast.getSourceLocNo().length() - 4).substring(0, 2); |
| | |
| | | if ("01".equals(lev1)) { |
| | | devpNo = agvCommonService.getDevpNo(3, 1, "Y", "Y"); |
| | | } else { |
| | | devpNo = agvCommonService.getDevpNo(3, 5, "Y", "Y"); |
| | | devpNo = agvCommonService.getDevpNo(3, 4, "Y", "Y"); |
| | | } |
| | | |
| | | if (Cools.isEmpty(devpNo)) { |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title></title> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
| | | <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/cool.css" media="all"> |
| | | </head> |
| | | <body> |
| | | |
| | | <div class="layui-fluid"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <div class="layui-form toolbar" id="search-box"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">编号:</label> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline">  |
| | | <button class="layui-btn icon-btn" lay-filter="search" lay-submit> |
| | | <i class="layui-icon"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> |
| | | <i class="layui-icon"></i>重置 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <table class="layui-hide" id="bomMat" lay-filter="bomMat"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button> |
| | | </div> |
| | | </script> |
| | | |
| | | <script type="text/html" id="operate"> |
| | | <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a> |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</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> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/bomMat/bomMat.js" charset="utf-8"></script> |
| | | </body> |
| | | <!-- 表单弹窗 --> |
| | | <script type="text/html" id="editDialog"> |
| | | <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> |
| | | <input name="id" type="hidden"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md6"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">部件品号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="unitNum" placeholder="请输入部件品号"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">部件品名: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="unitName" placeholder="请输入部件品名"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">部件规格: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="unitSpace" placeholder="请输入部件规格"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">组件品号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="bomNum" placeholder="请输入组件品号"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">组件品名: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="bomName" placeholder="请输入组件品名"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">组件规格: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="bomSpace" placeholder="请输入组件规格"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="layui-col-md6"> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">元件品号: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="elementNum" placeholder="请输入元件品号"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">元件品名: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="elementName" placeholder="请输入元件品名"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">元件规格: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="elementSpace" placeholder="请输入元件规格"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">组成用量: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="bomAnfme" placeholder="请输入组成用量"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">托盘数量: </label> |
| | | <div class="layui-input-block"> |
| | | <input class="layui-input" name="zpalletAnfme" placeholder="请输入托盘数量"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | <hr class="layui-bg-gray"> |
| | | <div class="layui-form-item text-right"> |
| | | <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button> |
| | | <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> |
| | | </div> |
| | | </form> |
| | | </script> |
| | | </html> |
| | | |
New file |
| | |
| | | var pageCurr; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'admin'], function(){ |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | | var layDate = layui.laydate; |
| | | var form = layui.form; |
| | | var admin = layui.admin; |
| | | |
| | | // 数据渲染 |
| | | tableIns = table.render({ |
| | | elem: '#bomMat', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/bomMat/list/auth', |
| | | page: true, |
| | | limit: 15, |
| | | limits: [15, 30, 50, 100, 200, 500], |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | height: 'full-120', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | ,{field: 'id', align: 'center',title: 'ID',hide: true} |
| | | ,{field: 'unitNum', align: 'center',title: '部件品号'} |
| | | ,{field: 'unitName', align: 'center',title: '部件品名'} |
| | | ,{field: 'unitSpace', align: 'center',title: '部件规格'} |
| | | ,{field: 'bomNum', align: 'center',title: '组件品号'} |
| | | ,{field: 'bomName', align: 'center',title: '组件品名'} |
| | | ,{field: 'bomSpace', align: 'center',title: '组件规格'} |
| | | ,{field: 'elementNum', align: 'center',title: '元件品号'} |
| | | ,{field: 'elementName', align: 'center',title: '元件品名'} |
| | | ,{field: 'elementSpace', align: 'center',title: '元件规格'} |
| | | ,{field: 'bomAnfme', align: 'center',title: '组成用量'} |
| | | ,{field: 'zpalletAnfme', align: 'center',title: '托盘数量'} |
| | | ,{field: 'modiUser', align: 'center',title: '修改人员',hide: true} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间',hide: true} |
| | | ,{field: 'appeUser', align: 'center',title: '添加人员',hide: true} |
| | | ,{field: 'appeTime$', align: 'center',title: '添加时间',hide: true} |
| | | ,{field: 'isDeleted', align: 'center',title: '是否删除',hide: true} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120} |
| | | ]], |
| | | request: { |
| | | pageName: 'curr', |
| | | pageSize: 'limit' |
| | | }, |
| | | parseData: function (res) { |
| | | return { |
| | | 'code': res.code, |
| | | 'msg': res.msg, |
| | | 'count': res.data.total, |
| | | 'data': res.data.records |
| | | } |
| | | }, |
| | | response: { |
| | | statusCode: 200 |
| | | }, |
| | | done: function(res, curr, count) { |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } |
| | | pageCurr=curr; |
| | | limit(); |
| | | } |
| | | }); |
| | | |
| | | // 监听排序事件 |
| | | table.on('sort(bomMat)', function (obj) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | searchData['orderByField'] = obj.field; |
| | | searchData['orderByType'] = obj.type; |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: 1} |
| | | }); |
| | | }); |
| | | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(bomMat)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id).data; |
| | | switch(obj.event) { |
| | | case 'addData': |
| | | showEditModel(); |
| | | break; |
| | | case 'deleteData': |
| | | if (checkStatus.length === 0) { |
| | | layer.msg('请选择要删除的数据', {icon: 2}); |
| | | return; |
| | | } |
| | | del(checkStatus.map(function (d) { |
| | | return d.id; |
| | | })); |
| | | break; |
| | | case 'exportData': |
| | | admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){ |
| | | var titles=[]; |
| | | var fields=[]; |
| | | obj.config.cols[0].map(function (col) { |
| | | if (col.type === 'normal' && col.hide === false && col.toolbar == null) { |
| | | titles.push(col.title); |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | }); |
| | | var param = { |
| | | 'bomMat': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/bomMat/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | // 监听行工具事件 |
| | | table.on('tool(bomMat)', function(obj){ |
| | | var data = obj.data; |
| | | switch (obj.event) { |
| | | case 'edit': |
| | | showEditModel(data); |
| | | break; |
| | | case "del": |
| | | del([data.id]); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | /* 弹窗 - 新增、修改 */ |
| | | function showEditModel(mData) { |
| | | admin.open({ |
| | | type: 1, |
| | | area: '1200px', |
| | | title: (mData ? '修改' : '添加') + '组件', |
| | | content: $('#editDialog').html(), |
| | | success: function (layero, dIndex) { |
| | | layDateRender(mData); |
| | | form.val('detail', mData); |
| | | form.on('submit(editSubmit)', function (data) { |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/bomMat/"+(mData?'update':'add')+"/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: data.field, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.close(dIndex); |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | }else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | layui.form.render('select'); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* 删除 */ |
| | | function del(ids) { |
| | | layer.confirm('确定要删除选中数据吗?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1 |
| | | }, function (i) { |
| | | layer.close(i); |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/bomMat/delete/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: {ids: ids}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // 搜索 |
| | | form.on('submit(search)', function (data) { |
| | | pageCurr = 1; |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 重置 |
| | | form.on('submit(reset)', function (data) { |
| | | pageCurr = 1; |
| | | clearFormVal($('#search-box')); |
| | | tableReload(false); |
| | | }); |
| | | |
| | | // 时间选择器 |
| | | function layDateRender(data) { |
| | | setTimeout(function () { |
| | | layDate.render({ |
| | | elem: '#modiTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['modiTime\\$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#appeTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['appeTime\\$']:null |
| | | }); |
| | | |
| | | }, 300); |
| | | } |
| | | layDateRender(); |
| | | |
| | | }); |
| | | |
| | | // 关闭动作 |
| | | $(document).on('click','#data-detail-close', function () { |
| | | parent.layer.closeAll(); |
| | | }); |
| | | |
| | | function tableReload(child) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: pageCurr} |
| | | }); |
| | | } |