Browse Source

重构物料更新

lwx_dev
erdanergou 3 years ago
parent
commit
d2556d1064
  1. 2
      src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java
  2. 17
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java
  3. 2
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java
  4. 2
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml
  5. 2
      src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java
  6. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  7. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java
  8. 1
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  9. 1
      src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java
  10. 101
      src/main/resources/templates/pages/chart/chart-stock_back.html
  11. 2
      src/main/resources/templates/pages/depository/table-stock.html
  12. 47
      src/test/java/com/dreamchaser/depository_manage/TestForgetMapData.java

2
src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java

@ -23,7 +23,7 @@ import java.util.Map;
*/
@Data
public class PortConfig {
// 部署数据库depository NhE47edekBHxhjYk
// 部署数据库 depository NhE47edekBHxhjYk
// 接口地址
public static String external_url = "http://172.20.2.87:39168";
// public static String external_url = "http://127.0.0.1:39168";

17
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java

@ -239,7 +239,7 @@ public class DepositoryController {
* @param depositoryRecordService
* @return
*/
public List<Object> getBeforeInventoryByMonth(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort userByPort) {
public List<Object> getBeforeInventoryByMonth(DepositoryService depositoryService,Map<String,Object> todayInventory, DepositoryRecordService depositoryRecordService, UserByPort userByPort) {
List<Depository> depositoryAll = depositoryService.findDepositoryByAdminorgAndUser(userByPort);
// 获取该用户管理的仓库
Map<String, Object> previousMonth = getPreviousMonth();
@ -256,6 +256,7 @@ public class DepositoryController {
String dname = depositoryAll.get(i).getDname();
Integer todayDepositoryInventory = getInventoryByDname(dname,toDayInventoryByDNameTest);
result.add(todayDepositoryInventory);
todayInventory.put(dname,todayDepositoryInventory);
((Map<String, Object>) sourceList.get(0)).put(dname, result.get(i));
}
for (int num = 0; num < months.size() - 1; num++) {
@ -847,7 +848,7 @@ public class DepositoryController {
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt(type), val);
Integer toDayInventoryByDName = ObjectFormatUtil.toInteger(depositoryService.getToDayInventoryByDName(key.toString()));
Integer toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
todayInventory.put(key.toString(), toDayInventoryByDName);
yesterdayData.put(key.toString(), depositoryRecordByDate1);
List<Integer> drCountbyDrName = new ArrayList<>();
@ -871,7 +872,7 @@ public class DepositoryController {
while (it.hasNext()) {
int i;
Object key = it.next();
Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
Integer toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
todayInventory.put(key.toString(), toDayInventoryByDName);
for (i = days.size() - 1; i > 0; i--) {
// 遍历 Map并计算各仓库的入库数
@ -972,7 +973,7 @@ public class DepositoryController {
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt(type), val);
Integer toDayInventoryByDName =ObjectFormatUtil.toInteger(depositoryService.getToDayInventoryByDName(key.toString()));
Integer toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
todayInventory.put(key.toString(), toDayInventoryByDName);
yesterdayData.put(key.toString(), depositoryRecordByDate1);
List<Integer> drCountbyDrName = new ArrayList<>();
@ -1028,8 +1029,9 @@ public class DepositoryController {
// 获取库存图
if ("0".equals(type)) {
// 如果是获取库存
depository_data.put("todayInventory", todayInventory);
distributeTasks distributeTasks1 = new distributeTasks(type, 5, userByPort, yesterdayData, depositoryName);
distributeTasks1.setTodayInventory(todayInventory);
distributeTasks1.setDepositoryService(depositoryService);
distributeTasks1.setDepositoryRecordService(depositoryRecordService);
distributeTasks distributeTasks2 = new distributeTasks(type, 6, userByPort, yesterdayData, depositoryName);
@ -1064,7 +1066,7 @@ public class DepositoryController {
beforeInventoryOnMap = (Map<String, Object>) ((Map<String, Object>) result).get("MapInventory");
}
}
depository_data.put("todayInventory", todayInventory);
depository_data.put("sourceListByMonth", beforeInventoryByMonth);
depository_data.put("ThisWeekInventory", thisWeekInventoryByDName);
depository_data.put("MapInventory", beforeInventoryOnMap);
@ -1098,6 +1100,7 @@ public class DepositoryController {
List<String> depositoryName; // 仓库名称
DepositoryService depositoryService; // 操作depository的service
DepositoryRecordService depositoryRecordService; // 操作订单的service
Map<String, Object> todayInventory; // 当前仓库的额度
distributeTasks(String type ,int taskType,UserByPort userByPort,Map<String,Integer> yesterdayData,List<String> depositoryName){
this.taskType = taskType; // 任务类型
@ -1124,7 +1127,7 @@ public class DepositoryController {
Map<String, Object> mapData = getMapData(type);
result.put("mapData",mapData);
}else if(5 == taskType){
List<Object> beforeInventoryByMonth = getBeforeInventoryByMonth(depositoryService, depositoryRecordService, userByPort);
List<Object> beforeInventoryByMonth = getBeforeInventoryByMonth(depositoryService, todayInventory,depositoryRecordService, userByPort);
result.put("sourceListByMonth",beforeInventoryByMonth);
}else if(6 == taskType){
Map<String, Object> thisWeekInventoryByDName = getThisWeekInventoryByDName(depositoryService, depositoryRecordService, userByPort);

2
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java

@ -114,7 +114,7 @@ public interface DepositoryMapper {
* @param map
* @return
*/
Double getToDayInventoryByDName(Map<String,Object> map);
Integer getToDayInventoryByDName(Map<String,Object> map);
List<InventoryByDname> getToDayInventoryByDNameTest();

2
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml

@ -332,7 +332,7 @@
where d.state != 3
</select>
<select id="getToDayInventoryByDName" resultType="double" parameterType="map">
<select id="getToDayInventoryByDName" resultType="int" parameterType="map">
select ifnull(sum(quantity),0.0)
from depositoryAndmaterial
where 1 = 1

2
src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java

@ -119,7 +119,7 @@ public interface DepositoryService {
* @param dname
* @return
*/
Double getToDayInventoryByDName(String dname);
Integer getToDayInventoryByDName(String dname);
/**
* 根据父级获取子类

2
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -96,7 +96,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
temp.put("dname", depositoryRecordById.getDname());
temp.put("dcode", depositoryRecordById.getCode());
// 获取当前仓库库存
Double Inventory = depositoryMapper.getToDayInventoryByDName(temp);
Integer Inventory = depositoryMapper.getToDayInventoryByDName(temp);
String code = createCode(depositoryRecordById.getDname(), "InOrderNumber", "in", "");//构造单号
Double quantity = Double.parseDouble((String) map.get("quantity"));
Double price = Double.parseDouble((String) map.get("price"));

2
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java

@ -302,7 +302,7 @@ public class DepositoryServiceImpl implements DepositoryService {
* @return
*/
@Override
public Double getToDayInventoryByDName(String dname) {
public Integer getToDayInventoryByDName(String dname) {
String[] split = dname.split(",");
Map<String, Object> map = new HashMap<>();
if (split.length > 1) {

1
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java

@ -15,7 +15,6 @@ import com.dreamchaser.depository_manage.service.PlaceService;
import com.dreamchaser.depository_manage.service.RoleService;
import com.dreamchaser.depository_manage.utils.DateUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

1
src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java

@ -2,7 +2,6 @@ package com.dreamchaser.depository_manage.utils;
/**
* 此工具类封装一些常用类型转换操作
* @author 金昊霖
*/
public class ObjectFormatUtil {
/**

101
src/main/resources/templates/pages/chart/chart-stock_back.html

@ -15,16 +15,19 @@
border-radius: 5px;
text-align: center;
}
.top-panel > .layui-card-body{
.top-panel > .layui-card-body {
height: 60px;
}
.top-panel-number{
line-height:60px;
.top-panel-number {
line-height: 60px;
font-size: 30px;
border-right:1px solid #eceff9;
border-right: 1px solid #eceff9;
}
.top-panel-tips{
line-height:30px;
.top-panel-tips {
line-height: 30px;
font-size: 12px
}
</style>
@ -38,7 +41,7 @@
<button class="layui-btn" lay-submit lay-filter="thisWeek">
&emsp;本周&emsp;
</button>
<button class="layui-btn" lay-submit lay-filter="lastWeek" >
<button class="layui-btn" lay-submit lay-filter="lastWeek">
&emsp;上周&emsp;
</button>
<div id="echarts-records" style="background-color:#ffffff;min-height:400px;padding: 10px"></div>
@ -66,7 +69,7 @@
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
layui.use(['layer', 'echarts'], function () {
var $ = layui.jquery,
var $ = layui.jquery,
layer = layui.layer,
echarts = layui.echarts,
form = layui.form;
@ -184,8 +187,7 @@
tooltip: {},
dataset: {
dimensions: [],
source: [
]
source: []
},
xAxis: {type: 'category'},
yAxis: {},
@ -208,41 +210,39 @@
showContent: false
},
dataset: {
source: [
]
source: []
},
xAxis: {type: 'category'},
yAxis: {gridIndex: 0},
grid: {top: '55%'},
series: [
]
series: []
};
//动态加载相关数据
$.ajax({
url:'/repository/layui/echart_back?type=0',
type:'get',
async:true,
url: '/repository/layui/echart_back?type=0',
type: 'get',
async: true,
dataType: "json",
complete:function (XHR,TS){
if(XHR.status != 200){
complete: function (XHR, TS) {
if (XHR.status != 200) {
layer.alert("系统繁忙,稍后重试");
}
},
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success:function (result){
success: function (result) {
layer.close(this.layerIndex);
if(result.code == 0){
if (result.code == 0) {
echartsRecords.setOption(optionRecords);
echartsPies.setOption(optionPies);
echartsDataset.setOption(optionDataset);
echartsMap.setOption(optionMap);
// 折线图
var optionRecordsSeries=[];
var optionRecordsSeries = [];
// 饼状图
var optionPiesSeries = {
name: '昨日占比',
@ -257,42 +257,43 @@
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
data:[]
data: []
};
// 柱状图
optionDataset = {
legend: {},
tooltip: {},
dataset: {
dimensions:[],
source:[]
dimensions: [],
source: []
},
series:[]
series: []
};
for (let i = 0; i < result.data.depository_name.length; i++) {
optionRecordsSeries.push({
name: result.data.depository_name[i],
type: 'line',
stack: '金额',
data:result.data.depository_data.ThisWeekInventory[result.data.depository_name[i]],
data: result.data.depository_data.ThisWeekInventory[result.data.depository_name[i]],
areaStyle: {}
});
optionPiesSeries.data.push({
value:result.data.depository_data.todayInventory[result.data.depository_name[i]],name:result.data.depository_name[i]
value: result.data.depository_data.todayInventory[result.data.depository_name[i].split(",")[0]],
name: result.data.depository_name[i]
})
}
var dimensions = result.data.depository_data.sourceListByMonth[result.data.depository_data.sourceListByMonth.length - 1]
var dimensions = result.data.depository_data.sourceListByMonth[result.data.depository_data.sourceListByMonth.length - 1];
optionDataset.dataset.dimensions = dimensions;
for (let i = result.data.depository_data.sourceListByMonth.length - 2; i >= 0; i--) {
optionDataset.dataset.source.push(result.data.depository_data.sourceListByMonth[i])
}
for (let i = 0; i < dimensions.length - 1; i++) {
optionDataset.series.push({type:'bar'})
optionDataset.series.push({type: 'bar'})
}
for (let i = 0; i < result.data.depository_data.MapInventory.mapDataList.length ; i++) {
optionMap.dataset.source.push(result.data.depository_data.MapInventory.mapDataList[i])
if(i < result.data.depository_data.MapInventory.mapDataList.length - 1) {
for (let i = 0; i < result.data.depository_data.MapInventory.mapDataList.length; i++) {
optionMap.dataset.source.push(result.data.depository_data.MapInventory.mapDataList[i]);
if (i < result.data.depository_data.MapInventory.mapDataList.length - 1) {
optionMap.series.push({type: 'line', smooth: true, seriesLayoutBy: 'row'})
}
@ -305,12 +306,12 @@
radius: '30%',
center: ['50%', '25%'],
label: {
formatter: '{b}: {@'+month+'月} ({d}%)'
formatter: '{b}: {@' + month + '月} ({d}%)'
},
encode: {
itemName: 'product',
value: month+'月',
tooltip: month+'月'
value: month + '月',
tooltip: month + '月'
}
}
);
@ -388,12 +389,12 @@
form.on('submit(thisWeek)', function () {
$.ajax({
url:'/repository/layui/echart_back_thisWeek?type=0',
type:'get',
async:true,
url: '/repository/layui/echart_back_thisWeek?type=0',
type: 'get',
async: true,
dataType: "json",
complete:function (XHR,TS){
if(XHR.status != 200){
complete: function (XHR, TS) {
if (XHR.status != 200) {
layer.alert("系统繁忙,稍后重试");
}
},
@ -404,13 +405,13 @@
layer.close(this.layerIndex);
echartsRecords.setOption(optionRecords);
// 折线图
var optionRecordsSeries=[];
var optionRecordsSeries = [];
for (let i = 0; i < result.depository_name.length; i++) {
optionRecordsSeries.push({
name: result.depository_name[i],
type: 'line',
stack: '金额',
data:result.ThisWeekInventory[result.depository_name[i]],
data: result.ThisWeekInventory[result.depository_name[i]],
areaStyle: {}
});
}
@ -462,12 +463,12 @@
form.on('submit(lastWeek)', function () {
$.ajax({
url:'/repository/layui/echart_back_lastWeek?type=0',
type:'get',
async:true,
url: '/repository/layui/echart_back_lastWeek?type=0',
type: 'get',
async: true,
dataType: "json",
complete:function (XHR,TS){
if(XHR.status != 200){
complete: function (XHR, TS) {
if (XHR.status != 200) {
layer.alert("系统繁忙,稍后重试");
}
},
@ -478,13 +479,13 @@
layer.close(this.layerIndex);
echartsRecords.setOption(optionRecords);
// 折线图
var optionRecordsSeries=[];
var optionRecordsSeries = [];
for (let i = 0; i < result.depository_name.length; i++) {
optionRecordsSeries.push({
name: result.depository_name[i],
type: 'line',
stack: '金额',
data:result.BeforeInventory[result.depository_name[i]],
data: result.BeforeInventory[result.depository_name[i]],
areaStyle: {}
});
}

2
src/main/resources/templates/pages/depository/table-stock.html

@ -131,10 +131,10 @@
{field: 'version', width: 200, title: '规格型号'},
{field: 'code', width: 200, title: '存货编码'},
{field: 'typeName', width: 200, title: '物料类型'},
{field: 'quantity', width: 200, title: '数量', sort: true},
{field: 'depositoryName', width: 200, title: '仓库名称'},
{field: 'depositoryCode', width: 200, title: '仓库编码'},
{field: 'placeCode', width: 200, title: '库位编码'},
{field: 'quantity', width: 200, title: '数量', sort: true},
{field: 'warningCount', width: 200, title: '待过期数量', sort: true},
{field: 'price', title: '单价', width: 200, sort: true},
{field: 'amounts', title: '总金额', width: 200, sort: true},

47
src/test/java/com/dreamchaser/depository_manage/TestForgetMapData.java

@ -1,11 +1,14 @@
package com.dreamchaser.depository_manage;
import com.dreamchaser.depository_manage.controller.DepositoryController;
import com.dreamchaser.depository_manage.controller.PageController;
import com.dreamchaser.depository_manage.entity.MaterialType;
import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.service.DepositoryRecordService;
import com.dreamchaser.depository_manage.service.DepositoryService;
import com.dreamchaser.depository_manage.service.MaterialTypeService;
import com.dreamchaser.depository_manage.utils.DateUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@ -24,19 +27,45 @@ public class TestForgetMapData {
MaterialTypeService materialTypeService;
@Autowired
DepositoryRecordService depositoryRecordService;
@Autowired
DepositoryService depositoryService;
@Test
public void Test(){
// HashMap可以实现真正意义上深拷贝,注意不是Map
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("name", "Marydon");
HashMap<String, String> paramMap2 = new HashMap<String, String>();
// 实现深拷贝:使用HashMap.putAll()
paramMap2.putAll(paramMap);
paramMap.put("age","19");
System.out.println(paramMap2);// {name=Marydon}
System.out.println(paramMap);// {name=Marydon}
UserByPort userByPort = PageController.FindUserById(78, null);
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
Iterator it = depositoryAllNameAndId.keySet().iterator();
List<String> depositoryName = new ArrayList<>();
// 各仓库对应入库数目
Map<String, Integer> yesterdayData = new HashMap<>();
// 每天各仓库入库数目
Map<String, Object> show_data = new HashMap<>();
// 各仓库当前库存数目
Map<String, Object> todayInventory = new HashMap<>();
//获取获取系统的当前日历对象
Calendar instance = Calendar.getInstance();
// 获取日期
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Long now = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()));
instance.add(Calendar.DATE, 1);
Long tomorrow = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()));
instance.add(Calendar.DATE, -2);
String yesterday = formatter.format(instance.getTime());
while (it.hasNext()) {
// 遍历 Map并计算各仓库的入库数
Object key = it.next();
depositoryName.add(key.toString());
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt("1"), val);
Integer toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
todayInventory.put(key.toString(), toDayInventoryByDName);
yesterdayData.put(key.toString(), depositoryRecordByDate1);
List<Integer> drCountbyDrName = new ArrayList<>();
drCountbyDrName.add(depositoryRecordByDate1);
show_data.put(key.toString(), ((ArrayList<Integer>) drCountbyDrName).clone());
}
}
// 中国地图数据

Loading…
Cancel
Save