第十二节 Java代码导入excel

1 excel导入

1.1 ExceIUtil

package com.yinghui.soft.utils;

import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * @Project:mesproject
 * @Author:ydfeng
 * @Description: Excel工具处理类
 * @Date:2018/3/16 16:10
 */
public class ExcelUtil {

    private static Logger logger = Logger.getLogger(ExcelUtil.class);
    private final static String xls = "xls";
    private final static String xlsx = "xlsx";

    /**
     * 读入excel文件,解析后返回
     *
     * @param file
     * @throws IOException
     */
    public static List<String[]> readExcel(MultipartFile file) throws IOException {
        //检查文件
        checkFile(file);
        //获得Workbook工作薄对象
        Workbook workbook = getWorkBook(file);
        //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回
        List<String[]> list = new ArrayList<String[]>();
        if (workbook != null) {
            for (int sheetNum = 0; sheetNum < workbook.getNumberOfSheets(); sheetNum++) {
                //获得当前sheet工作表
                Sheet sheet = workbook.getSheetAt(sheetNum);
                if (sheet == null) {
                    continue;
                }
                //获得当前sheet的开始行
                int firstRowNum = sheet.getFirstRowNum();
                //获得当前sheet的结束行
                int lastRowNum = sheet.getLastRowNum();
                int arrLength = sheet.getRow(firstRowNum).getPhysicalNumberOfCells();
                //循环除了第一行的所有行
                for (int rowNum = firstRowNum + 1; rowNum <= lastRowNum; rowNum++) {
                    //获得当前行
                    Row row = sheet.getRow(rowNum);
                    if (row == null) {
                        continue;
                    }
                    //获得当前行的开始列
                    int firstCellNum = row.getFirstCellNum();
                    //获得当前行的列数
                    int lastCellNum = row.getPhysicalNumberOfCells();
                    String[] cells = new String[arrLength];
                    //循环当前行
                    for(int i =0 ;i<arrLength;i++){ Cell cell = row.getCell(i);cells[i] = getCellValue(cell); }
                    list.add(cells);
                }
            }
            workbook.close();
        }
        return list;
    }

    /**
     * 检查文件
     *
     * @param file
     * @throws IOException
     */
    public static void checkFile(MultipartFile file) throws IOException {
        //判断文件是否存在
        if (null == file) {
            logger.error("文件不存在!");
            throw new FileNotFoundException("文件不存在!");
        }
        //获得文件名
        String fileName = file.getOriginalFilename();
        //判断文件是否是excel文件
        if (!fileName.endsWith(xls) && !fileName.endsWith(xlsx)) {
            logger.error(fileName + "不是excel文件");
            throw new IOException(fileName + "不是excel文件");
        }
    }

    /**
     * 返回工作簿
     *
     * @param file
     * @return
     */
    public static Workbook getWorkBook(MultipartFile file) {
        //获得文件名
        String fileName = file.getOriginalFilename();
        //创建Workbook工作薄对象,表示整个excel
        Workbook workbook = null;
        try {
            //获取excel文件的io流
            InputStream is = file.getInputStream();
            //根据文件后缀名不同(xls和xlsx)获得不同的Workbook实现类对象
            if (fileName.endsWith(xls)) {
                //2003
                workbook = new HSSFWorkbook(is);
            } else if (fileName.endsWith(xlsx)) {
                //2007
                workbook = new XSSFWorkbook(is);
            }
        } catch (IOException e) {
            logger.info(e.getMessage());
        }
        return workbook;
    }

    /**
     * 处理单元格样式 获取数据
     *
     * @param cell
     * @return
     */
    public static String getCellValue(Cell cell) {
        String cellValue = "";
        if (cell == null) {
            return cellValue;
        }
        //把数字当成String来读,避免出现1读成1.0的情况
        if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
            cell.setCellType(Cell.CELL_TYPE_STRING);
        }
        //判断数据的类型
        switch (cell.getCellType()) {
            case Cell.CELL_TYPE_NUMERIC: //数字
                cellValue = String.valueOf(cell.getNumericCellValue());
                break;
            case Cell.CELL_TYPE_STRING: //字符串
                cellValue = String.valueOf(cell.getStringCellValue());
                break;
            case Cell.CELL_TYPE_BOOLEAN: //Boolean
                cellValue = String.valueOf(cell.getBooleanCellValue());
                break;
            case Cell.CELL_TYPE_FORMULA: //公式
                cellValue = String.valueOf(cell.getCellFormula());
                break;
            case Cell.CELL_TYPE_BLANK: //空值
                cellValue = "";
                break;
            case Cell.CELL_TYPE_ERROR: //故障
                cellValue = "非法字符";
                break;
            default:
                cellValue = "未知类型";
                break;
        }
        return cellValue;
    }
}

