Subversion Repositories SmartDukaan

Rev

Rev 34576 | Rev 34592 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 34576 Rev 34586
Line 52... Line 52...
52
    @Autowired
52
    @Autowired
53
    private NotificationService notificationService;
53
    private NotificationService notificationService;
54
 
54
 
55
    public void processBids(ProfitMandiConstants.BID_CRON_ENUM type) throws Exception {
55
    public void processBids(ProfitMandiConstants.BID_CRON_ENUM type) throws Exception {
56
        List<Liquidation> liquidations;
56
        List<Liquidation> liquidations;
-
 
57
        List<Map<String, Object>> liquidationList = new ArrayList<>();
57
        if (type.equals(ProfitMandiConstants.BID_CRON_ENUM.YESTERDAY)){
58
        if (type.equals(ProfitMandiConstants.BID_CRON_ENUM.YESTERDAY)){
58
            liquidations = liquidationRepository.selectAllByEndDate(LocalDateTime.now().minusDays(1));
59
            liquidations = liquidationRepository.selectAllByEndDate(LocalDateTime.now().minusDays(1));
59
        } else {
60
        } else {
60
            liquidations = liquidationRepository.selectAllByEndDate(LocalDateTime.now());
61
            liquidations = liquidationRepository.selectAllByEndDate(LocalDateTime.now());
61
        }
62
        }
62
        LOGGER.info("liquidations: {}",liquidations);
63
        LOGGER.info("liquidations for {}: {}",type,liquidations);
63
 
64
 
64
        if (liquidations.size() > 0) {
65
        if (liquidations.size() > 0) {
65
            for (Liquidation liquidation : liquidations) {
66
            for (Liquidation liquidation : liquidations) {
-
 
67
                Map<String, Object> liquidationsMap = new HashMap<>();
66
                try {
68
                try {
67
                    List<Item> items = itemRepository.selectAllByCatalogItemId(liquidation.getCatalogId());
69
                    List<Item> items = itemRepository.selectAllByCatalogItemId(liquidation.getCatalogId());
68
                    if (items.size() > 0) {
70
                    if (items.size() > 0) {
69
                        long remainingQty = 0;
71
                        long remainingQty = 0;
70
                        for (Item item : items) {
72
                        for (Item item : items) {
71
                            List<SaholicCISTable> saholicCISTable = saholicCISTableRepository.selectAllByItemId(item.getId());
73
                            List<SaholicCISTable> saholicCISTable = saholicCISTableRepository.selectAllByItemId(item.getId());
72
                            remainingQty += saholicCISTable.stream().mapToInt(SaholicCISTable::getAvailability).sum();
74
                            remainingQty += saholicCISTable.stream().mapToInt(SaholicCISTable::getAvailability).sum();
73
                        }
75
                        }
74
                        List<Bid> bids = bidRepository.selectAllBidByLiquidationIdAndStatus(liquidation.getId(), Arrays.asList(ProfitMandiConstants.BID_ENUM.PENDING, ProfitMandiConstants.BID_ENUM.PROCESSING));
76
                        List<Bid> bids = bidRepository.selectAllBidByLiquidationIdAndStatus(liquidation.getId(), Arrays.asList(ProfitMandiConstants.BID_ENUM.PENDING, ProfitMandiConstants.BID_ENUM.PROCESSING));
-
 
77
                        liquidationsMap.put("id",liquidation.getId());
-
 
78
                        liquidationsMap.put("catalog",items.get(0).getItemDescription());
-
 
79
                        liquidationsMap.put("basePrice",liquidation.getPrice());
-
 
80
                        liquidationsMap.put("openingStock",liquidation.getQuantity());
-
 
81
                        liquidationsMap.put("endDate",StringUtils.toLocalDateTime(String.valueOf(liquidation.getEndDate())));
-
 
82
                        List<Bid> bidsList = new ArrayList<>();
75
 
-
 
-
 
83
                        if (bids.size() > 0) {
76
                        for (Bid bid : bids) {
84
                            for (Bid bid : bids) {
77
                            LOGGER.info("remainingQty: {}",remainingQty);
85
                                LOGGER.info("remainingQty: {}", remainingQty);
78
                            if (remainingQty >= bid.getQuantity()) {
86
                                if (remainingQty >= bid.getQuantity()) {
79
                                try {
87
                                    try {
80
                                    List<BulkOrderModel> bulkOrderModels = new ArrayList<>();
88
                                        List<BulkOrderModel> bulkOrderModels = new ArrayList<>();
81
                                    BulkOrderModel bulkOrderModel = new BulkOrderModel();
89
                                        BulkOrderModel bulkOrderModel = new BulkOrderModel();
82
                                    bulkOrderModel.setRowIndex(bid.getId());
90
                                        bulkOrderModel.setRowIndex(bid.getId());
83
                                    bulkOrderModel.setFofoId(bid.getFofoId());
91
                                        bulkOrderModel.setFofoId(bid.getFofoId());
84
                                    bulkOrderModel.setItemId(items.get(0).getId());
92
                                        bulkOrderModel.setItemId(items.get(0).getId());
85
                                    bulkOrderModel.setQuantity(bid.getQuantity());
93
                                        bulkOrderModel.setQuantity(bid.getQuantity());
86
                                    bulkOrderModel.setDescription(items.get(0).getItemDescription());
94
                                        bulkOrderModel.setDescription(items.get(0).getItemDescription());
87
                                    bulkOrderModel.setItemPrice(bid.getBiddingAmount());
95
                                        bulkOrderModel.setItemPrice(bid.getBiddingAmount());
88
 
96
 
89
                                    bulkOrderModels.add(bulkOrderModel);
97
                                        bulkOrderModels.add(bulkOrderModel);
90
 
98
 
91
                                    bulkOrderService.generatePurchaseOrder(bulkOrderModels, bid.getFofoId(), ProfitMandiConstants.PO_TYPE.AUTO, type);
99
                                        bulkOrderService.generatePurchaseOrder(bulkOrderModels, bid.getFofoId(), ProfitMandiConstants.PO_TYPE.AUTO, type);
92
                                    remainingQty -= bid.getQuantity();
100
                                        remainingQty -= bid.getQuantity();
93
                                } catch (Exception exception){
101
                                    } catch (Exception exception) {
94
                                    LOGGER.info("generatePurchaseOrder if exception: ",exception);
102
                                        LOGGER.info("generatePurchaseOrder if exception: ", exception);
95
                                }
103
                                    }
96
                            } else {
104
                                } else {
97
                                try {
105
                                    try {
98
                                    bidService.cancelYesterdayProcessBid(bid);
106
                                        bidService.cancelYesterdayProcessBid(bid);
99
                                } catch (Exception exception){
107
                                    } catch (Exception exception) {
100
                                    LOGGER.info("generatePurchaseOrder else exception: ",exception);
108
                                        LOGGER.info("generatePurchaseOrder else exception: ", exception);
-
 
109
                                    }
101
                                }
110
                                }
-
 
111
                                bidsList.add(bid);
102
                            }
112
                            }
103
                        }
113
                        }
104
                        if (remainingQty <= 0) {
114
                        liquidationsMap.put("bids",bidsList);
105
                            bidService.sendSummaryMailToUserAndManagers(liquidation.getCreatedBy(), bids, liquidation);
-
 
106
                            LOGGER.info("generatePurchaseOrder qty exhausted: {}",remainingQty);
-
 
107
                        }
-
 
108
                        liquidation.setQuantity((int) remainingQty);
115
                        liquidation.setQuantity((int) remainingQty);
109
                        liquidation.setStatus(ProfitMandiConstants.LIQUIDATION_ENUM.CLOSED);
116
                        liquidation.setStatus(ProfitMandiConstants.LIQUIDATION_ENUM.CLOSED);
-
 
117
                        LOGGER.info("generatePurchaseOrder qty final: {} = {}",remainingQty, liquidation.getStatus());
-
 
118
                        liquidationsMap.put("closingStock",liquidation.getQuantity());
110
                    }
119
                    }
111
                } catch (Exception exception){
120
                } catch (Exception exception){
112
                    LOGGER.info("generatePurchaseOrder loop: {}",liquidation);
121
                    LOGGER.info("generatePurchaseOrder loop: ",exception);
113
                }
122
                }
-
 
123
                liquidationList.add(liquidationsMap);
114
            }
124
            }
-
 
125
            LOGGER.info("liquidationList: {}",liquidationList);
-
 
126
            bidService.sendLiquidationReport(liquidationList);
115
        }
127
        }
116
    }
128
    }
117
 
129
 
118
    public void consolidatedBiddingMessage() throws Exception {
130
    public void consolidatedBiddingMessage() throws Exception {
119
        List<Liquidation> liquidations = liquidationRepository.selectAllByStatus(ProfitMandiConstants.LIQUIDATION_ENUM.PUBLISHED);
131
        List<Liquidation> liquidations = liquidationRepository.selectAllByStatus(ProfitMandiConstants.LIQUIDATION_ENUM.PUBLISHED);