Commit d6b2d97c sunke

哈曼出入库日志导出

1 个父辈 84015f9c
...@@ -62,6 +62,17 @@ public abstract class AbstractBaseDao implements IBaseDao { ...@@ -62,6 +62,17 @@ public abstract class AbstractBaseDao implements IBaseDao {
} }
@Override @Override
public <T extends BasePo> T findOneByCondition(String key, String value) {
return findOneByCondition(new String[]{key}, new String[]{value});
}
@Override
public <T extends BasePo> List<T> findListByCondition(String key, String value) {
return findListByCondition(new String[]{key},new String[]{value});
}
@Override
public <T extends BasePo> T findOneByCondition(String[] keys, String[] values) { public <T extends BasePo> T findOneByCondition(String[] keys, String[] values) {
if (keys.length != values.length || keys.length == 0) { if (keys.length != values.length || keys.length == 0) {
return null; return null;
...@@ -75,6 +86,7 @@ public abstract class AbstractBaseDao implements IBaseDao { ...@@ -75,6 +86,7 @@ public abstract class AbstractBaseDao implements IBaseDao {
return (T) getMongoTemplate().findOne(query, getEntityClass()); return (T) getMongoTemplate().findOne(query, getEntityClass());
} }
@Override
public <T extends BasePo> List<T> findListByCondition(String[] keys, String[] values) { public <T extends BasePo> List<T> findListByCondition(String[] keys, String[] values) {
if (keys.length != values.length || keys.length == 0) { if (keys.length != values.length || keys.length == 0) {
return null; return null;
......
...@@ -21,6 +21,10 @@ public interface IBaseDao { ...@@ -21,6 +21,10 @@ public interface IBaseDao {
<T extends BasePo> T findOne(Query query); <T extends BasePo> T findOne(Query query);
<T extends BasePo> T findOneByCondition(String key, String value);
<T extends BasePo> List<T> findListByCondition(String key, String value);
public <T extends BasePo> T findOneByCondition(String[] keys, String[] values); public <T extends BasePo> T findOneByCondition(String[] keys, String[] values);
public <T extends BasePo> List<T> findListByCondition(String[] keys, String[] values); public <T extends BasePo> List<T> findListByCondition(String[] keys, String[] values);
......
...@@ -97,12 +97,30 @@ public class DateUtil { ...@@ -97,12 +97,30 @@ public class DateUtil {
/** /**
* 获取距离今天dayFromToday 天的不带时间的日期(今天是0,昨天是-1,明天是1) * 获取距离今天dayFromToday 天的不带时间的日期(今天是0,昨天是-1,明天是1)
*/ */
public static Date getNoTimeFromToday(int dayFromToday){ public static Date addDaysFromToday(int dayFromToday){
Calendar c = noTimeCalendar(); Calendar c = noTimeCalendar();
c.add(Calendar.DAY_OF_YEAR, dayFromToday); c.add(Calendar.DAY_OF_YEAR, dayFromToday);
return c.getTime(); return c.getTime();
} }
/**
* 获取距离今天monthFromToday 月的不带时间的日期
*/
public static Date addMonthsFromToday(int monthFromToday){
Calendar c = noTimeCalendar();
c.add(Calendar.MONTH, monthFromToday);
return c.getTime();
}
/**
* 获取距离今天yearFromToday 年的不带时间的日期
*/
public static Date addYearsFromToday(int yearFromToday){
Calendar c = noTimeCalendar();
c.add(Calendar.YEAR, yearFromToday);
return c.getTime();
}
private static Calendar noTimeCalendar(){ private static Calendar noTimeCalendar(){
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR, 0); c.set(Calendar.HOUR, 0);
......
...@@ -242,11 +242,22 @@ public class FileUtil extends cn.hutool.core.io.FileUtil { ...@@ -242,11 +242,22 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
if(pageable != null){ if(pageable != null){
page.withSort(pageable.getSort()); page.withSort(pageable.getSort());
} }
//Excel一个Sheet允许最大行数为1048575
int totalCount = 0;
int currentSheet = 1;
while (true){ while (true){
List<List<Object>> data = excelDownLoad.getPageData(query,page); List<List<Object>> data = excelDownLoad.getPageData(query,page);
if(data == null || data.isEmpty()){ if(data == null || data.isEmpty()){
log.info("导出完成,共有["+totalCount+"]条数据");
break; break;
} }
totalCount = totalCount + data.size();
int sheetIndex = totalCount/1000000 + 1;
if(sheetIndex != currentSheet){
log.info("Sheet"+currentSheet+"已写入[" + totalCount + "]行数据,开始写入到Sheet"+sheetIndex);
currentSheet = sheetIndex;
writeSheet = EasyExcel.writerSheet("Sheet"+ sheetIndex).build();
}
excelWriter.write(data, writeSheet); excelWriter.write(data, writeSheet);
page = page.next(); page = page.next();
} }
......
...@@ -11,7 +11,10 @@ import com.neotel.smfcore.common.utils.QueryHelp; ...@@ -11,7 +11,10 @@ import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.device.enums.OP_STATUS; import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.service.nanager.ILanguageMsgManager;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.rest.bean.dto.TaskDto; import com.neotel.smfcore.core.system.rest.bean.dto.TaskDto;
import com.neotel.smfcore.core.system.rest.bean.mapstruct.TaskMapper; import com.neotel.smfcore.core.system.rest.bean.mapstruct.TaskMapper;
import com.neotel.smfcore.core.system.rest.bean.query.TaskQueryCondition; import com.neotel.smfcore.core.system.rest.bean.query.TaskQueryCondition;
...@@ -42,9 +45,7 @@ import javax.servlet.http.HttpServletResponse; ...@@ -42,9 +45,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Set;
@Slf4j @Slf4j
...@@ -55,6 +56,9 @@ import java.util.Set; ...@@ -55,6 +56,9 @@ import java.util.Set;
public class TaskController { public class TaskController {
@Autowired @Autowired
ILanguageMsgManager languageMsgManager;
@Autowired
private TaskService taskService; private TaskService taskService;
@Autowired @Autowired
...@@ -106,56 +110,58 @@ public class TaskController { ...@@ -106,56 +110,58 @@ public class TaskController {
@PreAuthorize("@el.check('taskLog')") @PreAuthorize("@el.check('taskLog')")
public void download(HttpServletResponse response, TaskQueryCondition criteria, Pageable pageable, HttpServletRequest request) throws IOException { public void download(HttpServletResponse response, TaskQueryCondition criteria, Pageable pageable, HttpServletRequest request) throws IOException {
Query query = getQuery(criteria); Query query = getQuery(criteria);
Locale locale = request.getLocale();
log.info("开始导出出入库日志");
FileUtil.downloadExcel(query, pageable, response, new IExcelDownLoad() {
@Override
public List<List<String>> getHeader() {
List<List<String>> header = new ArrayList<>();
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.barcode",locale,"条码编号")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.partNumber",locale,"料件编号")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.posName",locale,"料仓名称")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.amount",locale,"数量")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.type",locale,"类型")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.orderSource",locale,"来源")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.status",locale,"状态")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.operator",locale,"操作人")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.createDate",locale,"创建时间")));
header.add(Lists.newArrayList(MessageUtils.getSmfClientMsg("smfclient.NeoLight.updateDate",locale,"更新时间")));
return header;
}
//dataLogManager.download(query, pageable, response,request.getLocale()); @Override
public List<List<Object>> getPageData(Query query, Pageable pageable) {
// FileUtil.downloadExcel(query, pageable, response, new IExcelDownLoad() { List<List<Object>> dataList = new ArrayList<>();
// @Override DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// public List<List<String>> getHeader() { List<DataLog> dataLogs = dataLogManager.findByQuery(query,pageable);
// List<List<String>> header = new ArrayList<>(); for (DataLog dataLog : dataLogs) {
// header.add(Lists.newArrayList("类型"));
// header.add(Lists.newArrayList("单号")); String createDate = dateFormat.format(dataLog.getCreateDate());
// header.add(Lists.newArrayList("料仓名称")); String updateDate = dateFormat.format(dataLog.getUpdateDate());
// header.add(Lists.newArrayList("条码编号"));
// header.add(Lists.newArrayList("料件编号")); List<Object> data = new ArrayList<>();
// header.add(Lists.newArrayList("批次")); data.add(dataLog.getBarcode());
// header.add(Lists.newArrayList("数量")); data.add(dataLog.getPartNumber());
// header.add(Lists.newArrayList("用户")); data.add(dataLog.getPosName() + " " + dataLog.getStorageName());
// data.add(dataLog.getNum());
// header.add(Lists.newArrayList("供应商")); String typeKey = "NeoLight.logType." + dataLog.getType();
// header.add(Lists.newArrayList("来源二")); String typeMsg = MessageUtils.getSmfClientMsg(typeKey,locale,typeKey);
// header.add(Lists.newArrayList("状态")); data.add(typeMsg);
// header.add(Lists.newArrayList("更新时间")); data.add(dataLog.getSourceName());
// return header; String status = dataLog.getStatus().toLowerCase();
// } String statusKey = "NeoLight.logStatus." + status;
// String statusMsg = MessageUtils.getSmfClientMsg(statusKey,locale,statusKey);
// @Override data.add(statusMsg);
// public List<List<Object>> getPageData(Query query, Pageable pageable) { data.add(dataLog.getOperator());
// List<List<Object>> dataList = new ArrayList<>(); data.add(createDate);
// List<DataLog> dataLogList = dataLogManager.findByQuery(query, pageable); data.add(updateDate);
// DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dataList.add(data);
// for (DataLog dataLog : dataLogList) { }
// List<Object> data = new ArrayList<>(); return dataList;
// }
// data.add(dataLog.getDetailTypeStr());//"类型" });
// data.add(dataLog.getSourceName());//"单号" log.info("出入库日志导出完成");
// data.add(dataLog.getPosName());//"料仓名称"
// data.add(dataLog.getBarcode());//"条码编号"
// data.add(dataLog.getPartNumber());//"料件编号"
// data.add(dataLog.getBatchInfo());//"批次"
// data.add(dataLog.getReelQty());//"数量"
// data.add(dataLog.getOperator());//"用户"
//
// data.add(dataLog.getProvider());//"供应商"
// data.add(dataLog.getSubSourceInfo());//"来源二"
// data.add(dataLog.getStatusStr());//"状态"
// String updateTimeStr = dateFormat.format(dataLog.getUpdateDate());
// data.add(updateTimeStr);//"更新时间"
// dataList.add(data);
// }
// return dataList;
// }
// });
} }
@ApiOperation("获取某个分组队列中的任务") @ApiOperation("获取某个分组队列中的任务")
......
...@@ -3,11 +3,15 @@ package com.neotel.smfcore.core.system.service.manager; ...@@ -3,11 +3,15 @@ package com.neotel.smfcore.core.system.service.manager;
import com.neotel.smfcore.common.base.IBaseManager; import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.system.service.po.DataLog; import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.custom.micron20031.bean.SpDailyLog; import com.neotel.smfcore.custom.micron20031.bean.SpDailyLog;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Query;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
public interface IDataLogManager extends IBaseManager<DataLog> { public interface IDataLogManager extends IBaseManager<DataLog> {
List<DataLog> findByQuery(Query query, Pageable pageable);
List<DataLog> findUnFinishedTasks(); List<DataLog> findUnFinishedTasks();
List<SpDailyLog> getSpDailyLogs(Date start, Date end, String inoutType); List<SpDailyLog> getSpDailyLogs(Date start, Date end, String inoutType);
......
...@@ -47,6 +47,11 @@ public class DataLogManagerImpl implements IDataLogManager { ...@@ -47,6 +47,11 @@ public class DataLogManagerImpl implements IDataLogManager {
} }
@Override @Override
public List<DataLog> findByQuery(Query query, Pageable pageable) {
return dataLogDao.findByQuery(query, pageable);
}
@Override
public List<DataLog> findByQuery(Query query) { public List<DataLog> findByQuery(Query query) {
return dataLogDao.findByQuery(query); return dataLogDao.findByQuery(query);
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!