1.2 service

package com.yinghui.soft.service;


import com.yinghui.soft.model.TContractGoodslist;
import com.yinghui.soft.model.TUser;
import org.springframework.web.multipart.MultipartFile;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
//合同>>物资清单

public interface TContractGoodslistService {

    /**
     * 物资清单列表
     *
     * @param map
     * @return
     */
    public List<TContractGoodslist> list(Map map);

    public List<TContractGoodslist> goodslist(Map map);/*物资查询列表*/

    public List<TContractGoodslist> goodsAmount(Map map);/*物资统计(数量)列表*/

    public List<TContractGoodslist> goodsStatistics(Map map);/*物资统计(金额)列表*/
    /**
     * 物资清单总数
     *
     * @param map
     * @return
     */
    public long TContractGoodslistCount(Map map);

    /**
     * 物资清单保存
     *
     * @return
     */
    //public HashMap<String, Object> TContractGoodslistSave(Map paramMap);
    public int  save(TContractGoodslist TContractGoodslist);

    /**
     * 根据物资清单ID得供应商
     *
     * @param cableTypeId
     * @return
     */

    /**
     * 物资清单删除
     *
     * @param paramMap
     * @return
     */
    public HashMap<String, Object> TContractGoodslistDelete(Map paramMap);
    public int update(TContractGoodslist TContractGoodslist);

    public TContractGoodslist getById(String cableTypeId);

    /**
     * 导入Excel
     *
     * @param file  上传文件
     * @return
     */
    public  Map<String, Object> importFromXls(MultipartFile file, TUser user, Long projectId);

}

1.3 impl

package com.yinghui.soft.service.impl;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yinghui.soft.mapper.TContractGoodslistMapper;
import com.yinghui.soft.model.TContractGoodslist;
import com.yinghui.soft.model.TContractGoodslist;
import com.yinghui.soft.model.TUser;
import com.yinghui.soft.service.TContractGoodslistService;
import com.yinghui.soft.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import java.math.BigDecimal;
import java.util.*;

//合同>>物资清单
@Service
public class TContractGoodslisterviceImpl implements TContractGoodslistService {


    @Autowired
    private TContractGoodslistMapper mapper;

    @Autowired
    private JdbcTemplate JdbcTemplate;
    // @Autowired
    // private TContractGoodslistResMapper studyMarkerResMapper;
    @Override
    public List<TContractGoodslist> list(Map map) {
        return mapper.findPage(map);
    }

    @Override
    public List<TContractGoodslist> goodslist(Map map) {
        return mapper.goodsquery(map);
    }

    //物资清单统计
    @Override
    public List<TContractGoodslist> goodsAmount(Map map) {
        int typeinfo=Integer.parseInt(map.get("typeinfo").toString());//按钮编号
        if(typeinfo==1){//合同总价
            return mapper.goodsstatistics(map);
        }else if(typeinfo==2){//数量统计
            return mapper.goodsAmount(map);
        }
        return mapper.goodsAmount(map);
    }

    @Override
    public List<TContractGoodslist> goodsStatistics(Map map) {
        return mapper.goodsstatistics(map);
    }

    @Override
    public long TContractGoodslistCount(Map map) {
        return mapper.findPage_count(map);
    }

    @Override
    public  int  save(TContractGoodslist  TContractGoodslist) {
        return mapper.insertSelective(TContractGoodslist);
    }



    @Override
    public TContractGoodslist getById(String id) {
        return this.mapper.selectByPrimaryKey(Integer.parseInt(id));
    }

