Commit 9d89ae24 张少辉

1.增加缺料报表信息

1 个父辈 a651f240
......@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.order.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Query;
import java.util.Collection;
......@@ -17,4 +18,6 @@ public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
LiteOrderItem findOne(Query query);
Collection<LiteOrderItem> batchSave(List<LiteOrderItem> orderItemList);
List<LiteOrderItem> findByQuery(Query query, Pageable pageable);
}
......@@ -2,11 +2,8 @@ package com.neotel.smfcore.core.order.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.order.service.dao.ILiteOrderDao;
import com.neotel.smfcore.core.order.service.dao.ILiteOrderItemDao;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
......@@ -47,6 +44,11 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager {
return liteOrderItemDao.insertAll(orderItemList);
}
@Override
public List<LiteOrderItem> findByQuery(Query query, Pageable pageable) {
return liteOrderItemDao.findByQuery(query, pageable);
}
@Override
public LiteOrderItem get(String id) {
......
......@@ -186,59 +186,128 @@ public class OuterReportController {
@RequestMapping("/lackPicking")
@AnonymousAccess
public PageData lackPicking(ReportQueryCondition queryCondition, Pageable pageable) {
PageData resultData = new PageData();
List<String> orderList = new ArrayList<>();
Collection<LiteOrder> liteOrders = liteOrderCache.getAllLiteOrder();
if (liteOrders != null && !liteOrders.isEmpty()) {
List<LiteOrderItem> lackItems = getLackItems(liteOrders, queryCondition);
if (lackItems != null && !lackItems.isEmpty()) {
for (LiteOrderItem lackItem : lackItems) {
lackItem.setPlantCode(plant);
lackItem.setFactory(factory);
}
for (LiteOrder order : liteOrders) {
if (order.isTaskFinished() || order.isOutTails()) {
orderList.add(order.getOrderNo());
}
resultData.setContent(orderItemMapper.toDto(lackItems));
resultData.setTotalElements(lackItems.size());
}
return resultData;
if (orderList == null || orderList.isEmpty()) {
return new PageData<>();
}
Query query = new Query();
String pn = queryCondition.getPn();
String orderNo = queryCondition.getOrderNo();
String warehouseCode = queryCondition.getWarehouseCode();
Criteria lackOrCriteria = new Criteria().orOperator(
Criteria.where("lackNum").gt(0),
Criteria.where("lackReel").gt(0)
);
Criteria criteria = Criteria.where("orderNo").in(orderList)
.orOperator(lackOrCriteria);
if (StringUtils.isNotEmpty(pn)) {
criteria.andOperator(Criteria.where("pn").is(pn));
}
if (StringUtils.isNotEmpty(orderNo)) {
criteria.andOperator(Criteria.where("orderNo").is(orderNo));
}
if (StringUtils.isNotEmpty(warehouseCode)) {
criteria.andOperator(Criteria.where("warehouse").is(warehouseCode));
}
query.addCriteria(criteria);
return liteOrderItemManager.findByPage(query, pageable);
}
@ApiOperation("缺料导出")
@RequestMapping("/lackPicking/download")
@AnonymousAccess
public void lackPickingDownload(ReportQueryCondition queryCondition, Pageable pageable, HttpServletResponse response) {
PageData data = lackPicking(queryCondition, null);
List<OrderItemDto> dtos = data.getContent();
if (dtos != null && !dtos.isEmpty()) {
List<Map<String, Object>> results = new ArrayList<>();
for (OrderItemDto dto : dtos) {
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("厂别",getData(dto.getPlantCode()));
resultMap.put("厂区",factory);
resultMap.put("库别",getData(dto.getWarehouseCode()));
resultMap.put("楼层",getData(dto.getLine()));
resultMap.put("Picking ID",getData(dto.getOrderNo()));
resultMap.put("工单号",getData(dto.getMo()));
resultMap.put("55料号",getData(null));
resultMap.put("工单套数",getData(null));
resultMap.put("料号",getData(dto.getPn()));
resultMap.put("描述",getData(null));
resultMap.put("需求站别",getData(dto.getSide()));
resultMap.put("需求数量",getData(dto.getNeedNum()));
resultMap.put("需求卷数",getData(dto.getNeedReelCount()));
resultMap.put("发料数量",getData(dto.getTotalOutNum()));
resultMap.put("发料卷数",getData(dto.getTotalOutReelCount()));
resultMap.put("缺料数量",getData(dto.getLackNum()));
resultMap.put("缺料卷数",getData(dto.getLackReel()));
resultMap.put("是否超发",dto.isExcess() ? "是" : "否");
results.add(resultMap);
}
try {
FileUtil.downloadExcel(results, response);
} catch (IOException e) {
e.printStackTrace();
log.info("缺料清单导出失败--" + e.getMessage());
public void lackPickingDownload(ReportQueryCondition queryCondition, Pageable pageable, HttpServletResponse response) throws IOException {
List<String> orderList = new ArrayList<>();
Collection<LiteOrder> liteOrders = liteOrderCache.getAllLiteOrder();
for (LiteOrder order : liteOrders) {
if (order.isTaskFinished() || order.isOutTails()) {
orderList.add(order.getOrderNo());
}
}
if (orderList == null || orderList.isEmpty()) {
return;
}
Query query = new Query();
String pn = queryCondition.getPn();
String orderNo = queryCondition.getOrderNo();
String warehouseCode = queryCondition.getWarehouseCode();
Criteria lackOrCriteria = new Criteria().orOperator(
Criteria.where("lackNum").gt(0),
Criteria.where("lackReel").gt(0)
);
Criteria criteria = Criteria.where("orderNo").in(orderList)
.orOperator(lackOrCriteria);
if (StringUtils.isNotEmpty(pn)) {
criteria.andOperator(Criteria.where("pn").is(pn));
}
if (StringUtils.isNotEmpty(orderNo)) {
criteria.andOperator(Criteria.where("orderNo").is(orderNo));
}
if (StringUtils.isNotEmpty(warehouseCode)) {
criteria.andOperator(Criteria.where("warehouse").is(warehouseCode));
}
query.addCriteria(criteria);
FileUtil.downloadExcel(query, pageable, response, new IExcelDownLoad() {
@Override
public List<List<String>> getHeader() {
List<List<String>> headerList = new ArrayList<>();
headerList.add(Arrays.asList("厂区"));
headerList.add(Arrays.asList("行号"));
headerList.add(Arrays.asList("替代料分组"));
headerList.add(Arrays.asList("优先级"));
headerList.add(Arrays.asList("挑料单号"));
headerList.add(Arrays.asList("料号"));
headerList.add(Arrays.asList("库别"));
headerList.add(Arrays.asList("机种"));
headerList.add(Arrays.asList("需求数量"));
headerList.add(Arrays.asList("需求卷数"));
headerList.add(Arrays.asList("面别"));
headerList.add(Arrays.asList("批次"));
headerList.add(Arrays.asList("制造商"));
headerList.add(Arrays.asList("缺料数量"));
headerList.add(Arrays.asList("缺料卷数"));
headerList.add(Arrays.asList("创建日期"));
headerList.add(Arrays.asList("更新日期"));
return headerList;
}
@Override
public List<List<Object>> getPageData(Query query, Pageable pageable) {
List<List<Object>> resultList = new ArrayList<>();
List<LiteOrderItem> dtos = liteOrderItemManager.findByQuery(query, pageable);
if (dtos != null && !dtos.isEmpty()) {
for (LiteOrderItem orderItem : dtos) {
List<Object> rowList = new ArrayList<>();
rowList.add(getData(orderItem.getPlantCode()));
rowList.add(getData(orderItem.getItemId()));
rowList.add(getData(orderItem.getMg()));
rowList.add(getData(orderItem.getPriority()));
rowList.add(getData(orderItem.getPickingId()));
rowList.add(getData(orderItem.getPn()));
rowList.add(getData(orderItem.getWarehouse()));
rowList.add(getData(orderItem.getModel()));
rowList.add(getData(orderItem.getReqQty()));
rowList.add(getData(orderItem.getReqReel()));
rowList.add(getData(orderItem.getFace()));
rowList.add(getData(orderItem.getBatchCode()));
rowList.add(getData(orderItem.getBrand()));
rowList.add(getData(orderItem.getLackNum()));
rowList.add(getData(orderItem.getLackReel()));
rowList.add(getData(orderItem.getCreateAt()));
rowList.add(getData(orderItem.getUpdateAt()));
resultList.add(rowList);
}
}
return resultList;
}
});
}
@ApiOperation("备料清单")
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!