Browse Source

优化可视化界面

lwx_dev
erdanergou 3 years ago
parent
commit
2c95d8a38a
  1. 281
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java
  2. 6
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java
  3. 12
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  4. 8
      src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java
  5. 11
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  6. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  7. 6
      src/main/resources/application-test.yml
  8. 3
      src/main/resources/templates/pages/application/application-in.html
  9. 1
      src/main/resources/templates/pages/material/material-out.html
  10. 2
      src/main/resources/templates/pages/scanQrCode/ScanBarCodeByNew.html
  11. 259
      src/test/java/com/dreamchaser/depository_manage/Test2.java
  12. 12
      src/test/java/com/dreamchaser/depository_manage/Test3.java
  13. 6
      target/classes/application-test.yml
  14. 12
      target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  15. 3
      target/classes/templates/pages/application/application-in.html
  16. 1
      target/classes/templates/pages/material/material-out.html
  17. 2
      target/classes/templates/pages/scanQrCode/ScanBarCodeByNew.html

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

@ -14,6 +14,7 @@ import com.dreamchaser.depository_manage.utils.CrudUtil;
import com.dreamchaser.depository_manage.utils.DateUtil;
import com.dreamchaser.depository_manage.utils.HttpUtils;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import lombok.Data;
import org.apache.http.protocol.HTTP;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -101,8 +102,8 @@ public class DepositoryController {
*
* @return
*/
public static Map<String, Object> getBeforeInventoryByDName(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort user) {
List<Double> result = new ArrayList<>();
public Map<String, Object> getBeforeInventoryByDName(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort user) {
List<Integer> result = new ArrayList<>();
List<Long> days = getLastTimeInterval();
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(user);
Iterator it = depositoryAllNameAndId.keySet().iterator();
@ -112,24 +113,24 @@ public class DepositoryController {
while (it.hasNext()) {
int i;
Object key = it.next();
Double thisDayInventory = 0.0;
Integer thisDayInventory = 0;
// 本周周一的总量
thisDayInventory = ((List<Double>) thisWeekInventoryByDName.get(key.toString())).get(0);
thisDayInventory = ((List<Integer>) thisWeekInventoryByDName.get(key.toString())).get(0);
result.add(thisDayInventory);
int j = 0;
for (i = days.size() - 1; i > 0; i--) {
// 遍历 Map并计算各仓库的入库数
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的入库额度
Double depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i - 1), val);
Integer depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i - 1), val);
// 获取一段时间内的出库库额度
Double depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i - 1), val);
Double wareHouseCount1 = result.get(j++) - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1;
Integer depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i - 1), val);
Integer wareHouseCount1 = result.get(j++) - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1;
result.add(wareHouseCount1);
}
result.remove(0);
Collections.reverse(result);
map.put(key.toString(), ((ArrayList<Double>) result).clone());
map.put(key.toString(), ((ArrayList<Integer>) result).clone());
result.clear();
}
return map;
@ -142,7 +143,7 @@ public class DepositoryController {
* @param depositoryRecordService
* @return
*/
public static Map<String, Object> getThisWeekInventoryByDName(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort user) {
public Map<String, Object> getThisWeekInventoryByDName(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort user) {
Calendar instance = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
int weekDay = instance.get(Calendar.DAY_OF_WEEK);
@ -151,17 +152,20 @@ public class DepositoryController {
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(user);
Iterator it = depositoryAllNameAndId.keySet().iterator();
//result用来接收每个仓库每天的库存
List<Double> result = new ArrayList<>();
List<Integer> result = new ArrayList<>();
// map用来存储仓库与库存的映射
Map<String, Object> map = new HashMap<>();
// 只获取当天
List<InventoryByDname> toDayInventoryByDNameTest = depositoryService.getToDayInventoryByDNameTest();
System.out.println("当前仓库中的库存记录为:"+JSONObject.toJSONString(toDayInventoryByDNameTest));
if (weekDay == 1) {
while (it.hasNext()) {
int i;
Object key = it.next();
Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
result.add(toDayInventoryByDName);
map.put(key.toString(), ((ArrayList<Double>) result).clone());
String key = it.next().toString();
String dname = key.split(",")[0];
Integer inventoryByDname = getInventoryByDname(dname, toDayInventoryByDNameTest);
result.add(inventoryByDname);
map.put(key, ((ArrayList<Integer>) result).clone());
result.clear();
}
} else {
@ -177,18 +181,23 @@ public class DepositoryController {
}
while (it.hasNext()) {
int i;
Object key = it.next();
String key = it.next().toString();
int j = 0;
// 获取今天容量
Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
result.add(toDayInventoryByDName);
String dname = key.split(",")[0];
Integer inventoryByDname = getInventoryByDname(dname, toDayInventoryByDNameTest);
result.add(inventoryByDname);
// 判断当天是否有出入口记录
System.out.println("当前进行运算的仓库:"+key+"此时的库存为"+inventoryByDname);
Calendar IsInOut = Calendar.getInstance();
Long start = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(IsInOut.getTime()));
IsInOut.add(Calendar.DATE, 1);
Long end = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(IsInOut.getTime()));
Double inCount = depositoryRecordService.findApplicationInRecordByDate(end, start, null);
Double OutCount = depositoryRecordService.findApplicationOutRecordByDate(end, start, null);
// 判断今天是否有出入库记录
Integer inCount = depositoryRecordService.findApplicationInRecordByDate(end, start, null);
Integer OutCount = depositoryRecordService.findApplicationOutRecordByDate(end, start, null);
if (inCount > 0 || OutCount > 0) {
flag = true;
}
@ -199,26 +208,27 @@ public class DepositoryController {
break;
}
// 当前日期额度
Double aDouble = result.get(j++);
Integer aDouble = result.get(j++);
// 获取当前仓库
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 如果今天有出入库记录
if (flag) {
Double inRecordByDate = depositoryRecordService.findApplicationInRecordByDate(end, start, val);
Double OutRecordByDate = depositoryRecordService.findApplicationOutRecordByDate(end, start, val);
Integer inRecordByDate = depositoryRecordService.findApplicationInRecordByDate(end, start, val);
Integer OutRecordByDate = depositoryRecordService.findApplicationOutRecordByDate(end, start, val);
aDouble = aDouble - inRecordByDate + OutRecordByDate;
flag = false;
}
// 获取一段时间内的入库额度
//测试
Double depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i + 1), val);
Integer depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i + 1), val);
// 获取一段时间内的出库额度
Double depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i + 1), val);
Double warehouserCount1 = aDouble - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1;
Integer depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i + 1), val);
Integer warehouserCount1 = (int)aDouble - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1;
result.add(warehouserCount1);
}
System.out.println("当前仓库本周的库存"+result);
Collections.reverse(result);
map.put(key.toString(), ((ArrayList<Double>) result).clone());
map.put(key.toString(), ((ArrayList<Integer>) result).clone());
result.clear();
}
}
@ -232,7 +242,7 @@ public class DepositoryController {
* @param depositoryRecordService
* @return
*/
public static List<Object> getBeforeInventoryByMonth(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort userByPort) {
public List<Object> getBeforeInventoryByMonth(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort userByPort) {
List<Depository> depositoryAll = depositoryService.findDepositoryByAdminorgAndUser(userByPort);
// 获取该用户管理的仓库
Map<String, Object> previousMonth = getPreviousMonth();
@ -242,13 +252,15 @@ public class DepositoryController {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
instance.add(Calendar.MONTH, 1);
instance.set(Calendar.DATE, 1);
List<Double> result = new ArrayList<>();
List<Integer> result = new ArrayList<>();
String month = formatter.format(instance.getTime());
List<InventoryByDname> toDayInventoryByDNameTest = depositoryService.getToDayInventoryByDNameTest();
for (int i = 0; i < depositoryAll.size(); i++) {
result.add(depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname()));
((Map<String, Object>) sourceList.get(0)).put(depositoryAll.get(i).getDname(), result.get(i));
String dname = depositoryAll.get(i).getDname();
Integer todayDepositoryInventory = getInventoryByDname(dname,toDayInventoryByDNameTest);
result.add(todayDepositoryInventory);
((Map<String, Object>) sourceList.get(0)).put(dname, result.get(i));
}
for (int num = 0; num < months.size() - 1; num++) {
int k = 0;
for (int j = 0; j < depositoryAll.size(); j++) {
@ -275,7 +287,7 @@ public class DepositoryController {
Integer wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmOut);
// 获取当前月库存容量
// 测试
Double wareHouseCount1 = result.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1;
Integer wareHouseCount1 = result.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1;
result.add(wareHouseCount1);
((Map<String, Object>) sourceList.get(num)).put(depositoryAll.get(j).getDname(), wareHouseCount1);
}
@ -283,9 +295,11 @@ public class DepositoryController {
result.remove(0);
}
}
for (int i = 0; i < depositoryAll.size(); i++) {
((Map<String, Object>) sourceList.get(0)).put(depositoryAll.get(i).getDname(), depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname()));
String dname = depositoryAll.get(i).getDname();
Integer todayDepositoryInventory = getInventoryByDname(dname,toDayInventoryByDNameTest);
result.add(todayDepositoryInventory);
((Map<String, Object>) sourceList.get(0)).put(dname, result.get(i));
}
List<String> barSource = new ArrayList<>();
barSource.add("month");
@ -296,6 +310,22 @@ public class DepositoryController {
return sourceList;
}
/**
* 获取当前仓库下的库存
* @param dname
* @param list
* @return
*/
public Integer getInventoryByDname(String dname,List<InventoryByDname> list){
for (InventoryByDname inventoryByDname : list) {
if (dname.equals(inventoryByDname.getDname())) {
return inventoryByDname.getInventory();
}
}
return 0;
}
/**
* 获取之前个月的库存给地图数据
*
@ -303,7 +333,7 @@ public class DepositoryController {
* @param depositoryRecordService
* @return
*/
public static Map<String, Object> getBeforeInventoryOnMap(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort userByPort) {
public Map<String, Object> getBeforeInventoryOnMap(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort userByPort) {
// 中国地图数据
// ['product', '3月', '4月', '5月', '6月', '7月', '8月'],
// ['电子产品类', 41.1, 30.4, 65.1, 53.3, 83.8, 98.7],
@ -318,16 +348,14 @@ public class DepositoryController {
for (int i = sourceList.size() - 1; i >= 0; i--) {
title.add(((Map<String, Object>) sourceList.get(i)).get("month"));
}
Calendar instance1 = Calendar.getInstance();
instance1.add(Calendar.MONTH, 1);
instance1.set(Calendar.DATE, 1);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String month = formatter.format(instance1.getTime());
mapDataList.add(title);
List<InventoryByDname> toDayInventoryByDNameTest = depositoryService.getToDayInventoryByDNameTest();
for (int i = 0; i < depositoryAll.size(); i++) {
List<Object> productData = new ArrayList<>();
productData.add(depositoryAll.get(i).getDname());
productData.add(depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname()));
String dname = depositoryAll.get(i).getDname();
productData.add(dname);
Integer inventoryByDname = getInventoryByDname(dname, toDayInventoryByDNameTest);
productData.add(inventoryByDname);
int k = 1;
for (int j = 0; j < months.size() - 1; j++) {
Map<String, Object> parmIn = new HashMap<>();
@ -348,7 +376,7 @@ public class DepositoryController {
// 获取某个月某物料出库总额
// 测试
Integer wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmOut);
Double wareHouseCount1 = (Double) productData.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1;
Integer wareHouseCount1 = (int)productData.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1;
productData.add(wareHouseCount1);
}
List<Object> result = new ArrayList<>();
@ -363,7 +391,6 @@ public class DepositoryController {
return mapData;
}
/**
* 根据条件查询仓库
*
@ -722,14 +749,14 @@ public class DepositoryController {
List<String> depositoryName = new ArrayList<>();
// 各仓库对应入库数目
Map<String, Double> yesterdayData = new HashMap<>();
Map<String, Integer> yesterdayData = new HashMap<>();
// 获取昨天数据标志位
boolean flag = true;
// 每天各仓库入库数目
Map<String, Object> show_data = new HashMap<>();
List<Long> days = getLastTimeInterval();
List<Double> drCountbyDrName = new ArrayList<>();
List<Integer> drCountbyDrName = new ArrayList<>();
while (it.hasNext()) {
@ -743,14 +770,14 @@ public class DepositoryController {
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
// 测试
Double depositoryRecordByDateAndType1 = depositoryRecordService.findApplicationRecordByDate(days.get(i), days.get(i - 1), Integer.parseInt(type), val);
Integer depositoryRecordByDateAndType1 = depositoryRecordService.findApplicationRecordByDate(days.get(i), days.get(i - 1), Integer.parseInt(type), val);
drCountbyDrName.add(depositoryRecordByDateAndType1);
if (i == 2 && flag) {
yesterdayData.put(key.toString(), depositoryRecordByDateAndType1);
}
}
Collections.reverse(drCountbyDrName);
show_data.put(key.toString(), ((ArrayList<Double>) drCountbyDrName).clone());
show_data.put(key.toString(), ((ArrayList<Integer>) drCountbyDrName).clone());
drCountbyDrName.clear();
}
Map<String, Object> depository_data = new HashMap<>();
@ -795,7 +822,7 @@ public class DepositoryController {
// 仓库名称列表
List<String> depositoryName = new ArrayList<>();
// 各仓库对应入库数目
Map<String, Double> yesterdayData = new HashMap<>();
Map<String, Integer> yesterdayData = new HashMap<>();
// 每天各仓库入库数目
Map<String, Object> show_data = new HashMap<>();
// 各仓库当前库存数目
@ -822,13 +849,13 @@ public class DepositoryController {
depositoryName.add(key.toString());
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt(type), val);
Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt(type), val);
Integer toDayInventoryByDName = ObjectFormatUtil.toInteger(depositoryService.getToDayInventoryByDName(key.toString()));
todayInventory.put(key.toString(), toDayInventoryByDName);
yesterdayData.put(key.toString(), depositoryRecordByDate1);
List<Double> drCountbyDrName = new ArrayList<>();
List<Integer> drCountbyDrName = new ArrayList<>();
drCountbyDrName.add(depositoryRecordByDate1);
show_data.put(key.toString(), ((ArrayList<Double>) drCountbyDrName).clone());
show_data.put(key.toString(), ((ArrayList<Integer>) drCountbyDrName).clone());
}
} else {
int now = instance.get(Calendar.DAY_OF_WEEK) - 1;
@ -843,7 +870,7 @@ public class DepositoryController {
Long format = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()));
days.add(format);
}
List<Double> drCountbyDrName = new ArrayList<>();
List<Integer> drCountbyDrName = new ArrayList<>();
while (it.hasNext()) {
int i;
Object key = it.next();
@ -857,13 +884,13 @@ public class DepositoryController {
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val);
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val);
drCountbyDrName.add(depositoryRecordByDate1);
if (i == 2 && flag) {
yesterdayData.put(key.toString(), depositoryRecordByDate1);
}
}
show_data.put(key.toString(), ((ArrayList<Double>) drCountbyDrName).clone());
show_data.put(key.toString(), ((ArrayList<Integer>) drCountbyDrName).clone());
drCountbyDrName.clear();
}
}
@ -915,7 +942,7 @@ public class DepositoryController {
// 仓库名称列表
List<String> depositoryName = new ArrayList<>();
// 各仓库对应入库数目
Map<String, Double> yesterdayData = new HashMap<>();
Map<String, Integer> yesterdayData = new HashMap<>();
// 每天各仓库入库数目
Map<String, Object> show_data = new HashMap<>();
// 各仓库当前库存数目
@ -947,13 +974,13 @@ public class DepositoryController {
depositoryName.add(key.toString());
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt(type), val);
Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow, now, Integer.parseInt(type), val);
Integer toDayInventoryByDName =ObjectFormatUtil.toInteger(depositoryService.getToDayInventoryByDName(key.toString()));
todayInventory.put(key.toString(), toDayInventoryByDName);
yesterdayData.put(key.toString(), depositoryRecordByDate1);
List<Double> drCountbyDrName = new ArrayList<>();
List<Integer> drCountbyDrName = new ArrayList<>();
drCountbyDrName.add(depositoryRecordByDate1);
show_data.put(key.toString(), ((ArrayList<Double>) drCountbyDrName).clone());
show_data.put(key.toString(), ((ArrayList<Integer>) drCountbyDrName).clone());
}
}
else {
@ -1005,10 +1032,45 @@ public class DepositoryController {
if ("0".equals(type)) {
// 如果是获取库存
depository_data.put("todayInventory", todayInventory);
depository_data.put("sourceListByMonth", getBeforeInventoryByMonth(depositoryService, depositoryRecordService, userByPort));
depository_data.put("ThisWeekInventory", getThisWeekInventoryByDName(depositoryService, depositoryRecordService, userByPort));
depository_data.put("BeforeInventory", getBeforeInventoryByDName(depositoryService, depositoryRecordService, userByPort));
depository_data.put("MapInventory", getBeforeInventoryOnMap(depositoryService, depositoryRecordService, userByPort));
distributeTasks distributeTasks1 = new distributeTasks(type, 5, userByPort, yesterdayData, depositoryName);
distributeTasks1.setDepositoryService(depositoryService);
distributeTasks1.setDepositoryRecordService(depositoryRecordService);
distributeTasks distributeTasks2 = new distributeTasks(type, 6, userByPort, yesterdayData, depositoryName);
distributeTasks2.setDepositoryService(depositoryService);
distributeTasks2.setDepositoryRecordService(depositoryRecordService);
distributeTasks distributeTasks3 = new distributeTasks(type, 7, userByPort, yesterdayData, depositoryName);
distributeTasks3.setDepositoryService(depositoryService);
distributeTasks3.setDepositoryRecordService(depositoryRecordService);
Future<Object> future1 = completionService.submit(distributeTasks1);
Future<Object> future2 = completionService.submit(distributeTasks2);
Future<Object> future3 = completionService.submit(distributeTasks3);
futureList.add(future1);
futureList.add(future2);
futureList.add(future3);
List<Object> beforeInventoryByMonth = null;
Map<String, Object> thisWeekInventoryByDName = null;
Map<String, Object> beforeInventoryOnMap = null;
for (int i = 0; i < 3; i++) {
Object result = null;
try {
result = completionService.take().get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
if(beforeInventoryByMonth == null || beforeInventoryByMonth.size() == 0) {
beforeInventoryByMonth = (List<Object>) ((Map<String, Object>) result).get("sourceListByMonth");
}
if(thisWeekInventoryByDName == null || thisWeekInventoryByDName.size() == 0) {
thisWeekInventoryByDName = (Map<String, Object>) ((Map<String, Object>) result).get("ThisWeekInventory");
}
if(beforeInventoryOnMap == null || beforeInventoryOnMap.size() == 0){
beforeInventoryOnMap = (Map<String, Object>) ((Map<String, Object>) result).get("MapInventory");
}
}
depository_data.put("sourceListByMonth", beforeInventoryByMonth);
depository_data.put("ThisWeekInventory", thisWeekInventoryByDName);
depository_data.put("MapInventory", beforeInventoryOnMap);
}
else {
// 如果不是
@ -1028,16 +1090,19 @@ public class DepositoryController {
return resMap;
}
// 用于
// 用于分发任务
@Data
class distributeTasks implements Callable<Object>{
String type;
int taskType;
UserByPort userByPort;
Map<String,Double> yesterdayData;
Map<String,Integer> yesterdayData;
List<String> depositoryName;
DepositoryService depositoryService;
DepositoryRecordService depositoryRecordService;
distributeTasks(String type ,int taskType,UserByPort userByPort,Map<String,Double> yesterdayData,List<String> depositoryName){
distributeTasks(String type ,int taskType,UserByPort userByPort,Map<String,Integer> yesterdayData,List<String> depositoryName){
this.taskType = taskType;
this.type = type;
this.userByPort = userByPort;
@ -1047,7 +1112,7 @@ public class DepositoryController {
}
@Override
public Object call() throws Exception {
// taskType 1为折线图2为饼图3为柱状图4为中国地图
// taskType 1为折线图2为饼图3为柱状图4为中国地图5为库存可视化中的折线图6为库存可视化中中国地图7为库存可视化中柱状图
Map<String,Object> result = new HashMap<>();
if(1 == taskType){
@ -1061,6 +1126,15 @@ public class DepositoryController {
}else if(4 == taskType){
Map<String, Object> mapData = getMapData(type);
result.put("mapData",mapData);
}else if(5 == taskType){
List<Object> beforeInventoryByMonth = getBeforeInventoryByMonth(depositoryService, depositoryRecordService, userByPort);
result.put("sourceListByMonth",beforeInventoryByMonth);
}else if(6 == taskType){
Map<String, Object> thisWeekInventoryByDName = getThisWeekInventoryByDName(depositoryService, depositoryRecordService, userByPort);
result.put("ThisWeekInventory",thisWeekInventoryByDName);
}else if(7 == taskType){
Map<String, Object> beforeInventoryOnMap = getBeforeInventoryOnMap(depositoryService, depositoryRecordService, userByPort);
result.put("MapInventory",beforeInventoryOnMap);
}
return result;
}
@ -1068,12 +1142,10 @@ public class DepositoryController {
// 用于获取折线图
public Map<String,Object> getShowData(String type,UserByPort userByPort,Map<String,Double> yesterdayData,List<String> depositoryName){
public Map<String,Object> getShowData(String type,UserByPort userByPort,Map<String,Integer> yesterdayData,List<String> depositoryName){
// 获取各仓库名称以及id
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
// 各仓库当前库存数目
Map<String, Object> todayInventory = new HashMap<>();
Iterator it = depositoryAllNameAndId.keySet().iterator();
@ -1095,15 +1167,58 @@ public class DepositoryController {
days.add(format);
}
List<Double> drCountbyDrName = new ArrayList<>();
// 获取昨天数据标志位
boolean flag = true;
// 定义线程
ExecutorService exs = Executors.newFixedThreadPool(depositoryAllNameAndId.size());
// 结果集
List<Future<Object>> futureList = new ArrayList<Future<Object>>();
// 1.定义CompletionService
CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs);
// 每天各仓库入库数目
Map<String, Object> show_data = new HashMap<>();
while (it.hasNext()) {
Object next = it.next();
getApplicationRecordByDate getApplicationRecordByDate = new getApplicationRecordByDate(type, next, days, depositoryAllNameAndId);
getApplicationRecordByDate.setShow_data(show_data);
getApplicationRecordByDate.setDepositoryName(depositoryName);
getApplicationRecordByDate.setYesterdayData(yesterdayData);
Future<Object> future = completionService.submit(getApplicationRecordByDate);
futureList.add(future);
}
for (int i = 0; i < depositoryAllNameAndId.size(); i++) {
Object result = null;
try {
result = completionService.take().get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
return show_data;
}
@Data
class getApplicationRecordByDate implements Callable<Object>{
Object key;
List<Long> days;
Map<String, Integer> depositoryAllNameAndId;
List<String> depositoryName;
Map<String,Integer> yesterdayData;
String type;
Map<String, Object> show_data;
getApplicationRecordByDate(String type,Object key,List<Long> days,Map<String, Integer> depositoryAllNameAndId ){
this.key = key;
this.depositoryAllNameAndId = depositoryAllNameAndId;
this.days = days;
this.type = type;
}
@Override
public Object call() throws Exception {
int i;
Object key = it.next();
Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString());
todayInventory.put(key.toString(), toDayInventoryByDName);
List<Integer> drCountbyDrName = new ArrayList<>();
for (i = days.size() - 1; i > 0; i--) {
// 遍历 Map并计算各仓库的入库数
if (i == days.size() - 1) {
@ -1111,20 +1226,16 @@ public class DepositoryController {
}
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val);
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val);
drCountbyDrName.add(depositoryRecordByDate1);
if (i == 2 && flag) {
if (i == 2) {
yesterdayData.put(key.toString(), depositoryRecordByDate1);
}
}
show_data.put(key.toString(), ((ArrayList<Double>) drCountbyDrName).clone());
drCountbyDrName.clear();
show_data.put(key.toString(),drCountbyDrName);
return null;
}
return show_data;
}
//获取本月及之前月份各种类别入/出库总量
public List<Object> getSourceList(String type){
List<MaterialType> materialTypeAll = materialTypeService.findMaterialTypeNoParent();

6
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java

@ -154,7 +154,7 @@ public interface DepositoryRecordMapper {
* @param map
* @return
*/
Double findApplicationInRecordByDate(Map<String,Object> map);
Integer findApplicationInRecordByDate(Map<String,Object> map);
/**
* 获取一段时间内的出库额度
@ -162,14 +162,14 @@ public interface DepositoryRecordMapper {
* @param map
* @return
*/
Double findApplicationOutRecordByDate(Map<String,Object> map);
Integer findApplicationOutRecordByDate(Map<String,Object> map);
/**
* 根据条件获取月份中物料的总额
* @param map
* @return
*/
Double findMaterialCountByMonth(Map<String,Object> map);
Integer findMaterialCountByMonth(Map<String,Object> map);
/**
* 根据条件获取月份中入库物料的总额

12
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml

@ -905,11 +905,9 @@
checkId = #{checkId},
</if>
<if test="parentId != null ">
parentId = #{parentId},
</if>
<if test="transferId != null and transferId != ''">
transferId = #{transferId}
parentId = #{parentId}
</if>
where id = #{id}
</set>
@ -1075,7 +1073,7 @@
</select>
<!--获取一段时间内的入库额度-->
<select id="findApplicationInRecordByDate" parameterType="map" resultType="double">
<select id="findApplicationInRecordByDate" parameterType="map" resultType="int">
SELECT
ifnull(sum(quantity),0)
FROM applicationInrecordinfo
@ -1087,7 +1085,7 @@
</select>
<!--获取一段时间内的出库额度-->
<select id="findApplicationOutRecordByDate" parameterType="map" resultType="double">
<select id="findApplicationOutRecordByDate" parameterType="map" resultType="int">
SELECT
ifnull(sum(aormquantity),0)
FROM applicationoutrecordinfo
@ -1108,7 +1106,7 @@
<!-- 获取某月某物料总额-->
<select id="findMaterialCountByMonth" parameterType="map" resultType="DOUBLE">
<select id="findMaterialCountByMonth" parameterType="map" resultType="int">
select ifnull(sum(quantity),0)
from MaterialCountByMonth
where 1 = 1

8
src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java

@ -201,7 +201,7 @@ public interface DepositoryRecordService {
* @param depositoryId
* @return
*/
Double findApplicationRecordByDate(Long end,Long start,Integer type,Integer depositoryId);
Integer findApplicationRecordByDate(Long end,Long start,Integer type,Integer depositoryId);
/**
* 获取一段时间内的入库额度
*
@ -210,7 +210,7 @@ public interface DepositoryRecordService {
* @param depositoryId
* @return
*/
Double findApplicationInRecordByDate(Long end,Long start,Integer depositoryId);
Integer findApplicationInRecordByDate(Long end,Long start,Integer depositoryId);
/**
* 获取一段时间内的出库额度
@ -220,13 +220,13 @@ public interface DepositoryRecordService {
* @param depositoryId
* @return
*/
Double findApplicationOutRecordByDate(Long end,Long start,Integer depositoryId);
Integer findApplicationOutRecordByDate(Long end,Long start,Integer depositoryId);
/**
* 根据条件获取月份中物料的总额
* @param map
* @return
*/
Double findMaterialCountByMonth(Map<String,Object> map);
Integer findMaterialCountByMonth(Map<String,Object> map);
/**
* 根据条件获取月份中物料的总额
* @param map

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

@ -1008,7 +1008,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1);
}
}).start();
} else {
}
else {
String result = "";
// 开启线程更改其他用户卡片模板样式
String simpleTime = DateUtil.getSimpleTime(new Date());
@ -1847,7 +1848,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
* @return
*/
@Override
public Double findApplicationRecordByDate(Long end, Long start, Integer type, Integer depositoryId) {
public Integer findApplicationRecordByDate(Long end, Long start, Integer type, Integer depositoryId) {
Map<String, Object> map = new HashMap<>();
map.put("start", start);
map.put("end", end);
@ -1870,7 +1871,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
* @return
*/
@Override
public Double findApplicationInRecordByDate(Long end, Long start, Integer depositoryId) {
public Integer findApplicationInRecordByDate(Long end, Long start, Integer depositoryId) {
Map<String, Object> map = new HashMap<>();
map.put("start", start);
map.put("end", end);
@ -1887,7 +1888,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
* @return
*/
@Override
public Double findApplicationOutRecordByDate(Long end, Long start, Integer depositoryId) {
public Integer findApplicationOutRecordByDate(Long end, Long start, Integer depositoryId) {
Map<String, Object> map = new HashMap<>();
map.put("start", start);
map.put("end", end);
@ -1903,7 +1904,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
* @return
*/
@Override
public Double findMaterialCountByMonth(Map<String, Object> map) {
public Integer findMaterialCountByMonth(Map<String, Object> map) {
return depositoryRecordMapper.findMaterialCountByMonth(map);
}

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

@ -443,7 +443,7 @@ public class MaterialServiceImpl implements MaterialService {
public Integer insertMaterialForImport(Map<String, Object> map) {
if (map.containsKey("quantity") && map.containsKey("price")) {
int quantity = (int) Math.round(Double.parseDouble(map.get("quantity").toString()));
int price = (int) (Double.parseDouble(map.get("price").toString()) * 100);
int price = (int) (Double.parseDouble(map.get("price").toString()));
map.put("price", price);
map.put("amounts", quantity * price);
}

6
src/main/resources/application-test.yml

@ -79,9 +79,9 @@ mybatis:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-prefix: mapper.
#mybatis-plus:
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
file:
uploadPath: D:/upLoad

3
src/main/resources/templates/pages/application/application-in.html

@ -127,7 +127,7 @@
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
@ -138,6 +138,7 @@
<i class="layui-icon layui-icon-addition" style="display: inline"
onclick="addItem(this)"></i>
</div>
</div>
<!-- 提交按钮-->
<div class="layui-form-item" id="btn_sub">

1
src/main/resources/templates/pages/material/material-out.html

@ -335,7 +335,6 @@
layer.closeAll('loading'); //关闭loading
//如果上传成功
console.log(res);
var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"

2
src/main/resources/templates/pages/scanQrCode/ScanBarCodeByNew.html

@ -57,7 +57,7 @@
btn: ["扫描", "取消"]
}, function () { // 继续
layer.close(layer.index); // 关闭弹窗
parent.parent.parent.wx.scanQRCode({
parent.parent.parent.parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有

259
src/test/java/com/dreamchaser/depository_manage/Test2.java

@ -53,153 +53,108 @@ public class Test2 {
RoleMapper roleMapper;
@Test
public void test(){
UserByPort userByPort = PageController.FindUserById(6235, null);
List<Depository> depositoryAll = depositoryService.findDepositoryByAdminorgAndUser(userByPort);
// 获取该用户管理的仓库
Map<String, Object> previousMonth = getPreviousMonth();
List<Object> sourceList = (List<Object>) previousMonth.get("sourceList");
Calendar instance = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
instance.add(Calendar.MONTH, 1);
instance.set(Calendar.DATE, 1);
List<Integer> result = new ArrayList<>();
List<InventoryByDname> toDayInventoryByDNameTest = depositoryMapper.getToDayInventoryByDNameTest();
for (int i = 0; i < depositoryAll.size(); i++) {
Depository depository = depositoryAll.get(i);
Integer inventoryByDname = getInventoryByDname(depository.getDname(), toDayInventoryByDNameTest);
result.add(inventoryByDname);
((Map<String, Object>) sourceList.get(0)).put(depository.getDname(), result.get(i));
}
}
/**
* 获取当前仓库下的库存
* @param dname
* @param list
* @return
*/
public Integer getInventoryByDname(String dname,List<InventoryByDname> list){
for (InventoryByDname inventoryByDname : list) {
if (dname.equals(inventoryByDname.getDname())) {
return inventoryByDname.getInventory();
}
}
return 0;
UserByPort userByPort = PageController.FindUserById(78, null);
Map<String, Object> beforeInventoryOnMap = getThisWeekInventoryByDName(depositoryService, depositoryRecordService, userByPort);
System.out.println(JSONObject.toJSONString(beforeInventoryOnMap));
}
public List<Object> getBeforeInventoryByMonth(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort userByPort) {
List<Depository> depositoryAll = depositoryService.findDepositoryByAdminorgAndUser(userByPort);
// 获取该用户管理的仓库
Map<String, Object> previousMonth = getPreviousMonth();
List<Object> months = (List<Object>) previousMonth.get("months");
List<Object> sourceList = (List<Object>) previousMonth.get("sourceList");
public Map<String, Object> getThisWeekInventoryByDName(DepositoryService depositoryService, DepositoryRecordService depositoryRecordService, UserByPort user) {
Calendar instance = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
instance.add(Calendar.MONTH, 1);
instance.set(Calendar.DATE, 1);
int weekDay = instance.get(Calendar.DAY_OF_WEEK);
weekDay = weekDay - 1;
// 获取所有仓库名称
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(user);
Iterator it = depositoryAllNameAndId.keySet().iterator();
//result用来接收每个仓库每天的库存
List<Integer> result = new ArrayList<>();
// map用来存储仓库与库存的映射
Map<String, Object> map = new HashMap<>();
// 只获取当天
List<InventoryByDname> toDayInventoryByDNameTest = depositoryService.getToDayInventoryByDNameTest();
for (int i = 0; i < depositoryAll.size(); i++) {
Depository depository = depositoryAll.get(i);
Integer inventoryByDname = getInventoryByDname(depository.getDname(), toDayInventoryByDNameTest);
System.out.println("当前仓库中的库存记录为:"+JSONObject.toJSONString(toDayInventoryByDNameTest));
if (weekDay == 1) {
while (it.hasNext()) {
int i;
String key = it.next().toString();
String dname = key.split(",")[0];
Integer inventoryByDname = getInventoryByDname(dname, toDayInventoryByDNameTest);
result.add(inventoryByDname);
((Map<String, Object>) sourceList.get(0)).put(depository.getDname(), result.get(i));
}
for (int num = 0; num < months.size() - 1; num++) {
int k = 0;
for (int j = 0; j < depositoryAll.size(); j++) {
// 获取该仓库本月库存
Map<String, Object> parmIn = new HashMap<>();
Map<String, Object> parmOut = new HashMap<>();
// 获取每月入库总额
parmIn.put("type", 1);
parmIn.put("state", "已入库");
parmIn.put("depository_id", depositoryAll.get(j).getId());
parmIn.put("start", months.get(num + 1));
parmIn.put("end", months.get(num));
// 获取每月出库总额
parmOut.put("type", 2);
parmOut.put("state", "已出库");
parmOut.put("depository_id", depositoryAll.get(j).getId());
parmOut.put("start", months.get(num + 1));
parmOut.put("end", months.get(num));
// 获取月份中入库物料的总额
Integer wareHouseInCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmIn);
// 获取月份中出库物料的总额
Integer wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmOut);
// 获取当前月库存容量
Integer wareHouseCount1 = result.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1;
result.add(wareHouseCount1);
Map<String, Object> map = (Map<String, Object>) sourceList.get(num);
map.put(depositoryAll.get(j).getDname(), wareHouseCount1);
}
for (int i = 0; i < depositoryAll.size(); i++) {
result.remove(0);
}
}
for (int i = 0; i < depositoryAll.size(); i++) {
((Map<String, Object>) sourceList.get(0)).put(depositoryAll.get(i).getDname(), depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname()));
}
List<String> barSource = new ArrayList<>();
barSource.add("month");
for (int i = 0; i < depositoryAll.size(); i++) {
barSource.add(depositoryAll.get(i).getDname());
}
sourceList.add(barSource);
return sourceList;
}
// 用于获取之前各月库存的线程任务
class getBeforeInventoryByMonthTask implements Callable<Object>{
List<Depository> depositoryAll;
List<Object> months;
Integer num;
Map<String,Object> map;
getBeforeInventoryByMonthTask( List<Depository> depositoryAll, List<Object> months,Integer num,Map<String,Object> map){
this.depositoryAll = depositoryAll;
this.months = months;
this.num = num;
this.map = map;
}
@Override
public Object call() throws Exception {
for (int j = 0; j < depositoryAll.size(); j++) {
// 获取该仓库本月库存
Map<String, Object> parmIn = new HashMap<>();
Map<String, Object> parmOut = new HashMap<>();
// 获取每月入库总额
parmIn.put("type", 1);
parmIn.put("state", "已入库");
parmIn.put("depository_id", depositoryAll.get(j).getId());
parmIn.put("start", months.get(num + 1));
parmIn.put("end", months.get(num));
// 获取每月出库总额
parmOut.put("type", 2);
parmOut.put("state", "已出库");
parmOut.put("depository_id", depositoryAll.get(j).getId());
parmOut.put("start", months.get(num + 1));
parmOut.put("end", months.get(num));
// 获取月份中入库物料的总额
// 测试
Integer wareHouseInCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmIn);
// 获取月份中出库物料的总额
// 测试
Integer wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth2(parmOut);
// 获取当前月库存容量
map.put(key, ((ArrayList<Integer>) result).clone());
result.clear();
}
} else {
int now = instance.get(Calendar.DAY_OF_WEEK) - 1;
List<Long> days = new ArrayList<>();
days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())));
Boolean flag = false;
while (now - 1 > 0) {
now--;
instance.add(Calendar.DATE, -1);
long format = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()));
days.add(format);
}
while (it.hasNext()) {
int i;
String key = it.next().toString();
int j = 0;
// 获取今天容量
String dname = key.split(",")[0];
Integer inventoryByDname = getInventoryByDname(dname, toDayInventoryByDNameTest);
result.add(inventoryByDname);
// 判断当天是否有出入口记录
Calendar IsInOut = Calendar.getInstance();
Long start = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(IsInOut.getTime()));
IsInOut.add(Calendar.DATE, 1);
Long end = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(IsInOut.getTime()));
// 判断今天是否有出入库记录
Integer inCount = depositoryRecordService.findApplicationInRecordByDate(end, start, null);
Integer OutCount = depositoryRecordService.findApplicationOutRecordByDate(end, start, null);
if (inCount > 0 || OutCount > 0) {
flag = true;
}
for (i = 0; i < days.size() - 1; i++) {
// 获取本周周一日期
String mondayOnThisWeek = DateUtil.getMondayOnThisWeek();
if (mondayOnThisWeek.equals(DateUtil.TimeStampToDateTime(days.get(i)))) {
break;
}
// 当前日期额度
Integer aDouble = result.get(j++);
// 获取当前仓库
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 如果今天有出入库记录
if (flag) {
Integer inRecordByDate = depositoryRecordService.findApplicationInRecordByDate(end, start, val);
Integer OutRecordByDate = depositoryRecordService.findApplicationOutRecordByDate(end, start, val);
aDouble = aDouble - inRecordByDate + OutRecordByDate;
flag = false;
}
// 获取一段时间内的入库额度
//测试
// Double wareHouseCount1 = result.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1;
// result.add(wareHouseCount1);
// map.put(depositoryAll.get(j).getDname(), wareHouseCount1);
Integer depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i + 1), val);
// 获取一段时间内的出库额度
Integer depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i + 1), val);
Integer warehouserCount1 = (int)aDouble - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1;
result.add(warehouserCount1);
}
return null;
Collections.reverse(result);
map.put(key.toString(), ((ArrayList<Integer>) result).clone());
result.clear();
}
}
return map;
}
/**
@ -230,5 +185,41 @@ public class Test2 {
map.put("sourceList", sourceList);
return map;
}
/**
* 获取当前仓库下的库存
* @param dname
* @param list
* @return
*/
public Integer getInventoryByDname(String dname,List<InventoryByDname> list){
for (InventoryByDname inventoryByDname : list) {
if (dname.equals(inventoryByDname.getDname())) {
return inventoryByDname.getInventory();
}
}
return 0;
}
/**
* 获取上周一到本周一的日期
*
* @return
*/
public static List<Long> getLastTimeInterval() {
Calendar calendar = Calendar.getInstance();
ArrayList<Long> lastTime = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
int offset1 = 1 - dayOfWeek;
calendar.add(Calendar.DATE, offset1 - 7);
lastTime.add(DateUtil.DateTimeByMonthToTimeStamp(sdf.format(calendar.getTime())));
for (int i = 0; i < 7; i++) {
calendar.add(Calendar.DATE, 1);
lastTime.add(DateUtil.DateTimeByMonthToTimeStamp(sdf.format(calendar.getTime())));
}
return lastTime;
}
}

12
src/test/java/com/dreamchaser/depository_manage/Test3.java

@ -54,13 +54,13 @@ public class Test3 {
@Test
public void Test() {
UserByPort userByPort = PageController.FindUserById(78, null);
Map<String,Double> yesterdayData = new HashMap<>();
Map<String,Integer> yesterdayData = new HashMap<>();
List<String> depositoryName = new ArrayList<>();
Map<String, Object> showData = getShowData("1", userByPort, yesterdayData, depositoryName);
Map<String, Object> showData = getShowData("2", userByPort, yesterdayData, depositoryName);
System.out.println(JSONObject.toJSONString(showData));
}
public Map<String,Object> getShowData(String type,UserByPort userByPort,Map<String,Double> yesterdayData,List<String> depositoryName){
public Map<String,Object> getShowData(String type,UserByPort userByPort,Map<String,Integer> yesterdayData,List<String> depositoryName){
// 获取各仓库名称以及id
Map<String, Integer> depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(userByPort);
@ -123,7 +123,7 @@ public class Test3 {
List<Long> days;
Map<String, Integer> depositoryAllNameAndId;
List<String> depositoryName;
Map<String,Double> yesterdayData;
Map<String,Integer> yesterdayData;
String type;
Map<String, Object> show_data;
getApplicationRecordByDate(String type,Object key,List<Long> days,Map<String, Integer> depositoryAllNameAndId ){
@ -136,7 +136,7 @@ public class Test3 {
@Override
public Object call() throws Exception {
int i;
List<Double> drCountbyDrName = new ArrayList<>();
List<Integer> drCountbyDrName = new ArrayList<>();
for (i = days.size() - 1; i > 0; i--) {
// 遍历 Map并计算各仓库的入库数
if (i == days.size() - 1) {
@ -144,7 +144,7 @@ public class Test3 {
}
Integer val = (Integer) depositoryAllNameAndId.get(key);
// 获取一段时间内的库存额度
Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val);
Integer depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val);
drCountbyDrName.add(depositoryRecordByDate1);
if (i == 2) {
yesterdayData.put(key.toString(), depositoryRecordByDate1);

6
target/classes/application-test.yml

@ -79,9 +79,9 @@ mybatis:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-prefix: mapper.
#mybatis-plus:
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
file:
uploadPath: D:/upLoad

12
target/classes/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml

@ -905,11 +905,9 @@
checkId = #{checkId},
</if>
<if test="parentId != null ">
parentId = #{parentId},
</if>
<if test="transferId != null and transferId != ''">
transferId = #{transferId}
parentId = #{parentId}
</if>
where id = #{id}
</set>
@ -1075,7 +1073,7 @@
</select>
<!--获取一段时间内的入库额度-->
<select id="findApplicationInRecordByDate" parameterType="map" resultType="double">
<select id="findApplicationInRecordByDate" parameterType="map" resultType="int">
SELECT
ifnull(sum(quantity),0)
FROM applicationInrecordinfo
@ -1087,7 +1085,7 @@
</select>
<!--获取一段时间内的出库额度-->
<select id="findApplicationOutRecordByDate" parameterType="map" resultType="double">
<select id="findApplicationOutRecordByDate" parameterType="map" resultType="int">
SELECT
ifnull(sum(aormquantity),0)
FROM applicationoutrecordinfo
@ -1108,7 +1106,7 @@
<!-- 获取某月某物料总额-->
<select id="findMaterialCountByMonth" parameterType="map" resultType="DOUBLE">
<select id="findMaterialCountByMonth" parameterType="map" resultType="int">
select ifnull(sum(quantity),0)
from MaterialCountByMonth
where 1 = 1

3
target/classes/templates/pages/application/application-in.html

@ -127,7 +127,7 @@
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
@ -138,6 +138,7 @@
<i class="layui-icon layui-icon-addition" style="display: inline"
onclick="addItem(this)"></i>
</div>
</div>
<!-- 提交按钮-->
<div class="layui-form-item" id="btn_sub">

1
target/classes/templates/pages/material/material-out.html

@ -335,7 +335,6 @@
layer.closeAll('loading'); //关闭loading
//如果上传成功
console.log(res);
var re = "";
for (let i = 0; i < res.data.errMsg.length; i++) {
var show = "<p style='color: #ff211e'>"+res.data.errMsg[i] + ":错误"+"</p>"

2
target/classes/templates/pages/scanQrCode/ScanBarCodeByNew.html

@ -57,7 +57,7 @@
btn: ["扫描", "取消"]
}, function () { // 继续
layer.close(layer.index); // 关闭弹窗
parent.parent.parent.wx.scanQRCode({
parent.parent.parent.parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有

Loading…
Cancel
Save