    @Override
    public HashMap<String, Object>  TContractGoodslistDelete(Map paramMap) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        try{
            JSONObject jsonObject=null;
            JSONArray postdata = JSONArray.parseArray(String.valueOf(paramMap.get("postdata")));
            if(postdata.size()>0){
                for(int i=0;i<postdata.size();i++){
                    jsonObject=postdata.getJSONObject(i);
                    if (jsonObject.containsKey("id")
                            &&!StringUtils.isEmpty(jsonObject.getString("id"))) {
                        TContractGoodslist TContractGoodslist=getById(jsonObject.getString("id"));
                        if(TContractGoodslist!=null){
                            this.mapper.deleteByPrimaryKey(TContractGoodslist.getId());   //不物理删除
                            //TContractGoodslist.setDeleteFlag(0);//设置为0
                            //this.mapper.updateByPrimaryKeySelective(TContractGoodslist);
                            map.put("flag", true);
                            map.put("msg", "删除成功");
                        }else{
                            map.put("flag", false);
                            map.put("msg", "删除失败");
                        }
                    }else {
                        map.put("flag", false);
                        map.put("msg", "删除失败");
                    }
                }
            }
        }catch(Exception e){
            e.printStackTrace();
            map.put("flag", false);
            map.put("msg", "删除失败");
        }
        return map;
    }
    /**数据新增时获取最大顺序码*/

    @Override
    public int update(TContractGoodslist TContractGoodslist) {
        return this.mapper.updateByPrimaryKeySelective(TContractGoodslist);
    }

    @Override
    public Map<String, Object> importFromXls(MultipartFile file, TUser user, Long projectId) {
        Map<String, Object> result = new HashMap<>();
        try {
            //檢查excel
            ExcelUtil.checkFile(file);
            //解析excel
            List<String[]> list = ExcelUtil.readExcel(file);
            if (!list.isEmpty()) {
                List   tt =new ArrayList();
                for(int i=0;i<list.size();i++){
                    TContractGoodslist TContractGoodslist= this.packaging(list.get(i));
                    if(null==TContractGoodslist){
                        result.put("flag", Boolean.FALSE);
                        result.put("msg", "导入失败,第"+(i+1)+"行数据错误!");
                        return result;
                    }else{
                        tt.add(TContractGoodslist);
                    }
                }
                for(int i=0;i<tt.size();i++){
                    TContractGoodslist TContractGoodslist= (TContractGoodslist) tt.get(i);
                    TContractGoodslist.setDeleteFlag(1);
                    TContractGoodslist.setCreateUser(Integer.parseInt(user.getId().toString()));
                    TContractGoodslist.setProjectId(Integer.parseInt(projectId.toString()));
                    TContractGoodslist.setCreateTime(new Date());
                    int q=mapper.insertSelective(TContractGoodslist);
                }
                result.put("flag", Boolean.TRUE);
                result.put("msg", "导入成功");
            } else {
                result.put("flag", Boolean.FALSE);
                result.put("msg", "导入文件没有有效数据");
            }
        } catch (Exception e) {
            result.put("flag", Boolean.FALSE);
            result.put("msg", "数据有空值");//e.getMessage()
            return result;
        }
        return result;
    }

    private TContractGoodslist  packaging(String[] arr) {
        Map<String, Object> result = new HashMap<>();
        //0四电名称1四电类别2规格3数量4单价5总价6单位7备注
        TContractGoodslist TContractGoodslist =null;
        try {
            String name = StringUtils.isEmpty(arr[0]) ? null : arr[0];//物资名称
            String type = StringUtils.isEmpty(arr[1]) ? null : arr[1];//物资类别
            String specification = StringUtils.isEmpty(arr[2]) ? null : arr[2];//规格
            String number = StringUtils.isEmpty(arr[3]) ? null : arr[3];//数量
            BigDecimal price = StringUtils.isEmpty(arr[4]) ? null: new BigDecimal(arr[4]);
            BigDecimal sum = StringUtils.isEmpty(arr[5]) ? null : new BigDecimal(arr[5]);
            String unit = StringUtils.isEmpty(arr[6]) ? null : arr[6];
            String remark = StringUtils.isEmpty(arr[7]) ? null : arr[7];
            //excel表中物资类别保存的是分类编号,插入数据库时  根据分类编号查询基础数据中 物资类别表的id
            String sql = "select id from t_base_goods where category='" + type + "'";
//            List list = JdbcTemplate.queryForList(sql);
            Map mapobj=JdbcTemplate.queryForMap(sql);//查询单条记录
            String goodsid = mapobj.get("id").toString();
            if (null == goodsid || "".equals(goodsid)) {
                return null;
            }
            TContractGoodslist= new TContractGoodslist();
            TContractGoodslist.setName(name);
            TContractGoodslist.setGoodsType(Integer.parseInt(goodsid));//物资类别 保存物资类别表id
            TContractGoodslist.setSpecification(specification);
            TContractGoodslist.setNumber(number);
            TContractGoodslist.setUnitPrice(price);
            TContractGoodslist.setTotalPrice(sum);
            TContractGoodslist.setUnit(unit);
            TContractGoodslist.setRemark(remark);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return TContractGoodslist;
    }
}

