Commit 7ea85d4f authored by 季圣华's avatar 季圣华
Browse files

给首页增加统计折线图的功能

parent 028b87a7
This diff is collapsed.
This diff is collapsed.
(function(factory){if(typeof module==="object"&&module.exports){module.exports=factory}else{factory(Highcharts)}})(function(Highcharts){var protocol=window.location.protocol;var defaultOptionsZhCn={lang:{contextButtonTitle:"图表导出菜单",decimalPoint:".",downloadJPEG:"下载 JPEG 图片",downloadPDF:"下载 PDF 文件",downloadPNG:"下载 PNG 文件",downloadSVG:"下载 SVG 文件",downloadXLS:"下载 XLS 文件",openInCloud:"在 Highcharts Cloud 中打开",drillUpText:"返回 {series.name}",invalidDate:"无效的时间",loading:"加载中...",months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],noData:"没有数据",numericSymbols:null,printChart:"打印图表",resetZoom:"重置缩放比例",resetZoomTitle:"重置为原始大小",shortMonths:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],thousandsSep:",",weekdays:["星期天","星期一","星期二","星期三","星期四","星期五","星期六"],viewData:"查看数据表格",rangeSelectorFrom:"开始时间",rangeSelectorTo:"结束时间",rangeSelectorZoom:"范围",zoomIn:"缩小",zoomOut:"放大"},global:{canvasToolsURL:protocol+"//cdn.hcharts.cn/highcharts/modules/canvas-tools.js",VMLRadialGradientURL:protocol+ +"//cdn.hcharts.cn/highcharts/gfx/vml-radial-gradient.png"},title:{text:"图表标题"},tooltip:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%Y-%m-%d",week:"%Y-%m-%d",month:"%Y-%m",year:"%Y"},split:false},exporting:{url:protocol+"//export.highcharts.com.cn"},credits:{text:"Highcharts.com.cn",href:"https://www.highcharts.com.cn"},xAxis:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%Y-%m-%d",week:"%Y-%m",month:"%Y-%m",year:"%Y"}},rangeSelector:{inputDateFormat:"%Y-%m-%d",buttons:[{type:"month",count:1,text:""},{type:"month",count:3,text:"季度"},{type:"month",count:6,text:"半年"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:""},{type:"all",text:"所有"}]},plotOptions:{series:{dataGrouping:{dateTimeLabelFormats:{millisecond:["%Y-%m-%d %H:%M:%S.%L","%Y-%m-%d %H:%M:%S.%L"," ~ %H:%M:%S.%L"],second:["%Y-%m-%d %H:%M:%S","%Y-%m-%d %H:%M:%S"," ~ %H:%M:%S"],minute:["%Y-%m-%d %H:%M","%Y-%m-%d %H:%M"," ~ %H:%M"],hour:["%Y-%m-%d %H:%M","%Y-%m-%d %H:%M"," ~ %H:%M"],day:["%Y-%m-%d","%Y-%m-%d"," ~ %Y-%m-%d"],week:["%Y-%m-%d","%Y-%m-%d"," ~ %Y-%m-%d"],month:["%Y-%m","%Y-%m"," ~ %Y-%m"],year:["%Y","%Y"," ~ %Y"]}}},ohlc:{tooltip:{split:false,pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>'+"开盘:{point.open}<br/>"+"最高:{point.high}<br/>"+"最低:{point.low}<br/>"+"收盘:{point.close}<br/>"}},candlestick:{tooltip:{split:false,pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>'+"开盘:{point.open}<br/>"+"最高:{point.high}<br/>"+"最低:{point.low}<br/>"+"收盘:{point.close}<br/>"}}}};Highcharts.setOptions(defaultOptionsZhCn)});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -3,61 +3,61 @@ ...@@ -3,61 +3,61 @@
* @author jishenghua * @author jishenghua
*/ */
$(function () { $(function () {
unreadMsg() // unreadMsg()
}); });
function unreadMsg() { // function unreadMsg() {
$.get(ctx + "/msg/unreadMsg?__notUpdateSession=true&__t=" + new Date().getTime(), function (d) { // $.get(ctx + "/msg/unreadMsg?__notUpdateSession=true&__t=" + new Date().getTime(), function (d) {
var b = $("#msgList").empty(); // var b = $("#msgList").empty();
var a = d.count || 0, c = d.list || []; // var a = d.count || 0, c = d.list || [];
for (i = 0; i < c.length; i++) { // for (i = 0; i < c.length; i++) {
b.append(js.template("msgListTpl", c[i])) // b.append(js.template("msgListTpl", c[i]))
} // }
$("#msgNum, #msgNum2").text(a); // $("#msgNum, #msgNum2").text(a);
$(".timeago").timeago(); // $(".timeago").timeago();
pullPoolMsg(); // pullPoolMsg();
if (window.ppmInt) { // if (window.ppmInt) {
clearInterval(window.ppmInt) // clearInterval(window.ppmInt)
} // }
window.ppmInt = setInterval(pullPoolMsg, 60 * 1000) // window.ppmInt = setInterval(pullPoolMsg, 60 * 1000)
}) // })
} // }
//
function pullPoolMsg() { // function pullPoolMsg() {
var a = $("#msgList"); // var a = $("#msgList");
var b = a.attr("data-mergeMsgLimit"); // var b = a.attr("data-mergeMsgLimit");
$.get(ctx + "/msg/pullPoolMsg?__notUpdateSession=true&__t=" + new Date().getTime(), function (e) { // $.get(ctx + "/msg/pullPoolMsg?__notUpdateSession=true&__t=" + new Date().getTime(), function (e) {
for (i = 0; i < e.length; i++) { // for (i = 0; i < e.length; i++) {
if (!(e.length > b)) { // if (!(e.length > b)) {
var g = js.template("msgTipTpl", e[i]); // var g = js.template("msgTipTpl", e[i]);
js.showMessage(g, e[i].msgContentEntity.title, "info", 1000 * 60); // js.showMessage(g, e[i].msgContentEntity.title, "info", 1000 * 60);
doFlashTitle() // doFlashTitle()
} // }
if (e[i].id && e[i].id != "") { // if (e[i].id && e[i].id != "") {
a.prepend(js.template("msgListTpl", e[i])) // a.prepend(js.template("msgListTpl", e[i]))
} // }
} // }
if (e.length > b) { // if (e.length > b) {
var f = { // var f = {
msgContentEntity: { // msgContentEntity: {
title: a.attr("data-mergeMsgTitle"), // title: a.attr("data-mergeMsgTitle"),
content: js.text(a.attr("data-mergeMsgContent"), e.length) // content: js.text(a.attr("data-mergeMsgContent"), e.length)
}, sendDate: "", sendUserName: "", id: "" // }, sendDate: "", sendUserName: "", id: ""
}; // };
var g = js.template("msgTipTpl", f); // var g = js.template("msgTipTpl", f);
js.showMessage(g, null, "info", 1000 * 60); // js.showMessage(g, null, "info", 1000 * 60);
doFlashTitle() // doFlashTitle()
} // }
var c = parseInt($("#msgNum").text()); // var c = parseInt($("#msgNum").text());
if (!isNaN(c)) { // if (!isNaN(c)) {
c += e.length || 0 // c += e.length || 0
} else { // } else {
c = a.find("li").length // c = a.find("li").length
} // }
$("#msgNum, #msgNum2").text(c); // $("#msgNum, #msgNum2").text(c);
$(".timeago").timeago() // $(".timeago").timeago()
}) // })
} // }
function readMsg(c, d, e) { function readMsg(c, d, e) {
var a = $(c).data("href"); var a = $(c).data("href");
......
...@@ -21,10 +21,8 @@ import javax.servlet.http.HttpServletResponse; ...@@ -21,10 +21,8 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.ArrayList; import java.text.SimpleDateFormat;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson;
...@@ -665,4 +663,46 @@ public class DepotItemController { ...@@ -665,4 +663,46 @@ public class DepotItemController {
} }
return res; return res;
} }
/**
* 统计采购或销售的总金额
* @param request
* @param response
* @return
* @throws Exception
*/
@GetMapping(value = "/buyOrSalePrice")
public BaseResponseInfo buyOrSalePrice(HttpServletRequest request, HttpServletResponse response)throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
Map<String, Object> map = new HashMap<String, Object>();
String message = "成功";
try {
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
String dateString = formatter.format(date);
List<String> list = Tools.getSixMonth(dateString);
map.put("monthList", list);
List<BigDecimal> buyPriceList = new ArrayList<BigDecimal>();
for(String month: list) {
BigDecimal outPrice = depotItemService.inOrOutPrice("入库", "采购", month);
BigDecimal inPrice = depotItemService.inOrOutPrice("出库", "采购退货", month);
buyPriceList.add(outPrice.subtract(inPrice));
}
map.put("buyPriceList", buyPriceList);
List<BigDecimal> salePriceList = new ArrayList<BigDecimal>();
for(String month: list) {
BigDecimal outPrice = depotItemService.inOrOutPrice("出库", "销售", month);
BigDecimal inPrice = depotItemService.inOrOutPrice("入库", "销售退货", month);
salePriceList.add(outPrice.subtract(inPrice));
}
map.put("salePriceList", salePriceList);
res.code = 200;
res.data = map;
} catch (Exception e) {
e.printStackTrace();
message = "统计失败";
res.code = 500;
}
return res;
} }
}
...@@ -63,6 +63,11 @@ public interface DepotItemMapperEx { ...@@ -63,6 +63,11 @@ public interface DepotItemMapperEx {
@Param("MonthTime") String MonthTime, @Param("MonthTime") String MonthTime,
@Param("sumType") String sumType); @Param("sumType") String sumType);
BigDecimal inOrOutPrice(
@Param("type") String type,
@Param("subType") String subType,
@Param("MonthTime") String MonthTime);
DepotItemVo4Stock getStockByParam( DepotItemVo4Stock getStockByParam(
@Param("depotId") Long depotId, @Param("depotId") Long depotId,
@Param("mId") Long mId, @Param("mId") Long mId,
......
...@@ -260,6 +260,24 @@ public class DepotItemService { ...@@ -260,6 +260,24 @@ public class DepotItemService {
} }
/**
* 统计采购或销售的总金额
* @param type
* @param subType
* @param MonthTime
* @return
* @throws Exception
*/
public BigDecimal inOrOutPrice(String type, String subType, String MonthTime) throws Exception{
BigDecimal result= BigDecimal.ZERO;
try{
result = depotItemMapperEx.inOrOutPrice(type, subType, MonthTime);
}catch(Exception e){
JshException.readFail(logger, e);
}
return result;
}
/** /**
* 2019-02-02修改 * 2019-02-02修改
* 我之前对操作数量的理解有偏差 * 我之前对操作数量的理解有偏差
......
...@@ -156,6 +156,41 @@ public class Tools { ...@@ -156,6 +156,41 @@ public class Tools {
return new SimpleDateFormat("yyyy-MM").format(cal.getTime()); return new SimpleDateFormat("yyyy-MM").format(cal.getTime());
} }
/**
* 获取当前月份的前6个月(含当前月)
* @param date
* @return
*/
public static List<String> getSixMonth(String date) {
List<String> list = new ArrayList<String>();
int month = Integer.parseInt(date.substring(5, 7));
int year = Integer.parseInt(date.substring(0, 4));
for (int i = 5; i >= 0; i--) {
if (month > 6) {
if (month - i >= 10) {
list.add(year + "-" + String.valueOf(month - i));
} else {
list.add(year + "-0" + String.valueOf(month - i));
}
} else {
if (month - i <= 0) {
if (month - i + 12 >= 10) {
list.add(String.valueOf(year - 1) + "-" + String.valueOf(month - i + 12));
} else {
list.add(String.valueOf(year - 1) + "-0" + String.valueOf(month - i + 12));
}
} else {
if (month - i >= 10) {
list.add(String.valueOf(year) + "-" + String.valueOf(month - i));
} else {
list.add(String.valueOf(year) + "-0" + String.valueOf(month - i));
}
}
}
}
return list;
}
/** /**
* 截取字符串长度 * 截取字符串长度
* *
......
...@@ -202,6 +202,15 @@ ...@@ -202,6 +202,15 @@
and ifnull(di.delete_Flag,'0') !='1' and ifnull(di.delete_Flag,'0') !='1'
</select> </select>
<select id="inOrOutPrice" resultType="java.math.BigDecimal">
select ifnull(sum(DiscountLastMoney),0) as allMoney from jsh_depothead dh
where 1=1
and dh.type='${type}' and dh.subType='${subType}'
and dh.OperTime &gt;= '${MonthTime}-01 00:00:00'
and dh.OperTime &lt;= '${MonthTime}-31 23:59:59'
and ifnull(dh.delete_Flag,'0') !='1'
</select>
<select id="getStockByParam" resultMap="StockMap"> <select id="getStockByParam" resultMap="StockMap">
select ifnull((curep.inTotal+curep.transfInTotal+curep.assemInTotal+curep.disAssemInTotal),0) as in_stock, select ifnull((curep.inTotal+curep.transfInTotal+curep.assemInTotal+curep.disAssemInTotal),0) as in_stock,
ifnull((curep.transfOutTotal+curep.outTotal+curep.assemOutTotal+curep.disAssemOutTotal),0) out_stock ifnull((curep.transfOutTotal+curep.outTotal+curep.assemOutTotal+curep.disAssemOutTotal),0) out_stock
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment