From dbc446e16492f58fd1a646277ca91f5f6ec8cbe7 Mon Sep 17 00:00:00 2001 From: mahuandong <752432958@qq.com> Date: Wed, 28 Aug 2019 18:10:10 +0800 Subject: [PATCH] 添加入库单历史 --- src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java | 30 +++++++++++++++--------------- src/main/java/com/huaheng/pc/receipt/receiptDetailHistory/controller/ReceiptDetailHistoryController.java | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java | 21 +++++++++++++++++++++ src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/controller/ReceiptHeaderHistoryController.java | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/resources/templates/receipt/receiptDetailHistory/receiptDetailHistory.html | 269 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------- src/main/resources/templates/receipt/receiptHeaderHistory/edit.html | 174 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ src/main/resources/templates/receipt/receiptHeaderHistory/receiptHeaderHistory.html | 423 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------- 8 files changed, 709 insertions(+), 434 deletions(-) create mode 100644 src/main/java/com/huaheng/pc/receipt/receiptDetailHistory/controller/ReceiptDetailHistoryController.java create mode 100644 src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/controller/ReceiptHeaderHistoryController.java delete mode 100644 src/main/resources/templates/receipt/receiptHeaderHistory/edit.html diff --git a/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java b/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java index 5903f98..df81ab2 100644 --- a/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java +++ b/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java @@ -139,21 +139,21 @@ public class ReceiptDetailController extends BaseController { /** * 删除入库单 */ - //@ApiOperation(value="删除入库单 ", notes="删除入库单 ", httpMethod = "POST") - //@RequiresPermissions("receipt:receiptDetail:add") - //@Log(title = "入库-入库单 ",operating = "修改入库单 ", action = BusinessType.INSERT) - //@PostMapping("/edit") - //@ResponseBody - //public AjaxResult remove(String ids) { - // if (StringUtils.isEmpty(ids)){ - // return AjaxResult.error("id为空"); - // } - // List<Integer> list = new ArrayList<>(); - // for (Integer id : Convert.toIntArray(ids)){ - // list.add(id); - // } - // return toAjax(receiptDetailService.removeByIds(list)); - //} + @ApiOperation(value="删除入库单 ", notes="删除入库单 ", httpMethod = "POST") + @RequiresPermissions("receipt:receiptDetail:remove") + @Log(title = "入库-入库单 ",operating = "删除入库单 ", action = BusinessType.INSERT) + @PostMapping("/edit") + @ResponseBody + public AjaxResult remove(String ids) { + if (StringUtils.isEmpty(ids)){ + return AjaxResult.error("id为空"); + } + List<Integer> list = new ArrayList<>(); + for (Integer id : Convert.toIntArray(ids)){ + list.add(id); + } + return toAjax(receiptDetailService.removeByIds(list)); + } /** * 审核入库单 diff --git a/src/main/java/com/huaheng/pc/receipt/receiptDetailHistory/controller/ReceiptDetailHistoryController.java b/src/main/java/com/huaheng/pc/receipt/receiptDetailHistory/controller/ReceiptDetailHistoryController.java new file mode 100644 index 0000000..25a0359 --- /dev/null +++ b/src/main/java/com/huaheng/pc/receipt/receiptDetailHistory/controller/ReceiptDetailHistoryController.java @@ -0,0 +1,81 @@ +package com.huaheng.pc.receipt.receiptDetailHistory.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.huaheng.common.utils.StringUtils; +import com.huaheng.framework.aspectj.lang.annotation.Log; +import com.huaheng.framework.aspectj.lang.constant.BusinessType; +import com.huaheng.framework.web.controller.BaseController; +import com.huaheng.framework.web.page.PageDomain; +import com.huaheng.framework.web.page.TableDataInfo; +import com.huaheng.framework.web.page.TableSupport; +import com.huaheng.pc.receipt.receiptDetailHistory.domain.ReceiptDetailHistory; +import com.huaheng.pc.receipt.receiptDetailHistory.service.ReceiptDetailHistoryService; +import com.huaheng.pc.receipt.receiptHeaderHistory.domain.ReceiptHeaderHistory; +import com.huaheng.pc.receipt.receiptHeaderHistory.service.ReceiptHeaderHistoryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +@Api(tags = "历史入库明细") +@Controller +@RequestMapping("/receipt/receiptDetail") +public class ReceiptDetailHistoryController extends BaseController { + + @Resource + private ReceiptDetailHistoryService receiptDetailHistoryService; + + @Resource + private ReceiptHeaderHistoryService receiptHeaderHistoryService; + + private String prefix = "receipt/receiptDetailHistory"; + + @RequiresPermissions("receipt:receiptDetail:view") + @Log(title = "入库-厉史入库详情列表", operating = "历史入库详情列表", action = BusinessType.GRANT) + @GetMapping("/list/{id}") + public String list(@PathVariable("id")Integer id, ModelMap mmap) { + ReceiptHeaderHistory receiptHeaderHistory = receiptHeaderHistoryService.getById(id); + mmap.put("receiptId", id); + mmap.put("receiptCode", receiptHeaderHistory.getCode()); + return prefix+"/receiptDetail"; + } + + /** + * 查询入库详情 + */ + @ApiOperation(value="查看入库详情", notes="根据头表id获取入库单明细信息", httpMethod = "POST") + @RequiresPermissions("receipt:receiptDetail:list") + @Log(title = "入库-入库单明细管理", operating = "查看入库单明细", action = BusinessType.GRANT) + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(@ApiParam(name="receiptDetail",value="入库详情") ReceiptDetailHistory receiptDetail, + @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin, + @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) { + LambdaQueryWrapper<ReceiptDetailHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), ReceiptDetailHistory::getCreated, createdBegin) + .le(StringUtils.isNotEmpty(createdEnd), ReceiptDetailHistory::getCreated, createdEnd) + .eq(ReceiptDetailHistory::getReceiptId, receiptDetail.getReceiptId()); + + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ + /*使用分页查询*/ + Page<ReceiptDetailHistory> page = new Page<>(pageNum, pageSize); + IPage<ReceiptDetailHistory> iPage = receiptDetailHistoryService.page(page, lambdaQueryWrapper); + return getMpDataTable(iPage.getRecords(), iPage.getTotal()); + } else { + List<ReceiptDetailHistory> list = receiptDetailHistoryService.list(lambdaQueryWrapper); + return getDataTable(list); + } + } +} diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java index a5e154c..343c628 100644 --- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java +++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.huaheng.common.support.Convert; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; @@ -15,6 +16,8 @@ import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; +import com.huaheng.pc.receipt.receiptHeaderHistory.domain.ReceiptHeaderHistory; +import com.huaheng.pc.receipt.receiptHeaderHistory.service.ReceiptHeaderHistoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiOperation; @@ -25,6 +28,7 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @Api(tags = "入库单") @@ -36,6 +40,8 @@ public class ReceiptHeaderController extends BaseController { @Resource private ReceiptHeaderService receiptHeaderService; + @Resource + private ReceiptHeaderHistoryService receiptHeaderHistoryService; @RequiresPermissions("receipt:receiptHeader:view") @GetMapping() @@ -163,4 +169,19 @@ public class ReceiptHeaderController extends BaseController { receiptHeader.setLastStatus(5); return toAjax(receiptHeaderService.updateById(receiptHeader)); } + + /** + * 删除入库单 + */ + @ApiOperation(value="提交审核入库单", notes="提交审核入库单", httpMethod = "POST") + @RequiresPermissions("receipt:receiptHeader:remove") + @Log(title = "入库-入库单 ",operating = "提交审核入库单 ", action = BusinessType.UPDATE) + @PostMapping("/remove") + @ResponseBody + public AjaxResult remove(@ApiParam(name = "id", value = "入库头表id字符串")Integer id){ + if (StringUtils.isNull(id)){ + return AjaxResult.error("id为空"); + } + return receiptHeaderHistoryService.add(id); + } } diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/controller/ReceiptHeaderHistoryController.java b/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/controller/ReceiptHeaderHistoryController.java new file mode 100644 index 0000000..5645228 --- /dev/null +++ b/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/controller/ReceiptHeaderHistoryController.java @@ -0,0 +1,85 @@ +package com.huaheng.pc.receipt.receiptHeaderHistory.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.huaheng.common.utils.StringUtils; +import com.huaheng.common.utils.security.ShiroUtils; +import com.huaheng.framework.aspectj.lang.annotation.Log; +import com.huaheng.framework.aspectj.lang.constant.BusinessType; +import com.huaheng.framework.web.controller.BaseController; +import com.huaheng.framework.web.page.PageDomain; +import com.huaheng.framework.web.page.TableDataInfo; +import com.huaheng.framework.web.page.TableSupport; +import com.huaheng.pc.receipt.receiptHeaderHistory.domain.ReceiptHeaderHistory; +import com.huaheng.pc.receipt.receiptHeaderHistory.service.ReceiptHeaderHistoryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; +import java.util.List; + +@Api(tags = "入库单历史") +@Controller +@RequestMapping("/receipt/receiptHeaderHistory") +public class ReceiptHeaderHistoryController extends BaseController { + + private String prefix="receipt/receiptHeaderHistory"; + + @Resource + private ReceiptHeaderHistoryService receiptHeaderHistoryService; + + @RequiresPermissions("receipt:receiptHeaderHistory:view") + @GetMapping() + public String containerCapacity() + { + return prefix + "/receiptHeaderHistory"; + } + + /** + * 查询入库单 + */ + @RequiresPermissions("receipt:receiptHeader:list") + @Log(title = "入库-入库单头表", operating = "查看入库单列表", action = BusinessType.GRANT) + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(@ApiParam(name="receiptDetail",value="入库头表") ReceiptHeaderHistory receiptHeader, + @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin, + @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) { + LambdaQueryWrapper<ReceiptHeaderHistory> lambdaQueryWrapper = Wrappers.lambdaQuery(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + + lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), ReceiptHeaderHistory::getCreated, createdBegin) + .le(StringUtils.isNotEmpty(createdEnd), ReceiptHeaderHistory::getCreated, createdEnd) + .in(ReceiptHeaderHistory::getCompanyCode, ShiroUtils.getCompanyCodeList()) + .eq(ReceiptHeaderHistory::getWarehouseCode, ShiroUtils.getWarehouseCode()) + .eq(StringUtils.isNotEmpty(receiptHeader.getReceiptType()), + ReceiptHeaderHistory::getReceiptType, receiptHeader.getReceiptType()) + .eq(StringUtils.isNotEmpty(receiptHeader.getCode()), ReceiptHeaderHistory::getCode, receiptHeader.getCode()) + .eq(StringUtils.isNotNull(receiptHeader.getFirstStatus()), + ReceiptHeaderHistory::getFirstStatus, receiptHeader.getFirstStatus()) + .eq(StringUtils.isNotNull(receiptHeader.getLastStatus()), + ReceiptHeaderHistory::getLastStatus, receiptHeader.getLastStatus()); + + if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ + /** + * 使用分页查询 + */ + Page<ReceiptHeaderHistory> page = new Page<>(pageNum, pageSize); + IPage<ReceiptHeaderHistory> iPage = receiptHeaderHistoryService.page(page, lambdaQueryWrapper); + return getMpDataTable(iPage.getRecords(),iPage.getTotal()); + } else { + List<ReceiptHeaderHistory> list = receiptHeaderHistoryService.list(lambdaQueryWrapper); + return getDataTable(list); + } + } +} diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java b/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java index dcd509c..6e2e065 100644 --- a/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java +++ b/src/main/java/com/huaheng/pc/receipt/receiptHeaderHistory/service/ReceiptHeaderHistoryService.java @@ -1,12 +1,72 @@ package com.huaheng.pc.receipt.receiptHeaderHistory.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.huaheng.common.utils.security.ShiroUtils; +import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; +import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; +import com.huaheng.pc.receipt.receiptDetailHistory.domain.ReceiptDetailHistory; +import com.huaheng.pc.receipt.receiptDetailHistory.service.ReceiptDetailHistoryService; +import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; +import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.wml.WMLSetvarElement; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.pc.receipt.receiptHeaderHistory.domain.ReceiptHeaderHistory; import com.huaheng.pc.receipt.receiptHeaderHistory.mapper.ReceiptHeaderHistoryMapper; +import org.springframework.transaction.annotation.Transactional; + @Service public class ReceiptHeaderHistoryService extends ServiceImpl<ReceiptHeaderHistoryMapper, ReceiptHeaderHistory> { + @Resource + private ReceiptHeaderService receiptHeaderService; + @Resource + private ReceiptDetailService receiptDetailService; + @Resource + private ReceiptDetailHistoryService receiptDetailHistoryService; + + @Transactional + public AjaxResult add(Integer id){ + ReceiptHeader receiptHeader = receiptHeaderService.getById(id); + if (receiptHeader == null) return AjaxResult.success(""); + if(receiptHeader.getFirstStatus()>=800 && receiptHeader.getLastStatus()>=800){ + ReceiptHeaderHistory receiptHeaderHistory = new ReceiptHeaderHistory(); + List<ReceiptDetailHistory> receiptDetailHistory = new ArrayList<>(); + //查询入库单明细 + LambdaQueryWrapper<ReceiptDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id); + List<ReceiptDetail> list = receiptDetailService.list(lambdaQueryWrapper); + try { + //复制到入库历史实体 + BeanUtils.copyProperties(receiptHeader, receiptHeaderHistory); + BeanUtils.copyProperties(list, receiptDetailHistory); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + + receiptHeaderHistory.setLastUpdatedBy(ShiroUtils.getLoginName()); + receiptHeaderService.removeById(receiptHeader.getId()); + //删除入库明细 + List<Integer> ids = new ArrayList<>(); + for (int i=0; i<receiptDetailHistory.size();i++){ + receiptDetailHistory.get(i).setLastUpdatedBy(ShiroUtils.getLoginName()); + ids.add(receiptHeaderHistory.getId()); + } + receiptDetailService.removeByIds(ids); + receiptDetailHistoryService.saveBatch(receiptDetailHistory); + this.save(receiptHeaderHistory); + }else { + return AjaxResult.success("入库单没有完成,无法删除"); + } + return AjaxResult.success("删除成功"); + } } diff --git a/src/main/resources/templates/receipt/receiptDetailHistory/receiptDetailHistory.html b/src/main/resources/templates/receipt/receiptDetailHistory/receiptDetailHistory.html index 8c7dc9b..2ac2672 100644 --- a/src/main/resources/templates/receipt/receiptDetailHistory/receiptDetailHistory.html +++ b/src/main/resources/templates/receipt/receiptDetailHistory/receiptDetailHistory.html @@ -2,145 +2,228 @@ <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <meta charset="utf-8"> <head th:include="include :: header"></head> -<body class="gray-bg"> - <div class="container-div"> - <div class="row"> - <div class="btn-group hidden-xs" id="toolbar" role="group"> - <input type="hidden" id="receiptId" name="receiptId" th:value="${receiptId}"/> - </div> - - <div class="col-sm-12 select-info"> - <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> - </div> +<body> +<div class="col-sm-12 select-info"> + <form id="receiptDetail-form"> + <div class="select-list"> + <ul> + <li> + 入库单号:<input type="text" name="code"/> + </li> + <li> + 物料编码:<input type="text" name="materialCode"/> + </li> + <li> + 物料批次:<input type="text" name="batch"/> + </li> + <!--<li class="time">--> + <!--<label>创建时间: </label>--> + <!--<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>--> + <!--<span>-</span>--> + <!--<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>--> + <!--</li>--> + <li> + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> + <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="receipt:receiptDetail:export"><i class="fa fa-download"></i> 导出</a>--> + </li> + </ul> </div> - </div> - <div th:include="include :: footer"></div> - <script th:inline="javascript"> - var editFlag = [[${@permission.hasPermi('receipt:history:edit')}]]; - var removeFlag = [[${@permission.hasPermi('receipt:history:remove')}]]; - var prefix = ctx + "receipt/receiptDetailHistory" + </form> +</div> - $(function() { - var options = { - url: prefix + "/list", - createUrl: prefix + "/add", - updateUrl: prefix + "/edit/{id}", - removeUrl: prefix + "/remove", - queryParams: queryParams, - modalName: "入库明细历史", - search: false, - sortName: "id", - sortOrder: "desc", - columns: [{ - checkbox: true - }, +<input type="hidden" id="receiptId" name="receiptId" th:value="${receiptId}"/> +<input type="hidden" id="receiptCode" name="receiptCode" th:value="${receiptCode}"/> +<div class="btn-group hidden-xs" id="toolbar" role="group"> + <a class="btn btn-outline btn-success btn-rounded" onclick="add()" shiro:hasPermission="receipt:receiptDetail:add"> + <i class="fa fa-plus"></i> 新增 + </a> + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="receipt:receiptDetail:remove"> + <i class="fa fa-trash-o"></i> 删除 + </a> +</div> + +<div class="col-sm-12 select-info"> + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> +</div> + + +<div th:include="include :: footer"></div> +<script th:inline="javascript"> + var editFlag = [[${@permission.hasPermi('receipt:receiptDetail:edit')}]]; + var removeFlag = [[${@permission.hasPermi('receipt:receiptDetail:remove')}]]; + var approvalFlag = [[${@permission.hasPermi('receipt:receiptHeader:approval')}]] + var prefix = ctx + "receipt/receiptDetailHistory"; + var datas = [[${@dict.getType('isVirtualBom')}]]; + $(function() { + var options = { + url: prefix + "/list", + createUrl: prefix + "/add", + updateUrl: prefix + "/edit/{id}", + removeUrl: prefix + "/remove", + queryParams: queryParams, + modalName: "入库明细历史", + search: false, + sortName: "id", + sortOrder: "desc", + columns: [{ + checkbox: true + }, + { + field : 'id', + title : 'id' + }, + { + field : 'receiptCode', + title : '入库单编码' + }, + { + field : 'materialCode', + title : '物料编码' + }, { - field : 'id', - title : '入库明细id' + field : 'materialName', + title : '物料名称' }, { - field : 'sourceLine', - title : '上游系统行号' + field : 'materialSpec', + title : '物料规格' }, { - field : 'receiptId', - title : '入库单id' + field : 'materialUnit', + title : '物料单位' }, { - field : 'receiptCode', - title : '入库单编码' + field : 'supplierCode', + title : '供应商编码' }, { - field : 'materialId', - title : '物料Id' + field : 'batch', + title : '批次' }, { - field : 'materialCode', - title : '存货编码' + field : 'lot', + title : '批号' , + visible:false }, { - field : 'batch', - title : '批次' + field : 'qcCheck', + title : '是否质检' }, { - field : 'lot', - title : '批号' + field : 'projectNo', + title : '项目号' }, { - field : 'project', - title : '项目号' + field : 'manufactureDate', + title : '生产日期' , + visible:false }, { - field : 'manufactureDate', - title : '生产日期' + field : 'expirationDate', + title : '失效日期' , + visible:false }, { - field : 'expirationDate', - title : '失效日期' + field : 'agingDate', + title : '入库日期' , + visible:false }, { - field : 'inventoryStatus', - title : '库存状态' + field : 'totalQty', + title : '总数量' }, { - field : 'qty', - title : '收货数量' + field : 'openQty', + title : '未收数量' }, { - field : 'price', - title : '单价' + field : 'referCode', + title : 'ERP单号', + visible : false }, { - field : 'created', - title : '创建时间' + field : 'referId', + title : 'ERP内部号', + visible : false }, { - field : 'createdBy', - title : '创建用户' + field : 'referLineNum', + title : 'ERP行号', + visible : false }, { - field : 'lastUpdated', - title : '最后修改时间' + field : 'locatingRule', + title : '定位规则' }, { - field : 'lastUpdatedBy', - title : '更新用户' + field : 'inventorySts', + title : '库存状态', + visible : false }, { - field : 'deleted', - title : '是否删除' + field : 'itemListPrice', + title : '标价' }, { - field : 'userDef1', - title : '自定义字段1' + field : 'itemNetPrice', + title : '净价' }, { - field : 'userDef2', - title : '自定义字段2' + field : 'price', + title : '单价' , + visible:false }, { - field : 'userDef3', - title : '自定义字段3' + field : 'isVirtualBom', + title : '是否虚拟套件', + formatter: function(value, row, index) { + return $.table.selectDictLabel(datas, value); + } }, - { - title: '操作', - align: 'center', - formatter: function(value, row, index) { - var actions = []; - //actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); - // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>'); - return actions.join(''); - } - }] - }; - $.table.init(options); - }); + { + field : 'created', + title : '创建时间' + }, + { + field : 'createdBy', + title : '创建用户', + visible:false + }, + { + field : 'lastUpdated', + title : '最后修改时间', + visible:false + }, + { + field : 'lastUpdatedBy', + title : '更新用户' , + visible:false + }, + { + field : 'userDef1', + title : '自定义字段1' , + visible:false + }, + { + field : 'userDef2', + title : '自定义字段2' , + visible:false + }, + { + field : 'userDef3', + title : '自定义字段3' , + visible:false + }] + }; + $.table.init(options); + }); + + function queryParams(params) { + return { + receiptId:$("#receiptId").val() + }; + }; - function queryParams(params) { - return { - receiptId: $("#receiptId").val() - }; - } - </script> +</script> </body> </html> \ No newline at end of file diff --git a/src/main/resources/templates/receipt/receiptHeaderHistory/edit.html b/src/main/resources/templates/receipt/receiptHeaderHistory/edit.html deleted file mode 100644 index 101a056..0000000 --- a/src/main/resources/templates/receipt/receiptHeaderHistory/edit.html +++ /dev/null @@ -1,174 +0,0 @@ -<!DOCTYPE HTML> -<html lang="zh" xmlns:th="http://www.thymeleaf.org"> -<meta charset="utf-8"> -<head th:include="include :: header"></head> -<body class="white-bg"> - <div class="wrapper wrapper-content animated fadeInRight ibox-content"> - <form class="form-horizontal m" id="form-receiptHeaderHistory-edit" th:object="${receiptHeaderHistory}"> - <input id="id" name="id" th:field="*{id}" type="hidden"> - <div class="form-group"> - <label class="col-sm-3 control-label">入库单号:</label> - <div class="col-sm-8"> - <input id="code" name="code" th:field="*{code}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">货主id:</label> - <div class="col-sm-8"> - <input id="companyId" name="companyId" th:field="*{companyId}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">货主编码:</label> - <div class="col-sm-8"> - <input id="companyCode" name="companyCode" th:field="*{companyCode}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">供应商id:</label> - <div class="col-sm-8"> - <input id="supplierId" name="supplierId" th:field="*{supplierId}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">供应商编码:</label> - <div class="col-sm-8"> - <input id="supplierCode" name="supplierCode" th:field="*{supplierCode}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">入库类型:</label> - <div class="col-sm-8"> - <input id="type" name="type" th:field="*{type}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">上游系统单号:</label> - <div class="col-sm-8"> - <input id="sourceCode" name="sourceCode" th:field="*{sourceCode}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">上游平台:</label> - <div class="col-sm-8"> - <input id="sourcePlatform" name="sourcePlatform" th:field="*{sourcePlatform}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">总数量:</label> - <div class="col-sm-8"> - <input id="totalQty" name="totalQty" th:field="*{totalQty}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">总行数:</label> - <div class="col-sm-8"> - <input id="totalLines" name="totalLines" th:field="*{totalLines}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">入库单备注:</label> - <div class="col-sm-8"> - <input id="remark" name="remark" th:field="*{remark}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">上传状态:</label> - <div class="col-sm-8"> - <input id="uploadStatus" name="uploadStatus" th:field="*{uploadStatus}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">上传备注:</label> - <div class="col-sm-8"> - <input id="uploadremark" name="uploadremark" th:field="*{uploadremark}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">上传时间:</label> - <div class="col-sm-8"> - <input id="uploadTime" name="uploadTime" th:field="*{uploadTime}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">入库预约时间:</label> - <div class="col-sm-8"> - <input id="appointmentTime" name="appointmentTime" th:field="*{appointmentTime}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">单据头状态:</label> - <div class="col-sm-8"> - <input id="firstStatus" name="firstStatus" th:field="*{firstStatus}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">单据尾状态:</label> - <div class="col-sm-8"> - <input id="lastStatus" name="lastStatus" th:field="*{lastStatus}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">创建时间:</label> - <div class="col-sm-8"> - <input id="created" name="created" th:field="*{created}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">创建用户:</label> - <div class="col-sm-8"> - <input id="createdBy" name="createdBy" th:field="*{createdBy}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">最后修改时间:</label> - <div class="col-sm-8"> - <input id="lastUpdated" name="lastUpdated" th:field="*{lastUpdated}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">更新用户:</label> - <div class="col-sm-8"> - <input id="lastUpdatedBy" name="lastUpdatedBy" th:field="*{lastUpdatedBy}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">是否有效:</label> - <div class="col-sm-8"> - <input id="enable" name="enable" th:field="*{enable}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">是否删除:</label> - <div class="col-sm-8"> - <input id="deleted" name="deleted" th:field="*{deleted}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">自定义字段1:</label> - <div class="col-sm-8"> - <input id="userDef1" name="userDef1" th:field="*{userDef1}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">自定义字段2:</label> - <div class="col-sm-8"> - <input id="userDef2" name="userDef2" th:field="*{userDef2}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">自定义字段3:</label> - <div class="col-sm-8"> - <input id="userDef3" name="userDef3" th:field="*{userDef3}" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <div class="form-control-static col-sm-offset-9"> - <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button> - </div> - </div> - </form> - </div> - <div th:include="include::footer"></div> -</body> -</html> diff --git a/src/main/resources/templates/receipt/receiptHeaderHistory/receiptHeaderHistory.html b/src/main/resources/templates/receipt/receiptHeaderHistory/receiptHeaderHistory.html index fdb46a3..00df531 100644 --- a/src/main/resources/templates/receipt/receiptHeaderHistory/receiptHeaderHistory.html +++ b/src/main/resources/templates/receipt/receiptHeaderHistory/receiptHeaderHistory.html @@ -3,162 +3,281 @@ <meta charset="utf-8"> <head th:include="include :: header"></head> <body class="gray-bg"> - <div class="container-div"> - <div class="row"> - <div class="btn-group hidden-xs" id="toolbar" role="group"> - </div> - - <div class="col-sm-12 select-info"> - <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> - </div> +<div class="container-div"> + <div class="row"> + <div class="col-sm-12 select-info"> + <ul id="myTab" class="nav nav-tabs"> + <li class="active"><a href="#tabHeader" data-toggle="tab">主表</a></li> + <li><a href="#tabDetail" data-toggle="tab">明细</a></li> + </ul> + <div id="myTabContent" class="tab-content"> + <div class="tab-pane fade in active" id="tabHeader"> + <div class="col-sm-12 select-info"> + <form id="receiptHeader-form"> + <div class="select-list"> + <ul> + <li> + 入库单号:<input type="text" name="code"/> + </li> + <li> + <!--入库类型:<input type="text" name="sourceCode"/>--> + 入库类型:<select name="type" th:with="type=${@receiptTypeService.getType()}"> + <option value="">所有</option> + <option th:each="e : ${type}" th:text="${e['name']}" th:value="${e['code']}"></option></select> + </li> + <li> + <!--头 状 态:<input type="text" name="firstStatus"/>--> + 头 状 态:<select name="firstStatus" th:with="firstStatus=${@dict.getType('receiptHeaderStatus')}"> + <option value="">所有</option> + <option th:each="e : ${firstStatus}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option></select> + </li> + <li> + <!--尾 状 态:<input type="text" name="lastStatus"/>--> + 尾 状 态:<select name="lastStatus" th:with="lastStatus=${@dict.getType('receiptHeaderStatus')}"> + <option value="">所有</option> + <option th:each="e : ${lastStatus}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option></select> + </li> + <li class="time"> + <label>创建时间: </label> + <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[createdBegin]"/> + <span>-</span> + <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[createdEnd]"/> + </li> + <li> + <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> + <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="receipt:receiptHeader:export"><i class="fa fa-download"></i> 导出</a>--> + </li> + </ul> + </div> + </form> + </div> + <div class="btn-group hidden-xs" id="toolbar" role="group"> + <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" + shiro:hasPermission="receipt:receiptHeader:add"> + <i class="fa fa-plus"></i> 新增 + </a> + <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" + shiro:hasPermission="receipt:receiptHeader:remove"> + <i class="fa fa-trash-o"></i> 删除 + </a> + </div> + <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> + </div> + + <div class="tab-pane fade" id="tabDetail"> + <table id="bootstrap-table1" data-mobile-responsive="true" + class="table table-bordered table-hover"></table> + </div> + </div> </div> </div> - <div th:include="include :: footer"></div> - <script th:inline="javascript"> - var editFlag = [[${@permission.hasPermi('receipt:history:edit')}]]; - var removeFlag = [[${@permission.hasPermi('receipt:history:remove')}]]; - var prefix = ctx + "receipt/receiptHeaderHistory" +</div> +<div th:include="include :: footer"></div> +<script th:inline="javascript"> + var prefix = ctx + "receipt/receiptHeaderHistory"; + var prefix1 = ctx + "receipt/receiptDetailHistory"; + var editFlag = [[${@permission.hasPermi('receipt:receiptHeader:edit')}]]; + var removeFlag = [[${@permission.hasPermi('receipt:receiptHeader:remove')}]]; + var receiptTypes = [[${@receiptTypeService.getType()}]]; + var receiptHeaderStatus = [[${@dict.getType('receiptHeaderStatus')}]]; + var printFlag = [[${@permission.hasPermi('receipt:receiptHeader:report')}]]; + var addFlag= [[${@permission.hasPermi('receipt:receiptHeader:add')}]]; + + + $(function() { + var options = { + url: prefix + "/list", + createUrl: prefix + "/add", + updateUrl: prefix + "/edit/{id}", + removeUrl: prefix + "/remove", + modalName: "入库历史", + search: false, + sortName: "id", + sortOrder: "desc", + columns: [{ + checkbox: true + }, + { + field : 'id', + title : '入库单id' + }, + { + field : 'code', + title : '入库单号' + }, + { + field : 'referCode', + title : '关联单号' + }, + { + field : 'referId', + title : '关联单号(内部号)' + }, + { + field : 'referType', + title : '关联订单类型' + }, + { + field : 'companyCode', + title : '货主编码', + visible:false + }, + { + field : 'warehouseCode', + title : '仓库编码', + visible:false + }, + { + field : 'receiptType', + title : '入库类型', + align: 'center', + formatter: function(value, row, index) { + var actions = []; + $.each(receiptTypes, function(index, dict) { + if (dict.code == value) { + actions.push("<span class='badge badge-info'>" + dict.name + "</span>"); + return false; + } + }); + return actions.join(''); + } + }, + { + field : 'scheduledArriveDate', + title : '预计到达日期' + }, + { + field : 'actualArriveDate', + title : '实际到达日期' + }, + { + field : 'startCheckinDatetime', + title : '开始收货日期' + }, + { + field : 'endCheckinDatetime', + title : '结束收货日期' + }, + { + field : 'recvDock', + title : '月台货位' + }, + { + field : 'closedAt', + title : '关闭时间', + visible : false + }, + { + field : 'closedBy', + title : '强制关闭用户', + visible :false + }, + { + field : 'totalQty', + title : '总数量' + }, + { + field : 'totalLines', + title : '总行数' + }, + { + field : 'remark', + title : '备注', + visible : false + }, + { + field : 'uploadStatus', + title : '上传状态', + visible:false + }, + { + field : 'receiptNote', + title : '入库单备注', + visible:false + }, + { + field : 'locked', + title : '锁定', + visible:false + }, + { + field : 'lockedBy', + title : '锁定用户', + visible:false + }, + { + field : 'firstStatus', + title : '头状态', + align: 'center', + formatter: function(value, row, index) { + return $.table.selectDictLabel(receiptHeaderStatus, value); + } + }, + { + field : 'lastStatus', + title : '尾状态', + align: 'center', + formatter: function(value, row, index) { + return $.table.selectDictLabel(receiptHeaderStatus, value); + } + }, + { + field : 'created', + title : '创建时间', + sortable:true, + visible:false + }, + { + field : 'createdBy', + title : '创建用户', + visible:false + }, + { + field : 'lastUpdated', + title : '最后修改时间', + sortable:true, + visible:false + }, + { + field : 'lastUpdatedBy', + title : '更新用户', + visible:false + }, + { + field : 'userDef1', + title : '自定义字段1', + visible: false + }, + { + field : 'userDef2', + title : '自定义字段2', + visible: false + }, + { + field : 'userDef3', + title : '自定义字段3' , + visible: false + }] + }; + $.table.init(options); + }); - $(function() { - var options = { - url: prefix + "/list", - createUrl: prefix + "/add", - updateUrl: prefix + "/edit/{id}", - removeUrl: prefix + "/remove", - modalName: "入库单历史", - search: false, - columns: [{ - checkbox: true - }, - { - field : 'id', - title : '入库id号' - }, - { - field : 'code', - title : '入库单号' - }, - { - field : 'companyId', - title : '货主id' - }, - { - field : 'companyCode', - title : '货主编码' - }, - { - field : 'supplierId', - title : '供应商id' - }, - { - field : 'supplierCode', - title : '供应商编码' - }, - { - field : 'type', - title : '入库类型' - }, - { - field : 'sourceCode', - title : '上游系统单号' - }, - { - field : 'sourcePlatform', - title : '上游平台' - }, - { - field : 'totalQty', - title : '总数量' - }, - { - field : 'totalLines', - title : '总行数' - }, - { - field : 'remark', - title : '入库单备注' - }, - { - field : 'uploadStatus', - title : '上传状态' - }, - { - field : 'uploadremark', - title : '上传备注' - }, - { - field : 'uploadTime', - title : '上传时间' - }, - { - field : 'appointmentTime', - title : '入库预约时间' - }, - { - field : 'firstStatus', - title : '单据头状态' - }, - { - field : 'lastStatus', - title : '单据尾状态' - }, - { - field : 'created', - title : '创建时间' - }, - { - field : 'createdBy', - title : '创建用户' - }, - { - field : 'lastUpdated', - title : '最后修改时间' - }, - { - field : 'lastUpdatedBy', - title : '更新用户' - }, - { - field : 'enable', - title : '是否有效' - }, - { - field : 'deleted', - title : '是否删除' - }, - { - field : 'userDef1', - title : '自定义字段1' - }, - { - field : 'userDef2', - title : '自定义字段2' - }, - { - field : 'userDef3', - title : '自定义字段3' - }, - { - title: '操作', - align: 'center', - formatter: function(value, row, index) { - var actions = []; - actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); - actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>列表</a> '); - // actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a>'); - return actions.join(''); - } - }] - }; - $.table.init(options); - }); + function detail(id, code) { + var url = prefix1+"/list/" + id; + createtable(url); + } - /*入库单列表-详细*/ - function detail(receiptId) { - var url = 'receipt/receiptDetailHistory/' + receiptId; - createMenuItem(url, "入库单据历史明细"); - } - </script> + function createtable(url) { + $("#tabDetail").children().remove(); + $("#myTab li").removeClass("active"); + var height = $(document).height()-100 + 'px'; + var str = '<iframe class="huaheng_iframe" name="iframe" width="100%" height="' + height + '" src="' + url + '" frameborder="0" data-id="' + url + '" seamless></iframe>'; + $("#tabDetail").append(str); + $(".tab-pane").removeClass("in active"); + $("#myTab li:eq(1)").addClass("active"); + $("#tabDetail").addClass("in active"); + } +</script> </body> </html> \ No newline at end of file -- libgit2 0.22.2