Selaa lähdekoodia

Merge branch 'master' of http://git.zthymaoyi.com/gongdc/uni_shangpu

achao 3 vuotta sitten
vanhempi
commit
6afdff3a67
16 muutettua tiedostoa jossa 846 lisäystä ja 26 poistoa
  1. 48 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpenditureService.java
  2. 218 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpenditureServiceImpl.java
  3. 4 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ForeignExchangeServiceImpl.java
  4. 10 1
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationService.java
  5. 62 4
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationServiceImpl.java
  6. 10 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ProductSalesServiceImpl.java
  7. 48 0
      unimall-admin/src/api/expenditure.js
  8. 237 0
      unimall-admin/src/views/expenditure/expenditure.vue
  9. 47 19
      unimall-core/src/main/java/com/iotechn/unimall/core/util/ExcelUtils.java
  10. 49 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/ExpenditureManageDO.java
  11. 31 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/MaritimeAdministrationDO.java
  12. 37 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/ExpenditureManageDTO.java
  13. 1 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/MaritimeAdministrationDTO.java
  14. 31 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/StatisticsView.java
  15. 11 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/ExpenditureManageMapper.java
  16. 2 2
      unimall-launcher/src/main/resources/application.properties

+ 48 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpenditureService.java

@@ -0,0 +1,48 @@
+package com.iotechn.unimall.admin.api.sys;
+
+import com.iotechn.unimall.core.annotation.HttpMethod;
+import com.iotechn.unimall.core.annotation.HttpOpenApi;
+import com.iotechn.unimall.core.annotation.HttpParam;
+import com.iotechn.unimall.core.annotation.HttpParamType;
+import com.iotechn.unimall.core.annotation.param.NotNull;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.dto.StatisticsView;
+import com.iotechn.unimall.data.model.Page;
+import com.iotechn.unimall.data.domain.ExpenditureManageDO;
+import com.iotechn.unimall.data.dto.ExpenditureManageDTO;
+
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@HttpOpenApi(group = "admin.expenditure", description = "unimall_expenditure_manageService")
+public interface ExpenditureService {
+
+    @HttpMethod(description = "删除", permission = "expenditure:expenditure:delete", permissionParentName = "其他", permissionName = "Expenditure")
+    public boolean delete(
+            @NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "id") Long id,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+
+    @HttpMethod(description = "查询", permission = "expenditure:expenditure:list", permissionParentName = "其他", permissionName = "Expenditure")
+    public Page<ExpenditureManageDO> list(
+            @HttpParam(name = "ExpenditureManageDTO", type = HttpParamType.COMMON, description = "ExpenditureManageDTO") ExpenditureManageDTO selectDTO,
+            @HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+            @HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+    @HttpMethod(description = "查询", permission = "expenditure:expenditure:list", permissionParentName = "其他", permissionName = "Expenditure")
+    public List<StatisticsView> listStatistics(
+            @HttpParam(name = "StatisticsView", type = HttpParamType.COMMON, description = "StatisticsView") StatisticsView statisticsView) throws ServiceException;
+
+    @HttpMethod(description = "添加", permission = "expenditure:expenditure:create", permissionParentName = "其他", permissionName = "Expenditure")
+    public ExpenditureManageDO create(
+            @HttpParam(name = "ExpenditureManageDTO", type = HttpParamType.COMMON, description = "ExpenditureManageDTO") ExpenditureManageDTO insertDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    @HttpMethod(description = "编辑", permission = "expenditure:expenditure:edit", permissionParentName = "其他", permissionName = "Expenditure")
+    public String edit(
+            @HttpParam(name = "ExpenditureManageDTO", type = HttpParamType.COMMON, description = "ExpenditureManageDTO") ExpenditureManageDTO editDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    }

+ 218 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpenditureServiceImpl.java

@@ -0,0 +1,218 @@
+package com.iotechn.unimall.admin.api.sys;
+
+
+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.ProductSalesDO;
+import com.iotechn.unimall.data.dto.StatisticsView;
+import com.iotechn.unimall.data.mapper.ProductSalesMapper;
+import com.iotechn.unimall.data.model.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.data.domain.ExpenditureManageDO;
+import com.iotechn.unimall.data.dto.ExpenditureManageDTO;
+import com.iotechn.unimall.data.mapper.ExpenditureManageMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.apache.ibatis.session.RowBounds;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.CollectionUtils;
+import tk.mybatis.mapper.util.StringUtil;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * Generate Code By Unimall
+ */
+@Service
+public class ExpenditureServiceImpl implements ExpenditureService {
+
+    @Autowired
+    private ExpenditureManageMapper expenditureManageMapper;
+    @Autowired
+    private ProductSalesMapper productSalesMapper;
+
+    @Override
+    public boolean delete(Long id, Long adminId) throws ServiceException {
+        return expenditureManageMapper.deleteById(id) > 0;
+    }
+
+    @Override
+    public Page<ExpenditureManageDO> list(ExpenditureManageDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
+        Wrapper<ExpenditureManageDO> wrapper = new EntityWrapper<ExpenditureManageDO>();
+        List<ExpenditureManageDO> list = expenditureManageMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = expenditureManageMapper.selectCount(wrapper);
+        return new Page<ExpenditureManageDO>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ExpenditureManageDO create(ExpenditureManageDTO insertDTO, Long adminId) throws ServiceException {
+        Date now = new Date();
+        ExpenditureManageDO insertDO = new ExpenditureManageDO();
+        BeanUtils.copyProperties(insertDTO, insertDO);
+        insertDO.setGmtUpdate(now);
+        insertDO.setGmtCreate(now);
+        if (expenditureManageMapper.insert(insertDO) > 0) {
+            return insertDO;
+        }
+        throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String edit(ExpenditureManageDTO editDTO, Long adminId) throws ServiceException {
+        Date now = new Date();
+        ExpenditureManageDO updateDO = new ExpenditureManageDO();
+        BeanUtils.copyProperties(editDTO, updateDO);
+        updateDO.setGmtUpdate(now);
+        if (expenditureManageMapper.updateById(updateDO) > 0) {
+            return "ok";
+        }
+        throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+
+    @Override
+    public List<StatisticsView> listStatistics(StatisticsView statisticsView) throws ServiceException {
+        List<StatisticsView> statisticsViews = new ArrayList<>();
+        Wrapper<ExpenditureManageDO> wrapper = new EntityWrapper<ExpenditureManageDO>();
+        if (statisticsView != null && StringUtil.isNotEmpty(statisticsView.getStartDate())) {
+            wrapper.and("DATE_FORMAT(expenditure_date,'%Y%m%d') >= DATE_FORMAT('" + statisticsView.getStartDate() + "','%Y%m%d')");
+        }
+        if (statisticsView != null && StringUtil.isNotEmpty(statisticsView.getEndDate())) {
+            wrapper.and("DATE_FORMAT(expenditure_date,'%Y%m%d') <= DATE_FORMAT('" + statisticsView.getEndDate() + "','%Y%m%d')");
+
+        }
+        wrapper.groupBy("expenditure_date");
+        wrapper.orderBy("expenditure_date", true);
+        List<ExpenditureManageDO> list = expenditureManageMapper.selectList(wrapper);
+
+        Wrapper<ProductSalesDO> wrapper1 = new EntityWrapper<ProductSalesDO>();
+        if (statisticsView != null && StringUtil.isNotEmpty(statisticsView.getStartDate())) {
+            wrapper1.and("DATE_FORMAT(sale_date,'%Y%m%d') >= DATE_FORMAT('" + statisticsView.getStartDate() + "','%Y%m%d')");
+        }
+        if (statisticsView != null && StringUtil.isNotEmpty(statisticsView.getEndDate())) {
+            wrapper1.and("DATE_FORMAT(sale_date,'%Y%m%d') <= DATE_FORMAT('" + statisticsView.getEndDate() + "','%Y%m%d')");
+
+        }
+        wrapper.groupBy("sale_date");
+        wrapper.orderBy("sale_date", true);
+        List<ProductSalesDO> list1 = productSalesMapper.selectList(wrapper1);
+
+        if (!CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(list1)) {
+            // 获取支出日期
+            List<String> dateList = list.stream().map(ExpenditureManageDO::getExpenditureDate).collect(Collectors.toList());
+            // 获取收款日期
+            List<String> dateSalesList = list1.stream().map(ProductSalesDO::getSaleDate).collect(Collectors.toList());
+            for (int i = 0; i < dateSalesList.size(); i++) {
+                if (!dateList.contains(dateSalesList.get(i))) {
+                    dateList.add(dateSalesList.get(i));
+                }
+            }
+            Collections.sort(dateList);
+            for (int i = 0; i < dateList.size(); i++) {
+                String date = dateList.get(i);
+                Wrapper<ProductSalesDO> salesDOWrapper = new EntityWrapper<ProductSalesDO>();
+                salesDOWrapper.eq("sale_date", date);
+                List<ProductSalesDO> salesDOS = productSalesMapper.selectList(salesDOWrapper);
+                Wrapper<ExpenditureManageDO> expenditureManageDOWrapper = new EntityWrapper<ExpenditureManageDO>();
+                salesDOWrapper.eq("sale_date", date);
+                List<ExpenditureManageDO> expenditureManageDOS = expenditureManageMapper.selectList(expenditureManageDOWrapper);
+                double saleSum = 0d;
+                double expenditureSum = 0d;
+                if (!CollectionUtils.isEmpty(salesDOS)) {
+                    for (int j = 0; j < salesDOS.size(); j++) {
+                        saleSum = saleSum + salesDOS.get(j).getPaidAmount();
+                    }
+                }
+
+                if (!CollectionUtils.isEmpty(expenditureManageDOS)) {
+                    for (int j = 0; j < expenditureManageDOS.size(); j++) {
+                        expenditureSum = expenditureSum + expenditureManageDOS.get(j).getExpenditureAmount();
+                    }
+                }
+                StatisticsView statisticsView1 = new StatisticsView();
+                statisticsView1.setStaticDate(date);
+                statisticsView1.setRevenueAmount(saleSum);
+                statisticsView1.setExpenditureAmount(expenditureSum);
+                statisticsView1.setReceipts(saleSum - expenditureSum);
+                statisticsViews.add(statisticsView1);
+
+            }
+        } else if (!CollectionUtils.isEmpty(list) && CollectionUtils.isEmpty(list1)) {
+// 获取支出日期
+            List<String> dateList = list.stream().map(ExpenditureManageDO::getExpenditureDate).collect(Collectors.toList());
+
+            for (int i = 0; i < dateList.size(); i++) {
+                String date = dateList.get(i);
+                Wrapper<ProductSalesDO> salesDOWrapper = new EntityWrapper<ProductSalesDO>();
+                salesDOWrapper.eq("sale_date", date);
+                List<ProductSalesDO> salesDOS = productSalesMapper.selectList(salesDOWrapper);
+                Wrapper<ExpenditureManageDO> expenditureManageDOWrapper = new EntityWrapper<ExpenditureManageDO>();
+                salesDOWrapper.eq("sale_date", date);
+                List<ExpenditureManageDO> expenditureManageDOS = expenditureManageMapper.selectList(expenditureManageDOWrapper);
+                double saleSum = 0d;
+                double expenditureSum = 0d;
+                if (!CollectionUtils.isEmpty(salesDOS)) {
+                    for (int j = 0; j < salesDOS.size(); j++) {
+                        saleSum = saleSum + salesDOS.get(j).getPaidAmount();
+                    }
+                }
+
+                if (!CollectionUtils.isEmpty(expenditureManageDOS)) {
+                    for (int j = 0; j < expenditureManageDOS.size(); j++) {
+                        expenditureSum = expenditureSum + expenditureManageDOS.get(j).getExpenditureAmount();
+                    }
+                }
+                StatisticsView statisticsView1 = new StatisticsView();
+                statisticsView1.setStaticDate(date);
+                statisticsView1.setRevenueAmount(saleSum);
+                statisticsView1.setExpenditureAmount(expenditureSum);
+                statisticsView1.setReceipts(saleSum - expenditureSum);
+                statisticsViews.add(statisticsView1);
+
+            }
+        } else if (CollectionUtils.isEmpty(list) && !CollectionUtils.isEmpty(list1)) {
+            // 获取收款日期
+            List<String> dateList = list1.stream().map(ProductSalesDO::getSaleDate).collect(Collectors.toList());
+            for (int i = 0; i < dateList.size(); i++) {
+                String date = dateList.get(i);
+                Wrapper<ProductSalesDO> salesDOWrapper = new EntityWrapper<ProductSalesDO>();
+                salesDOWrapper.eq("sale_date", date);
+                List<ProductSalesDO> salesDOS = productSalesMapper.selectList(salesDOWrapper);
+                Wrapper<ExpenditureManageDO> expenditureManageDOWrapper = new EntityWrapper<ExpenditureManageDO>();
+                salesDOWrapper.eq("sale_date", date);
+                List<ExpenditureManageDO> expenditureManageDOS = expenditureManageMapper.selectList(expenditureManageDOWrapper);
+                double saleSum = 0d;
+                double expenditureSum = 0d;
+                if (!CollectionUtils.isEmpty(salesDOS)) {
+                    for (int j = 0; j < salesDOS.size(); j++) {
+                        saleSum = saleSum + salesDOS.get(j).getPaidAmount();
+                    }
+                }
+
+                if (!CollectionUtils.isEmpty(expenditureManageDOS)) {
+                    for (int j = 0; j < expenditureManageDOS.size(); j++) {
+                        expenditureSum = expenditureSum + expenditureManageDOS.get(j).getExpenditureAmount();
+                    }
+                }
+                StatisticsView statisticsView1 = new StatisticsView();
+                statisticsView1.setStaticDate(date);
+                statisticsView1.setRevenueAmount(saleSum);
+                statisticsView1.setExpenditureAmount(expenditureSum);
+                statisticsView1.setReceipts(saleSum - expenditureSum);
+                statisticsViews.add(statisticsView1);
+
+            }
+        }
+
+        return statisticsViews;
+    }
+
+
+}

+ 4 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ForeignExchangeServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.apache.ibatis.session.RowBounds;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.CollectionUtils;
+import tk.mybatis.mapper.util.StringUtil;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
@@ -44,6 +45,9 @@ public class ForeignExchangeServiceImpl implements ForeignExchangeService {
     @Override
     public Page<ForeignExchangeDO> list(ForeignExchangeDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
         Wrapper<ForeignExchangeDO> wrapper = new EntityWrapper<ForeignExchangeDO>();
+        if(StringUtil.isNotEmpty(selectDTO.getCustomerNo())){
+            wrapper.eq("customer_no",selectDTO.getCustomerNo());
+        }
         List<ForeignExchangeDO> list = foreignExchangeMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
         Integer count = foreignExchangeMapper.selectCount(wrapper);
         return new Page<ForeignExchangeDO>(list, page, limit, count);

+ 10 - 1
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationService.java

@@ -6,12 +6,14 @@ import com.iotechn.unimall.core.annotation.HttpParam;
 import com.iotechn.unimall.core.annotation.HttpParamType;
 import com.iotechn.unimall.core.annotation.param.NotNull;
 import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.domain.SettlementManagementDO;
 import com.iotechn.unimall.data.dto.ForeignExchangeDTO;
 import com.iotechn.unimall.data.model.Page;
 import com.iotechn.unimall.data.domain.MaritimeAdministrationDO;
 import com.iotechn.unimall.data.dto.MaritimeAdministrationDTO;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * Generate Code By Unimall
@@ -42,13 +44,20 @@ public interface MaritimeAdministrationService {
             @HttpParam(name = "MaritimeAdministrationDTO", type = HttpParamType.COMMON, description = "MaritimeAdministrationDTO") MaritimeAdministrationDTO editDTO,
             @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
 
+    @HttpMethod(description = "添加", permission = "maritimeAdministration:maritimeadministration:createAll", permissionParentName = "其他", permissionName = "MaritimeAdministration")
+    public void createAll(
+            @HttpParam(name = "MaritimeAdministrationDTO", type = HttpParamType.COMMON, description = "MaritimeAdministrationDTO") List<MaritimeAdministrationDTO> maritimeAdministrationDTOS) throws ServiceException;
+
 
 
 
     @HttpMethod(description = "导出", permission = "maritimeAdministration:maritimeAdministration:export", permissionParentName = "其他", permissionName = "MaritimeAdministration")
-    public void export(
+    public String export(
             @HttpParam(name = "MaritimeAdministrationDTO", type = HttpParamType.COMMON, description = "MaritimeAdministrationDTO") MaritimeAdministrationDTO foreignExchangeDTO,
             @HttpParam(name = "HttpServletResponse", type = HttpParamType.COMMON, description = "response") HttpServletResponse response) throws Exception;
 
+    @HttpMethod(description = "查询详情", permission = "maritimeAdministration:maritimeAdministratio:getInfo", permissionParentName = "其他", permissionName = "MaritimeAdministration")
+    public MaritimeAdministrationDO getInfo(@HttpParam(name = "id", type = HttpParamType.COMMON, description = "id") Long id) throws ServiceException;
+
 
 }

+ 62 - 4
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationServiceImpl.java

@@ -2,11 +2,16 @@ package com.iotechn.unimall.admin.api.sys;
 
 
 import cn.hutool.poi.excel.ExcelUtil;
+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.core.util.ExcelUtils;
+import com.iotechn.unimall.core.util.StringUtils;
+import com.iotechn.unimall.data.domain.ForeignExchangeDO;
 import com.iotechn.unimall.data.domain.MaritimeDetailDO;
+import com.iotechn.unimall.data.dto.ForeignExchangeDTO;
 import com.iotechn.unimall.data.dto.MaritimeDetailDTO;
 import com.iotechn.unimall.data.mapper.MaritimeDetailMapper;
 import com.iotechn.unimall.data.model.Page;
@@ -48,7 +53,14 @@ public class MaritimeAdministrationServiceImpl implements MaritimeAdministration
     @Override
     public Page<MaritimeAdministrationDO> list(MaritimeAdministrationDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
         Wrapper<MaritimeAdministrationDO> wrapper = new EntityWrapper<MaritimeAdministrationDO>();
+        if(selectDTO!=null && StringUtils.isNotEmpty(selectDTO.getContainerNo())){
+            wrapper.eq("container_no",selectDTO.getContainerNo());
+        }
+        if(selectDTO!=null && StringUtils.isNotEmpty(selectDTO.getCustomerNo())){
+            wrapper.eq("customer_no",selectDTO.getCustomerNo());
+        }
         List<MaritimeAdministrationDO> list = maritimeAdministrationMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        List<MaritimeAdministrationDO> list1= new ArrayList<>();
         if (!CollectionUtils.isEmpty(list)) {
             list.forEach(maritimeAdministrationDO -> {
                 List<MaritimeDetailDO> maritimeDetailDOS = maritimeDetailMapper.selectList(new EntityWrapper<MaritimeDetailDO>()
@@ -109,9 +121,9 @@ public class MaritimeAdministrationServiceImpl implements MaritimeAdministration
     }
 
     @Override
-    public void export(MaritimeAdministrationDTO maritimeAdministrationDTO, HttpServletResponse response) {
+    public String export(MaritimeAdministrationDTO maritimeAdministrationDTO, HttpServletResponse response) {
         // 表头处理
-        List<Object> head = Arrays.asList("客户编号", "快递公司", "已收到单号", "内件明细", "实重", "长", "宽", "高", "体积重", "包裹数", "人民币", "欧元");
+        List<Object> head = Arrays.asList("柜号","客户编号", "快递公司", "已收到单号", "内件明细", "实重", "长", "宽", "高", "体积重", "包裹数", "人民币", "欧元");
         // 汇总集合
         List<List<Object>> sheetDateList = new ArrayList<>();
         sheetDateList.add(head);
@@ -129,7 +141,7 @@ public class MaritimeAdministrationServiceImpl implements MaritimeAdministration
 //                        maritimeDetailDO.setRmb(maritimeAdministrationDO.getRmb());
 //                        maritimeDetailDO.setEuro(maritimeAdministrationDO.getEuro());
                     for (int i = 0; i < maritimeDetailDOS.size(); i++) {
-                        MaritimeDetailDO maritimeDetailDO = new MaritimeDetailDO();
+                        MaritimeDetailDO maritimeDetailDO = maritimeDetailDOS.get(i);
                         if (i == 0) {
                             List<Object> objects = new ArrayList<>();
                             objects.add(maritimeAdministrationDO.getContainerNo());
@@ -176,8 +188,54 @@ public class MaritimeAdministrationServiceImpl implements MaritimeAdministration
             });
         }
 
-        ExcelUtils.export(response,"海运清单",sheetDateList);
+        return ExcelUtils.export(response,"海运清单",sheetDateList);
+
+    }
+
+    @Override
+    public MaritimeAdministrationDO getInfo(Long id) throws ServiceException {
+        MaritimeAdministrationDO maritimeAdministrationDO = maritimeAdministrationMapper.selectById(id);
+        if (maritimeAdministrationDO != null) {
+            List<MaritimeDetailDO> maritimeDetailDOS = maritimeDetailMapper.selectList(new EntityWrapper<MaritimeDetailDO>()
+                    .eq("info_id", id));
+            maritimeAdministrationDO.setMaritimeDetailDOS(maritimeDetailDOS);
+        }
+        return maritimeAdministrationDO;
+    }
+
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createAll(List<MaritimeAdministrationDTO> maritimeAdministrationDTOS) throws ServiceException {
+        Date now = new Date();
+        maritimeAdministrationDTOS = JSON.parseArray(JSONObject.toJSONString(maritimeAdministrationDTOS), MaritimeAdministrationDTO.class);
+        if (!CollectionUtils.isEmpty(maritimeAdministrationDTOS)) {
+            for (int i = 0; i < maritimeAdministrationDTOS.size(); i++) {
+                MaritimeAdministrationDO insertDO = new MaritimeAdministrationDO();
+                MaritimeAdministrationDTO dto = maritimeAdministrationDTOS.get(i);
+                BeanUtils.copyProperties(dto, insertDO);
+                insertDO.setGmtUpdate(now);
+                insertDO.setGmtCreate(now);
+                insertDO.setStatus(0);
+                maritimeAdministrationMapper.insert(insertDO);
+                // 详情
+                List<MaritimeDetailDTO> maritimeDetailDTOS = dto.getMaritimeDetailDTOS();
+                if(!CollectionUtils.isEmpty(maritimeDetailDTOS)){
+                    for(int j=0;j<maritimeDetailDTOS.size();j++){
+                        MaritimeDetailDO insertDetailDO = new MaritimeDetailDO();
+                        MaritimeDetailDTO dtoDetail = maritimeDetailDTOS.get(j);
+                        BeanUtils.copyProperties(dtoDetail, insertDetailDO);
+                        insertDetailDO.setInfoId(insertDO.getId());
+                        insertDetailDO.setGmtUpdate(now);
+                        insertDetailDO.setGmtCreate(now);
+                        insertDetailDO.setStatus(0);
+                        maritimeDetailMapper.insert(insertDetailDO);
+                    }
+                }
+            }
+        }
     }
 
+
+
 }

+ 10 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ProductSalesServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.apache.ibatis.session.RowBounds;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
@@ -44,6 +45,15 @@ public class ProductSalesServiceImpl implements ProductSalesService {
     @Override
     public Page<ProductSalesDO> list(ProductSalesDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
         Wrapper<ProductSalesDO> wrapper = new EntityWrapper<ProductSalesDO>();
+        if(!StringUtils.isEmpty(selectDTO.getSaleNo())){
+            wrapper.eq("sale_no",selectDTO.getSaleNo());
+        }
+        if(!StringUtils.isEmpty(selectDTO.getCustomer())){
+            wrapper.eq("customer",selectDTO.getCustomer());
+        }
+        if(!StringUtils.isEmpty(selectDTO.getTradeName())){
+            wrapper.eq("trade_name",selectDTO.getTradeName());
+        }
         List<ProductSalesDO> list = productSalesMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
         Integer count = productSalesMapper.selectCount(wrapper);
         return new Page<ProductSalesDO>(list, page, limit, count);

+ 48 - 0
unimall-admin/src/api/expenditure.js

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+import Qs from 'qs'
+
+export function listExpenditureManage(query) {
+  return request({
+    method: 'post',
+    params:{
+      _gp: 'admin.expenditure',
+      _mt: 'list',
+      page: query.page,
+      limit: query.limit,
+      ...query
+    }
+  })
+}
+
+export function createExpenditureManage(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.expenditure',
+      _mt: 'create',
+      ExpenditureManageDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function updateExpenditureManage(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.expenditure',
+      _mt: 'edit',
+      ExpenditureManageDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function deleteExpenditureManage(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.expenditure',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}

+ 237 - 0
unimall-admin/src/views/expenditure/expenditure.vue

@@ -0,0 +1,237 @@
+<template>
+    <div class="app-container">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+                        <el-input
+                    v-model="listQuery.expenditureDate"
+                    clearable
+                    class="filter-item"
+                    size="small"
+                    style="width: 200px;"
+                    placeholder="请输入支出日期"
+            />
+            <el-button v-permission="['expenditure:expenditure:list']" class="filter-item" type="primary" size="mini" icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button v-permission="['expenditure:expenditure:create']" class="filter-item" type="primary" size="mini" icon="el-icon-edit" @click="handleCreate">添加</el-button>
+        </div>
+
+        <!-- 查询结果 -->
+        <el-table
+                v-loading="listLoading"
+                :data="list"
+                size="small"
+                element-loading-text="正在查询中。。。"
+                border
+                fit
+                highlight-current-row
+        >
+            <el-table-column align="center" label="支出日期" prop="expenditureDate" />
+            <el-table-column align="center" label="支出内容" prop="expenditureContent" />
+            <el-table-column align="center" label="支出金额" prop="expenditureAmount" />
+            <el-table-column align="center" label="备注" prop="remark" />
+            <el-table-column align="center" label="操作" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button v-permission="['expenditure:expenditure:edit']" type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
+                    <el-button v-permission="['expenditure:expenditure:delete']" type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+
+        <pagination
+                v-show="total>0"
+                :total="total"
+                :page.sync="listQuery.page"
+                :limit.sync="listQuery.limit"
+                @pagination="getList"
+        />
+
+        <!-- 添加或修改对话框 -->
+        <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
+            <el-form
+                    ref="dataForm"
+                    :rules="rules"
+                    :model="dataForm"
+                    status-icon
+                    label-position="left"
+                    label-width="100px"
+                    style="width: 400px; margin-left:50px;"
+            >
+                <el-form-item label="id" prop="id" hidden>
+                    <el-input v-model="dataForm.id" />
+                </el-form-item>
+                <el-form-item label="支出日期" prop="expenditureDate">
+                    <el-input v-model="dataForm.expenditureDate" />
+                </el-form-item>
+                <el-form-item label="支出内容" prop="expenditureContent">
+                    <el-input v-model="dataForm.expenditureContent" />
+                </el-form-item>
+                <el-form-item label="支出金额" prop="expenditureAmount">
+                    <el-input v-model="dataForm.expenditureAmount" />
+                </el-form-item>
+                <el-form-item label="备注" prop="remark">
+                    <el-input v-model="dataForm.remark" />
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible = false">取消</el-button>
+                <el-button v-if="dialogStatus=='create'" :loading="submiting" type="primary" @click="createData">确定</el-button>
+                <el-button v-else type="primary" :loading="submiting" @click="updateData">确定</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    import {
+        listExpenditureManage,
+        createExpenditureManage,
+        updateExpenditureManage,
+        deleteExpenditureManage
+    } from '@/api/expenditure'
+    import Pagination from '@/components/Pagination'
+    export default {
+        name: 'ExpenditureManage',
+        components: { Pagination },
+        data() {
+            return {
+                list: null,
+                total: 0,
+                listLoading: true,
+                listQuery: {
+                    page: 1,
+                    limit: 20
+                },
+                dataForm: {
+                    id: undefined
+                },
+                dialogFormVisible: false,
+                submiting: false,
+                dialogStatus: '',
+                textMap: {
+                    update: '编辑',
+                    create: '创建'
+                },
+                rules: {
+                }
+            }
+        },
+        created() {
+            this.getList()
+        },
+        methods: {
+            getList() {
+                this.listLoading = true
+                listExpenditureManage(this.listQuery).then(response => {
+                    this.list = response.data.data.items
+                    this.total = response.data.data.total
+                    this.listLoading = false
+                })
+                .catch(() => {
+                    this.list = []
+                    this.total = 0
+                    this.listLoading = false
+                })
+            },
+            handleFilter() {
+                this.listQuery.page = 1
+                this.getList()
+            },
+            resetForm() {
+                this.dataForm = {
+                    id: undefined
+                }
+            },
+            handleCreate() {
+                this.resetForm()
+                this.dialogStatus = 'create'
+                this.dialogFormVisible = true
+                this.$nextTick(() => {
+                    this.$refs['dataForm'].clearValidate()
+                })
+            },
+            createData() {
+                this.$refs['dataForm'].validate(valid => {
+                    if (valid) {
+                        this.submiting = true
+                        createExpenditureManage(this.dataForm).then(response => {
+                            this.list.unshift(response.data.data)
+                            this.dialogFormVisible = false
+                            this.$notify.success({
+                                title: '成功',
+                                message: '添加成功'
+                            })
+                            this.submiting = false
+                        })
+                        .catch(response => {
+                            this.$notify.error({
+                                title: '失败',
+                                message: response.data.errmsg
+                            })
+                            this.submiting = false
+                        })
+                    }
+                })
+            },
+            handleUpdate(row) {
+                this.dataForm = Object.assign({}, row)
+                this.dialogStatus = 'update'
+                this.dialogFormVisible = true
+                this.$nextTick(() => {
+                    this.$refs['dataForm'].clearValidate()
+                })
+            },
+            updateData() {
+                this.$refs['dataForm'].validate(valid => {
+                    if (valid) {
+                        this.submiting = true
+                        updateExpenditureManage(this.dataForm).then(() => {
+                            for (const v of this.list) {
+                                if (v.id === this.dataForm.id) {
+                                    const index = this.list.indexOf(v)
+                                    this.list.splice(index, 1, this.dataForm)
+                                    break
+                                }
+                            }
+                            this.dialogFormVisible = false
+                            this.submiting = false
+                            this.$notify.success({
+                                title: '成功',
+                                message: '更新成功'
+                            })
+                        })
+                        .catch(response => {
+                            this.$notify.error({
+                                title: '失败',
+                                message: response.data.errmsg
+                            })
+                            this.submiting = false
+                        })
+                    }
+                })
+            },
+            handleDelete(row) {
+                this.$confirm('此操作将永久删除该记录---' + row.id + '---, 是否继续?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    deleteExpenditureManage(row.id).then(response => {
+                        this.$notify.success({
+                            title: '成功',
+                            message: '删除成功'
+                        })
+                        const index = this.list.indexOf(row)
+                        this.list.splice(index, 1)
+                    })
+                    .catch(response => {
+                        this.$notify.error({
+                            title: '失败',
+                            message: response.data.errmsg
+                        })
+                    })
+                }).catch(() => {
+                    return false
+                })
+            }
+        }
+    }
+</script>

+ 47 - 19
unimall-core/src/main/java/com/iotechn/unimall/core/util/ExcelUtils.java

@@ -385,7 +385,7 @@ public class ExcelUtils {
         exportTemplate(response, fileName, fileName, clazz, isContainExample);
     }
 
-    public static <T> void exportTemplate(HttpServletResponse response, String fileName, String sheetName,
+    public static <T> String exportTemplate(HttpServletResponse response, String fileName, String sheetName,
                                           Class<T> clazz, boolean isContainExample) {
         // 获取表头字段
         List<ExcelClassField> headFieldList = getExcelClassFieldList(clazz);
@@ -408,7 +408,7 @@ public class ExcelUtils {
             sheetDataList.add(exampleList);
         }
         // 导出数据
-        export(response, fileName, sheetName, sheetDataList, selectMap);
+        return export(response, fileName, sheetName, sheetDataList, selectMap);
     }
 
     private static <T> List<ExcelClassField> getExcelClassFieldList(Class<T> clazz) {
@@ -511,15 +511,15 @@ public class ExcelUtils {
      * @param file      本地文件对象
      * @param sheetData 导出数据
      */
-    public static void exportFile(File file, List<List<Object>> sheetData) {
+    public static String exportFile(File file, List<List<Object>> sheetData) {
         if (file == null) {
             System.out.println("文件创建失败");
-            return;
+            return null;
         }
         if (sheetData == null) {
             sheetData = new ArrayList<>();
         }
-        export(null, file, file.getName(), file.getName(), sheetData, null);
+        return export(null, file, file.getName(), file.getName(), sheetData, null);
     }
 
     /**
@@ -635,26 +635,26 @@ public class ExcelUtils {
         return map;
     }
 
-    public static void exportEmpty(HttpServletResponse response, String fileName) {
+    public static String exportEmpty(HttpServletResponse response, String fileName) {
         List<List<Object>> sheetDataList = new ArrayList<>();
         List<Object> headList = new ArrayList<>();
         headList.add("导出无数据");
         sheetDataList.add(headList);
-        export(response, fileName, sheetDataList);
+        return export(response, fileName, sheetDataList);
     }
 
-    public static void export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList) {
-        export(response, fileName, fileName, sheetDataList, null);
+    public static String export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList) {
+        return export(response, fileName, fileName, sheetDataList, null);
     }
 
-    public static void export(HttpServletResponse response, String fileName, String sheetName,
+    public String export(HttpServletResponse response, String fileName, String sheetName,
                               List<List<Object>> sheetDataList) {
-        export(response, fileName, sheetName, sheetDataList, null);
+        return export(response, fileName, sheetName, sheetDataList, null);
     }
 
-    public static void export(HttpServletResponse response, String fileName, String sheetName,
-                              List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
-        export(response, null, fileName, sheetName, sheetDataList, selectMap);
+    public static String export(HttpServletResponse response, String fileName, String sheetName,
+                                List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
+        return export(response, null, fileName, sheetName, sheetDataList, selectMap);
     }
 
     public static <T, K> void export(HttpServletResponse response, String fileName, List<T> list, Class<K> template) {
@@ -675,12 +675,12 @@ public class ExcelUtils {
         export(response, fileName, sheetDataList);
     }
 
-    public static void export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
-        export(response, fileName, fileName, sheetDataList, selectMap);
+    public String export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
+        return export(response, fileName, fileName, sheetDataList, selectMap);
     }
 
-    private static void export(HttpServletResponse response, File file, String fileName, String sheetName,
-                               List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
+    private static String export(HttpServletResponse response, File file, String fileName, String sheetName,
+                                 List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
         // 整个 Excel 表格 book 对象
         SXSSFWorkbook book = new SXSSFWorkbook();
         // 每个 Sheet 页
@@ -742,17 +742,45 @@ public class ExcelUtils {
             // 本地导出
             FileOutputStream fos;
             try {
-                fos = new FileOutputStream(file);
+                fileName = encodingFilename(fileName);
+                fos = new FileOutputStream(getAbsoluteFile(fileName));
                 ByteArrayOutputStream ops = new ByteArrayOutputStream();
                 book.write(ops);
                 fos.write(ops.toByteArray());
                 fos.close();
+                return fileName;
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
+        return fileName;
     }
 
+
+    /**
+     * 编码文件名
+     */
+    public static String encodingFilename(String filename)
+    {
+        filename = UUID.randomUUID().toString() + "_" + filename + ".xlsx";
+        return filename;
+    }
+
+    /**
+     * 获取下载路径
+     *
+     * @param filename 文件名称
+     */
+    public static String getAbsoluteFile(String filename)
+    {
+        String downloadPath = "/templates/"+ filename;
+        File desc = new File(downloadPath);
+        if (!desc.getParentFile().exists())
+        {
+            desc.getParentFile().mkdirs();
+        }
+        return downloadPath;
+    }
     /**
      * 合并当前Sheet页的单元格
      *

+ 49 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/ExpenditureManageDO.java

@@ -0,0 +1,49 @@
+package com.iotechn.unimall.data.domain;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * Generate Code By Unimall
+ */
+@Data
+@TableName("unimall_expenditure_manage")
+public class ExpenditureManageDO extends SuperDO {
+
+     /* id */
+    @TableField("id")
+    private Long id;
+     /* 支出日期 */
+    @TableField("expenditure_date")
+    private String expenditureDate;
+     /* 支出内容 */
+    @TableField("expenditure_content")
+    private String expenditureContent;
+     /* 支出金额 */
+    @TableField("expenditure_amount")
+    private Double expenditureAmount;
+     /* 备注 */
+    @TableField("remark")
+    private String remark;
+     /* gmtCreate */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+     /* gmtUpdate */
+    @TableField("gmt_update")
+    private Date gmtUpdate;
+     /* userId */
+    @TableField("user_id")
+    private Long userId;
+     /* adminId */
+    @TableField("admin_id")
+    private Long adminId;
+     /* companyId */
+    @TableField("company_id")
+    private Long companyId;
+     /* updatePeople */
+    @TableField("update_people")
+    private String updatePeople;
+
+}

+ 31 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/MaritimeAdministrationDO.java

@@ -60,4 +60,35 @@ public class MaritimeAdministrationDO extends SuperDO {
     @TableField(exist = false)
     private List<MaritimeDetailDO> maritimeDetailDOS;
 
+
+    /* 快递公司 */
+    @TableField(exist = false)
+    private String courierServicesCompany;
+    /* 已收到单号 */
+    @TableField(exist = false)
+    private String receivedNo;
+    /* 内件明细 */
+    @TableField(exist = false)
+    private String internalDetails;
+    /* 实重 */
+    @TableField(exist = false)
+    private String weight;
+    /* 长 */
+    @TableField(exist = false)
+    private String long1;
+    /* 宽 */
+    @TableField(exist = false)
+    private String wide;
+    /* 高 */
+    @TableField(exist = false)
+    private String height;
+    /* 体积重 */
+    @TableField(exist = false)
+    private String bulkWeight;
+
+
+
+    @TableField(exist = false)
+    private String flag;
+
 }

+ 37 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/ExpenditureManageDTO.java

@@ -0,0 +1,37 @@
+package com.iotechn.unimall.data.dto;
+
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * Generate Code By Unimall
+ */
+@Data
+@TableName("unimall_expenditure_manage")
+public class ExpenditureManageDTO extends SuperDTO {
+
+     /* id */
+    private Long id;
+     /* 支出日期 */
+    private String expenditureDate;
+     /* 支出内容 */
+    private String expenditureContent;
+     /* 支出金额 */
+    private Double expenditureAmount;
+     /* 备注 */
+    private String remark;
+     /* gmtCreate */
+    private Date gmtCreate;
+     /* gmtUpdate */
+    private Date gmtUpdate;
+     /* userId */
+    private Long userId;
+     /* adminId */
+    private Long adminId;
+     /* companyId */
+    private Long companyId;
+     /* updatePeople */
+    private String updatePeople;
+
+}

+ 1 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/MaritimeAdministrationDTO.java

@@ -41,6 +41,7 @@ public class MaritimeAdministrationDTO extends SuperDTO {
     private Long companyId;
      /* updatePeople */
     private String updatePeople;
+    private List<MaritimeAdministrationDTO> maritimeAdministrationDTOS;
 
     private List<MaritimeDetailDTO> maritimeDetailDTOS;
 

+ 31 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/StatisticsView.java

@@ -0,0 +1,31 @@
+package com.iotechn.unimall.data.dto;
+
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * Generate Code By Unimall
+ */
+@Data
+public class StatisticsView extends SuperDTO {
+
+     /* 日期 */
+    private String staticDate;
+     /* 收入金额 */
+    private Double revenueAmount;
+     /* 支出金额 */
+    private Double expenditureAmount;
+    /* 实收 */
+    private Double receipts;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String startDate;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String endDate;
+}

+ 11 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/ExpenditureManageMapper.java

@@ -0,0 +1,11 @@
+package com.iotechn.unimall.data.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.iotechn.unimall.data.domain.ExpenditureManageDO;
+
+/**
+ * Generate Code By Unimall
+ */
+public interface ExpenditureManageMapper extends BaseMapper<ExpenditureManageDO> {
+
+}

+ 2 - 2
unimall-launcher/src/main/resources/application.properties

@@ -1,4 +1,4 @@
-server.port=8089
+server.port=8080
 
 logging.path=/opt/logs
 logging.file=unimall.log
@@ -10,7 +10,7 @@ com.iotechn.unimall.env=3
 ########################################################
 spring.druid.driverClassName=com.mysql.jdbc.Driver
 ##Õýʽ¿â
-spring.druid.url=jdbc:mysql://162.62.62.59:3306/unimall_dp?createDatabaseIfNotExist=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useSSL=false
+spring.druid.url=jdbc:mysql://162.62.62.59:3323/unimall_dp?createDatabaseIfNotExist=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useSSL=false
 ###±¾µØ¿â
 #spring.druid.url=jdbc:mysql://localhost:3306/unimall?createDatabaseIfNotExist=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
 spring.druid.username=root