Commit c4315609 LN

1.库存报表需要显示格口号,品名,库别。2.出库单不显示问题修改

1 个父辈 a396b924
......@@ -76,8 +76,14 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
}
@Override
public LiteOrder createWithItems(LiteOrder liteOrder) throws ValidateException {
liteOrder.setId(liteOrderDao.findOne(Query.query(Criteria.where("orderNo")
.is(liteOrder.getOrderNo()))).getId());
//查找工单是否已存在
LiteOrder old=liteOrderDao.findOne(Query.query(Criteria.where("orderNo")
.is(liteOrder.getOrderNo())));
if(old!=null){
liteOrder.setId(old.getId());
}
// liteOrder.setId(liteOrderDao.findOne(Query.query(Criteria.where("orderNo")
// .is(liteOrder.getOrderNo()))).getId());
liteOrder = save(liteOrder);
List<LiteOrderItem> items = Lists.newArrayList();
for (LiteOrderItem liteOrderItem : liteOrder.getOrderItems()) {
......
......@@ -202,47 +202,52 @@ public class ReportController {
@Autowired
private InventoryItemMapper inventoryItemMapper;
private List<InventoryItemDto> getInventory(InventoryQueryCriteria criteria, Pageable pageable){
Map<String, InventoryItem> inventoryItemMap = dataCache.getAllInventory(criteria.getStorageIdList(),criteria.getBlurry());
private List<InventoryItemDto> getInventory(InventoryQueryCriteria criteria, Pageable pageable) {
Map<String, InventoryItem> inventoryItemMap = dataCache.getAllInventory(criteria.getStorageIdList(), criteria.getBlurry());
List<InventoryItem> list = Lists.newArrayList(inventoryItemMap.values());
List<InventoryItemDto> dtoList = inventoryItemMapper.toDto(list);
List<InventoryItemDto> resultList = new ArrayList<>();
//过滤掉没有库存的
for (InventoryItemDto inventoryItemDto : dtoList) {
if(inventoryItemDto.getStockReel() > 0){
if (inventoryItemDto.getStockReel() > 0) {
resultList.add(inventoryItemDto);
}
}
Comparator<InventoryItemDto> comparator = Comparator.comparing(InventoryItemDto::getPartNumber);
Sort.Order lockReelOrder = pageable.getSort().getOrderFor("lockReel");
if(lockReelOrder != null){
comparator = Comparator.comparing(InventoryItemDto::getStockReel,Comparator.nullsFirst(Integer::compareTo));
if(lockReelOrder.isDescending()){
comparator = comparator.reversed();
try {
Comparator<InventoryItemDto> comparator = Comparator.comparing(InventoryItemDto::getPartNumber);
Sort.Order lockReelOrder = pageable.getSort().getOrderFor("lockReel");
if (lockReelOrder != null) {
comparator = Comparator.comparing(InventoryItemDto::getStockReel, Comparator.nullsFirst(Integer::compareTo));
if (lockReelOrder.isDescending()) {
comparator = comparator.reversed();
}
}
}
Sort.Order stockCountOrder = pageable.getSort().getOrderFor("stockCount");
if(stockCountOrder != null){
comparator = Comparator.comparing(InventoryItemDto::getStockCount,Comparator.nullsFirst(Integer::compareTo));
if(stockCountOrder.isDescending()){
comparator = comparator.reversed();
Sort.Order stockCountOrder = pageable.getSort().getOrderFor("stockCount");
if (stockCountOrder != null) {
comparator = Comparator.comparing(InventoryItemDto::getStockCount, Comparator.nullsFirst(Integer::compareTo));
if (stockCountOrder.isDescending()) {
comparator = comparator.reversed();
}
}
}
Sort.Order partNumberOrder = pageable.getSort().getOrderFor("partNumber");
if(partNumberOrder != null){
comparator = Comparator.comparing(InventoryItemDto::getPartNumber,Comparator.nullsFirst(String::compareTo));
if(partNumberOrder.isDescending()){
comparator = comparator.reversed();
Sort.Order partNumberOrder = pageable.getSort().getOrderFor("partNumber");
if (partNumberOrder != null) {
comparator = Comparator.comparing(item -> item.getPartNumber() != null ? item.getPartNumber() : "", Comparator.nullsFirst(String::compareTo));
if (partNumberOrder.isDescending()) {
comparator = comparator.reversed();
}
}
}
resultList = resultList.stream().sorted(comparator).collect(Collectors.toList());
resultList = resultList.stream().sorted(comparator).collect(Collectors.toList());
// System.out.println("================");
// for (InventoryItemDto dto : resultList) {
// System.out.println(dto.getPartNumber() + "---" + dto.getStockCount() + " --- " + dto.getStockReel());
// }
} catch (Exception ex) {
log.info("pn库存排序出错:" + ex.toString());
}
return resultList;
}
......
......@@ -54,6 +54,12 @@ public class InventoryItem {
*/
private String storageName ;
private String wareHouseCode;
private String posName;
private String gekouName;
private String partname;
/**
* 绑定数量
*/
......
......@@ -39,9 +39,12 @@ public class InventoryItemDto implements Serializable {
@ApiModelProperty("库别")
private String wareHouseCode;
private String wareHouseCode="";
@ApiModelProperty("品名")
private String partname;
private String partname="";
@ApiModelProperty("格口号")
private String gekouName="";
}
......@@ -995,8 +995,20 @@ public class StoragePosManagerImpl implements IStoragePosManager {
Aggregation agg = Aggregation.newAggregation(
Aggregation.match(c),
Aggregation.unwind("barcode.subCodeList"),
Aggregation.group("barcode.subCodeList.partNumber").sum("barcode.subCodeList.amount").as("stockCount").count().as("stockReel"),
Aggregation.project("stockCount", "stockReel").and("partNumber").previousOperation()
Aggregation.group("barcode.subCodeList.partNumber")
.first("barcode.subCodeList.partNumber").as("partNumber")
.first("barcode.barcode").as("boxName")
.first("barcode.subCodeList.barcode").as("gekouName")
.first("barcode.subCodeList.pn").as("partname")
.first("wareHouseCode").as("wareHouseCode")
.sum("barcode.subCodeList.amount").as("stockCount").count().as("stockReel"),
Aggregation.project("stockCount", "stockReel")
.and("partNumber").as("partNumber")
.and("boxName").as("boxName")
.and("partname").as("partname")
.and("gekouName").as("gekouName")
.and("wareHouseCode").as("wareHouseCode")
);
AggregationResults<InventoryItem> results = storagePosDao.getMongoTemplate().aggregate(agg, StoragePos.class, InventoryItem.class);
return results.getMappedResults();
......
......@@ -27,6 +27,8 @@ import java.util.Map;
@Component
public class LuxsanSpApi extends DefaultSmfApiListener {
public static boolean Debug=false;
public static String GetSpareNoUrl;
public static String SpareInHourseUrl;
private static String GetUnclaimedUrl;
......@@ -86,6 +88,17 @@ public class LuxsanSpApi extends DefaultSmfApiListener {
}
public static List<GetUnclaimedResult> getUnclaimedDetails(GetUnclaimedRequest request) {
if(Debug) {
String msg = "{\"msg\":\"操作成功\",\"code\":200,\"data\":[{\"searchValue\":null,\"createBy\":null,\"createTime\":\"2024-08-02 08:40:43\",\"updateBy\":null,\"updateTime\":\"2024-08-02 08:41:26\",\"remark\":null,\"params\":{},\"id\":null,\"flag\":null,\"status\":\"1\",\"orderNo\":\"SA2024080200223\",\"applicantNo\":null,\"applicantName\":null,\"applicantTime\":null,\"project\":null,\"process\":null,\"functionDept\":\"MLB MFG\",\"section\":null,\"line\":null,\"floor\":null,\"delFlag\":null,\"whCode\":null,\"whCodes\":null,\"provideNo\":null,\"receiveNo\":null,\"estimatedTime\":null,\"deptId\":220,\"spareApplyDetail\":[{\"searchValue\":null,\"createBy\":null,\"createTime\":null,\"updateBy\":null,\"updateTime\":null,\"remark\":null,\"params\":{},\"id\":null,\"orderNo\":\"SA2024080200223\",\"deptId\":220,\"partNo\":\"1950130060061A\",\"partName\":\"DEK300mm阶梯刮刀片刀刃0.15刀身0.3|DEK\",\"groupCode\":null,\"applyQty\":5,\"giveOutQty\":null,\"expectQty\":5,\"delFlag\":null,\"spareApplyDetail\":null}]}]}\n";
LuxsanSpApiResult lizhenApiResult = JSONObject.parseObject(msg, LuxsanSpApiResult.class);
List<GetUnclaimedResult> testO = JSONObject.parseArray(lizhenApiResult.getData(), GetUnclaimedResult.class);
if (testO != null && !testO.isEmpty()) {
return testO;
} else {
return new ArrayList<>();
}
}
String url = null;
try {
url = GetUnclaimedUrl + getQueryStr(request);
......
......@@ -222,7 +222,7 @@ public class SpareNoCache {
String pn = detail.getPartno();
Barcode newPn = new Barcode();
newPn.setPn(pn);
newPn.setPn(detail.getPartname());
newPn.setPartNumber(pn);
newPn.setAmount(0);
newPn.setInitialAmount(0);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!