gongdecai vor 3 Jahren
Ursprung
Commit
56f847d3b7

+ 3 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/CustomerBillingService.java

@@ -71,6 +71,9 @@ public interface CustomerBillingService {
             @HttpParam(name = "CustomerBillingDetailDTO", type = HttpParamType.COMMON, description = "CustomerBillingDetailDTO") CustomerBillingDetailDTO customerBillingDetailDTO,
             @HttpParam(name = "HttpServletResponse", type = HttpParamType.COMMON, description = "response") HttpServletResponse response) throws Exception;
 
+    @HttpMethod(description = "添加", permission = "customerBilling:customerbilling:createAll", permissionParentName = "其他", permissionName = "CustomerBilling")
+    public void createAll(
+            @HttpParam(name = "CustomerBillingInfoDTO", type = HttpParamType.COMMON, description = "CustomerBillingInfoDTO") List<CustomerBillingInfoDTO> customerBillingInfoDTOList) throws ServiceException;
 
 
 }

+ 74 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/CustomerBillingServiceImpl.java

@@ -1,9 +1,12 @@
 package com.iotechn.unimall.admin.api.sys;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.iotechn.unimall.core.exception.AdminServiceException;
 import com.iotechn.unimall.core.exception.ExceptionDefinition;
 import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.domain.CollectionPaymentDO;
 import com.iotechn.unimall.data.domain.CustomerBillingDetailDO;
 import com.iotechn.unimall.data.dto.CollectionPaymentDTO;
 import com.iotechn.unimall.data.dto.CollectionPaymentTiDTO;
@@ -27,8 +30,10 @@ import org.springframework.util.StringUtils;
 import tk.mybatis.mapper.util.StringUtil;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -180,4 +185,73 @@ public class CustomerBillingServiceImpl implements CustomerBillingService {
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createAll(List<CustomerBillingInfoDTO> customerBillingInfoDTOList) throws ServiceException {
+        Date now = new Date();
+        customerBillingInfoDTOList = JSON.parseArray(JSONObject.toJSONString(customerBillingInfoDTOList), CustomerBillingInfoDTO.class);
+
+        if (!CollectionUtils.isEmpty(customerBillingInfoDTOList)) {
+            Map<String, List<CustomerBillingInfoDTO>> groupByCustomer = customerBillingInfoDTOList.stream().collect(Collectors.groupingBy(CustomerBillingInfoDTO::getCustomer));
+            for(String key :groupByCustomer.keySet()){
+                CustomerBillingInfoDO customerBillingInfoDO = new CustomerBillingInfoDO();
+                customerBillingInfoDO.setCustomer(key);
+                customerBillingInfoDO.setBusinessType("1");
+                customerBillingInfoDO.setStatus(1);
+                customerBillingInfoDO.setPayNo(getlinkNo());
+                customerBillingInfoDO.setGmtUpdate(now);
+                customerBillingInfoDO.setGmtCreate(now);
+                List<CustomerBillingInfoDTO> customerBillingInfoDTOS = groupByCustomer.get(key);
+                customerBillingInfoDO.setClosingDate(customerBillingInfoDTOS.get(0).getClosingDate());
+                Double amount = 0d;
+                if (customerBillingInfoMapper.insert(customerBillingInfoDO) > 0) {
+//                Double cost = 0d;
+                    for (int i = 0; i < customerBillingInfoDTOS.size(); i++) {
+                        CustomerBillingInfoDTO customerBillingInfoDTO = customerBillingInfoDTOS.get(i);
+                        CustomerBillingDetailDO customerBillingDetailDO = new CustomerBillingDetailDO();
+                        customerBillingDetailDO.setInfoId(customerBillingInfoDO.getId());
+                        customerBillingDetailDO.setCabinetNo(customerBillingInfoDTO.getCabinetNo());
+                        customerBillingDetailDO.setArrivalDate(customerBillingInfoDTO.getArrivalDate());
+                        customerBillingDetailDO.setSendComp(customerBillingInfoDTO.getSendComp());
+                        customerBillingDetailDO.setCarTeam(customerBillingInfoDTO.getCarTeam());
+                        customerBillingDetailDO.setProduct(customerBillingInfoDTO.getProduct());
+                        customerBillingDetailDO.setDeliveryPlace(customerBillingInfoDTO.getDeliveryPlace());
+                        customerBillingDetailDO.setClearanceFee(customerBillingInfoDTO.getClearanceFee());
+                        customerBillingDetailDO.setClearanceCost(customerBillingInfoDTO.getClearanceCost());
+                        customerBillingDetailDO.setTruck(customerBillingInfoDTO.getTruck());
+                        customerBillingDetailDO.setTruckCost(customerBillingInfoDTO.getTruckCost());
+                        customerBillingDetailDO.setOtherExpenses(customerBillingInfoDTO.getOtherExpenses());
+                        customerBillingDetailDO.setOtherCost(customerBillingInfoDTO.getOtherCost());
+                        customerBillingDetailDO.setPricePayable(customerBillingInfoDTO.getClearanceFee() + customerBillingInfoDTO.getTruck() + customerBillingInfoDTO.getOtherExpenses());
+                        amount = amount + customerBillingDetailDO.getPricePayable();
+                        customerBillingDetailDO.setCost(customerBillingInfoDTO.getClearanceCost() + customerBillingInfoDTO.getTruckCost() + customerBillingInfoDTO.getOtherCost());
+//                    cost =cost+customerBillingDetailDO.getCost();
+                        customerBillingDetailDO.setGmtUpdate(now);
+                        customerBillingDetailDO.setGmtCreate(now);
+                        customerBillingDetailMapper.insert(customerBillingDetailDO);
+                    }
+                }
+                customerBillingInfoDO.setAmountIng(amount);
+                customerBillingInfoMapper.updateById(customerBillingInfoDO);
+            }
+        }
+    }
+
+
+    public String getlinkNo() {
+        String linkNo = "";
+        // 用字符数组的方式随机
+        String model = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+        char[] m = model.toCharArray();
+        for (int j = 0; j < 6; j++) {
+            char c = m[(int) (Math.random() * 36)];
+            // 保证六位随机数之间没有重复的
+            if (linkNo.contains(String.valueOf(c))) {
+                j--;
+                continue;
+            }
+            linkNo = linkNo + c;
+        }
+        return linkNo;
+    }
 }

