Commit 9d89ae24 张少辉

1.增加缺料报表信息

1 个父辈 a651f240
...@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.order.service.manager; ...@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.order.service.manager;
import com.neotel.smfcore.common.base.IBaseManager; import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem; import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import java.util.Collection; import java.util.Collection;
...@@ -17,4 +18,6 @@ public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> { ...@@ -17,4 +18,6 @@ public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
LiteOrderItem findOne(Query query); LiteOrderItem findOne(Query query);
Collection<LiteOrderItem> batchSave(List<LiteOrderItem> orderItemList); 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; ...@@ -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.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException; 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.dao.ILiteOrderItemDao;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager; 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 com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -47,6 +44,11 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager { ...@@ -47,6 +44,11 @@ public class LiteOrderItemManagerImpl implements ILiteOrderItemManager {
return liteOrderItemDao.insertAll(orderItemList); return liteOrderItemDao.insertAll(orderItemList);
} }
@Override
public List<LiteOrderItem> findByQuery(Query query, Pageable pageable) {
return liteOrderItemDao.findByQuery(query, pageable);
}
@Override @Override
public LiteOrderItem get(String id) { public LiteOrderItem get(String id) {
......
...@@ -186,59 +186,128 @@ public class OuterReportController { ...@@ -186,59 +186,128 @@ public class OuterReportController {
@RequestMapping("/lackPicking") @RequestMapping("/lackPicking")
@AnonymousAccess @AnonymousAccess
public PageData lackPicking(ReportQueryCondition queryCondition, Pageable pageable) { public PageData lackPicking(ReportQueryCondition queryCondition, Pageable pageable) {
PageData resultData = new PageData(); List<String> orderList = new ArrayList<>();
Collection<LiteOrder> liteOrders = liteOrderCache.getAllLiteOrder(); Collection<LiteOrder> liteOrders = liteOrderCache.getAllLiteOrder();
if (liteOrders != null && !liteOrders.isEmpty()) { for (LiteOrder order : liteOrders) {
List<LiteOrderItem> lackItems = getLackItems(liteOrders, queryCondition); if (order.isTaskFinished() || order.isOutTails()) {
if (lackItems != null && !lackItems.isEmpty()) { orderList.add(order.getOrderNo());
for (LiteOrderItem lackItem : lackItems) {
lackItem.setPlantCode(plant);
lackItem.setFactory(factory);
}
} }
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("缺料导出") @ApiOperation("缺料导出")
@RequestMapping("/lackPicking/download") @RequestMapping("/lackPicking/download")
@AnonymousAccess @AnonymousAccess
public void lackPickingDownload(ReportQueryCondition queryCondition, Pageable pageable, HttpServletResponse response) { public void lackPickingDownload(ReportQueryCondition queryCondition, Pageable pageable, HttpServletResponse response) throws IOException {
PageData data = lackPicking(queryCondition, null); List<String> orderList = new ArrayList<>();
List<OrderItemDto> dtos = data.getContent(); Collection<LiteOrder> liteOrders = liteOrderCache.getAllLiteOrder();
if (dtos != null && !dtos.isEmpty()) { for (LiteOrder order : liteOrders) {
List<Map<String, Object>> results = new ArrayList<>(); if (order.isTaskFinished() || order.isOutTails()) {
for (OrderItemDto dto : dtos) { orderList.add(order.getOrderNo());
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());
} }
} }
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("备料清单") @ApiOperation("备料清单")
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!