lyhzzz преди 2 години
родител
ревизия
cbea413969

+ 74 - 8
src/main/java/com/fdkankan/sale/controller/TestController.java

@@ -1,32 +1,40 @@
 package com.fdkankan.sale.controller;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.dtflys.forest.annotation.Post;
+import com.fdkankan.sale.common.ResultCode;
 import com.fdkankan.sale.common.ResultData;
+import com.fdkankan.sale.entity.Camera;
+import com.fdkankan.sale.entity.CameraDetail;
+import com.fdkankan.sale.exception.BusinessException;
+import com.fdkankan.sale.service.ICameraDetailService;
+import com.fdkankan.sale.service.ICameraService;
 import com.fdkankan.sale.service.IPriceListService;
 import com.fdkankan.sale.service.ISysUserService;
 import com.fdkankan.sale.service.impl.RepairInfoService;
+import com.fdkankan.sale.util.ExcelUtil;
 import com.fdkankan.sale.util.OrderListVo;
 import com.fdkankan.sale.util.pdf.PdfUtil;
 import com.fdkankan.sale.util.pdf.PdfUtils;
 import com.fdkankan.sale.vo.response.PriceListExcelVo;
 import com.itextpdf.text.DocumentException;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @RestController
 @RequestMapping("/test")
+@Slf4j
 public class TestController {
 
     @Autowired
@@ -37,6 +45,11 @@ public class TestController {
     IPriceListService priceListService;
     @Autowired
     RepairInfoService repairInfoService;
+    @Autowired
+    ICameraService cameraService;
+    @Autowired
+    ICameraDetailService cameraDetailService;
+
 
     @GetMapping("/test1")
     public ResultData test1(HttpServletResponse response) throws IOException, DocumentException {
@@ -114,4 +127,57 @@ public class TestController {
         }
     }
 
+    @PostMapping("/reCameraBuyDate")
+    public ResultData reCameraBuyDate(@RequestParam(required = false) MultipartFile file) throws IOException {
+        String originalFilename = file.getOriginalFilename();
+        assert originalFilename != null;
+        String fileType=originalFilename.substring(originalFilename.lastIndexOf(".")+1);
+        if (!fileType.equalsIgnoreCase("xlsx")) {
+            throw new BusinessException(-1,"文件错误");
+        }
+        for(int i = 0; i<=5; i++){
+            List<HashMap<Integer, String>> excelRowList = ExcelUtil.getExcelRowList(file,i);
+            this.updateBuyDate(excelRowList);
+        }
+        return ResultData.ok();
+    }
+
+    private void updateBuyDate(List<HashMap<Integer, String>> excelRowList){
+        Date parse = null;
+        String date = null;
+        try {
+
+            for (HashMap<Integer, String> map : excelRowList) {
+                if(map.isEmpty()){
+                    continue;
+                }
+                date = map.get(0);
+                String snCode = map.get(1);
+                Camera camera = cameraService.getBySnCode(snCode);
+                if(camera == null){
+                    log.info("db-not-in:snCode:{}",snCode);
+                    continue;
+                }
+                if(StringUtils.isBlank(date)){
+                    log.info("excel-not-in:date:{}",date);
+                    continue;
+                }
+                try {
+                    parse = new SimpleDateFormat("yyyy/MM/dd").parse(date);
+                }catch ( Exception e){
+                    parse = new SimpleDateFormat("yyyy.MM.dd").parse(date);
+                }
+
+                if(parse != null){
+                    CameraDetail cameraDetail = cameraService.getCameraTypeByCameraId(camera.getId());
+                    cameraDetail.setBuyDate(parse);
+                    cameraService.updateDetail(cameraDetail);
+                }
+            }
+        }catch (Exception e){
+            log.error("excel-error-in:date:{}",date);
+            e.printStackTrace();
+        }
+    }
+
 }

+ 2 - 1
src/main/java/com/fdkankan/sale/entity/CameraDetail.java

@@ -155,5 +155,6 @@ public class CameraDetail implements Serializable {
     @TableField("agent_id")
     private Integer agentId;
 
-
+    @TableField("buy_date")
+    private Date buyDate;
 }

+ 2 - 0
src/main/java/com/fdkankan/sale/service/ICameraService.java

@@ -17,4 +17,6 @@ public interface ICameraService extends IService<Camera> {
     Camera getBySnCode(String cameraSnCode);
 
     CameraDetail getCameraTypeByCameraId(Long cameraId);
+
+    void updateDetail(CameraDetail cameraDetail);
 }

+ 5 - 0
src/main/java/com/fdkankan/sale/service/impl/CameraServiceImpl.java

@@ -48,4 +48,9 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         }
        return cameraDetail;
     }
