Commit 0779b0bd04ba8cf087da8c3663368c7f7368713c

Authored by xumiao
1 parent 2fd42771

送货单:已到待检和已到合格

src/main/java/com/huaheng/pc/srm/controller/SRMDetailController.java
1 1 package com.huaheng.pc.srm.controller;
2 2  
3 3  
  4 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 5 import com.huaheng.common.utils.StringUtils;
  6 +import com.huaheng.common.utils.Wrappers;
5 7 import com.huaheng.common.utils.security.ShiroUtils;
6 8 import com.huaheng.framework.aspectj.lang.annotation.Log;
7 9 import com.huaheng.framework.aspectj.lang.constant.BusinessType;
... ... @@ -70,6 +72,56 @@ public class SRMDetailController extends BaseController {
70 72 return getDataTable(list);
71 73 }
72 74  
  75 + @Log(title = "已到待检", operating="已到待检明细", action = BusinessType.GRANT)
  76 + @PostMapping("/yiDaoDaiJianlist")
  77 + @ResponseBody
  78 + public TableDataInfo yiDaoDaiJianlist(SrmDetail srmDetail)
  79 + {
  80 + srmDetail.setEnable(1);
  81 + startPage();
  82 + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery();
  83 + lambdaQueryWrapper.eq(SrmDetail::getHeaderId,srmDetail.getHeaderId());
  84 + lambdaQueryWrapper.eq(SrmDetail::getCheckCode,0);
  85 + List<SrmDetail> list = srmDetailService.list(lambdaQueryWrapper) ;
  86 + for (SrmDetail detail : list) {
  87 + WarehouseU8 warehouseWu = new WarehouseU8();
  88 + warehouseWu.setWarehouseCode(srmDetail.getWarehouseCode());
  89 + warehouseWu.setUCompanyCode(detail.getCompanyCode());
  90 + warehouseWu.setUWarehouseCode(detail.getUWarehouseCode());
  91 + List<WarehouseU8> warehouseWulist = warehouseU8Service.getByDomain(warehouseWu);
  92 + if(warehouseWulist != null&&warehouseWulist.size()>0){
  93 + warehouseWu=warehouseWulist.get(0);
  94 + detail.setUWarehouseName(warehouseWu.getUWarehouseName());
  95 + }
  96 + }
  97 + return getDataTable(list);
  98 + }
  99 +
  100 + @Log(title = "已到合格", operating="已到合格明细", action = BusinessType.GRANT)
  101 + @PostMapping("/yiDaoHeGelist")
  102 + @ResponseBody
  103 + public TableDataInfo yiDaoHeGelist(SrmDetail srmDetail)
  104 + {
  105 + srmDetail.setEnable(1);
  106 + startPage();
  107 + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery();
  108 + lambdaQueryWrapper.eq(SrmDetail::getHeaderId,srmDetail.getHeaderId());
  109 + lambdaQueryWrapper.eq(SrmDetail::getCheckCode,2);
  110 + List<SrmDetail> list = srmDetailService.list(lambdaQueryWrapper) ;
  111 + for (SrmDetail detail : list) {
  112 + WarehouseU8 warehouseWu = new WarehouseU8();
  113 + warehouseWu.setWarehouseCode(srmDetail.getWarehouseCode());
  114 + warehouseWu.setUCompanyCode(detail.getCompanyCode());
  115 + warehouseWu.setUWarehouseCode(detail.getUWarehouseCode());
  116 + List<WarehouseU8> warehouseWulist = warehouseU8Service.getByDomain(warehouseWu);
  117 + if(warehouseWulist != null&&warehouseWulist.size()>0){
  118 + warehouseWu=warehouseWulist.get(0);
  119 + detail.setUWarehouseName(warehouseWu.getUWarehouseName());
  120 + }
  121 + }
  122 + return getDataTable(list);
  123 + }
  124 +