+ 8 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/CustomerBillingDetailDO.java

@@ -3,6 +3,8 @@ package com.iotechn.unimall.data.domain;
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableName;
 import java.util.Date;
+
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel;
 import lombok.Data;
 
 /**
@@ -24,6 +26,12 @@ public class CustomerBillingDetailDO extends SuperDO {
      /* 到港日期 */
     @TableField("arrival_date")
     private String arrivalDate;
+    /* 发货公司 */
+    @TableField("send_comp")
+    private String sendComp;
+    /* 车队 */
+    @TableField("car_team")
+    private String carTeam;
      /* 送货地点 */
     @TableField("delivery_place")
     private String deliveryPlace;

+ 8 - 2
unimall-data/src/main/java/com/iotechn/unimall/data/dto/CustomerBillingDetailDTO.java

@@ -38,11 +38,17 @@ public class CustomerBillingDetailDTO extends SuperDTO {
      /* 到港日期 */
      @Excel(name = "到港日期")
     private String arrivalDate;
+    /* 发货公司 */
+    @Excel(name = "发货公司")
+    private String sendComp;
+    /* 车队 */
+    @Excel(name = "车队")
+    private String carTeam;
      /* 送货地点 */
-     @Excel(name = "送货地点")
+     @Excel(name = "目的地")
     private String deliveryPlace;
      /* 产品 */
-     @Excel(name = "产品")
+     @Excel(name = "品")
     private String product;
      /* 重量 */
      @Excel(name = "重量")

+ 35 - 1
unimall-data/src/main/java/com/iotechn/unimall/data/dto/CustomerBillingInfoDTO.java

@@ -32,7 +32,7 @@ public class CustomerBillingInfoDTO extends SuperDTO {
      @Excel(name = "单据类型")
     private String businessType;
      /* 结账日期 */
-     @Excel(name = "结账日期")
+     @Excel(name = "装车日期")
     private String closingDate;
     /*应付金额 */
     @Excel(name = "应付金额")
@@ -72,4 +72,38 @@ public class CustomerBillingInfoDTO extends SuperDTO {
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private String endDate;
+
+    /* 柜号 */
+    @Excel(name = "柜号")
+    private String cabinetNo;
+    /* 到港日期 */
+    @Excel(name = "到港日期")
+    private String arrivalDate;
+    /* 产品 */
+    @Excel(name = "货品")
+    private String product;
+    /* 发货公司 */
+    @Excel(name = "发货公司")
+    private String sendComp;
+    /* 车队 */
+    @Excel(name = "车队")
+    private String carTeam;
+    /* 送货地点 */
+    @Excel(name = "目的地")
+    private String deliveryPlace;
+    /* 清关费 */
+    @Excel(name = "清关费")
+    private Double clearanceFee;
+    /* 清关成本 */
+    private Double clearanceCost;
+    /* 卡车 */
+    @Excel(name = "卡车")
+    private Double truck;
+    /* 卡车成本 */
+    private Double truckCost;
+    /* 其他费用 */
+    @Excel(name = "其他费用")
+    private Double otherExpenses;
+    /* 其他成本 */
+    private Double otherCost;
 }