1.4 controller

package com.yinghui.soft.web;

import com.yinghui.soft.model.TContractGoodslist;
import com.yinghui.soft.model.TUser;
import com.yinghui.soft.service.TContractGoodslistService;
import com.yinghui.soft.utils.LogAnnotation;
import com.yinghui.soft.utils.PJCommon;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.*;


/**
 *物资清单标签
 *
 * @author zhangjinli
 */
@RequestMapping("/goodlist")
@Controller
public class TContractGoodslistController {

    private Logger logger = LoggerFactory.getLogger(TContractGoodslistController.class);

    @Autowired
    private TContractGoodslistService objServices;

    /**
     * 物资清单列表
     *
     * @return
     */
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
    public Map proList(HttpServletRequest request) {
        HttpSession session = request.getSession();
        TUser user= (TUser) session.getAttribute("user");
        Map paramMap = PJCommon.getRequestParamMap(request);
        Map ret = new HashMap();
        Map page = new HashMap();
       // page.put("orgId",user.getOrgId());
        Integer limit= Integer.valueOf(paramMap.get("limit").toString());
        Integer offset= Integer.valueOf(paramMap.get("offset").toString());
        page.put("limit",limit);
        page.put("offset",offset);
        if (paramMap.containsKey("name")
                &&!StringUtils.isEmpty(paramMap.get("name"))) {
            page.put("name", paramMap.get("name"));
        }
       if (paramMap.containsKey("deleteFlag")
               &&!StringUtils.isEmpty(paramMap.get("deleteFlag"))) {
           page.put("deleteFlag", Integer.parseInt(paramMap.get("deleteFlag").toString()));
        }
        if (paramMap.containsKey("goodsType")//物资类型
                &&!StringUtils.isEmpty(paramMap.get("goodsType"))) {
            page.put("goodsType", Integer.parseInt(paramMap.get("goodsType").toString()));

            }else {
            page.put("goodsType",null);
            }

        if (paramMap.containsKey("specification")//规格
                &&!StringUtils.isEmpty(paramMap.get("specification"))) {
            page.put("specification", paramMap.get("specification"));
        }else {
            page.put("specification", null);
        }
        if (paramMap.containsKey("projectId")//合同id
                &&!StringUtils.isEmpty(paramMap.get("projectId"))) {
            page.put("projectId", Integer.parseInt(paramMap.get("projectId").toString()));
        }else{
            page.put("projectId", null);
        }

        List<TContractGoodslist> list = objServices.list(page);
        long count = objServices.TContractGoodslistCount(page);
        ret.put("total", count);
        ret.put("rows", list);
        return ret;

    }

/*
* 物资查询列表
* */
    @RequestMapping(value = "/goodslist", method = RequestMethod.GET)
    @ResponseBody
    public Map goodslist(HttpServletRequest request) {
        HttpSession session = request.getSession();
        TUser user= (TUser) session.getAttribute("user");
        Map paramMap = PJCommon.getRequestParamMap(request);
        Map ret = new HashMap();
        Map page = new HashMap();
        // page.put("orgId",user.getOrgId());
        Integer limit= Integer.valueOf(paramMap.get("limit").toString());
        Integer offset= Integer.valueOf(paramMap.get("offset").toString());
        page.put("limit",limit);
        page.put("offset",offset);
        if (paramMap.containsKey("name")
                &&!StringUtils.isEmpty(paramMap.get("name"))) {
            page.put("name", paramMap.get("name"));
        }
        if (paramMap.containsKey("deleteFlag")
                &&!StringUtils.isEmpty(paramMap.get("deleteFlag"))) {
            page.put("deleteFlag", Integer.parseInt(paramMap.get("deleteFlag").toString()));
        }
        if (paramMap.containsKey("projectId")//合同id
                &&!StringUtils.isEmpty(paramMap.get("projectId"))) {
            page.put("projectId", Integer.parseInt(paramMap.get("projectId").toString()));
        }else{
            page.put("projectId", null);
        }
        if (paramMap.containsKey("goodsType")//物资类型
                &&!StringUtils.isEmpty(paramMap.get("goodsType"))) {
            page.put("goodsType", Integer.parseInt(paramMap.get("goodsType").toString()));
        }else {
            page.put("goodsType", null);
        }
        if (paramMap.containsKey("specification")//规格
                &&!StringUtils.isEmpty(paramMap.get("specification"))) {
            page.put("specification", paramMap.get("specification"));
        }else {
            page.put("specification", null);
        }
        if (paramMap.containsKey("countryname")//国别
                &&!StringUtils.isEmpty(paramMap.get("countryname"))) {
            page.put("countryname", Integer.parseInt(paramMap.get("countryname").toString()));
        }else {
            page.put("countryname", null);
        }
        if (paramMap.containsKey("suppliername")//供应商名称
                &&!StringUtils.isEmpty(paramMap.get("suppliername"))) {
            page.put("suppliername", Integer.parseInt(paramMap.get("suppliername").toString()));
        }else {
            page.put("suppliername", null);
        }
        if (paramMap.containsKey("currencyname")//币种
                &&!StringUtils.isEmpty(paramMap.get("currencyname"))) {
            page.put("currencyname", Integer.parseInt(paramMap.get("currencyname").toString()));
        }else {
            page.put("currencyname", null);
        }
        if (paramMap.containsKey("project")//项目名称
                &&!StringUtils.isEmpty(paramMap.get("project"))) {
            page.put("project", Integer.parseInt(paramMap.get("project").toString()));
        }else {
            page.put("project", null);
        }
        if (paramMap.containsKey("contractNumber") //合同编号
                &&!StringUtils.isEmpty(paramMap.get("contractNumber"))) {
            page.put("contractNumber", paramMap.get("contractNumber"));
        }else {
            page.put("contractNumber", null);
        }
        if (paramMap.containsKey("startTime") //合同起始时间
                &&!StringUtils.isEmpty(paramMap.get("startTime"))) {
            page.put("startTime", paramMap.get("startTime"));
        }else {
            page.put("startTime", null);
        }
        if (paramMap.containsKey("endTime") //合同结束时间
                &&!StringUtils.isEmpty(paramMap.get("endTime"))) {
            page.put("endTime", paramMap.get("endTime"));
        }else {
            page.put("endTime",null);
        }
        List<TContractGoodslist> list = objServices.goodslist(page);
        long count = objServices.TContractGoodslistCount(page);
        ret.put("total", count);
        ret.put("rows", list);
        return ret;

    }
    /* 物资清单统计
     * -----------------------物资统计(数量)列表
     *
     * */
    @RequestMapping(value = "/goodsAmount", method = RequestMethod.GET)
    @ResponseBody
    public Map goodsAmount(HttpServletRequest request) {
        HttpSession session = request.getSession();
        TUser user= (TUser) session.getAttribute("user");
        Map paramMap = PJCommon.getRequestParamMap(request);
        Map ret = new HashMap();
        Map page = new HashMap();
        // page.put("orgId",user.getOrgId());
        Integer limit= Integer.valueOf(paramMap.get("limit").toString());
        Integer offset= Integer.valueOf(paramMap.get("offset").toString());
        page.put("limit",limit);
        page.put("offset",offset);
        if (paramMap.containsKey("name")
                &&!StringUtils.isEmpty(paramMap.get("name"))) {
            page.put("name", paramMap.get("name"));
        }
        if (paramMap.containsKey("deleteFlag")
                &&!StringUtils.isEmpty(paramMap.get("deleteFlag"))) {
            page.put("deleteFlag", Integer.parseInt(paramMap.get("deleteFlag").toString()));
        }
        if (paramMap.containsKey("projectId")//合同id
                &&!StringUtils.isEmpty(paramMap.get("projectId"))) {
            page.put("projectId", Integer.parseInt(paramMap.get("projectId").toString()));
        }else{
            page.put("projectId", null);
        }
        if (paramMap.containsKey("goodsType")//物资类型
                &&!StringUtils.isEmpty(paramMap.get("goodsType"))) {
            page.put("goodsType", Integer.parseInt(paramMap.get("goodsType").toString()));
        }else {
            page.put("goodsType", null);
        }
        if (paramMap.containsKey("specification")//规格
                &&!StringUtils.isEmpty(paramMap.get("specification"))) {
            page.put("specification", paramMap.get("specification"));
        }else {
            page.put("specification", null);
        }
        if (paramMap.containsKey("countryname")//国别
                &&!StringUtils.isEmpty(paramMap.get("countryname"))) {
            page.put("countryname", Integer.parseInt(paramMap.get("countryname").toString()));
        }else {
            page.put("countryname", null);
        }
        if (paramMap.containsKey("suppliername")//供应商名称
                &&!StringUtils.isEmpty(paramMap.get("suppliername"))) {
            page.put("suppliername", Integer.parseInt(paramMap.get("suppliername").toString()));
        }else {
            page.put("suppliername", null);
        }
        if (paramMap.containsKey("currencyname")//币种
                &&!StringUtils.isEmpty(paramMap.get("currencyname"))) {
            page.put("currencyname", Integer.parseInt(paramMap.get("currencyname").toString()));
        }else {
            page.put("currencyname", null);
        }
        if (paramMap.containsKey("project")//项目名称
                &&!StringUtils.isEmpty(paramMap.get("project"))) {
            page.put("project", Integer.parseInt(paramMap.get("project").toString()));
        }else {
            page.put("project", null);
        }
        if (paramMap.containsKey("contractNumber") //合同编号
                &&!StringUtils.isEmpty(paramMap.get("contractNumber"))) {
            page.put("contractNumber", paramMap.get("contractNumber"));
        }else {
            page.put("contractNumber", null);
        }
        if (paramMap.containsKey("startTime") //合同起始时间
                &&!StringUtils.isEmpty(paramMap.get("startTime"))) {
            page.put("startTime", paramMap.get("startTime"));
        }else {
            page.put("startTime", null);
        }
        if (paramMap.containsKey("endTime") //合同结束时间
                &&!StringUtils.isEmpty(paramMap.get("endTime"))) {
            page.put("endTime", paramMap.get("endTime"));
        }else {
            page.put("endTime",null);
        }
        page.put("typeinfo", paramMap.get("typeinfo"));//按钮编号
        List<TContractGoodslist> list = objServices.goodsAmount(page);
        long count = objServices.TContractGoodslistCount(page);
        ret.put("total", count);
        ret.put("rows", list);
        return ret;

    }
    /*
     * 物资统计(金额)列表
     * */
    @RequestMapping(value = "/goodsstatistics", method = RequestMethod.GET)
    @ResponseBody
    public Map goodsstatistics(HttpServletRequest request) {
        HttpSession session = request.getSession();
        TUser user= (TUser) session.getAttribute("user");
        Map paramMap = PJCommon.getRequestParamMap(request);
        Map ret = new HashMap();
        Map page = new HashMap();
        // page.put("orgId",user.getOrgId());
        Integer limit= Integer.valueOf(paramMap.get("limit").toString());
        Integer offset= Integer.valueOf(paramMap.get("offset").toString());
        page.put("limit",limit);
        page.put("offset",offset);
        if (paramMap.containsKey("name")
                &&!StringUtils.isEmpty(paramMap.get("name"))) {
            page.put("name", paramMap.get("name"));
        }else{
            page.put("name", null);
        }
        if (paramMap.containsKey("deleteFlag")
                &&!StringUtils.isEmpty(paramMap.get("deleteFlag"))) {
            page.put("deleteFlag", Integer.parseInt(paramMap.get("deleteFlag").toString()));
        }
        if (paramMap.containsKey("projectId")//合同id
                &&!StringUtils.isEmpty(paramMap.get("projectId"))) {
            page.put("projectId", Integer.parseInt(paramMap.get("projectId").toString()));
        }else{
            page.put("projectId", null);
        }
        if (paramMap.containsKey("goodsType")//物资类型
                &&!StringUtils.isEmpty(paramMap.get("goodsType"))) {
            page.put("goodsType", Integer.parseInt(paramMap.get("goodsType").toString()));
        }else {
            page.put("goodsType", null);
        }
        if (paramMap.containsKey("specification")//规格
                &&!StringUtils.isEmpty(paramMap.get("specification"))) {
            page.put("specification", paramMap.get("specification"));
        }else {
            page.put("specification", null);
        }
        if (paramMap.containsKey("countryname")//国别
                &&!StringUtils.isEmpty(paramMap.get("countryname"))) {
            page.put("countryname", Integer.parseInt(paramMap.get("countryname").toString()));
        }else {
            page.put("countryname", null);
        }
        if (paramMap.containsKey("suppliername")//供应商名称
                &&!StringUtils.isEmpty(paramMap.get("suppliername"))) {
            page.put("suppliername", Integer.parseInt(paramMap.get("suppliername").toString()));
        }else {
            page.put("suppliername", null);
        }
        if (paramMap.containsKey("currencyname")//币种
                &&!StringUtils.isEmpty(paramMap.get("currencyname"))) {
            page.put("currencyname", Integer.parseInt(paramMap.get("currencyname").toString()));
        }else {
            page.put("currencyname", null);
        }
        if (paramMap.containsKey("project")//项目名称
                &&!StringUtils.isEmpty(paramMap.get("project"))) {
            page.put("project", Integer.parseInt(paramMap.get("project").toString()));
        }else {
            page.put("project", null);
        }
        if (paramMap.containsKey("contractNumber") //合同编号
                &&!StringUtils.isEmpty(paramMap.get("contractNumber"))) {
            page.put("contractNumber", paramMap.get("contractNumber"));
        }else {
            page.put("contractNumber", null);
        }
        if (paramMap.containsKey("startTime") //合同起始时间
                &&!StringUtils.isEmpty(paramMap.get("startTime"))) {
            page.put("startTime", paramMap.get("startTime"));
        }else {
            page.put("startTime", null);
        }
        if (paramMap.containsKey("endTime") //合同结束时间
                &&!StringUtils.isEmpty(paramMap.get("endTime"))) {
            page.put("endTime", paramMap.get("endTime"));
        }else {
            page.put("endTime",null);
        }
        List<TContractGoodslist> list = objServices.goodsStatistics(page);
        long count = objServices.TContractGoodslistCount(page);
        ret.put("total", count);
        ret.put("rows", list);
        return ret;

    }