+
+    @Override
+    public void updateDetail(CameraDetail cameraDetail) {
+        cameraDetailService.updateById(cameraDetail);
+    }
 }

+ 1 - 1
src/main/java/com/fdkankan/sale/service/impl/RepairSaleService.java

@@ -126,7 +126,7 @@ public class RepairSaleService {
             case 10: cameraType = 2;break;
             default: cameraType = 0; break;
         }
-        Date outTime = cameraDetail.getOutTime() == null ? cameraDetail.getCreateTime() : cameraDetail.getOutTime();
+        Date outTime = cameraDetail.getBuyDate() == null ? cameraDetail.getCreateTime() : cameraDetail.getBuyDate();
         Date date = DateUtil.dateAddOneYear(outTime, 1);
         date = DateUtil.dateAddOne(date, 7);
         String date1 = DateUtil.getDate(DateUtil.dayFmt, date) +" 23:59:59";

+ 80 - 0
src/main/java/com/fdkankan/sale/util/ExcelUtil.java

@@ -0,0 +1,80 @@
+package com.fdkankan.sale.util;
+
+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.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+public class ExcelUtil {
+
+
+    public static List<HashMap<Integer,String>> getExcelRowList(MultipartFile multipartFile,Integer sheetIndex) throws IOException {
+        //行List,也是最终要返回的List
+        List<HashMap<Integer,String>> rowList=new ArrayList<>();
+        Workbook workbook=getExcelWorkBook(multipartFile);
+        Sheet sheet = workbook.getSheetAt(sheetIndex);
+        if (sheet == null ) {
+            throw new IOException("创建Sheet失败!");
+        }
+        //开始遍历行
+        setRowMap(sheet,rowList);
+        return rowList;
+    }
+
+    private static  void setRowMap( Sheet sheet,List<HashMap<Integer,String>> rowList ){
+        for (int i=0;i<= sheet.getLastRowNum();i++){
+            Row row = sheet.getRow(i);
+            //列List
+            HashMap<Integer,String> map = new HashMap<>();
+            //转换为List数组
+            for (int cellNum=0;cellNum<= row.getLastCellNum();cellNum++){
+                Cell cell = row.getCell(cellNum);
+                if(cell != null){
+                    String value = fommartNum(cell.toString().trim());
+                    map.put(cellNum,value);
+                }
+            }
+            rowList.add(map);
+        }
+    }
+
+  private static  String fommartNum(String value){
+        try {
+            if(isNumeric2(value) && value.contains(".")){
+                return Double.valueOf(value).intValue() +"";
+            }
+        }catch (Exception e){
+            return value;
+        }
+        return value;
+  }
+
+    public static boolean isNumeric2(String str) {
+        return str != null && str.matches("-?\\d+(\\.\\d+)?");
+    }
+
+
+    //获取WorkBook对象
+    private static Workbook getExcelWorkBook(MultipartFile multipartFile) throws IOException {
+        InputStream inputStream=multipartFile.getInputStream();
+        String originalFileName=multipartFile.getOriginalFilename();
+        assert originalFileName != null;
+        String fileType=originalFileName.substring(originalFileName.lastIndexOf(".")+1);
+        if (fileType.equalsIgnoreCase("xls")) {
+            //xls格式
+            return new HSSFWorkbook(inputStream);
+        } else {
+            //xlsx格式
+            return new XSSFWorkbook(inputStream);
+        }
+    }
+}