Explorar o código

'添加订单'

yq %!s(int64=3) %!d(string=hai) anos
pai
achega
ecfaf9099c

+ 13 - 0
src/main/java/com/usky/dxtop/controller/web/business/OrderController.java

@@ -13,6 +13,7 @@ import com.usky.dxtop.service.emun.OrderStatus;
 import com.usky.dxtop.service.vo.OrderRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Date;
 
@@ -191,6 +192,18 @@ public class OrderController extends BaseController {
         return ApiResult.success(orderService.backPayPath(order));
     }
 
+    /**
+     * 订单表格导入
+     * @param file
+     * @return
+     */
+    @RepeatSubmit
+    @PostMapping("/addOrderByFile")
+    public ApiResult<String> addOrderByFile(@RequestParam("file") MultipartFile file){
+//        ApiResult.success(orderService.addOrderByList(file));
+        return ApiResult.success("");
+    }
+
 
 }
 

+ 1 - 1
src/main/java/com/usky/dxtop/controller/web/business/StaffController.java

@@ -60,7 +60,7 @@ public class StaffController {
      * @param radioId 比例id
      * @return
      */
-    @PutMapping("/addListByDept")
+    @PostMapping("/addListByDept")
     public ApiResult addListByDept(@RequestParam("deptIds[]") List<Long> deptIds,
                                    @RequestParam("isBinding") Boolean isBinding,
                                    @RequestParam("radioId") Long radioId){

+ 6 - 0
src/main/java/com/usky/dxtop/mapper/StaffMapper.java

@@ -8,6 +8,7 @@ import com.usky.dxtop.model.Staff;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -33,4 +34,9 @@ public interface StaffMapper extends BaseMapper<Staff> {
     Staff one(@Param("id") String id,
               @Param("phone") String phone,
               @Param("card") String card);
+
+
+    List<Staff> selectListByPhones(@Param("phoneList")List<String> phoneList);
+
+
 }

+ 1 - 0
src/main/java/com/usky/dxtop/service/OrderService.java

@@ -131,4 +131,5 @@ public interface OrderService extends IService<Order> {
      */
     String backPayPath(Order order);
 
+
 }

+ 62 - 4
src/main/java/com/usky/dxtop/service/impl/OrderServiceImpl.java

@@ -1,12 +1,15 @@
 package com.usky.dxtop.service.impl;
 
 import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -22,10 +25,7 @@ import com.usky.dxtop.service.api.TopApiConfiger;
 import com.usky.dxtop.service.config.rabbitmq.RabbitmqUtils;
 import com.usky.dxtop.service.constant.MsgLogBusinessCode;
 import com.usky.dxtop.service.emun.*;
-import com.usky.dxtop.service.vo.ChargeVO;
-import com.usky.dxtop.service.vo.OrderExport;
-import com.usky.dxtop.service.vo.OrderReport;
-import com.usky.dxtop.service.vo.OrderRequest;
+import com.usky.dxtop.service.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import ma.glasnost.orika.MapperFacade;
 import ma.glasnost.orika.MapperFactory;
@@ -568,6 +568,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return String.format("%s?backOrder=%s", payPath, JSON.toJSON(order));
     }
 
+
+
+
+
+
+
     /**
      * 完善没有的数据
      * @param list
@@ -699,4 +705,56 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             }
         }
     }
+
+
+
+
+    public void addOrderListByFile(MultipartFile multipartFile){
+
+    }
+
+
+    public List<Order> getOrderListByFile(MultipartFile multipartFile){
+        ImportParams importParams = new ImportParams();
+        importParams.setHeadRows(1);
+        try {
+            List<OrderFileVO> orderFileVOS = ExcelImportUtil.importExcel(
+                    multipartFile.getInputStream(),
+                    OrderFileVO.class,
+                    importParams
+            );
+            if (CollectionUtils.isNotEmpty(orderFileVOS)){
+                throw new CustomException("表格数据为空");
+            }
+            return BeanMapperUtils.mapList(orderFileVOS,OrderFileVO.class,Order.class);
+        }catch (Exception e){
+            throw new CustomException("解析订单异常"+e.getMessage());
+        }
+    }
+
+    public void  enhanceOrder(Order order,List<Staff> staffList){
+
+    }
+
+    public void uploadOrderExcel(MultipartFile multipartFile){
+        List<MultipartFile> list = new ArrayList<>();
+        list.add(multipartFile);
+        String batchNo = sysFileService.generateBatchNo();
+        SysFile sysFile = new SysFile();
+        sysFile.setBatchNo(batchNo);
+        sysFile.setFiles(list);
+        sysFile.setUploadType(SysFileServiceImpl.FILE);
+        sysFile.setBusinessType("订单表格");
+        sysFile.setExpriceAt(DateUtils.addDays(new Date(), 3));
+        List<SysFile> sysFileList = sysFileService.addFile(sysFile);
+        long count = sysFileList.stream().filter(sysFileDTO -> !sysFileDTO.getSuccess()).count();
+        if (count > 0) {
+            throw new CustomException("上传文件失败");
+        }
+        List<String> idList = sysFileList.stream().map(sf -> sf.getId().toString()).collect(Collectors.toList());
+        boolean active = sysFileService.active(batchNo,idList);
+        if (!active) {
+            throw new CustomException("上传文件失败");
+        }
+    }
 }

+ 30 - 0
src/main/java/com/usky/dxtop/service/vo/OrderFileVO.java

@@ -0,0 +1,30 @@
+package com.usky.dxtop.service.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author yq
+ * @date 2022/6/10 13:18
+ */
+@Data
+public class OrderFileVO {
+
+    /**
+     * 用户名称
+     */
+    @Excel(name = "用户名称",width = 14)
+    private String userName;
+    /**
+     * 用户手机号
+     */
+    @Excel(name = "用户手机号",width = 14)
+    private String userPhone;
+    /**
+     * 订单金额
+     */
+    @Excel(name = "订单金额",width = 14)
+    private BigDecimal money;
+}

+ 14 - 0
src/main/resources/mapper/StaffMapper.xml

@@ -52,5 +52,19 @@
             </if>
         </where>
     </select>
+    <select id="selectListByPhones" resultType="com.usky.dxtop.model.Staff">
+        select s.*,d.name as deptName,tr.identity,tr.proportion,tr.id as radioId
+        from staff as s
+        left join dept as d
+        on s.dept_id = d.id
+        left join staff_radio as sr
+        on s.s_id = sr.staff_id
+        left join top_radio as tr
+        on sr.radio_id = tr.id
+        where s.contacts in
+        <foreach collection="phoneList" item="phone" index="index" open="(" close=")" separator=",">
+            #{phone}
+        </foreach>
+    </select>
 
 </mapper>