diff --git a/erp_web/js/pages/materials/in_out.js b/erp_web/js/pages/materials/in_out.js index 678b0741..b8693ca9 100644 --- a/erp_web/js/pages/materials/in_out.js +++ b/erp_web/js/pages/materials/in_out.js @@ -1,4 +1,5 @@ //初始化界面 + var defDepotId = null; var kid = sessionStorage.getItem("userId"); var pageType = getUrlParam('t'); //获取页面类型传值 var depotList = null; @@ -53,7 +54,7 @@ initMProperty(); //初始化商品属性 initTableData(); ininPager(); - initForm(); + initForm(); bindEvent();//绑定操作事件 }); //根据单据名称获取类型 @@ -74,8 +75,8 @@ amountNum = "CGDD"; } else if(listTitle === "采购入库列表"){ - listType = "入库"; - listSubType = "采购"; + listType = "入库"; + listSubType = "采购"; payTypeTitle = "付款"; organUrl = supUrl; amountNum = "CGRK"; @@ -88,15 +89,15 @@ amountNum = "LSTH"; } else if(listTitle === "销售退货列表"){ - listType = "入库"; - listSubType = "销售退货"; + listType = "入库"; + listSubType = "销售退货"; payTypeTitle = "付款"; organUrl = cusUrl; amountNum = "XSTH"; } else if(listTitle === "其它入库列表"){ - listType = "入库"; - listSubType = "其它"; + listType = "入库"; + listSubType = "其它"; payTypeTitle = "隐藏"; organUrl = supUrl; amountNum = "QTRK"; @@ -116,29 +117,29 @@ amountNum = "XSDD"; } else if(listTitle === "销售出库列表"){ - listType = "出库"; - listSubType = "销售"; + listType = "出库"; + listSubType = "销售"; payTypeTitle = "收款"; organUrl = cusUrl; amountNum = "XSCK"; } else if(listTitle === "采购退货列表"){ - listType = "出库"; + listType = "出库"; listSubType = "采购退货"; payTypeTitle = "收款"; organUrl = supUrl; amountNum = "CGTH"; } else if(listTitle === "其它出库列表"){ - listType = "出库"; - listSubType = "其它"; + listType = "出库"; + listSubType = "其它"; payTypeTitle = "隐藏"; organUrl = cusUrl; amountNum = "QTCK"; } else if(listTitle === "调拨出库列表"){ - listType = "出库"; - listSubType = "调拨"; + listType = "出库"; + listSubType = "调拨"; payTypeTitle = "隐藏"; organUrl = supUrl; amountNum = "DBCK"; @@ -178,12 +179,12 @@ userBusinessList = null; } } - }); - + }); + } //初始化页面选项卡 function initSelectInfo_UB(){ - + if(userBusinessList !=null) { if(userBusinessList.length>0) @@ -193,8 +194,8 @@ } } } - - + + //初始化系统基础信息 function initSystemData_depot(){ $.ajax({ @@ -211,24 +212,27 @@ return; } } - }); + }); } //初始化页面选项卡 function initSelectInfo_depot(){ var options = ""; - + if(depotList !=null) { options = ""; for(var i = 0 ;i < depotList.length;i++) { var depot = depotList[i]; - + if(userdepot!=null) { if(userdepot.indexOf("["+depot.id+"]")!=-1) { - options += ''; + if(depot.isdefault){ + defDepotId = depot.id; + } + options += ''; depotString = depotString + depot.id + ","; } } @@ -238,16 +242,16 @@ } depotString = depotString.substring(1, depotString.length-1); $("#ProjectId").empty().append(options); - $("#AllocationProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); $("#searchProjectId").empty().append('').append(options); } } - + //初始化供应商、客户、散户信息 function initSupplier(){ $('#OrganId').combobox({ url: organUrl, - valueField:'id', + valueField:'id', textField:'supplier', filter: function(q, row){ var opts = $(this).combobox('options'); @@ -297,7 +301,7 @@ }); } } - }); + }); } //初始化销售人员 @@ -364,7 +368,7 @@ } }); } - + //初始化系统基础信息 function initSystemData_person(){ $.ajax({ @@ -380,12 +384,12 @@ } } } - }); + }); } //初始化页面选项卡 function initSelectInfo_person(){ var options1 = ""; - + if(personList !=null) { for(var i = 0 ;i < personList.length;i++) @@ -398,7 +402,7 @@ if(person.type=="仓管员") { options1 += ''; - } + } } $("#HandsPersonId").empty().append(options1); } @@ -418,11 +422,11 @@ } } } - }); + }); } //获取账户信息 function initSelectInfo_account(){ - var options = ""; + var options = ""; if(accountList !=null){ options = ""; options += ""; @@ -432,11 +436,11 @@ if(account.isdefault) { defaultAccountId = account.id; //给账户赋值默认id } - } + } $("#AccountId").empty().append(options); } } - + //防止表单提交重复 function initForm(){ $('#depotHeadFM').form({ @@ -445,7 +449,7 @@ } }); } - + //初始化表格数据 function initTableData(){ if(pageType === "skip") { @@ -616,7 +620,7 @@ onLoadError:function() { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); return; - } + } }); } @@ -1112,7 +1116,7 @@ iconCls:'icon-undo', handler:function() { - reject(); //撤销 + reject(); //撤销 } } ], @@ -1120,7 +1124,7 @@ { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); return; - } + } }); $.ajax({ type:"get", @@ -1164,8 +1168,8 @@ $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); } }); - } - + } + //初始化表格数据-商品列表-查看状态 function initTableData_material_show(TotalPrice){ var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 @@ -1221,7 +1225,7 @@ onLoadError:function() { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); return; - } + } }); $.ajax({ type:"get", @@ -1256,28 +1260,28 @@ function ininPager(){ try { - var opts = $("#tableData").datagrid('options'); - var pager = $("#tableData").datagrid('getPager'); - pager.pagination({ + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ onSelectPage:function(pageNum, pageSize) - { - opts.pageNumber = pageNum; - opts.pageSize = pageSize; + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; pager.pagination('refresh', - { - pageNumber:pageNum, - pageSize:pageSize - }); + { + pageNumber:pageNum, + pageSize:pageSize + }); showDepotHeadDetails(pageNum,pageSize); - } - }); + } + }); } - catch (e) + catch (e) { $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); } } - + //删除单据信息 function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ if(status == "1" || status == "2") { @@ -1349,11 +1353,11 @@ //批量删除单据信息 function batDeleteDepotHead(){ - var row = $('#tableData').datagrid('getChecked'); + var row = $('#tableData').datagrid('getChecked'); if(row.length == 0) { - $.messager.alert('删除提示','没有记录被选中!','info'); - return; + $.messager.alert('删除提示','没有记录被选中!','info'); + return; } if(row.length > 0) { @@ -1575,7 +1579,7 @@ var addTitle = listTitle.replace("列表","信息"); $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); $(".window-mask").css({ width: webW ,height: webH}); - + orgDepotHead = ""; depotHeadID = 0; initTableData_material("add"); //商品列表 @@ -1583,6 +1587,13 @@ $("#addOrgan").off("click").on("click",function(){ $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + }); url = '/depotHead/addDepotHeadAndDetail'; //零售单据修改收款时,自动计算找零 @@ -1627,7 +1638,7 @@ } }); } - } + } //编辑信息 function editDepotHead(depotHeadTotalInfo, status){ @@ -1735,7 +1746,7 @@ var itemMoneyArr = depotHeadInfo[26].split(","); $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 } - + initTableData_material("edit",TotalPrice); //商品列表 reject(); //撤销下、刷新商品列表 if(pageType === "skip") { @@ -1746,7 +1757,7 @@ url = '/depotHead/updateDepotHeadAndDetail?id=' + depotHeadInfo[0]; //更新接口 } } - + //查看信息 function showDepotHead(depotHeadTotalInfo){ var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); @@ -1812,7 +1823,7 @@ var showTitle = listTitle.replace("列表","信息"); $('#depotHeadDlgShow').dialog('open').dialog('setTitle',' 查看' + showTitle); $(".window-mask").css({ width: webW ,height: webH}); - + depotHeadID = depotHeadInfo[0]; initTableData_material_show(TotalPrice); //商品列表-查看状态 @@ -1862,7 +1873,7 @@ } } } - + //绑定操作事件 function bindEvent(){ showDepotHeadDetails(1,initPageSize); //初始化时自动查询 @@ -2569,7 +2580,13 @@ $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); }); - if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"){ + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 function checkSupplierName() { var supplierName = $.trim($("#supplier").val()); @@ -2608,6 +2625,7 @@ } return flag; } + //保存供应商信息 $("#saveSupplier").off("click").on("click",function() { if(checkSupplierName()){ @@ -2629,7 +2647,7 @@ } var url = '/supplier/add'; var supObj = $("#supplierFM").serializeObject(); - supObj.type = "供应商"; + supObj.type = supplierType; supObj.enabled = 1; $.ajax({ url: url, @@ -2706,7 +2724,7 @@ } }); } - + //自动计算事件 function autoReckon() { //延时绑定事件 @@ -2892,8 +2910,8 @@ } },500); } - - //结束编辑 + + //结束编辑 function endEditing() { if (editIndex == undefined) { return true } if ($('#materialData').datagrid('validateRow', editIndex)) { @@ -2927,7 +2945,7 @@ //新增 function append(){ if (endEditing()) { - $('#materialData').datagrid('appendRow', {}); + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); editIndex = $('#materialData').datagrid('getRows').length - 1; $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); autoReckon(); @@ -3000,7 +3018,7 @@ } if (totalRowNum != "") { var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); - $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); return false; } return true; @@ -3056,7 +3074,7 @@ } } }); - + if(depotHeadMax !=null) { depotHeadMaxId=depotHeadMax; } diff --git a/erp_web/pages/manage/depot.html b/erp_web/pages/manage/depot.html index 7dcf02d3..dbf2ff98 100644 --- a/erp_web/pages/manage/depot.html +++ b/erp_web/pages/manage/depot.html @@ -182,7 +182,19 @@ {title: '搬运费', field: 'truckage', width: 60}, {title: '负责人', field: 'principalName', width: 60}, {title: '排序', field: 'sort', width: 60}, + { + title: '是否默认', field: 'isdefault', width: 100, align: "center", + formatter: function (value, rec) { + if (rec.isdefault) { + return ""; + } + else { + return "否"; + } + } + }, {title: '描述', field: 'remark', width: 120} + ]], toolbar: [ { @@ -200,6 +212,14 @@ handler: function () { batDeleteDepot(); } + }, + { + id: 'setDepotIsDefault', + text: '设为默认', + iconCls: 'icon-ok', + handler: function () { + setDepotIsDefault(); + } } ], onLoadError: function () { @@ -286,7 +306,53 @@ } }); } + //设为默认操作事件 + function setDepotIsDefault() { + var allRow = $('#tableData').datagrid('getRows'); + var row = $('#tableData').datagrid('getChecked'); + if (row.length == 0) { + $.messager.alert('设置提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + function setDefault(depotID, isDefault) { + $.ajax({ + type: "post", + url: "/depot/updateDepotIsDefault", + dataType: "json", + async: false, + data: ({ + depotID: depotID, + isDefault: isDefault + }), + success: function (res) { + if (res == "true" && isDefault) { + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('提示', '设为默认账户异常,请稍后再试!', 'error'); + return; + } + }); + } + + if (row.length == 1) { + setDefault(row[0].id, true); //设置默认 + for (var i = 0; i < allRow.length; i++) { + if (allRow[i].id != row[0].id) { + setDefault(allRow[i].id, false); + } + } + setTimeout(function () { + $("#searchBtn").click(); + }, 1000); + } + + return; + } + } //批量删除仓库 function batDeleteDepot() { var row = $('#tableData').datagrid('getChecked'); @@ -565,4 +631,4 @@ }); - \ No newline at end of file + diff --git a/erp_web/pages/materials/retail_out_list.html b/erp_web/pages/materials/retail_out_list.html index 59fe9acb..3f9131b7 100644 --- a/erp_web/pages/materials/retail_out_list.html +++ b/erp_web/pages/materials/retail_out_list.html @@ -63,7 +63,13 @@ 会员卡号: +
+
+
+ 增加会员 +
单据日期: @@ -243,5 +249,107 @@ 保存 取消 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称 + + 联系人 + +
联系电话 + + 手机 + +
电子邮箱 + + 传真 + +
期初应收 + + 期初应付 + +
累计应收 + + 累计应付 + +
纳税人识别号 + + 税率 + +
开户行 + + 账号 + +
地址 + +
备注 + +
+
+
+
+ 保存 + 取消 +
- \ No newline at end of file + diff --git a/erp_web/pages/materials/sale_orders_list.html b/erp_web/pages/materials/sale_orders_list.html index 64c4297e..1ade8048 100644 --- a/erp_web/pages/materials/sale_orders_list.html +++ b/erp_web/pages/materials/sale_orders_list.html @@ -63,7 +63,13 @@ 客户: - +
+ +
+
+ 增加客戶 +
单据日期: @@ -195,6 +201,107 @@ 保存 取消 - +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称 + + 联系人 + +
联系电话 + + 手机 + +
电子邮箱 + + 传真 + +
期初应收 + + 期初应付 + +
累计应收 + + 累计应付 + +
纳税人识别号 + + 税率 + +
开户行 + + 账号 + +
地址 + +
备注 + +
+
+
+
+ 保存 + 取消 +
- \ No newline at end of file + diff --git a/erp_web/pages/materials/sale_out_list.html b/erp_web/pages/materials/sale_out_list.html index 6af991d1..ee489f4d 100644 --- a/erp_web/pages/materials/sale_out_list.html +++ b/erp_web/pages/materials/sale_out_list.html @@ -63,7 +63,13 @@ 客户: - +
+ +
+
+ 增加客戶 +
单据日期: @@ -276,6 +282,107 @@ 保存 取消 - +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称 + + 联系人 + +
联系电话 + + 手机 + +
电子邮箱 + + 传真 + +
期初应收 + + 期初应付 + +
累计应收 + + 累计应付 + +
纳税人识别号 + + 税率 + +
开户行 + + 账号 + +
地址 + +
备注 + +
+
+
+
+ 保存 + 取消 +
- \ No newline at end of file + diff --git a/erp_web/pages/reports/account_report.html b/erp_web/pages/reports/account_report.html index bb1d0736..481d8692 100644 --- a/erp_web/pages/reports/account_report.html +++ b/erp_web/pages/reports/account_report.html @@ -39,6 +39,10 @@    打印 +   + + 当前总余额:0   + @@ -182,6 +186,13 @@ if(res && res.code === 200){ if(res.data && res.data.page) { $("#tableData").datagrid('loadData', res.data.page); + var total = 0; + res.data.page.rows.forEach(function(value, index, array){ + //执行某些操作 + total += value.currentamount; + }) + + $(".first-total").text(total); //当前总余额 } } }, @@ -316,4 +327,4 @@ } - \ No newline at end of file + diff --git a/erp_web/pages/reports/stock_warning_report.html b/erp_web/pages/reports/stock_warning_report.html new file mode 100644 index 00000000..ff4d484d --- /dev/null +++ b/erp_web/pages/reports/stock_warning_report.html @@ -0,0 +1,333 @@ + + + + 库存预警 + + + + + + + + + + + + + + + + +
+ + + + + + + + +
仓库: + +   + 查询 +    + 导出 +    + 打印 +    +
+
+ + +
+
+
+ + + + diff --git a/sql/jsh_erp.sql b/sql/jsh_erp.sql index b87fa1c8..827c03ce 100644 --- a/sql/jsh_erp.sql +++ b/sql/jsh_erp.sql @@ -328,6 +328,7 @@ CREATE TABLE `jsh_depot` ( `type` int(10) DEFAULT NULL COMMENT '类型', `sort` varchar(10) DEFAULT NULL COMMENT '排序', `remark` varchar(100) DEFAULT NULL COMMENT '描述', + `IsDefault` bit(1) DEFAULT NULL COMMENT '是否默认', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='仓库表'; diff --git a/sql/华夏ERP数据库设计汇总.xlsx b/sql/华夏ERP数据库设计汇总.xlsx index 51aba82e..a3523513 100644 Binary files a/sql/华夏ERP数据库设计汇总.xlsx and b/sql/华夏ERP数据库设计汇总.xlsx differ diff --git a/src/main/java/com/jsh/erp/constants/BusinessConstants.java b/src/main/java/com/jsh/erp/constants/BusinessConstants.java index 702e956c..0e7d54df 100644 --- a/src/main/java/com/jsh/erp/constants/BusinessConstants.java +++ b/src/main/java/com/jsh/erp/constants/BusinessConstants.java @@ -86,7 +86,7 @@ public class BusinessConstants { /** * create by: qiankunpingtai * create time: 2019/3/14 11:41 - * description: + * description: * 为了使用户可以自己建初始目录,设定根目录的父级目录id为-1 * */ diff --git a/src/main/java/com/jsh/erp/controller/DepotController.java b/src/main/java/com/jsh/erp/controller/DepotController.java index 7a8b1db0..7c76af09 100644 --- a/src/main/java/com/jsh/erp/controller/DepotController.java +++ b/src/main/java/com/jsh/erp/controller/DepotController.java @@ -207,5 +207,16 @@ public class DepotController { } return result; } - + @PostMapping(value = "/updateDepotIsDefault") + public String updateDepotIsDefault(@RequestParam("isDefault") Boolean isDefault, + @RequestParam("depotID") Long depotID, + HttpServletRequest request) throws Exception{ + Map objectMap = new HashMap(); + int res = depotService.updateDepotIsDefault(isDefault, depotID); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } } diff --git a/src/main/java/com/jsh/erp/controller/DepotItemController.java b/src/main/java/com/jsh/erp/controller/DepotItemController.java index e69a8fa2..0b4a11fd 100644 --- a/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.*; +import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.depotItem.DepotItemService; import com.jsh.erp.service.material.MaterialService; @@ -448,7 +449,7 @@ public class DepotItemController { BigDecimal InPrice = sumPrice("入库", pid, diEx.getMId(), monthTime, false); BigDecimal OutPrice = sumPrice("出库", pid, diEx.getMId(), monthTime, false); item.put("MaterialName", diEx.getMName()); - item.put("MaterialModel", diEx.getMColor()); + item.put("MaterialModel", diEx.getMModel()); //扩展信息 String materialOther = getOtherInfo(mpArr, diEx); item.put("MaterialOther", materialOther); @@ -827,4 +828,81 @@ public class DepotItemController { } return result; } -} + /** + * 库存预警报表 + * @param currentPage + * @param pageSize + * @return + */ + @GetMapping(value = "/findStockWarningCount") + public BaseResponseInfo findStockWarningCount(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, @RequestParam("projectId") Integer pid )throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List resList = new ArrayList(); + List list = depotItemService.findStockWarningCount((currentPage-1)*pageSize, pageSize,pid); + int total = depotItemService.findStockWarningCountTotal(pid); + map.put("total", total); + map.put("rows", list); + res.code = 200; + res.data = map; + } catch(Exception e){ + e.printStackTrace(); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + /** + * 导出库存预警excel表格 + * @param currentPage + * @param pageSize + * @param projectId + * @param monthTime + * @param request + * @param response + * @return + */ + @GetMapping(value = "/exportWarningExcel") + public BaseResponseInfo exportWarningExcel(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("projectId") Integer projectId, + HttpServletRequest request, HttpServletResponse response)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + String message = "成功"; + try { + List dataList = depotItemService.findStockWarningCount((currentPage - 1) * pageSize, pageSize, projectId); + //存放数据json数组 + Integer pid = projectId; + String[] names = {"名称", "型号", "扩展信息", "单位", "入库数量", "出库数量", "库存数量", "安全库存量", "临界库存量"}; + String title = "库存预警报表"; + List objects = new ArrayList(); + if (null != dataList) { + for (DepotItemStockWarningCount diEx : dataList) { + String[] objs = new String[9]; + + objs[0] = diEx.getMaterialName().toString(); + objs[1] = diEx.getMaterialModel().toString(); + objs[2] = diEx.getMaterialOther().toString(); + objs[3] = diEx.getMaterialUnit().toString(); + objs[4] = diEx.getBasicInNumber().toString(); + objs[5] = diEx.getBasicOutNumber() == null ? "0" : diEx.getBasicOutNumber().toString(); + objs[6] = diEx.getBasicNumber() == null ? "0" : diEx.getBasicNumber().toString(); + objs[7] = diEx.getSafetystock() == null ? "0" : diEx.getSafetystock().toString(); + objs[8] = diEx.getBasicLinjieNumber() == null ? "0" : diEx.getBasicLinjieNumber().toString(); + objects.add(objs); + } + } + File file = ExcelUtils.exportObjectsWithoutTitle(title+pid, names, title, objects); + ExportExecUtil.showExec(file, file.getName(), response); + res.code = 200; + } catch (Exception e) { + e.printStackTrace(); + message = "导出失败"; + res.code = 500; + } + return res; + } + } diff --git a/src/main/java/com/jsh/erp/datasource/entities/Depot.java b/src/main/java/com/jsh/erp/datasource/entities/Depot.java index 53081140..2a76e97f 100644 --- a/src/main/java/com/jsh/erp/datasource/entities/Depot.java +++ b/src/main/java/com/jsh/erp/datasource/entities/Depot.java @@ -90,6 +90,15 @@ public class Depot { * @mbggenerated */ private String deleteFlag; + private Boolean isdefault; + + public Boolean getIsdefault() { + return isdefault; + } + + public void setIsdefault(Boolean isdefault) { + this.isdefault = isdefault; + } /** * This method was generated by MyBatis Generator. @@ -354,4 +363,4 @@ public class Depot { public void setDeleteFlag(String deleteFlag) { this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); } -} \ No newline at end of file +} diff --git a/src/main/java/com/jsh/erp/datasource/entities/DepotExample.java b/src/main/java/com/jsh/erp/datasource/entities/DepotExample.java index dcc624ae..85eedf4b 100644 --- a/src/main/java/com/jsh/erp/datasource/entities/DepotExample.java +++ b/src/main/java/com/jsh/erp/datasource/entities/DepotExample.java @@ -235,6 +235,7 @@ public class DepotExample { return (Criteria) this; } + public Criteria andIdIn(List values) { addCriterion("id in", values, "id"); return (Criteria) this; @@ -664,7 +665,65 @@ public class DepotExample { addCriterion("remark <>", value, "remark"); return (Criteria) this; } + public Criteria andIsdefaultIsNull() { + addCriterion("IsDefault is null"); + return (Criteria) this; + } + public Criteria andIsdefaultIsNotNull() { + addCriterion("IsDefault is not null"); + return (Criteria) this; + } + + public Criteria andIsdefaultEqualTo(Boolean value) { + addCriterion("IsDefault =", value, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultNotEqualTo(Boolean value) { + addCriterion("IsDefault <>", value, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultGreaterThan(Boolean value) { + addCriterion("IsDefault >", value, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultGreaterThanOrEqualTo(Boolean value) { + addCriterion("IsDefault >=", value, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultLessThan(Boolean value) { + addCriterion("IsDefault <", value, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultLessThanOrEqualTo(Boolean value) { + addCriterion("IsDefault <=", value, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultIn(List values) { + addCriterion("IsDefault in", values, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultNotIn(List values) { + addCriterion("IsDefault not in", values, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultBetween(Boolean value1, Boolean value2) { + addCriterion("IsDefault between", value1, value2, "isdefault"); + return (Criteria) this; + } + + public Criteria andIsdefaultNotBetween(Boolean value1, Boolean value2) { + addCriterion("IsDefault not between", value1, value2, "isdefault"); + return (Criteria) this; + } public Criteria andRemarkGreaterThan(String value) { addCriterion("remark >", value, "remark"); return (Criteria) this; @@ -1010,4 +1069,4 @@ public class DepotExample { this(condition, value, secondValue, null); } } -} \ No newline at end of file +} diff --git a/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java index 70e71dbe..34a30d14 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java @@ -1,6 +1,7 @@ package com.jsh.erp.datasource.mappers; import com.jsh.erp.datasource.entities.*; +import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; @@ -172,4 +173,10 @@ public interface DepotItemMapperEx { List getDepotItemListListByDepotIds(@Param("depotIds") String[] depotIds); List getDepotItemListListByMaterialIds(@Param("materialIds") String[] materialIds); + + + List findStockWarningCount(@Param("offset") Integer offset, + @Param("rows") Integer rows, @Param("pid") Integer pid); + + int findStockWarningCountTotal( @Param("pid") Integer pid); } diff --git a/src/main/java/com/jsh/erp/datasource/vo/DepotItemStockWarningCount.java b/src/main/java/com/jsh/erp/datasource/vo/DepotItemStockWarningCount.java new file mode 100644 index 00000000..db709e1b --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/vo/DepotItemStockWarningCount.java @@ -0,0 +1,109 @@ +package com.jsh.erp.datasource.vo; + + +import java.math.BigDecimal; + +public class DepotItemStockWarningCount { + + + private String MaterialName; + + private String MaterialModel; + + private String categoryName; + + private String MaterialOther; + + private String MaterialUnit; + + private BigDecimal safetystock;//安全库存量 + + private BigDecimal BasicInNumber;//入库量 + + private BigDecimal BasicOutNumber;//出库量 + + + private BigDecimal BasicNumber;//库存 + + private BigDecimal BasicLinjieNumber;//临界库存 + + public String getMaterialName() { + return MaterialName; + } + + public void setMaterialName(String materialName) { + MaterialName = materialName; + } + + public String getMaterialModel() { + return MaterialModel; + } + + public void setMaterialModel(String materialModel) { + MaterialModel = materialModel; + } + + public String getCategoryName() { + return categoryName; + } + + public void setCategoryName(String categoryName) { + this.categoryName = categoryName; + } + + public String getMaterialOther() { + return MaterialOther; + } + + public void setMaterialOther(String materialOther) { + MaterialOther = materialOther; + } + + public String getMaterialUnit() { + return MaterialUnit; + } + + public void setMaterialUnit(String materialUnit) { + MaterialUnit = materialUnit; + } + + public BigDecimal getSafetystock() { + return safetystock; + } + + public void setSafetystock(BigDecimal safetystock) { + this.safetystock = safetystock; + } + + public BigDecimal getBasicInNumber() { + return BasicInNumber; + } + + public void setBasicInNumber(BigDecimal basicInNumber) { + BasicInNumber = basicInNumber; + } + + public BigDecimal getBasicOutNumber() { + return BasicOutNumber; + } + + public void setBasicOutNumber(BigDecimal basicOutNumber) { + BasicOutNumber = basicOutNumber; + } + + public BigDecimal getBasicNumber() { + return BasicNumber; + } + + public void setBasicNumber(BigDecimal basicNumber) { + BasicNumber = basicNumber; + } + + public BigDecimal getBasicLinjieNumber() { + return BasicLinjieNumber; + } + + public void setBasicLinjieNumber(BigDecimal basicLinjieNumber) { + BasicLinjieNumber = basicLinjieNumber; + } +} diff --git a/src/main/java/com/jsh/erp/service/depot/DepotService.java b/src/main/java/com/jsh/erp/service/depot/DepotService.java index b1ba5c8a..961c75a8 100644 --- a/src/main/java/com/jsh/erp/service/depot/DepotService.java +++ b/src/main/java/com/jsh/erp/service/depot/DepotService.java @@ -316,4 +316,24 @@ public class DepotService { return deleteTotal; } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateDepotIsDefault(Boolean isDefault, Long depotID) throws Exception{ + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_DEPOT,BusinessConstants.LOG_OPERATION_TYPE_EDIT+depotID, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + Depot depot = new Depot(); + depot.setIsdefault(isDefault); + DepotExample example = new DepotExample(); + example.createCriteria().andIdEqualTo(depotID); + int result=0; + try{ + result = depotMapper.updateByExampleSelective(depot, example); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE,ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index 33650f01..55b1ee5c 100644 --- a/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -9,17 +9,16 @@ import com.jsh.erp.datasource.mappers.DepotHeadMapper; import com.jsh.erp.datasource.mappers.DepotItemMapper; import com.jsh.erp.datasource.mappers.DepotItemMapperEx; import com.jsh.erp.datasource.mappers.SerialNumberMapperEx; +import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.log.LogService; import com.jsh.erp.service.material.MaterialService; import com.jsh.erp.service.serialNumber.SerialNumberService; import com.jsh.erp.service.user.UserService; -import com.jsh.erp.utils.ErpInfo; import com.jsh.erp.utils.QueryUtils; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; @@ -32,8 +31,6 @@ import java.util.Date; import java.util.List; import java.util.Map; -import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; - @Service public class DepotItemService { private Logger logger = LoggerFactory.getLogger(DepotItemService.class); @@ -795,4 +792,32 @@ public class DepotItemService { } return result; } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public List findStockWarningCount(int offset, Integer rows, Integer pid) { + + List list = null; + try{ + list =depotItemMapperEx.findStockWarningCount( offset, rows, pid); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return list; + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int findStockWarningCountTotal(Integer pid) { + int result = 0; + try{ + result =depotItemMapperEx.findStockWarningCountTotal(pid); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return result; + } } diff --git a/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/src/main/resources/mapper_xml/DepotItemMapperEx.xml index 1679a69d..4c603e78 100644 --- a/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -41,6 +41,18 @@ + + + + + + + + + + + + + SELECT + m. NAME MaterialName, + m.Model MaterialModel, + mc.`Name` categoryName, + CONCAT( + '(', + m.Standard, + ')', + '(', + m.Color, + ')' + ) AS MaterialOther, + m.unit MaterialUnit, + ifnull(m.safetystock,0) safetystock, + IFNULL(intype.BasicInNumber ,0) BasicInNumber, + IFNULL(outtype.BasicOutNumber ,0) BasicOutNumber, + ( + IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) + ) BasicNumber, + (IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0)) BasicLinjieNumber + FROM + jsh_material m + LEFT JOIN jsh_materialcategory mc ON mc.Id = m.CategoryId + LEFT JOIN ( + SELECT + di.MaterialId, + ifnull(sum(BasicNumber), 0) AS BasicInNumber + FROM + jsh_depothead dh + INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId + AND ifnull(di.delete_Flag, '0') != '1' + WHERE + dh.type = '入库' + + and di.DepotId= ${pid} + + AND ifnull(dh.delete_Flag, '0') != '1' group by di.MaterialId + ) intype ON intype.MaterialId = m.id + LEFT JOIN ( + SELECT + di.MaterialId, + ifnull(sum(BasicNumber), 0) AS BasicOutNumber + FROM + jsh_depothead dh + INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId + AND ifnull(di.delete_Flag, '0') != '1' + WHERE + dh.type = '出库' + AND dh.SubType != '调拨' + + and di.DepotId= ${pid} + + AND ifnull(dh.delete_Flag, '0') != '1' group by di.MaterialId + ) outtype ON outtype.MaterialId = m.id + WHERE + 1 = 1 + AND ifnull(m.delete_Flag, '0') != '1' + AND intype.BasicInNumber > 0 + ORDER BY + (IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0)) + + limit #{offset},#{rows} + + - \ No newline at end of file + + + diff --git a/src/main/resources/mapper_xml/DepotMapper.xml b/src/main/resources/mapper_xml/DepotMapper.xml index 030f2b43..8cdf435b 100644 --- a/src/main/resources/mapper_xml/DepotMapper.xml +++ b/src/main/resources/mapper_xml/DepotMapper.xml @@ -1,5 +1,5 @@ - - + + - id, name, address, warehousing, truckage, type, sort, remark, principal, tenant_id, - delete_Flag + id, name, address, warehousing, truckage, type, sort, remark, principal, tenant_id, + delete_Flag,IsDefault