73 125  
74 126 /**
75 127 * 检测
... ...
src/main/java/com/huaheng/pc/srm/controller/SRMHeaderController.java
... ... @@ -50,6 +50,19 @@ public class SRMHeaderController extends BaseController {
50 50 return prefix + "/srmHeader";
51 51 }
52 52  
  53 + //已到待检
  54 + @RequiresPermissions("srm:srmHeader:view")
  55 + @GetMapping("/yiDaoDaiJian")
  56 + public String srmHeaderYidaodaijian() {
  57 + return prefix + "/yiDaoDaiJian";
  58 + }
  59 + //已到合格
  60 + @RequiresPermissions("srm:srmHeader:view")
  61 + @GetMapping("/yiDaoHeGe")
  62 + public String srmHeaderYidaohege() {
  63 + return prefix + "/yiDaoHeGe";
  64 + }
  65 +
53 66  
54 67 @Resource
55 68 private SrmHeaderService srmHeaderService;
... ... @@ -95,6 +108,78 @@ public class SRMHeaderController extends BaseController {
95 108 return getDataTable(list);
96 109 }
97 110  
  111 + @RequiresPermissions("srm:srmHeader:list")
  112 + @Log(title = "已到待检", operating="已到待检", action = BusinessType.GRANT)
  113 + @PostMapping("/yiDaoDaiJianList")
  114 + @ResponseBody
  115 + public TableDataInfo songHuoDaiJianList(SrmHeader srmHeader)
  116 + {
  117 + if(StringUtils.isAllEmpty(srmHeader.getCode(),srmHeader.getUserDef2(),srmHeader.getSupplierCode(),srmHeader.getMaterialCode())){
  118 + startPage();
  119 + }
  120 + List<SrmHeader> list = srmHeaderService.selectList(srmHeader) ;
  121 + if(StringUtils.isNotEmpty(srmHeader.getMaterialCode())){
  122 + Material material = materialService.getMaterialByCode(srmHeader.getMaterialCode(), ShiroUtils.getWarehouseCode());
  123 + if(material == null){
  124 + throw new ServiceException("物料编码不存在");
  125 + }
  126 + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery();
  127 + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getCode()),SrmDetail::getCode,srmHeader.getCode());
  128 + lambdaQueryWrapper.eq(SrmDetail::getWarehouseCode,ShiroUtils.getWarehouseCode());
  129 + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getMaterialCode()),SrmDetail::getMaterialCode,srmHeader.getMaterialCode());
  130 + List<SrmDetail> srmDetailList = srmDetailService.list(lambdaQueryWrapper);
  131 + if(CollectionUtils.isNotEmpty(srmDetailList)){
  132 + List<String> codes = srmDetailList.stream().map(s -> s.getCode()).collect(Collectors.toList());
  133 + List<String> collect = codes.stream().distinct().collect(Collectors.toList());
  134 + List<SrmHeader> srmHeaders = list.stream().filter(l -> collect.contains(l.getCode())).collect(Collectors.toList());
  135 + srmHeaders = srmHeaders.stream().filter(l ->
  136 + (l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(0)||l.getCheckCode().equals(1))
  137 + ).collect(Collectors.toList());
  138 + return getDataTable(srmHeaders);
  139 + }else {
  140 + return null;
  141 + }
  142 + }
  143 + list = list.stream().filter(l ->(l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(0)||l.getCheckCode().equals(1))).collect(Collectors.toList());
  144 + return getDataTable(list);
  145 + }
  146 +
  147 + @RequiresPermissions("srm:srmHeader:list")
  148 + @Log(title = "已到合格", operating="已到合格", action = BusinessType.GRANT)
  149 + @PostMapping("/yiDaoHeGeList")
  150 + @ResponseBody
  151 + public TableDataInfo yiDaoHeGeList(SrmHeader srmHeader)
  152 + {
  153 + if(StringUtils.isAllEmpty(srmHeader.getCode(),srmHeader.getUserDef2(),srmHeader.getSupplierCode(),srmHeader.getMaterialCode())){
  154 + startPage();
  155 + }
  156 + List<SrmHeader> list = srmHeaderService.selectList(srmHeader) ;
  157 + if(StringUtils.isNotEmpty(srmHeader.getMaterialCode())){
  158 + Material material = materialService.getMaterialByCode(srmHeader.getMaterialCode(), ShiroUtils.getWarehouseCode());
  159 + if(material == null){
  160 + throw new ServiceException("物料编码不存在");
  161 + }
  162 + LambdaQueryWrapper<SrmDetail> lambdaQueryWrapper= Wrappers.lambdaQuery();
  163 + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getCode()),SrmDetail::getCode,srmHeader.getCode());
  164 + lambdaQueryWrapper.eq(SrmDetail::getWarehouseCode,ShiroUtils.getWarehouseCode());
  165 + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(srmHeader.getMaterialCode()),SrmDetail::getMaterialCode,srmHeader.getMaterialCode());
  166 + List<SrmDetail> srmDetailList = srmDetailService.list(lambdaQueryWrapper);
  167 + if(CollectionUtils.isNotEmpty(srmDetailList)){
  168 + List<String> codes = srmDetailList.stream().map(s -> s.getCode()).collect(Collectors.toList());
  169 + List<String> collect = codes.stream().distinct().collect(Collectors.toList());
  170 + List<SrmHeader> srmHeaders = list.stream().filter(l -> collect.contains(l.getCode())).collect(Collectors.toList());
  171 + srmHeaders = srmHeaders.stream().filter(l ->
  172 + (l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(1)||l.getCheckCode().equals(2))
  173 + ).collect(Collectors.toList());
  174 + return getDataTable(srmHeaders);
  175 + }else {
  176 + return null;
  177 + }
  178 + }
  179 + list = list.stream().filter(l ->(l.getEnable().equals(1)||l.getEnable().equals(2))&&(l.getCheckCode().equals(1)||l.getCheckCode().equals(2))).collect(Collectors.toList());
  180 + return getDataTable(list);
  181 + }
  182 +
98 183  
99 184  
100 185 /**
... ...
src/main/java/com/huaheng/pc/srm/service/SrmHeaderService.java
... ... @@ -823,6 +823,7 @@ public class SrmHeaderService extends ServiceImpl&lt;SrmHeaderMapper, SrmHeader&gt; {
823 823 List<SrmDetail> srmDetailsCheck = srmDetailService.list(new LambdaQueryWrapper<SrmDetail>().eq(SrmDetail::getCode, srmHeader.getCode()).eq(SrmDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()).eq(SrmDetail::getCheckCode,2));
824 824 if(CollectionUtils.isNotEmpty(srmDetailsCheck)&&srmDetailsCheck.size()==srmDetailsAll.size()){
825 825 srmHeader.setCheckCode(2);
  826 + srmHeader.setUploadStatus(2);
826 827 }else {
827 828 ReceiptHeader receiptHeader = new ReceiptHeader();
828 829 receiptHeader.setUserDef3(srmHeader.getCode());
... ... @@ -834,8 +835,8 @@ public class SrmHeaderService extends ServiceImpl&lt;SrmHeaderMapper, SrmHeader&gt; {
834 835 receiptHeaderService.updateById(receiptHeader);
835 836 }
836 837 srmHeader.setCheckCode(1);
  838 + srmHeader.setUploadStatus(1);
837 839 }
838   - srmHeader.setUploadStatus(1);
839 840 this.updateById(srmHeader);
840 841 return AjaxResult.success("送货单提交成功!");
841 842 }
... ...
src/main/resources/templates/srm/srmHeader/yiDaoDaiJian.html 0 → 100644
  1 +<!DOCTYPE HTML>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  3 +<meta charset="utf-8" >
  4 +<head th:include="include :: header"></head>
  5 +<style>
  6 + #toolbar1{
  7 + display: inline-block;
  8 + /*position: absolute;*/
  9 + margin: 10px auto;
  10 + line-height: 34px;
  11 + }
  12 + #toolbar2{
  13 + display: inline-block;
  14 + /*position: absolute;*/
  15 + margin: 10px auto;
  16 + line-height: 34px;
  17 + }
  18 +</style>
  19 +<body class="gray-bg">
  20 +<div class="container-div">
  21 + <div class="row">
  22 + <div class="col-sm-12 select-info">
  23 + <ul id="myTab" class="nav nav-tabs">
  24 + <li class="active" ><a href="#tabHeader" data-toggle="tab">主表</a></li>
  25 + <li><a href="#tabDetail" data-toggle="tab">已到待检明细</a></li>
  26 + </ul>
  27 + <div id="myTabContent" class="tab-content">
  28 + <div class="tab-pane fade in active" id="tabHeader">
  29 + <div class="col-sm-12 select-info">
  30 + <form id="task-form">
  31 + <div class="select-list">
  32 + <ul>
  33 + <li>
  34 + 送货单号:<input type="text" name="code"/>
  35 + </li>
  36 + <li>
  37 + 供 应 商:<input type="text" name="supplierCode"/>
  38 + </li>
  39 + <li>
  40 + 到货单号:<input type="text" name="userDef2"/>
  41 + </li>
  42 + <li>
  43 + 物料编码:<input type="text" name="materialCode"/>
  44 + </li>
  45 + <li>
  46 + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
  47 + class="fa fa-search"></i>&nbsp;搜索</a>
  48 + <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('task-form')"><i class="fa fa-refresh"></i>&nbsp;重置</a>
  49 + </li>
  50 + </ul>
  51 + </div>
  52 + </form>
  53 + </div>
  54 +<!-- <div class="btn-group hidden-xs" id="toolbar" role="group">-->
  55 +<!-- <a id="getERP" class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getReceipt()" shiro:hasPermission="srm:srmHeader:list">-->
  56 +<!-- <i class="fa fa-paper-plane"></i> 获取ERP到货单-->
  57 +<!-- </a>-->
  58 +<!-- </div>-->
  59 + <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/>
  60 + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
  61 + </div>
  62 + <div class="tab-pane fade" id="tabDetail">
  63 + <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
  64 + </div>
  65 + </div>
  66 + </div>
  67 + </div>
  68 +</div>
  69 +<div th:include="include :: footer"></div>
  70 +<script th:inline="javascript">
  71 + var checkFlag = [[${@permission.hasPermi('srm:srmDetail:check')}]];
  72 + var editFlag = [[${@permission.hasPermi('srm:srmDetail:edit')}]];
  73 + var supplier =[[${@SupplierService.getCode()}]];
  74 + var srmCheck = [[${@dict.getType('srmCheck')}]];
  75 + var companyCode = [[${@dict.getType('company_code')}]];
  76 + var uploadStatus = [[${@dict.getType('srmUpload')}]];
  77 + var prefix = ctx + "srm/srmHeader";
  78 + var prefixx = ctx + "srm/srmHeaderCheck";
  79 + var prefix1 = ctx + "srm/srmDetail";
  80 + var headerId = ''
  81 + var warehouseWu = [[${@warehouseWu.getAllWarehouseWu()}]];
  82 + setInterval(refreshV,1000*60);
  83 + function refreshV(){
  84 + $.table.refresh();
  85 + }
  86 + $(function() {
  87 + var options = {
  88 + url: prefix + "/yiDaoDaiJianList",
  89 + createUrl: prefix + "/add",
  90 + updateUrl: prefix + "/edit/{id}",
  91 + removeUrl: prefix + "/remove",
  92 + modalName: "送货单",
  93 + sortName: "created",
  94 + sortOrder: "desc",
  95 + search: false,
  96 + pageSize:50,
  97 + columns: [{
  98 + checkbox: true
  99 + },
  100 + {
  101 + field : 'id',
  102 + title : 'id' ,
  103 + visible:false
  104 + },
  105 + {
  106 + title: '操作',
  107 + align: 'center',
  108 + formatter: function(value, row, index) {
  109 + var actions = [];
  110 + actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.supplierCode + '\')"><i class="fa fa-list-ul"></i>详细</a> ');
  111 + return actions.join('');
  112 + }
  113 + },
  114 + {
  115 + field : 'operator',
  116 + title : '操作人',
  117 + sortable: true
  118 + },
  119 + {
  120 + title: '送货单类型',
  121 + field: 'enable',
  122 + formatter: function(value, row, index) {
  123 + var actions = [];
  124 + if (value >= 1) {
  125 + actions.push("<span class='badge badge-info'> 已到送货单</span>");
  126 + }else{
  127 + actions.push("<span class='badge badge-danger'>未到送货单</span>");
  128 + }
  129 + return actions.join('');
  130 + }
  131 + },
  132 + {
  133 + field : 'created',
  134 + title : '生成时间',
  135 + sortable: true
  136 + },
  137 + {
  138 + field : 'code',
  139 + title : '送货单号',
  140 + sortable: true
  141 + },
  142 + {
  143 + field : 'supplierCode',
  144 + title : '供应商编码',
  145 + sortable: true
  146 + },
  147 +
  148 + {
  149 + field : 'supplierCode',
  150 + title : '供应商名称',
  151 + align: 'center',
  152 + formatter: function(value, row, index) {
  153 + var actions = [];
  154 + $.each(supplier, function(index, dict) {
  155 + if (dict.code == value) {
  156 + actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
  157 + return false;
  158 + }
  159 + });
  160 + return actions.join('');
  161 + }
  162 + },
  163 + {
  164 + field : 'userDef2',
  165 + title : '采购到货单',
  166 + sortable: true,
  167 + align: 'center',
  168 + formatter:function (value,row,index) {
  169 + return $.table.tooltip(value, 10);
  170 + }
  171 + },
  172 + {
  173 + field : 'userDef1',
  174 + title : '返回信息',
  175 + sortable: true,
  176 + align: 'center',
  177 + formatter:function (value,row,index) {
  178 + return $.table.tooltip(value, 10);
  179 + }
  180 + },
  181 + {
  182 + field : 'uploadStatus',
  183 + title : '获取ERP采购单',
  184 + align: 'center',
  185 + formatter: function(value, row, index) {
  186 + return $.table.selectDictLabel(uploadStatus, value);
  187 + }
  188 + },
  189 + {
  190 + field : 'checkCode',
  191 + title : '质检完成',
  192 + align: 'center',
  193 + formatter: function(value, row, index) {
  194 + return $.table.selectDictLabel(srmCheck, value);
  195 + }
  196 + },
  197 + {
  198 + field : 'mark',
  199 + title : '唯一标识',
  200 + sortable: false,
  201 + visible:false
  202 + },
  203 + {
  204 + field : 'lastUpdatedBy',
  205 + title : '更新用户',
  206 + sortable: false,
  207 + visible:false
  208 + },
  209 + ]
  210 + };
  211 + $.table.init(options);
  212 + });
  213 +
  214 + $("#bootstrap-table1").bootstrapTable({
  215 + sortable: true, //排序
  216 + showRefresh: true, //刷新
  217 + showToggle:true, //视图切换
  218 + clickToSelect: false,
  219 + showColumns:true, //列选择
  220 + // detailView:true,
  221 + showExport: true, //导出
  222 + exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
  223 + modalName: "任务明细",
  224 + iconSize: "outline",
  225 + toolbar: "#toolbar1",
  226 + contentType: "application/x-www-form-urlencoded",
  227 + sortName: "id",
  228 + sortOrder: "desc",
  229 + columns: [{
  230 + checkbox: true
  231 + },
  232 + {
  233 + field : 'id',
  234 + title : 'id' ,
  235 + visible:false
  236 + },
  237 + {
  238 + title: '操作',
  239 + align: 'center',
  240 + formatter: function(value, row, index) {
  241 + var actions = [];
  242 + if(row.checkCode < 2 && row.enable == 1) {
  243 + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" onclick="checkDetail(\'' + row.id + '\')"><i class="fa fa-check"></i>质检</a>');
  244 + }
  245 + // if(row.uploadStatus4 < 1 ) {
  246 + // actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.id + '\')"><i class="fa fa-check"></i>编辑</a>');
  247 + // }
  248 + return actions.join('');
  249 + }
  250 + },
  251 + {
  252 + title : 'PLM图纸',
  253 + formatter: function(value, row, index){
  254 + var actions = [];
  255 + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" shiro:hasPermission="srm:srmDetail:selectDraw" onclick="queryDraw(\'' + row.materialCode + '\')" ><i class="fa fa-check"></i>查看图纸</a>');
  256 + return actions.join('');
  257 + }
  258 + },
  259 + {
  260 + field : 'companyCode',
  261 + title : '账套',
  262 + sortable: true,
  263 + formatter: function(value, row, index) {
  264 + return $.table.selectDictLabel(companyCode, value);
  265 + }
  266 + },
  267 + {
  268 + field : 'uWarehouseName',
  269 + title : '仓库',
  270 + sortable: true
  271 + },
  272 + {
  273 + field : 'lineCode',
  274 + title : '条码',
  275 + sortable: true
  276 + },
  277 + {
  278 + field : 'productionBatch',
  279 + title : '生产批号',
  280 + sortable: true
  281 + },
  282 + {
  283 + field : 'batchNumberContent',
  284 + title : '批号内容',
  285 + sortable: true
  286 + },
  287 + {
  288 + field : 'materialCode',
  289 + title : '存货编码',
  290 + sortable: true
  291 + },
  292 + {
  293 + field : 'materialName',
  294 + title : '物料名称',
  295 + sortable:true
  296 + },
  297 + {
  298 + field : 'specification',
  299 + title : '物料规格',
  300 + sortable:true
  301 + },
  302 + {
  303 + field : 'qty',
  304 + title : '数量'
  305 + },
  306 + {
  307 + field : 'confirmQty',
  308 + title : '实到数量'
  309 + },
  310 + {
  311 + field : 'lastUpdate',
  312 + title : '最后修改时间' ,
  313 + visible:false,
  314 + sortable:true
  315 + },
  316 + {
  317 + field : 'lastUpdatedBy',
  318 + title : '更新用户',
  319 + visible:false
  320 + },
  321 + {
  322 + field : 'uploadStatus1',
  323 + title : 'SRM到货上传',
  324 + align: 'center',
  325 + formatter: function(value, row, index) {
  326 + return $.table.selectDictLabel(uploadStatus, value);
  327 + }
  328 + },
  329 + {
  330 + field : 'uploadStatus4',
  331 + title : 'ERP采购单上传',
  332 + align: 'center',
  333 + formatter: function(value, row, index) {
  334 + return $.table.selectDictLabel(uploadStatus, value);
  335 + }
  336 + },
  337 + {
  338 + field : 'checkCode',
  339 + title : '质检完成',
  340 + align: 'center',
  341 + formatter: function(value, row, index) {
  342 + return $.table.selectDictLabel(srmCheck, value);
  343 + }
  344 + },
  345 + {
  346 + field: 'enable',
  347 + title : 'enable',
  348 + visible: false
  349 + }
  350 + ]
  351 + });
  352 +
  353 + function queryDraw(code){
  354 + $.ajax({
  355 + url:ctx + 'draw/selectDraw',
  356 + type: 'get',
  357 + data:{
  358 + "no":code
  359 + },
  360 + success : function (res) {
  361 + debugger;
  362 + if (res.code == 200){
  363 + var data = res.data;
  364 + window.open("http://172.16.2.10:8087/sipmweb/web/search/detail?rid="+data.rid+"&id="+data.objId+"&t=DWGSW","_blank");
  365 + }else{
  366 + $.modal.alertError(res.msg)
  367 + }
  368 + }
  369 + });
  370 + }
  371 +
  372 + /*入库单列表-详细*/
  373 + function detail(id,code,enable,supplierCode) {
  374 + headerId = id;
  375 + $("#myTab li").removeClass("active")
  376 + $("#myTab li:eq(1)").addClass("active")
  377 + $("#tabHeader").removeClass("in active");
  378 + $("#tabDetail").addClass("in active");
  379 + loadDetail();
  380 + }
  381 +
  382 + /*入库单列表-详细*/
  383 + function loadDetail() {
  384 + $.ajax({
  385 + url:ctx + 'srm/srmDetail/yiDaoDaiJianlist',
  386 + type: 'post',
  387 + data:{
  388 + "headerId":headerId
  389 + },
  390 + success : function (value) {
  391 + $("#bootstrap-table1").bootstrapTable('load',value.data);
  392 + }
  393 + });
  394 + }
  395 +
  396 + /* 检验 */
  397 + function checkDetail(id) {
  398 + let url=prefix1 + "/check/"+ id;
  399 + $.modal.open("检查" , url);
  400 + }
  401 +
  402 + /*获取ERP到货单*/
  403 + function getReceipt() {
  404 + var rows=$("#bootstrap-table").bootstrapTable('getSelections');
  405 + if (rows.length == 0) {
  406 + $.modal.alertWarning("请至少选择一条记录");
  407 + return;
  408 + }
  409 + $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() {
  410 + var url = prefixx + '/getReceipt';
  411 + var ids = "";
  412 + for(var i=0; i<rows.length; i++) {
  413 + ids = ids + rows[i].id + ","
  414 + }
  415 + var data = { "ids": ids.substring(0, ids.length-1) };
  416 + $.operate.submit(url, "post", "json", data);
  417 + })
  418 + }
  419 +</script>
  420 +</body>
  421 +</html>
