Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

wangweiyu před 4 roky
rodič
revize
1b95101459

+ 20 - 4
src/main/java/com/aoyang/tms/controller/WorkerController.java

@@ -115,7 +115,7 @@ public class WorkerController {
     @ApiOperation(value = "每个作业上报单独小按钮使用", notes = "")
     @PostMapping("/update_order")
     public Result updateOrder(@RequestHeader(value = "orgId") Long orgId,
-                               @RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
+                              @RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
         log.info("每个作业上报单独小按钮使用,/tms/worker/update_order,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
@@ -132,11 +132,27 @@ public class WorkerController {
         return new Result(flag);
     }
 
-    @ApiOperation(value = "当前行车周期内运单列表", notes = "装车运单,只展示当前行车周期未完成的;除非当前已收车,则按排序展示第1个未完成的装车运单;卸车运单,重车时,才展示 ")
+    @ApiOperation(value = "当前周期所有订单列表", notes = " ")
     @PostMapping("/find_cycle_order_list")
-    public Result<List<WorkOrderVO>> findCycleOrderList(@RequestHeader(value = "orgId") Long orgId,
+    public Result<List<WorkOrder>> findCycleOrderList(@RequestHeader(value = "orgId") Long orgId,
+                                                      @RequestHeader(value = "userId") Long userId, @RequestBody WorkOrder workOrder) {
+        log.info("当前周期所有订单列表,/tms/worker/find_cycle_order_list,参数:{}", JSON.toJSONString(workOrder));
+        if (workOrder == null || workOrder.getTruckId() == null) {
+            return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
+        }
+        WorkCycle workCycle = workCycleService.findCurrentWorkCycle(workOrder.getTruckId());
+        if (workCycle != null) {
+
+        }
+        List<WorkOrder> list = workOrderService.findCycleOrderList(workCycle.getId(), null, null);
+        return new Result<>(list);
+    }
+
+    @ApiOperation(value = "首页订单列表", notes = "装车运单,只展示当前行车周期未完成的;除非当前已收车,则按排序展示第1个未完成的装车运单;卸车运单,重车时,才展示 ")
+    @PostMapping("/find_index_order_list")
+    public Result<List<WorkOrderVO>> findIndexOrderList(@RequestHeader(value = "orgId") Long orgId,
                                                         @RequestHeader(value = "userId") Long userId, @RequestBody WorkOrder workOrder) {
-        log.info("当前行车周期内运单列表,/tms/worker/find_cycle_order_list,参数:{}", JSON.toJSONString(workOrder));
+        log.info("首页订单列表,/tms/worker/find_index_order_list,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getTruckId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }

+ 22 - 0
src/main/java/com/aoyang/tms/controller/vo/TmsGasFeeVO.java

@@ -0,0 +1,22 @@
+package com.aoyang.tms.controller.vo;
+
+import com.aoyang.tms.entity.TmsGasFee;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class TmsGasFeeVO extends TmsGasFee {
+
+    @ApiModelProperty(value = "加气金额1现金")
+    private BigDecimal tplCash;
+
+    @ApiModelProperty(value = "加气金额2大象加气")
+    private BigDecimal tplGasElephant;
+
+    @ApiModelProperty(value = "加气金额3固定加气站")
+    private BigDecimal tplGasStation;
+
+}

+ 16 - 4
src/main/java/com/aoyang/tms/controller/vo/WorkLogTplVO.java

@@ -1,8 +1,6 @@
 package com.aoyang.tms.controller.vo;
 
-import com.aoyang.tms.entity.TmsGasFee;
-import com.aoyang.tms.entity.TmsOtherFee;
-import com.aoyang.tms.entity.WorkOrder;
+import com.aoyang.tms.entity.*;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -19,11 +17,25 @@ public class WorkLogTplVO {
     private List<TmsLineCostListVO> tmsLineCostList;
 
     @ApiModelProperty(value = "燃气费用列表")
-    private List<TmsGasFee> tmsGasFeeList;
+    private List<TmsGasFeeVO> tmsGasFeeList;
 
     @ApiModelProperty(value = "其他费用列表")
     private TmsOtherFee tmsOtherFee;
 
+    @ApiModelProperty(value = "行车周期")
+    private WorkCycle workCycle;
+
+    @ApiModelProperty(value = "车辆休息列表")
+    private List<RestInfo> restInfoList;
+
+    @ApiModelProperty(value = "车辆维修列表")
+    private List<TruckRepairInfo> truckRepairInfoList;
+
+    @ApiModelProperty(value = "车辆检查列表")
+    private List<TruckCheckInfo> truckCheckInfoList;
+
+
+
     @ApiModelProperty(value = "车牌号")
     private String carNumber;
 

+ 12 - 0
src/main/java/com/aoyang/tms/service/RestInfoService.java

@@ -1,8 +1,11 @@
 package com.aoyang.tms.service;
 
 import com.aoyang.tms.entity.RestInfo;
+import com.aoyang.tms.entity.WorkOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 车辆休息详情表 服务类
@@ -13,4 +16,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface RestInfoService extends IService<RestInfo> {
 
+    /**
+     * @return
+     * @Author chengang
+     * @Description 根据卡车id和周期id查询车辆休息列表
+     * @Date 2022/4/26
+     * @Param
+     **/
+    List<RestInfo> findRestInfoList(Long truckId, Long workCycleId);
+
 }

+ 15 - 3
src/main/java/com/aoyang/tms/service/TruckCheckInfoService.java

@@ -1,8 +1,11 @@
 package com.aoyang.tms.service;
 
 import com.aoyang.tms.entity.TruckCheckInfo;
+import com.aoyang.tms.entity.TruckRepairInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 车辆检查详情表 服务类
@@ -14,11 +17,20 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface TruckCheckInfoService extends IService<TruckCheckInfo> {
 
     /**
+     * @return
      * @Author guoyong
      * @Description 根据行程周期获取检查信息
-     * @Date  2022/4/23
+     * @Date 2022/4/23
      * @Param
+     **/
+    TruckCheckInfo findTruckCheckInfo(Long cycleId, Integer type);
+
+    /**
      * @return
-    **/
-    TruckCheckInfo findTruckCheckInfo(Long cycleId,Integer type);
+     * @Author chengang
+     * @Description 根据卡车id和周期id查询车辆检查列表
+     * @Date 2022/4/26
+     * @Param
+     **/
+    List<TruckCheckInfo> findTruckCheckInfoList(Long truckId, Long workCycleId, Integer type);
 }

+ 12 - 0
src/main/java/com/aoyang/tms/service/TruckRepairInfoService.java

@@ -1,8 +1,11 @@
 package com.aoyang.tms.service;
 
+import com.aoyang.tms.entity.RestInfo;
 import com.aoyang.tms.entity.TruckRepairInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 车辆维修详情表 服务类
@@ -13,4 +16,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface TruckRepairInfoService extends IService<TruckRepairInfo> {
 
+    /**
+     * @return
+     * @Author chengang
+     * @Description 根据卡车id和周期id查询车辆维修列表
+     * @Date 2022/4/26
+     * @Param
+     **/
+    List<TruckRepairInfo> findTruckRepairInfoList(Long truckId, Long workCycleId);
+
 }

+ 1 - 1
src/main/java/com/aoyang/tms/service/impl/CommonServiceImpl.java

@@ -144,7 +144,7 @@ public class CommonServiceImpl implements CommonService {
             workerInfo.setEscortPhone(truckEscort.getMobile());
         }
 
-        //查询正在执行的运单
+        //正在执行的当前运单
         WorkOrder workOrder = workOrderService.findWorkingOrder(truckId, null);
         if (workOrder != null) {
             workerInfo.setOrderId(workOrder.getId());

+ 48 - 7
src/main/java/com/aoyang/tms/service/impl/JxlsExportTestServiceImpl.java

@@ -1,10 +1,7 @@
 package com.aoyang.tms.service.impl;
 
 
-import com.aoyang.tms.controller.vo.TmsLineCostDetail;
-import com.aoyang.tms.controller.vo.TmsLineCostListVO;
-import com.aoyang.tms.controller.vo.TmsOtherFeeListVO;
-import com.aoyang.tms.controller.vo.WorkLogTplVO;
+import com.aoyang.tms.controller.vo.*;
 import com.aoyang.tms.entity.*;
 import com.aoyang.tms.service.*;
 import com.aoyang.tms.util.FileUtil;
@@ -39,10 +36,22 @@ public class JxlsExportTestServiceImpl implements JxlsExportTestService {
     private TmsGasFeeService tmsGasFeeService;
     @Resource
     private WorkOrderService workOrderService;
+    @Resource
+    private WorkCycleService workCycleService;
+    @Resource
+    private RestInfoService restInfoService;
+    @Resource
+    private TruckRepairInfoService truckRepairInfoService;
+    @Resource
+    private TruckCheckInfoService truckCheckInfoService;
 
     @Override
     public WorkLogTplVO workLogTplVO(WorkOrder param) {
         WorkLogTplVO workLogTplVO = new WorkLogTplVO();
+
+        WorkCycle workCycle = workCycleService.getById(param.getCycleId());
+        workLogTplVO.setWorkCycle(workCycle);
+
         //根据行程周期获取运单列表,按时间正序,第一单为装单,接下来为顺序卸单
         QueryWrapper<WorkOrder> workOrderQueryWrapper = new QueryWrapper<WorkOrder>();
         if (param.getCycleId() != null) {
@@ -66,13 +75,12 @@ public class JxlsExportTestServiceImpl implements JxlsExportTestService {
         tmsLineCost.setCycleId(param.getCycleId());
         List<TmsLineCostListVO> tmsLineCostList = tmsLineCostService.list(tmsLineCost);
         for (TmsLineCostListVO tmsLineCostListVO : tmsLineCostList) {
-
             TmsLineCost tmsLineCostParam = new TmsLineCost();
             tmsLineCostParam.setId(tmsLineCostListVO.getId());
             List<TmsLineCostOther> tmsLineCostOtherList = tmsLineCostOtherService.list(tmsLineCostParam);
             tmsLineCostListVO.setLineOtherCost("其他费用:");
             for (TmsLineCostOther tmsLineCostOther : tmsLineCostOtherList) {
-                tmsLineCostListVO.setLineOtherCost(tmsLineCostListVO.getLineOtherCost()+tmsLineCostOther.getCostName()+tmsLineCostOther.getCostFee()+";");
+                tmsLineCostListVO.setLineOtherCost(tmsLineCostListVO.getLineOtherCost() + tmsLineCostOther.getCostName() + tmsLineCostOther.getCostFee() + ";");
             }
         }
         workLogTplVO.setTmsLineCostList(tmsLineCostList);
@@ -82,7 +90,23 @@ public class JxlsExportTestServiceImpl implements JxlsExportTestService {
         tmsGasFee.setTruckId(param.getTruckId());
         tmsGasFee.setCycleId(param.getCycleId());
         List<TmsGasFee> tmsGasFeeList = tmsGasFeeService.list(tmsGasFee);
-        workLogTplVO.setTmsGasFeeList(tmsGasFeeList);
+        List<TmsGasFeeVO> tmsGasFeeVOList = new ArrayList<>();
+        for (TmsGasFee tmsGasFee1 : tmsGasFeeList) {
+            TmsGasFeeVO tmsGasFeeVO = new TmsGasFeeVO();
+            BeanUtils.copyProperties(tmsGasFee1, tmsGasFeeVO);
+            //(1现金2大象加气3固定加气站)
+            if (tmsGasFee1.getType() == 1) {
+                tmsGasFeeVO.setTplCash(tmsGasFee1.getGasQtyFee());
+            }
+            if (tmsGasFee1.getType() == 2) {
+                tmsGasFeeVO.setTplGasElephant(tmsGasFee1.getGasQtyFee());
+            }
+            if (tmsGasFee1.getType() == 3) {
+                tmsGasFeeVO.setTplGasStation(tmsGasFee1.getGasQtyFee());
+            }
+            tmsGasFeeVOList.add(tmsGasFeeVO);
+        }
+        workLogTplVO.setTmsGasFeeList(tmsGasFeeVOList);
 
         //其他费用
         TmsOtherFee tmsOtherFee = new TmsOtherFee();
@@ -93,6 +117,23 @@ public class JxlsExportTestServiceImpl implements JxlsExportTestService {
             tmsOtherFee = tmsOtherFeeService.getById(tmsOtherFeeListVO.getOtherFeeId());
             workLogTplVO.setTmsOtherFee(tmsOtherFee);
         }
+
+        //车辆休息
+        List<RestInfo> restInfoList = restInfoService.findRestInfoList(param.getTruckId(), param.getCycleId());
+        if (restInfoList != null && restInfoList.size() > 0) {
+            workLogTplVO.setRestInfoList(restInfoList);
+        }
+        //车辆维修
+        List<TruckRepairInfo> truckRepairInfoList = truckRepairInfoService.findTruckRepairInfoList(param.getTruckId(), param.getCycleId());
+        if (truckRepairInfoList != null && truckRepairInfoList.size() > 0) {
+            workLogTplVO.setTruckRepairInfoList(truckRepairInfoList);
+        }
+        //车辆检查
+        List<TruckCheckInfo> truckCheckInfoList = truckCheckInfoService.findTruckCheckInfoList(param.getTruckId(), param.getCycleId(), 3);
+        if (truckCheckInfoList != null && truckCheckInfoList.size() > 0) {
+            workLogTplVO.setTruckCheckInfoList(truckCheckInfoList);
+        }
+
         return workLogTplVO;
     }
 

+ 16 - 0
src/main/java/com/aoyang/tms/service/impl/RestInfoServiceImpl.java

@@ -1,11 +1,15 @@
 package com.aoyang.tms.service.impl;
 
 import com.aoyang.tms.entity.RestInfo;
+import com.aoyang.tms.entity.WorkOrder;
 import com.aoyang.tms.mapper.RestInfoMapper;
 import com.aoyang.tms.service.RestInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 车辆休息详情表 服务实现类
@@ -17,4 +21,16 @@ import org.springframework.stereotype.Service;
 @Service
 public class RestInfoServiceImpl extends ServiceImpl<RestInfoMapper, RestInfo> implements RestInfoService {
 
+    @Override
+    public List<RestInfo> findRestInfoList(Long truckId, Long workCycleId) {
+        QueryWrapper<RestInfo> queryWrapper = new QueryWrapper<RestInfo>();
+        if (workCycleId != null) {
+            queryWrapper.eq("cycle_id", workCycleId);
+        }
+        if (truckId != null) {
+            queryWrapper.eq("truck_id", truckId);
+        }
+        List<RestInfo> list = list(queryWrapper.orderByAsc("create_date"));
+        return list;
+    }
 }

+ 17 - 0
src/main/java/com/aoyang/tms/service/impl/TruckCheckInfoServiceImpl.java

@@ -2,6 +2,7 @@ package com.aoyang.tms.service.impl;
 
 import com.aoyang.tms.entity.TruckCheckInfo;
 import com.aoyang.tms.entity.TruckDriver;
+import com.aoyang.tms.entity.TruckRepairInfo;
 import com.aoyang.tms.mapper.TruckCheckInfoMapper;
 import com.aoyang.tms.mapper.TruckDriverMapper;
 import com.aoyang.tms.service.TruckCheckInfoService;
@@ -35,4 +36,20 @@ public class TruckCheckInfoServiceImpl extends ServiceImpl<TruckCheckInfoMapper,
         TruckCheckInfo truckCheckInfo = truckCheckInfoMapper.selectOne(queryWrapper);
         return truckCheckInfo;
     }
+
+    @Override
+    public List<TruckCheckInfo> findTruckCheckInfoList(Long truckId, Long workCycleId, Integer type) {
+        QueryWrapper<TruckCheckInfo> queryWrapper = new QueryWrapper<TruckCheckInfo>();
+        if (workCycleId != null) {
+            queryWrapper.eq("cycle_id", workCycleId);
+        }
+        if (truckId != null) {
+            queryWrapper.eq("truck_id", truckId);
+        }
+        if (type != null) {
+            queryWrapper.eq("type", type);
+        }
+        List<TruckCheckInfo> list = list(queryWrapper.orderByAsc("create_date"));
+        return list;
+    }
 }

+ 16 - 0
src/main/java/com/aoyang/tms/service/impl/TruckRepairInfoServiceImpl.java

@@ -1,11 +1,15 @@
 package com.aoyang.tms.service.impl;
 
+import com.aoyang.tms.entity.RestInfo;
 import com.aoyang.tms.entity.TruckRepairInfo;
 import com.aoyang.tms.mapper.TruckRepairInfoMapper;
 import com.aoyang.tms.service.TruckRepairInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 车辆维修详情表 服务实现类
@@ -17,4 +21,16 @@ import org.springframework.stereotype.Service;
 @Service
 public class TruckRepairInfoServiceImpl extends ServiceImpl<TruckRepairInfoMapper, TruckRepairInfo> implements TruckRepairInfoService {
 
+    @Override
+    public List<TruckRepairInfo> findTruckRepairInfoList(Long truckId, Long workCycleId) {
+        QueryWrapper<TruckRepairInfo> queryWrapper = new QueryWrapper<TruckRepairInfo>();
+        if (workCycleId != null) {
+            queryWrapper.eq("cycle_id", workCycleId);
+        }
+        if (truckId != null) {
+            queryWrapper.eq("truck_id", truckId);
+        }
+        List<TruckRepairInfo> list = list(queryWrapper.orderByAsc("create_date"));
+        return list;
+    }
 }

+ 15 - 7
src/main/java/com/aoyang/tms/service/impl/WorkerServiceImpl.java

@@ -53,6 +53,8 @@ public class WorkerServiceImpl implements WorkerService {
                 workCycle.setStartTime(LocalDateTime.now());
                 BeanUtils.copyProperties(truck, workCycle);
                 BeanUtils.copyProperties(workOrder, workCycle);
+                //行车周期执行中
+                workCycle.setStatus(1);
                 workCycleService.save(workCycle);
 
                 if (workOrder.getType() == 1) {
@@ -143,11 +145,11 @@ public class WorkerServiceImpl implements WorkerService {
         try {
             WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
             if (workOrder != null) {
-                workOrder.setWeightingListNo(workOrderParam.getWeightingListNo());
-                workOrder.setWeightingListUrl(workOrderParam.getWeightingListUrl());
-                workOrder.setPiWeight(workOrderParam.getPiWeight());
-                workOrder.setMaoWeight(workOrderParam.getMaoWeight());
-                workOrder.setJingWeight(workOrderParam.getJingWeight());
+                workOrder.setQueueNo(workOrderParam.getQueueNo());
+                workOrder.setEndTrip(workOrderParam.getEndTrip());
+                workOrder.setEndTripUrl(workOrderParam.getEndTripUrl());
+                workOrder.setWorkStartTime(workOrderParam.getWorkStartTime());
+                workOrder.setWorkEndTime(workOrderParam.getWorkEndTime());
                 //1.车辆进入作业中状态
                 Truck truck = truckService.getById(workOrder.getTruckId());
                 truck.setTmsStatus(TmsTruckStatus.WORKING);
@@ -238,12 +240,18 @@ public class WorkerServiceImpl implements WorkerService {
                 truck.setTmsStatus(TmsTruckStatus.DONE);
                 truckService.updateById(truck);
                 //2.结束当前行程周期(从收车中到出车检查也结束当前行程周期)
-                WorkCycle workCycle = new WorkCycle();
+                WorkCycle workCycle = workCycleService.findCurrentWorkCycle(workOrder.getTruckId());
                 workCycle.setEndTime(LocalDateTime.now());
                 BeanUtils.copyProperties(truck, workCycle);
                 BeanUtils.copyProperties(workOrder, workCycle);
-                workCycleService.save(workCycle);
+                workCycleService.updateById(workCycle);
 
+                workOrder.setWeightingListNo(workOrderParam.getWeightingListNo());
+                workOrder.setWeightingListUrl(workOrderParam.getWeightingListUrl());
+                workOrder.setPiWeight(workOrderParam.getPiWeight());
+                workOrder.setMaoWeight(workOrderParam.getMaoWeight());
+                workOrder.setJingWeight(workOrderParam.getJingWeight());
+                workOrderService.updateById(workOrder);
                 //3 记录日志
                 //TODO
             }

+ 49 - 0
src/main/java/com/aoyang/tms/util/Picture.java

@@ -0,0 +1,49 @@
+package com.aoyang.tms.util;
+
+/**
+ * @Description: ${DESCRIPTION}
+ * @Author guoyong
+ * @Date 2022/4/26 14:39
+ * @Version 1.0
+ */
+
+import java.io.*;
+
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.util.IOUtils;
+
+public class Picture {
+    public static void main(String[] args) throws Exception {
+        /* Create a Workbook and Worksheet */
+        XSSFWorkbook my_workbook = new XSSFWorkbook();
+        XSSFSheet my_sheet = my_workbook.createSheet("MyLogo");
+        /* Read input PNG / JPG Image into FileInputStream Object*/
+        InputStream my_banner_image = new FileInputStream("d:\\1.png");
+        /* Convert picture to be added into a byte array */
+        byte[] bytes = IOUtils.toByteArray(my_banner_image);
+        /* Add Picture to Workbook, Specify picture type as PNG and Get an Index */
+        int my_picture_id = my_workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
+        /* Close the InputStream. We are ready to attach the image to workbook now */
+        my_banner_image.close();
+        /* Create the drawing container */
+        XSSFDrawing drawing = my_sheet.createDrawingPatriarch();
+        /* Create an anchor point */
+        XSSFClientAnchor my_anchor = new XSSFClientAnchor();
+        /* Define top left corner, and we can resize picture suitable from there */
+        my_anchor.setCol1(2);
+        my_anchor.setRow1(1);
+        /* Invoke createPicture and pass the anchor point and ID */
+        XSSFPicture my_picture = drawing.createPicture(my_anchor, my_picture_id);
+        /* Call resize method, which resizes the image */
+        my_picture.resize();
+        /* Write changes to the workbook */
+        FileOutputStream out = new FileOutputStream(new File("D:\\日志.xlsx"));
+        my_workbook.write(out);
+        out.close();
+
+    }
+
+
+}

+ 2 - 0
src/main/java/com/aoyang/tms/util/WriteImgUtil.java

@@ -1,5 +1,6 @@
 package com.aoyang.tms.util;
 
+import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
 import org.apache.poi.xssf.usermodel.XSSFDrawing;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
@@ -138,6 +139,7 @@ public class WriteImgUtil {
         }
     }
 
+
     public static void main(String[] args) throws IOException {
         Map<String, CellPoint> map = new HashMap<>();
         map.put("D:\\1.png", new CellPoint(46, 3, 48, 4));