     @RequestMapping(value = "/getTContractGoodslist", method = RequestMethod.GET)
     @ResponseBody
     public TContractGoodslist getTContractGoodslist(HttpServletRequest request) {
        HttpSession session = request.getSession();
        Map paramMap = PJCommon.getRequestParamMap(request);

        TContractGoodslist ret = objServices.getById(paramMap.get("id").toString());

        return ret;
    }
    /**
     * 物资清单保存
     *
     * @return
     */
   /* @RequestMapping(value = "/save", method = RequestMethod.POST)
    @ResponseBody
    public Map proSave(HttpServletRequest request,HttpServletResponse response) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        try{
            HttpSession session = request.getSession();
            TUser user= (TUser) session.getAttribute("user");
            TContractGoodslist objMax=objServices.selectByOrderNumMax();
            Map paramMap = PJCommon.getRequestParamMap(request);
            if(null==objMax){
                paramMap.put("orderNum",1);
            }else {
                int ordernUm=objMax.getOrderNum()+1;
                paramMap.put("orderNum",ordernUm);
            }
            paramMap.put("createuser",user.getId());
            paramMap.put("create_time",new Date());

            map=objServices.save(paramMap);
        } catch (Exception e) {
            logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }*/
    @LogAnnotation(firstLevel = "基础数据", secondLevel = "物资清单", noteLevel = "新增")
    @PostMapping(value = "save")
    public Map save(@RequestBody TContractGoodslist TContractGoodslist, HttpServletRequest request) {
        Map map = new HashMap(4);
        try{
            HttpSession session = request.getSession();
            TUser user= (TUser) session.getAttribute("user");
            //SimpleDateFormat date =new SimpleDateFormat("yyyy-MM-hh");
            //TContractGoodslist.setSigningTime(date.parse(TContractGoodslist.getSigningTimeStart()));
            TContractGoodslist.setCreateUser(Integer.parseInt(user.getId().toString()));
            TContractGoodslist.setCreateTime(new Date());
            TContractGoodslist.setDeleteFlag(1);

            int  i =objServices.save(TContractGoodslist);
            if (i == 1) {
                map.put("flag", true);
                map.put("msg", "新增成功");
            } else {
                map.put("flag", false);
                map.put("msg", "新增失败");
            }
        } catch (Exception e) {
            logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }
    /**
     *物资清单 修改
     *
     * @return
     */
    @LogAnnotation(firstLevel = "基础数据", secondLevel = "物资清单", noteLevel = "修改")
    @PostMapping(value = "update")
    public Map update(@RequestBody TContractGoodslist TContractGoodslist, HttpServletRequest request) {
        Map map = new HashMap();
        try{
            HttpSession session = request.getSession();
            TUser user= (TUser) session.getAttribute("user");
            SimpleDateFormat date =new SimpleDateFormat("yyyy-MM-hh");
//            if(null != TContractGoodslist.getSigningTimeStart() && !TContractGoodslist.getSigningTimeStart().equals("")){
//                TContractGoodslist.setSigningTime(date.parse(TContractGoodslist.getSigningTimeStart()));
//            }
            TContractGoodslist.setCreateUser(Integer.parseInt(user.getId().toString()));
            TContractGoodslist.setCreateTime(new Date());
            TContractGoodslist.setDeleteFlag(1);
            int i=objServices.update(TContractGoodslist);
            if (i == 1) {
                map.put("flag", true);
                map.put("msg", "修改成功");
            } else {
                map.put("flag", false);
                map.put("msg", "修改失败");
            }
        } catch (Exception e) {
            logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }

    /**
     * 物资清单删除
     *
     * @return
     */
    @RequestMapping(value = "/delete", method = RequestMethod.POST)
    @ResponseBody
    public Map proDelete(HttpServletRequest request,HttpServletResponse response) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        try{
            Map paramMap = PJCommon.getRequestParamMap(request);
            map=objServices.TContractGoodslistDelete(paramMap);

        } catch (Exception e) {
            logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }
    
    /**
     * 物资清单下拉框列表
     *
     * @return
     *
     */
    @RequestMapping(value = "/TObjSelect", method = RequestMethod.GET)
    @ResponseBody
    public List<HashMap<String, Object>> proSelect(HttpServletRequest request) {
        HttpSession session = request.getSession();
        TUser user= (TUser) session.getAttribute("user");
        List<HashMap<String, Object>> result = new ArrayList<HashMap<String, Object>>();
        Map page = new HashMap();
        page.put("deleteFlag",1);
        List<TContractGoodslist> list = objServices.list(page);
        if (list != null && !list.isEmpty()) {
            for (TContractGoodslist TContractGoodslist : list) {
                HashMap<String, Object> hashMap = new HashMap<String, Object>();
                hashMap.put("name", TContractGoodslist.getName());
                hashMap.put("value", TContractGoodslist.getId());
                result.add(hashMap);
            }
        }
        return result;
    }




    //导入Excel
    @RequestMapping(value = "/orderDetailsXlsImport", method = RequestMethod.POST)
    @ResponseBody
    public Map importXls(HttpServletRequest request, @RequestParam("file") MultipartFile file) {
        Map<String, Object>  result = new HashMap();
        try {
            Map paramMap = PJCommon.getRequestParamMap(request);
            if (StringUtils.isEmpty(paramMap.get("project_id"))) {
                result.put("flag", Boolean.FALSE);
                result.put("msg", "参数错误");
                return result;
            }
            if (file.isEmpty()) {
                result.put("flag", Boolean.FALSE);
                result.put("msg", "上传文件错误");
                return result;
            }
            Long projectId = Long.valueOf(paramMap.get("project_id").toString());
            TUser user = (TUser) request.getSession().getAttribute("user");
            result = objServices.importFromXls(file,user,projectId);
        } catch (Exception e) {
            logger.error("参数错误", e);
            result.put("flag", false);
            result.put("msg", "参数错误");
            return  result;
        }
        return result;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

akglobe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值