... ...
src/main/resources/templates/srm/srmHeader/yiDaoHeGe.html 0 → 100644
  1 +<!DOCTYPE HTML>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  3 +<meta charset="utf-8" >
  4 +<head th:include="include :: header"></head>
  5 +<style>
  6 + #toolbar1{
  7 + display: inline-block;
  8 + /*position: absolute;*/
  9 + margin: 10px auto;
  10 + line-height: 34px;
  11 + }
  12 + #toolbar2{
  13 + display: inline-block;
  14 + /*position: absolute;*/
  15 + margin: 10px auto;
  16 + line-height: 34px;
  17 + }
  18 +</style>
  19 +<body class="gray-bg">
  20 +<div class="container-div">
  21 + <div class="row">
  22 + <div class="col-sm-12 select-info">
  23 + <ul id="myTab" class="nav nav-tabs">
  24 + <li class="active" ><a href="#tabHeader" data-toggle="tab">主表</a></li>
  25 + <li><a href="#tabDetail" data-toggle="tab">已到合格明细</a></li>
  26 + </ul>
  27 + <div id="myTabContent" class="tab-content">
  28 + <div class="tab-pane fade in active" id="tabHeader">
  29 + <div class="col-sm-12 select-info">
  30 + <form id="task-form">
  31 + <div class="select-list">
  32 + <ul>
  33 + <li>
  34 + 送货单号:<input type="text" name="code"/>
  35 + </li>
  36 + <li>
  37 + 供 应 商:<input type="text" name="supplierCode"/>
  38 + </li>
  39 + <li>
  40 + 到货单号:<input type="text" name="userDef2"/>
  41 + </li>
  42 + <li>
  43 + 物料编码:<input type="text" name="materialCode"/>
  44 + </li>
  45 + <li>
  46 + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
  47 + class="fa fa-search"></i>&nbsp;搜索</a>
  48 + <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('task-form')"><i class="fa fa-refresh"></i>&nbsp;重置</a>
  49 + </li>
  50 + </ul>
  51 + </div>
  52 + </form>
  53 + </div>
  54 + <div class="btn-group hidden-xs" id="toolbar" role="group">
  55 + <a id="getERP" class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getReceipt()" shiro:hasPermission="srm:srmHeader:list">
  56 + <i class="fa fa-paper-plane"></i> 获取ERP到货单
  57 + </a>
  58 + </div>
  59 + <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/>
  60 + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
  61 + </div>
  62 + <div class="tab-pane fade" id="tabDetail">
  63 + <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
  64 + </div>
  65 + </div>
  66 + </div>
  67 + </div>
  68 +</div>
  69 +<div th:include="include :: footer"></div>
  70 +<script th:inline="javascript">
  71 + var checkFlag = [[${@permission.hasPermi('srm:srmDetail:check')}]];
  72 + var editFlag = [[${@permission.hasPermi('srm:srmDetail:edit')}]];
  73 + var supplier =[[${@SupplierService.getCode()}]];
  74 + var srmCheck = [[${@dict.getType('srmCheck')}]];
  75 + var companyCode = [[${@dict.getType('company_code')}]];
  76 + var uploadStatus = [[${@dict.getType('srmUpload')}]];
  77 + var prefix = ctx + "srm/srmHeader";
  78 + var prefixx = ctx + "srm/srmHeaderCheck";
  79 + var prefix1 = ctx + "srm/srmDetail";
  80 + var headerId = ''
  81 + var warehouseWu = [[${@warehouseWu.getAllWarehouseWu()}]];
  82 + setInterval(refreshV,1000*60);
  83 + function refreshV(){
  84 + $.table.refresh();
  85 + }
  86 + $(function() {
  87 + var options = {
  88 + url: prefix + "/yiDaoHeGeList",
  89 + createUrl: prefix + "/add",
  90 + updateUrl: prefix + "/edit/{id}",
  91 + removeUrl: prefix + "/remove",
  92 + modalName: "送货单",
  93 + sortName: "created",
  94 + sortOrder: "desc",
  95 + search: false,
  96 + pageSize:50,
  97 + columns: [{
  98 + checkbox: true
  99 + },
  100 + {
  101 + field : 'id',
  102 + title : 'id' ,
  103 + visible:false
  104 + },
  105 + {
  106 + title: '操作',
  107 + align: 'center',
  108 + formatter: function(value, row, index) {
  109 + var actions = [];
  110 + actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\',\'' + row.supplierCode + '\')"><i class="fa fa-list-ul"></i>详细</a> ');
  111 + return actions.join('');
  112 + }
  113 + },
  114 + {
  115 + field : 'operator',
  116 + title : '操作人',
  117 + sortable: true
  118 + },
  119 + {
  120 + title: '送货单类型',
  121 + field: 'enable',
  122 + formatter: function(value, row, index) {
  123 + var actions = [];
  124 + if (value >= 1) {
  125 + actions.push("<span class='badge badge-info'> 已到送货单</span>");
  126 + }else{
  127 + actions.push("<span class='badge badge-danger'>未到送货单</span>");
  128 + }
  129 + return actions.join('');
  130 + }
  131 + },
  132 + {
  133 + field : 'created',
  134 + title : '生成时间',
  135 + sortable: true
  136 + },
  137 + {
  138 + field : 'code',
  139 + title : '送货单号',
  140 + sortable: true
  141 + },
  142 + {
  143 + field : 'supplierCode',
  144 + title : '供应商编码',
  145 + sortable: true
  146 + },
  147 +
  148 + {
  149 + field : 'supplierCode',
  150 + title : '供应商名称',
  151 + align: 'center',
  152 + formatter: function(value, row, index) {
  153 + var actions = [];
  154 + $.each(supplier, function(index, dict) {
  155 + if (dict.code == value) {
  156 + actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
  157 + return false;
  158 + }
  159 + });
  160 + return actions.join('');
  161 + }
  162 + },
  163 + {
  164 + field : 'userDef2',
  165 + title : '采购到货单',
  166 + sortable: true,
  167 + align: 'center',
  168 + formatter:function (value,row,index) {
  169 + return $.table.tooltip(value, 10);
  170 + }
  171 + },
  172 + {
  173 + field : 'userDef1',
  174 + title : '返回信息',
  175 + sortable: true,
  176 + align: 'center',
  177 + formatter:function (value,row,index) {
  178 + return $.table.tooltip(value, 10);
  179 + }
  180 + },
  181 + {
  182 + field : 'uploadStatus',
  183 + title : '获取ERP采购单',
  184 + align: 'center',
  185 + formatter: function(value, row, index) {
  186 + return $.table.selectDictLabel(uploadStatus, value);
  187 + }
  188 + },
  189 + {
  190 + field : 'checkCode',
  191 + title : '质检完成',
  192 + align: 'center',
  193 + formatter: function(value, row, index) {
  194 + return $.table.selectDictLabel(srmCheck, value);
  195 + }
  196 + },
  197 + {
  198 + field : 'mark',
  199 + title : '唯一标识',
  200 + sortable: false,
  201 + visible:false
  202 + },
  203 + {
  204 + field : 'lastUpdatedBy',
  205 + title : '更新用户',
  206 + sortable: false,
  207 + visible:false
  208 + },
  209 + ]
  210 + };
  211 + $.table.init(options);
  212 + });
  213 +
  214 + $("#bootstrap-table1").bootstrapTable({
  215 + sortable: true, //排序
  216 + showRefresh: true, //刷新
  217 + showToggle:true, //视图切换
  218 + clickToSelect: false,
  219 + showColumns:true, //列选择
  220 + // detailView:true,
  221 + showExport: true, //导出
  222 + exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
  223 + modalName: "任务明细",
  224 + iconSize: "outline",
  225 + toolbar: "#toolbar1",
  226 + contentType: "application/x-www-form-urlencoded",
  227 + sortName: "id",
  228 + sortOrder: "desc",
  229 + columns: [{
  230 + checkbox: true
  231 + },
  232 + {
  233 + field : 'id',
  234 + title : 'id' ,
  235 + visible:false
  236 + },
  237 + {
  238 + title: '操作',
  239 + align: 'center',
  240 + formatter: function(value, row, index) {
  241 + var actions = [];
  242 + if(row.checkCode < 2 && row.enable == 1) {
  243 + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" onclick="checkDetail(\'' + row.id + '\')"><i class="fa fa-check"></i>质检</a>');
  244 + }
  245 + // if(row.uploadStatus4 < 1 ) {
  246 + // actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.id + '\')"><i class="fa fa-check"></i>编辑</a>');
  247 + // }
  248 + return actions.join('');
  249 + }
  250 + },
  251 + {
  252 + title : 'PLM图纸',
  253 + formatter: function(value, row, index){
  254 + var actions = [];
  255 + actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" shiro:hasPermission="srm:srmDetail:selectDraw" onclick="queryDraw(\'' + row.materialCode + '\')" ><i class="fa fa-check"></i>查看图纸</a>');
  256 + return actions.join('');
  257 + }
  258 + },
  259 + {
  260 + field : 'companyCode',
  261 + title : '账套',
  262 + sortable: true,
  263 + formatter: function(value, row, index) {
  264 + return $.table.selectDictLabel(companyCode, value);
  265 + }
  266 + },
  267 + {
  268 + field : 'uWarehouseName',
  269 + title : '仓库',
  270 + sortable: true
  271 + },
  272 + {
  273 + field : 'lineCode',
  274 + title : '条码',
  275 + sortable: true
  276 + },
  277 + {
  278 + field : 'productionBatch',
  279 + title : '生产批号',
  280 + sortable: true
  281 + },
  282 + {
  283 + field : 'batchNumberContent',
  284 + title : '批号内容',
  285 + sortable: true
  286 + },
  287 + {
  288 + field : 'materialCode',
  289 + title : '存货编码',
  290 + sortable: true
  291 + },
  292 + {
  293 + field : 'materialName',
  294 + title : '物料名称',
  295 + sortable:true
  296 + },
  297 + {
  298 + field : 'specification',
  299 + title : '物料规格',
  300 + sortable:true
  301 + },
  302 + {
  303 + field : 'qty',
  304 + title : '数量'
  305 + },
  306 + {
  307 + field : 'confirmQty',
  308 + title : '实到数量'
  309 + },
  310 + {
  311 + field : 'lastUpdate',
  312 + title : '最后修改时间' ,
  313 + visible:false,
  314 + sortable:true
  315 + },
  316 + {
  317 + field : 'lastUpdatedBy',
  318 + title : '更新用户',
  319 + visible:false
  320 + },
  321 + {
  322 + field : 'uploadStatus1',
  323 + title : 'SRM到货上传',
  324 + align: 'center',
  325 + formatter: function(value, row, index) {
  326 + return $.table.selectDictLabel(uploadStatus, value);
  327 + }
  328 + },
  329 + {
  330 + field : 'uploadStatus4',
  331 + title : 'ERP采购单上传',
  332 + align: 'center',
  333 + formatter: function(value, row, index) {
  334 + return $.table.selectDictLabel(uploadStatus, value);
  335 + }
  336 + },
  337 + {
  338 + field : 'checkCode',
  339 + title : '质检完成',
  340 + align: 'center',
  341 + formatter: function(value, row, index) {
  342 + return $.table.selectDictLabel(srmCheck, value);
  343 + }
  344 + },
  345 + {
  346 + field: 'enable',
  347 + title : 'enable',
  348 + visible: false
  349 + }
  350 + ]
  351 + });
  352 +
  353 + function queryDraw(code){
  354 + $.ajax({
  355 + url:ctx + 'draw/selectDraw',
  356 + type: 'get',
  357 + data:{
  358 + "no":code
  359 + },
  360 + success : function (res) {
  361 + debugger;
  362 + if (res.code == 200){
  363 + var data = res.data;
  364 + window.open("http://172.16.2.10:8087/sipmweb/web/search/detail?rid="+data.rid+"&id="+data.objId+"&t=DWGSW","_blank");
  365 + }else{
  366 + $.modal.alertError(res.msg)
  367 + }
  368 + }
  369 + });
  370 + }
  371 +
  372 + /*入库单列表-详细*/
  373 + function detail(id,code,enable,supplierCode) {
  374 + headerId = id;
  375 + $("#myTab li").removeClass("active")
  376 + $("#myTab li:eq(1)").addClass("active")
  377 + $("#tabHeader").removeClass("in active");
  378 + $("#tabDetail").addClass("in active");
  379 + loadDetail();
  380 + }
  381 +
  382 + /*入库单列表-详细*/
  383 + function loadDetail() {
  384 + $.ajax({
  385 + url:ctx + 'srm/srmDetail/yiDaoHeGelist',
  386 + type: 'post',
  387 + data:{
  388 + "headerId":headerId
  389 + },
  390 + success : function (value) {
  391 + $("#bootstrap-table1").bootstrapTable('load',value.data);
  392 + }
  393 + });
  394 + }
  395 +
  396 + /* 检验 */
  397 + function checkDetail(id) {
  398 + let url=prefix1 + "/check/"+ id;
  399 + $.modal.open("检查" , url);
  400 + }
  401 +
  402 + /*获取ERP到货单*/
  403 + function getReceipt() {
  404 + var rows=$("#bootstrap-table").bootstrapTable('getSelections');
  405 + if (rows.length == 0) {
  406 + $.modal.alertWarning("请至少选择一条记录");
  407 + return;
  408 + }
  409 + $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() {
  410 + var url = prefixx + '/getReceipt';
  411 + var ids = "";
  412 + for(var i=0; i<rows.length; i++) {
  413 + ids = ids + rows[i].id + ","
  414 + }
  415 + var data = { "ids": ids.substring(0, ids.length-1) };
  416 + $.operate.submit(url, "post", "json", data);
  417 + })
  418 + }
  419 +</script>
  420 +</body>
  421 +</html>
... ...