Browse Source

重构物料更新

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

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

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

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

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

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

@ -119,7 +119,7 @@ public interface DepositoryService {
* @param dname * @param dname
* @return * @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("dname", depositoryRecordById.getDname());
temp.put("dcode", depositoryRecordById.getCode()); temp.put("dcode", depositoryRecordById.getCode());
// 获取当前仓库库存 // 获取当前仓库库存
Double Inventory = depositoryMapper.getToDayInventoryByDName(temp); Integer Inventory = depositoryMapper.getToDayInventoryByDName(temp);
String code = createCode(depositoryRecordById.getDname(), "InOrderNumber", "in", "");//构造单号 String code = createCode(depositoryRecordById.getDname(), "InOrderNumber", "in", "");//构造单号
Double quantity = Double.parseDouble((String) map.get("quantity")); Double quantity = Double.parseDouble((String) map.get("quantity"));
Double price = Double.parseDouble((String) map.get("price")); 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 * @return
*/ */
@Override @Override
public Double getToDayInventoryByDName(String dname) { public Integer getToDayInventoryByDName(String dname) {
String[] split = dname.split(","); String[] split = dname.split(",");
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (split.length > 1) { 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.service.RoleService;
import com.dreamchaser.depository_manage.utils.DateUtil; import com.dreamchaser.depository_manage.utils.DateUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; 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.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; 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 { public class ObjectFormatUtil {
/** /**

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

@ -15,14 +15,17 @@
border-radius: 5px; border-radius: 5px;
text-align: center; text-align: center;
} }
.top-panel > .layui-card-body { .top-panel > .layui-card-body {
height: 60px; height: 60px;
} }
.top-panel-number { .top-panel-number {
line-height: 60px; line-height: 60px;
font-size: 30px; font-size: 30px;
border-right: 1px solid #eceff9; border-right: 1px solid #eceff9;
} }
.top-panel-tips { .top-panel-tips {
line-height: 30px; line-height: 30px;
font-size: 12px font-size: 12px
@ -184,8 +187,7 @@
tooltip: {}, tooltip: {},
dataset: { dataset: {
dimensions: [], dimensions: [],
source: [ source: []
]
}, },
xAxis: {type: 'category'}, xAxis: {type: 'category'},
yAxis: {}, yAxis: {},
@ -208,14 +210,12 @@
showContent: false showContent: false
}, },
dataset: { dataset: {
source: [ source: []
]
}, },
xAxis: {type: 'category'}, xAxis: {type: 'category'},
yAxis: {gridIndex: 0}, yAxis: {gridIndex: 0},
grid: {top: '55%'}, grid: {top: '55%'},
series: [ series: []
]
}; };
@ -278,10 +278,11 @@
areaStyle: {} areaStyle: {}
}); });
optionPiesSeries.data.push({ 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; optionDataset.dataset.dimensions = dimensions;
for (let i = result.data.depository_data.sourceListByMonth.length - 2; i >= 0; i--) { for (let i = result.data.depository_data.sourceListByMonth.length - 2; i >= 0; i--) {
optionDataset.dataset.source.push(result.data.depository_data.sourceListByMonth[i]) optionDataset.dataset.source.push(result.data.depository_data.sourceListByMonth[i])
@ -291,7 +292,7 @@
} }
for (let i = 0; i < result.data.depository_data.MapInventory.mapDataList.length; i++) { for (let i = 0; i < result.data.depository_data.MapInventory.mapDataList.length; i++) {
optionMap.dataset.source.push(result.data.depository_data.MapInventory.mapDataList[i]) optionMap.dataset.source.push(result.data.depository_data.MapInventory.mapDataList[i]);
if (i < result.data.depository_data.MapInventory.mapDataList.length - 1) { if (i < result.data.depository_data.MapInventory.mapDataList.length - 1) {
optionMap.series.push({type: 'line', smooth: true, seriesLayoutBy: 'row'}) optionMap.series.push({type: 'line', smooth: true, seriesLayoutBy: 'row'})
} }

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

@ -131,10 +131,10 @@
{field: 'version', width: 200, title: '规格型号'}, {field: 'version', width: 200, title: '规格型号'},
{field: 'code', width: 200, title: '存货编码'}, {field: 'code', width: 200, title: '存货编码'},
{field: 'typeName', width: 200, title: '物料类型'}, {field: 'typeName', width: 200, title: '物料类型'},
{field: 'quantity', width: 200, title: '数量', sort: true},
{field: 'depositoryName', width: 200, title: '仓库名称'}, {field: 'depositoryName', width: 200, title: '仓库名称'},
{field: 'depositoryCode', width: 200, title: '仓库编码'}, {field: 'depositoryCode', width: 200, title: '仓库编码'},
{field: 'placeCode', width: 200, title: '库位编码'}, {field: 'placeCode', width: 200, title: '库位编码'},
{field: 'quantity', width: 200, title: '数量', sort: true},
{field: 'warningCount', width: 200, title: '待过期数量', sort: true}, {field: 'warningCount', width: 200, title: '待过期数量', sort: true},
{field: 'price', title: '单价', width: 200, sort: true}, {field: 'price', title: '单价', width: 200, sort: true},
{field: 'amounts', 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; package com.dreamchaser.depository_manage;
import com.dreamchaser.depository_manage.controller.DepositoryController; 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.MaterialType;
import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.service.DepositoryRecordService; import com.dreamchaser.depository_manage.service.DepositoryRecordService;
import com.dreamchaser.depository_manage.service.DepositoryService; import com.dreamchaser.depository_manage.service.DepositoryService;
import com.dreamchaser.depository_manage.service.MaterialTypeService; import com.dreamchaser.depository_manage.service.MaterialTypeService;
import com.dreamchaser.depository_manage.utils.DateUtil; import com.dreamchaser.depository_manage.utils.DateUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -24,19 +27,45 @@ public class TestForgetMapData {
MaterialTypeService materialTypeService; MaterialTypeService materialTypeService;
@Autowired @Autowired
DepositoryRecordService depositoryRecordService; DepositoryRecordService depositoryRecordService;
@Autowired
DepositoryService depositoryService;
@Test @Test
public void Test(){ public void Test(){
// HashMap可以实现真正意义上深拷贝,注意不是Map UserByPort userByPort = PageController.FindUserById(78, null);
HashMap<String, String> paramMap = new HashMap<String, String>(); Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
paramMap.put("name", "Marydon"); Iterator it = depositoryAllNameAndId.keySet().iterator();
HashMap<String, String> paramMap2 = new HashMap<String, String>(); List<String> depositoryName = new ArrayList<>();
// 实现深拷贝:使用HashMap.putAll() // 各仓库对应入库数目
paramMap2.putAll(paramMap); Map<String, Integer> yesterdayData = new HashMap<>();
paramMap.put("age","19"); // 每天各仓库入库数目
System.out.println(paramMap2);// {name=Marydon} Map<String, Object> show_data = new HashMap<>();
System.out.println(paramMap);// {name=Marydon} // 各仓库当前库存数目
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