Search in sources :

Example 6 with ProcurementPlanDetail

use of com.fruit.manage.model.ProcurementPlanDetail in project fruit-manage by liuzhaozhao.

the class PlanDetailController method uploaderExcelTwo.

public void uploaderExcelTwo() {
    try {
        String fileName = getPara("fileName");
        String filePath = CommonController.FILE_PATH + File.separator + fileName;
        Iterator<ExcelRdRow> iterator = PlanDetailController.readExcel(filePath).iterator();
        Integer count = 0;
        Map<String, ProcurementPlanDetail> mapKeyOne = new HashMap<>();
        Map<String, ProcurementPlanDetail> mapKeyTwo = new HashMap<>();
        String[] createTimes = new String[2];
        // 循环Excel行
        while (iterator.hasNext()) {
            ExcelRdRow next = iterator.next();
            List<Object> row = next.getRow();
            count++;
            if (count == 1) {
                String createTimeStr = ((String) row.get(0)).split(" ")[0].substring(5);
                createTimes[0] = DateAndStringFormat.getNextDay(createTimeStr, "-1") + " 12:00:00";
                createTimes[1] = createTimeStr + " 11:59:59";
                // 根据时间获取所有的采购计划
                List<ProcurementPlanDetail> procurementPlanDetailList = ProcurementPlanDetail.dao.getAllPPlanDetail(createTimes);
                if (procurementPlanDetailList != null && procurementPlanDetailList.size() > 0) {
                    // 循环所有的采购计划数据到Map临时数据
                    for (ProcurementPlanDetail pPlanDetail : procurementPlanDetailList) {
                        // key为productStandardId,value为ProcurementPlanDetail
                        mapKeyOne.put(pPlanDetail.getProductStandardId() + "", pPlanDetail);
                        // key为productStandardId+"-"+procurementId,value为ProcurementPlanDetail
                        mapKeyTwo.put(pPlanDetail.getProductStandardId() + "-" + pPlanDetail.getProcurementId(), pPlanDetail);
                    }
                }
            }
            if (count > 2) {
                if (count == 3) {
                    // 根据时间删除所有的采购计划
                    ProcurementPlanDetail.dao.delAllPPlanDetailByTime(createTimes);
                }
                ProcurementPlanDetail pPDtailTwo = mapKeyTwo.get((Integer) row.get(0) + "-" + (Integer) row.get(5));
                if (pPDtailTwo != null) {
                    pPDtailTwo.setId(null);
                    pPDtailTwo.setProductStandardId((int) row.get(0));
                    pPDtailTwo.setProductName((String) row.get(1));
                    pPDtailTwo.setProductStandardName((String) row.get(2));
                    pPDtailTwo.setProcurementNum((int) row.get(3));
                    pPDtailTwo.setProcurementNeedPrice(new BigDecimal((Double) row.get(4)));
                    pPDtailTwo.setProcurementId((int) row.get(5));
                    pPDtailTwo.setProcurementRemark((String) row.get(6));
                    BigDecimal pNeedPrice = new BigDecimal((Double) row.get(4));
                    BigDecimal pNum = new BigDecimal((int) row.get(3));
                    pPDtailTwo.setProcurementTotalPrice(pNeedPrice.multiply(pNum));
                    pPDtailTwo.setUpdateTime(new Date());
                    pPDtailTwo.save();
                } else {
                    ProcurementPlanDetail pPDtailOne = mapKeyOne.get(row.get(0) + "");
                    if (pPDtailOne != null) {
                        pPDtailOne.setId(null);
                        pPDtailOne.setProductStandardId((int) row.get(0));
                        pPDtailOne.setProductName((String) row.get(1));
                        pPDtailOne.setProductStandardName((String) row.get(2));
                        pPDtailOne.setProcurementNum((int) row.get(3));
                        pPDtailOne.setProcurementNeedPrice(new BigDecimal((Double) row.get(4)));
                        pPDtailOne.setProcurementId((int) row.get(5));
                        pPDtailOne.setProcurementRemark((String) row.get(6));
                        BigDecimal pNeedPrice = new BigDecimal((Double) row.get(4));
                        BigDecimal pNum = new BigDecimal((int) row.get(3));
                        pPDtailOne.setProcurementTotalPrice(pNeedPrice.multiply(pNum));
                        pPDtailOne.setUpdateTime(new Date());
                        pPDtailOne.save();
                    }
                }
            }
        }
        renderJson(new ArrayList<>().add(0));
    } catch (Exception e) {
        renderJson(new ArrayList<>().add(1));
    }
}
Also used : ProcurementPlanDetail(com.fruit.manage.model.ProcurementPlanDetail) BigDecimal(java.math.BigDecimal) IOException(java.io.IOException) ExcelRdException(com.fruit.manage.util.excelRd.ExcelRdException) ExcelRdRow(com.fruit.manage.util.excelRd.ExcelRdRow)

Aggregations

ProcurementPlanDetail (com.fruit.manage.model.ProcurementPlanDetail)6 ProcurementPlan (com.fruit.manage.model.ProcurementPlan)3 ExcelRdException (com.fruit.manage.util.excelRd.ExcelRdException)3 IOException (java.io.IOException)3 User (com.fruit.manage.model.User)2 ExcelRdRow (com.fruit.manage.util.excelRd.ExcelRdRow)2 BigDecimal (java.math.BigDecimal)2 ExcelException (com.fruit.manage.util.excel.ExcelException)1 ExcelRd (com.fruit.manage.util.excelRd.ExcelRd)1 ExcelRdTypeEnum (com.fruit.manage.util.excelRd.ExcelRdTypeEnum)1 Before (com.jfinal.aop.Before)1