gongdecai 3 gadi atpakaļ
vecāks
revīzija
40af65beec
39 mainītis faili ar 2682 papildinājumiem un 2 dzēšanām
  1. 52 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpressBillService.java
  2. 97 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpressBillServiceImpl.java
  3. 51 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ForeignExchangeService.java
  4. 95 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ForeignExchangeServiceImpl.java
  5. 42 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationService.java
  6. 70 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationServiceImpl.java
  7. 42 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeDetailService.java
  8. 70 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeDetailServiceImpl.java
  9. 50 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ProductSalesService.java
  10. 97 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ProductSalesServiceImpl.java
  11. 2 2
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/SettlementServiceImpl.java
  12. 48 0
      unimall-admin/src/api/MaritimeAdministration.js
  13. 48 0
      unimall-admin/src/api/MaritimeDetail.js
  14. 48 0
      unimall-admin/src/api/expressBill.js
  15. 48 0
      unimall-admin/src/api/foreignExchange.js
  16. 48 0
      unimall-admin/src/api/productSales.js
  17. 25 0
      unimall-admin/src/router/route.json
  18. 213 0
      unimall-admin/src/views/expressBill/expressBill.vue
  19. 213 0
      unimall-admin/src/views/foreignExchange/foreignExchange.vue
  20. 213 0
      unimall-admin/src/views/maritimeAdministration/MaritimeAdministration.vue
  21. 213 0
      unimall-admin/src/views/maritimeDetail/MaritimeDetail.vue
  22. 213 0
      unimall-admin/src/views/productSales/productSales.vue
  23. 70 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/ExpressBillDO.java
  24. 58 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/ForeignExchangeDO.java
  25. 58 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/MaritimeAdministrationDO.java
  26. 70 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/MaritimeDetailDO.java
  27. 106 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/ProductSalesDO.java
  28. 2 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/SettlementManagementDO.java
  29. 51 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/ExpressBillDTO.java
  30. 43 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/ForeignExchangeDTO.java
  31. 43 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/MaritimeAdministrationDTO.java
  32. 51 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/MaritimeDetailDTO.java
  33. 75 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/ProductSalesDTO.java
  34. 2 0
      unimall-data/src/main/java/com/iotechn/unimall/data/dto/SettlementManagementDTO.java
  35. 11 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/ExpressBillMapper.java
  36. 11 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/ForeignExchangeMapper.java
  37. 11 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/MaritimeAdministrationMapper.java
  38. 11 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/MaritimeDetailMapper.java
  39. 11 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/ProductSalesMapper.java

+ 52 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpressBillService.java

@@ -0,0 +1,52 @@
+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.ExpressBusinessDTO;
+import com.iotechn.unimall.data.model.Page;
+import com.iotechn.unimall.data.domain.ExpressBillDO;
+import com.iotechn.unimall.data.dto.ExpressBillDTO;
+
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@HttpOpenApi(group = "admin.expressbill", description = "unimall_express_billService")
+public interface ExpressBillService {
+
+    @HttpMethod(description = "删除", permission = "expressBill:expressbill:delete", permissionParentName = "其他", permissionName = "ExpressBill")
+    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 = "expressBill:expressbill:list", permissionParentName = "其他", permissionName = "ExpressBill")
+    public Page<ExpressBillDO> list(
+            @HttpParam(name = "ExpressBillDTO", type = HttpParamType.COMMON, description = "ExpressBillDTO") ExpressBillDTO 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 = "expressBill:expressbill:create", permissionParentName = "其他", permissionName = "ExpressBill")
+    public ExpressBillDO create(
+            @HttpParam(name = "ExpressBillDTO", type = HttpParamType.COMMON, description = "ExpressBillDTO") ExpressBillDTO insertDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    @HttpMethod(description = "编辑", permission = "expressBill:expressbill:edit", permissionParentName = "其他", permissionName = "ExpressBill")
+    public String edit(
+            @HttpParam(name = "ExpressBillDTO", type = HttpParamType.COMMON, description = "ExpressBillDTO") ExpressBillDTO editDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+
+    @HttpMethod(description = "添加", permission = "expressBill:expressbill:createAll", permissionParentName = "其他", permissionName = "ExpressBill")
+    public void createAll(
+            @HttpParam(name = "ExpressBillDTO", type = HttpParamType.COMMON, description = "ExpressBillDTO") List<ExpressBillDTO> expressBillDTOS) throws ServiceException;
+
+
+
+}

+ 97 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ExpressBillServiceImpl.java

@@ -0,0 +1,97 @@
+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.ExpressBusinessDO;
+import com.iotechn.unimall.data.dto.ExpressBusinessDTO;
+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.ExpressBillDO;
+import com.iotechn.unimall.data.dto.ExpressBillDTO;
+import com.iotechn.unimall.data.mapper.ExpressBillMapper;
+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 java.util.Date;
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@Service
+public class ExpressBillServiceImpl implements ExpressBillService {
+
+    @Autowired
+    private ExpressBillMapper expressBillMapper;
+
+    @Override
+    public boolean delete(Long id,  Long adminId) throws ServiceException {
+        return expressBillMapper.deleteById(id) > 0;
+    }
+
+    @Override
+    public Page<ExpressBillDO> list(ExpressBillDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
+        Wrapper<ExpressBillDO> wrapper = new EntityWrapper<ExpressBillDO>();
+        List<ExpressBillDO> list = expressBillMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = expressBillMapper.selectCount(wrapper);
+        return new Page<ExpressBillDO>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ExpressBillDO create(ExpressBillDTO insertDTO, Long adminId) throws ServiceException {
+         Date now = new Date();
+         ExpressBillDO insertDO = new ExpressBillDO();
+         BeanUtils.copyProperties(insertDTO, insertDO);
+         insertDO.setGmtUpdate(now);
+         insertDO.setGmtCreate(now);
+         if (expressBillMapper.insert(insertDO) > 0) {
+             return insertDO;
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String edit(ExpressBillDTO editDTO,Long adminId) throws ServiceException {
+         Date now = new Date();
+         ExpressBillDO updateDO = new ExpressBillDO();
+         BeanUtils.copyProperties(editDTO, updateDO);
+         updateDO.setGmtUpdate(now);
+         if (expressBillMapper.updateById(updateDO) > 0) {
+             return "ok";
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createAll(List<ExpressBillDTO> expressBillDTOS) throws ServiceException {
+        Date now = new Date();
+        expressBillDTOS = JSON.parseArray(JSONObject.toJSONString(expressBillDTOS), ExpressBillDTO.class);
+        if (!CollectionUtils.isEmpty(expressBillDTOS)) {
+            for (int i = 0; i < expressBillDTOS.size(); i++) {
+                ExpressBillDO insertDO = new ExpressBillDO();
+                ExpressBillDTO dto = expressBillDTOS.get(i);
+                BeanUtils.copyProperties(dto, insertDO);
+                insertDO.setGmtUpdate(now);
+                insertDO.setGmtCreate(now);
+                insertDO.setStatus(0);
+                expressBillMapper.insert(insertDO);
+            }
+        }
+    }
+
+
+}

+ 51 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ForeignExchangeService.java

@@ -0,0 +1,51 @@
+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.ExpressBillDTO;
+import com.iotechn.unimall.data.model.Page;
+import com.iotechn.unimall.data.domain.ForeignExchangeDO;
+import com.iotechn.unimall.data.dto.ForeignExchangeDTO;
+
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@HttpOpenApi(group = "admin.foreignexchange", description = "unimall_foreign_exchangeService")
+public interface ForeignExchangeService {
+
+    @HttpMethod(description = "删除", permission = "foreignExchange:foreignexchange:delete", permissionParentName = "其他", permissionName = "ForeignExchange")
+    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 = "foreignExchange:foreignexchange:list", permissionParentName = "其他", permissionName = "ForeignExchange")
+    public Page<ForeignExchangeDO> list(
+            @HttpParam(name = "ForeignExchangeDTO", type = HttpParamType.COMMON, description = "ForeignExchangeDTO") ForeignExchangeDTO 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 = "foreignExchange:foreignexchange:create", permissionParentName = "其他", permissionName = "ForeignExchange")
+    public ForeignExchangeDO create(
+            @HttpParam(name = "ForeignExchangeDTO", type = HttpParamType.COMMON, description = "ForeignExchangeDTO") ForeignExchangeDTO insertDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    @HttpMethod(description = "编辑", permission = "foreignExchange:foreignexchange:edit", permissionParentName = "其他", permissionName = "ForeignExchange")
+    public String edit(
+            @HttpParam(name = "ForeignExchangeDTO", type = HttpParamType.COMMON, description = "ForeignExchangeDTO") ForeignExchangeDTO editDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+
+    @HttpMethod(description = "添加", permission = "foreignExchange:foreignexchange:createAll", permissionParentName = "其他", permissionName = "ForeignExchange")
+    public void createAll(
+            @HttpParam(name = "ForeignExchangeDTO", type = HttpParamType.COMMON, description = "ForeignExchangeDTO") List<ForeignExchangeDTO> foreignExchangeDTOS) throws ServiceException;
+
+
+}

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

@@ -0,0 +1,95 @@
+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.ExpressBusinessDO;
+import com.iotechn.unimall.data.dto.ExpressBusinessDTO;
+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.ForeignExchangeDO;
+import com.iotechn.unimall.data.dto.ForeignExchangeDTO;
+import com.iotechn.unimall.data.mapper.ForeignExchangeMapper;
+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 java.util.Date;
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@Service
+public class ForeignExchangeServiceImpl implements ForeignExchangeService {
+
+    @Autowired
+    private ForeignExchangeMapper foreignExchangeMapper;
+
+    @Override
+    public boolean delete(Long id,  Long adminId) throws ServiceException {
+        return foreignExchangeMapper.deleteById(id) > 0;
+    }
+
+    @Override
+    public Page<ForeignExchangeDO> list(ForeignExchangeDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
+        Wrapper<ForeignExchangeDO> wrapper = new EntityWrapper<ForeignExchangeDO>();
+        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);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ForeignExchangeDO create(ForeignExchangeDTO insertDTO, Long adminId) throws ServiceException {
+         Date now = new Date();
+         ForeignExchangeDO insertDO = new ForeignExchangeDO();
+         BeanUtils.copyProperties(insertDTO, insertDO);
+         insertDO.setGmtUpdate(now);
+         insertDO.setGmtCreate(now);
+         if (foreignExchangeMapper.insert(insertDO) > 0) {
+             return insertDO;
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String edit(ForeignExchangeDTO editDTO,Long adminId) throws ServiceException {
+         Date now = new Date();
+         ForeignExchangeDO updateDO = new ForeignExchangeDO();
+         BeanUtils.copyProperties(editDTO, updateDO);
+         updateDO.setGmtUpdate(now);
+         if (foreignExchangeMapper.updateById(updateDO) > 0) {
+             return "ok";
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createAll(List<ForeignExchangeDTO> foreignExchangeDTOS) throws ServiceException {
+        Date now = new Date();
+        foreignExchangeDTOS = JSON.parseArray(JSONObject.toJSONString(foreignExchangeDTOS), ForeignExchangeDTO.class);
+        if (!CollectionUtils.isEmpty(foreignExchangeDTOS)) {
+            for (int i = 0; i < foreignExchangeDTOS.size(); i++) {
+                ForeignExchangeDO insertDO = new ForeignExchangeDO();
+                ForeignExchangeDTO dto = foreignExchangeDTOS.get(i);
+                BeanUtils.copyProperties(dto, insertDO);
+                insertDO.setGmtUpdate(now);
+                insertDO.setGmtCreate(now);
+                insertDO.setStatus(0);
+                foreignExchangeMapper.insert(insertDO);
+            }
+        }
+    }
+
+
+}

+ 42 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationService.java

@@ -0,0 +1,42 @@
+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.model.Page;
+import com.iotechn.unimall.data.domain.MaritimeAdministrationDO;
+import com.iotechn.unimall.data.dto.MaritimeAdministrationDTO;
+
+/**
+ * Generate Code By Unimall
+ */
+@HttpOpenApi(group = "admin.maritimeadministration", description = "unimall_maritime_administrationService")
+public interface MaritimeAdministrationService {
+
+    @HttpMethod(description = "删除", permission = "maritimeAdministration:maritimeadministration:delete", permissionParentName = "其他", permissionName = "MaritimeAdministration")
+    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 = "maritimeAdministration:maritimeadministration:list", permissionParentName = "其他", permissionName = "MaritimeAdministration")
+    public Page<MaritimeAdministrationDO> list(
+            @HttpParam(name = "MaritimeAdministrationDTO", type = HttpParamType.COMMON, description = "MaritimeAdministrationDTO") MaritimeAdministrationDTO 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 = "maritimeAdministration:maritimeadministration:create", permissionParentName = "其他", permissionName = "MaritimeAdministration")
+    public MaritimeAdministrationDO create(
+            @HttpParam(name = "MaritimeAdministrationDTO", type = HttpParamType.COMMON, description = "MaritimeAdministrationDTO") MaritimeAdministrationDTO insertDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    @HttpMethod(description = "编辑", permission = "maritimeAdministration:maritimeadministration:edit", permissionParentName = "其他", permissionName = "MaritimeAdministration")
+    public String edit(
+            @HttpParam(name = "MaritimeAdministrationDTO", type = HttpParamType.COMMON, description = "MaritimeAdministrationDTO") MaritimeAdministrationDTO editDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    }

+ 70 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeAdministrationServiceImpl.java

@@ -0,0 +1,70 @@
+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.model.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.data.domain.MaritimeAdministrationDO;
+import com.iotechn.unimall.data.dto.MaritimeAdministrationDTO;
+import com.iotechn.unimall.data.mapper.MaritimeAdministrationMapper;
+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 java.util.Date;
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@Service
+public class MaritimeAdministrationServiceImpl implements MaritimeAdministrationService {
+
+    @Autowired
+    private MaritimeAdministrationMapper maritimeAdministrationMapper;
+
+    @Override
+    public boolean delete(Long id,  Long adminId) throws ServiceException {
+        return maritimeAdministrationMapper.deleteById(id) > 0;
+    }
+
+    @Override
+    public Page<MaritimeAdministrationDO> list(MaritimeAdministrationDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
+        Wrapper<MaritimeAdministrationDO> wrapper = new EntityWrapper<MaritimeAdministrationDO>();
+        List<MaritimeAdministrationDO> list = maritimeAdministrationMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = maritimeAdministrationMapper.selectCount(wrapper);
+        return new Page<MaritimeAdministrationDO>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public MaritimeAdministrationDO create(MaritimeAdministrationDTO insertDTO, Long adminId) throws ServiceException {
+         Date now = new Date();
+         MaritimeAdministrationDO insertDO = new MaritimeAdministrationDO();
+         BeanUtils.copyProperties(insertDTO, insertDO);
+         insertDO.setGmtUpdate(now);
+         insertDO.setGmtCreate(now);
+         if (maritimeAdministrationMapper.insert(insertDO) > 0) {
+             return insertDO;
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String edit(MaritimeAdministrationDTO editDTO,Long adminId) throws ServiceException {
+         Date now = new Date();
+         MaritimeAdministrationDO updateDO = new MaritimeAdministrationDO();
+         BeanUtils.copyProperties(editDTO, updateDO);
+         updateDO.setGmtUpdate(now);
+         if (maritimeAdministrationMapper.updateById(updateDO) > 0) {
+             return "ok";
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+}

+ 42 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeDetailService.java

@@ -0,0 +1,42 @@
+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.model.Page;
+import com.iotechn.unimall.data.domain.MaritimeDetailDO;
+import com.iotechn.unimall.data.dto.MaritimeDetailDTO;
+
+/**
+ * Generate Code By Unimall
+ */
+@HttpOpenApi(group = "admin.maritimedetail", description = "unimall_maritime_detailService")
+public interface MaritimeDetailService {
+
+    @HttpMethod(description = "删除", permission = "maritimeDetail:maritimedetail:delete", permissionParentName = "其他", permissionName = "MaritimeDetail")
+    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 = "maritimeDetail:maritimedetail:list", permissionParentName = "其他", permissionName = "MaritimeDetail")
+    public Page<MaritimeDetailDO> list(
+            @HttpParam(name = "MaritimeDetailDTO", type = HttpParamType.COMMON, description = "MaritimeDetailDTO") MaritimeDetailDTO 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 = "maritimeDetail:maritimedetail:create", permissionParentName = "其他", permissionName = "MaritimeDetail")
+    public MaritimeDetailDO create(
+            @HttpParam(name = "MaritimeDetailDTO", type = HttpParamType.COMMON, description = "MaritimeDetailDTO") MaritimeDetailDTO insertDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    @HttpMethod(description = "编辑", permission = "maritimeDetail:maritimedetail:edit", permissionParentName = "其他", permissionName = "MaritimeDetail")
+    public String edit(
+            @HttpParam(name = "MaritimeDetailDTO", type = HttpParamType.COMMON, description = "MaritimeDetailDTO") MaritimeDetailDTO editDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    }

+ 70 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/MaritimeDetailServiceImpl.java

@@ -0,0 +1,70 @@
+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.model.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.data.domain.MaritimeDetailDO;
+import com.iotechn.unimall.data.dto.MaritimeDetailDTO;
+import com.iotechn.unimall.data.mapper.MaritimeDetailMapper;
+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 java.util.Date;
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@Service
+public class MaritimeDetailServiceImpl implements MaritimeDetailService {
+
+    @Autowired
+    private MaritimeDetailMapper maritimeDetailMapper;
+
+    @Override
+    public boolean delete(Long id,  Long adminId) throws ServiceException {
+        return maritimeDetailMapper.deleteById(id) > 0;
+    }
+
+    @Override
+    public Page<MaritimeDetailDO> list(MaritimeDetailDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
+        Wrapper<MaritimeDetailDO> wrapper = new EntityWrapper<MaritimeDetailDO>();
+        List<MaritimeDetailDO> list = maritimeDetailMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = maritimeDetailMapper.selectCount(wrapper);
+        return new Page<MaritimeDetailDO>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public MaritimeDetailDO create(MaritimeDetailDTO insertDTO, Long adminId) throws ServiceException {
+         Date now = new Date();
+         MaritimeDetailDO insertDO = new MaritimeDetailDO();
+         BeanUtils.copyProperties(insertDTO, insertDO);
+         insertDO.setGmtUpdate(now);
+         insertDO.setGmtCreate(now);
+         if (maritimeDetailMapper.insert(insertDO) > 0) {
+             return insertDO;
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String edit(MaritimeDetailDTO editDTO,Long adminId) throws ServiceException {
+         Date now = new Date();
+         MaritimeDetailDO updateDO = new MaritimeDetailDO();
+         BeanUtils.copyProperties(editDTO, updateDO);
+         updateDO.setGmtUpdate(now);
+         if (maritimeDetailMapper.updateById(updateDO) > 0) {
+             return "ok";
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+}

+ 50 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/ProductSalesService.java

@@ -0,0 +1,50 @@
+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.ForeignExchangeDTO;
+import com.iotechn.unimall.data.model.Page;
+import com.iotechn.unimall.data.domain.ProductSalesDO;
+import com.iotechn.unimall.data.dto.ProductSalesDTO;
+
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@HttpOpenApi(group = "admin.productsales", description = "unimall_product_salesService")
+public interface ProductSalesService {
+
+    @HttpMethod(description = "删除", permission = "productSales:productsales:delete", permissionParentName = "其他", permissionName = "ProductSales")
+    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 = "productSales:productsales:list", permissionParentName = "其他", permissionName = "ProductSales")
+    public Page<ProductSalesDO> list(
+            @HttpParam(name = "ProductSalesDTO", type = HttpParamType.COMMON, description = "ProductSalesDTO") ProductSalesDTO 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 = "productSales:productsales:create", permissionParentName = "其他", permissionName = "ProductSales")
+    public ProductSalesDO create(
+            @HttpParam(name = "ProductSalesDTO", type = HttpParamType.COMMON, description = "ProductSalesDTO") ProductSalesDTO insertDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    @HttpMethod(description = "编辑", permission = "productSales:productsales:edit", permissionParentName = "其他", permissionName = "ProductSales")
+    public String edit(
+            @HttpParam(name = "ProductSalesDTO", type = HttpParamType.COMMON, description = "ProductSalesDTO") ProductSalesDTO editDTO,
+            @NotNull @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "管理员ID") Long adminId) throws ServiceException;
+
+    @HttpMethod(description = "添加", permission = "productSales:productsales:createAll", permissionParentName = "其他", permissionName = "ProductSalesDTO")
+    public void createAll(
+            @HttpParam(name = "ProductSalesDTO", type = HttpParamType.COMMON, description = "ProductSalesDTO") List<ProductSalesDTO> productSalesDTOS) throws ServiceException;
+
+
+}

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

@@ -0,0 +1,97 @@
+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.ForeignExchangeDO;
+import com.iotechn.unimall.data.dto.ForeignExchangeDTO;
+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.ProductSalesDO;
+import com.iotechn.unimall.data.dto.ProductSalesDTO;
+import com.iotechn.unimall.data.mapper.ProductSalesMapper;
+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 java.util.Date;
+import java.util.List;
+
+/**
+ * Generate Code By Unimall
+ */
+@Service
+public class ProductSalesServiceImpl implements ProductSalesService {
+
+    @Autowired
+    private ProductSalesMapper productSalesMapper;
+
+    @Override
+    public boolean delete(Long id,  Long adminId) throws ServiceException {
+        return productSalesMapper.deleteById(id) > 0;
+    }
+
+    @Override
+    public Page<ProductSalesDO> list(ProductSalesDTO selectDTO, Integer page, Integer limit, Long adminId) throws ServiceException {
+        Wrapper<ProductSalesDO> wrapper = new EntityWrapper<ProductSalesDO>();
+        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);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ProductSalesDO create(ProductSalesDTO insertDTO, Long adminId) throws ServiceException {
+         Date now = new Date();
+         ProductSalesDO insertDO = new ProductSalesDO();
+         BeanUtils.copyProperties(insertDTO, insertDO);
+         insertDO.setGmtUpdate(now);
+         insertDO.setGmtCreate(now);
+         if (productSalesMapper.insert(insertDO) > 0) {
+             return insertDO;
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String edit(ProductSalesDTO editDTO,Long adminId) throws ServiceException {
+         Date now = new Date();
+         ProductSalesDO updateDO = new ProductSalesDO();
+         BeanUtils.copyProperties(editDTO, updateDO);
+         updateDO.setGmtUpdate(now);
+         if (productSalesMapper.updateById(updateDO) > 0) {
+             return "ok";
+         }
+         throw new AdminServiceException(ExceptionDefinition.ADMIN_UNKNOWN_EXCEPTION);
+    }
+
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createAll(List<ProductSalesDTO> productSalesDTOS) throws ServiceException {
+        Date now = new Date();
+        productSalesDTOS = JSON.parseArray(JSONObject.toJSONString(productSalesDTOS), ProductSalesDTO.class);
+        if (!CollectionUtils.isEmpty(productSalesDTOS)) {
+            for (int i = 0; i < productSalesDTOS.size(); i++) {
+                ProductSalesDO insertDO = new ProductSalesDO();
+                ProductSalesDTO dto = productSalesDTOS.get(i);
+                BeanUtils.copyProperties(dto, insertDO);
+                insertDO.setGmtUpdate(now);
+                insertDO.setGmtCreate(now);
+                insertDO.setStatus(0);
+                productSalesMapper.insert(insertDO);
+            }
+        }
+    }
+
+
+}

+ 2 - 2
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/sys/SettlementServiceImpl.java

@@ -57,10 +57,10 @@ public class SettlementServiceImpl implements SettlementService {
             wrapper.eq("status", selectDTO.getStatus());
         }
         if (selectDTO != null && StringUtil.isNotEmpty(selectDTO.getStartDate())) {
-            wrapper.and("DATE_FORMAT(gmt_create,'%Y%m%d') >= DATE_FORMAT('" + selectDTO.getStartDate() + "','%Y%m%d')");
+            wrapper.and("DATE_FORMAT(closing_date,'%Y%m%d') >= DATE_FORMAT('" + selectDTO.getStartDate() + "','%Y%m%d')");
         }
         if (selectDTO != null && StringUtil.isNotEmpty(selectDTO.getEndDate())) {
-            wrapper.and("DATE_FORMAT(gmt_create,'%Y%m%d') <= DATE_FORMAT('" + selectDTO.getEndDate() + "','%Y%m%d')");
+            wrapper.and("DATE_FORMAT(closing_date,'%Y%m%d') <= DATE_FORMAT('" + selectDTO.getEndDate() + "','%Y%m%d')");
 
         }
         List<SettlementManagementDO> list = settlementManagementMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);

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

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+import Qs from 'qs'
+
+export function listMaritimeAdministration(query) {
+  return request({
+    method: 'post',
+    params:{
+      _gp: 'admin.maritimeadministration',
+      _mt: 'list',
+      page: query.page,
+      limit: query.limit,
+      ...query
+    }
+  })
+}
+
+export function createMaritimeAdministration(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.maritimeadministration',
+      _mt: 'create',
+      MaritimeAdministrationDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function updateMaritimeAdministration(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.maritimeadministration',
+      _mt: 'edit',
+      MaritimeAdministrationDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function deleteMaritimeAdministration(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.maritimeadministration',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}

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

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+import Qs from 'qs'
+
+export function listMaritimeDetail(query) {
+  return request({
+    method: 'post',
+    params:{
+      _gp: 'admin.maritimedetail',
+      _mt: 'list',
+      page: query.page,
+      limit: query.limit,
+      ...query
+    }
+  })
+}
+
+export function createMaritimeDetail(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.maritimedetail',
+      _mt: 'create',
+      MaritimeDetailDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function updateMaritimeDetail(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.maritimedetail',
+      _mt: 'edit',
+      MaritimeDetailDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function deleteMaritimeDetail(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.maritimedetail',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}

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

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+import Qs from 'qs'
+
+export function listExpressBill(query) {
+  return request({
+    method: 'post',
+    params:{
+      _gp: 'admin.expressbill',
+      _mt: 'list',
+      page: query.page,
+      limit: query.limit,
+      ...query
+    }
+  })
+}
+
+export function createExpressBill(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.expressbill',
+      _mt: 'create',
+      ExpressBillDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function updateExpressBill(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.expressbill',
+      _mt: 'edit',
+      ExpressBillDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function deleteExpressBill(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.expressbill',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}

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

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+import Qs from 'qs'
+
+export function listForeignExchange(query) {
+  return request({
+    method: 'post',
+    params:{
+      _gp: 'admin.foreignexchange',
+      _mt: 'list',
+      page: query.page,
+      limit: query.limit,
+      ...query
+    }
+  })
+}
+
+export function createForeignExchange(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.foreignexchange',
+      _mt: 'create',
+      ForeignExchangeDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function updateForeignExchange(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.foreignexchange',
+      _mt: 'edit',
+      ForeignExchangeDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function deleteForeignExchange(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.foreignexchange',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}

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

@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+import Qs from 'qs'
+
+export function listProductSales(query) {
+  return request({
+    method: 'post',
+    params:{
+      _gp: 'admin.productsales',
+      _mt: 'list',
+      page: query.page,
+      limit: query.limit,
+      ...query
+    }
+  })
+}
+
+export function createProductSales(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.productsales',
+      _mt: 'create',
+      ProductSalesDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function updateProductSales(data) {
+  return request({
+    method: 'post',
+    data: Qs.stringify({
+      _gp: 'admin.productsales',
+      _mt: 'edit',
+      ProductSalesDTO: JSON.stringify(data)
+    })
+  })
+}
+
+export function deleteProductSales(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.productsales',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}

+ 25 - 0
unimall-admin/src/router/route.json

@@ -1,5 +1,30 @@
 [
 	{
+		"redirect":"noredirect",
+		"path":"/tools1",
+		"children":[
+			{
+				"path":"generator",
+				"meta":{
+					"noCache":true,
+					"perms":[
+						""
+					],
+					"title":"代码生成器"
+				},
+				"name":"tools",
+				"page":"/tools/generator"
+			}
+		],
+		"meta":{
+			"icon":"tools",
+			"title":"实用工具"
+		},
+		"name":"toolsManage",
+		"alwaysShow":true
+	},
+	{
+
 		"redirect":"noredirect",
 		"path":"/tools",
 		"children":[

+ 213 - 0
unimall-admin/src/views/expressBill/expressBill.vue

@@ -0,0 +1,213 @@
+<template>
+    <div class="app-container">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+                        <el-button v-permission="['expressBill:expressbill:list']" class="filter-item" type="primary" size="mini" icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button v-permission="['expressBill:expressbill: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="操作" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button v-permission="['expressBill:expressbill:edit']" type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
+                    <el-button v-permission="['expressBill:expressbill: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>
+            <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 {
+        listExpressBill,
+        createExpressBill,
+        updateExpressBill,
+        deleteExpressBill
+    } from '@/api/expressBill'
+    import Pagination from '@/components/Pagination'
+    export default {
+        name: 'ExpressBill',
+        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
+                listExpressBill(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
+                        createExpressBill(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
+                        updateExpressBill(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(() => {
+                    deleteExpressBill(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>

+ 213 - 0
unimall-admin/src/views/foreignExchange/foreignExchange.vue

@@ -0,0 +1,213 @@
+<template>
+    <div class="app-container">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+                        <el-button v-permission="['foreignExchange:foreignexchange:list']" class="filter-item" type="primary" size="mini" icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button v-permission="['foreignExchange:foreignexchange: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="操作" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button v-permission="['foreignExchange:foreignexchange:edit']" type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
+                    <el-button v-permission="['foreignExchange:foreignexchange: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>
+            <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 {
+        listForeignExchange,
+        createForeignExchange,
+        updateForeignExchange,
+        deleteForeignExchange
+    } from '@/api/foreignExchange'
+    import Pagination from '@/components/Pagination'
+    export default {
+        name: 'ForeignExchange',
+        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
+                listForeignExchange(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
+                        createForeignExchange(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
+                        updateForeignExchange(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(() => {
+                    deleteForeignExchange(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>

+ 213 - 0
unimall-admin/src/views/maritimeAdministration/MaritimeAdministration.vue

@@ -0,0 +1,213 @@
+<template>
+    <div class="app-container">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+                        <el-button v-permission="['maritimeAdministration:maritimeadministration:list']" class="filter-item" type="primary" size="mini" icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button v-permission="['maritimeAdministration:maritimeadministration: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="操作" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button v-permission="['maritimeAdministration:maritimeadministration:edit']" type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
+                    <el-button v-permission="['maritimeAdministration:maritimeadministration: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>
+            <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 {
+        listMaritimeAdministration,
+        createMaritimeAdministration,
+        updateMaritimeAdministration,
+        deleteMaritimeAdministration
+    } from '@/api/MaritimeAdministration'
+    import Pagination from '@/components/Pagination'
+    export default {
+        name: 'MaritimeAdministration',
+        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
+                listMaritimeAdministration(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
+                        createMaritimeAdministration(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
+                        updateMaritimeAdministration(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(() => {
+                    deleteMaritimeAdministration(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>

+ 213 - 0
unimall-admin/src/views/maritimeDetail/MaritimeDetail.vue

@@ -0,0 +1,213 @@
+<template>
+    <div class="app-container">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+                        <el-button v-permission="['maritimeDetail:maritimedetail:list']" class="filter-item" type="primary" size="mini" icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button v-permission="['maritimeDetail:maritimedetail: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="操作" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button v-permission="['maritimeDetail:maritimedetail:edit']" type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
+                    <el-button v-permission="['maritimeDetail:maritimedetail: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>
+            <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 {
+        listMaritimeDetail,
+        createMaritimeDetail,
+        updateMaritimeDetail,
+        deleteMaritimeDetail
+    } from '@/api/MaritimeDetail'
+    import Pagination from '@/components/Pagination'
+    export default {
+        name: 'MaritimeDetail',
+        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
+                listMaritimeDetail(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
+                        createMaritimeDetail(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
+                        updateMaritimeDetail(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(() => {
+                    deleteMaritimeDetail(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>

+ 213 - 0
unimall-admin/src/views/productSales/productSales.vue

@@ -0,0 +1,213 @@
+<template>
+    <div class="app-container">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+                        <el-button v-permission="['productSales:productsales:list']" class="filter-item" type="primary" size="mini" icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button v-permission="['productSales:productsales: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="操作" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button v-permission="['productSales:productsales:edit']" type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
+                    <el-button v-permission="['productSales:productsales: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>
+            <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 {
+        listProductSales,
+        createProductSales,
+        updateProductSales,
+        deleteProductSales
+    } from '@/api/productSales'
+    import Pagination from '@/components/Pagination'
+    export default {
+        name: 'ProductSales',
+        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
+                listProductSales(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
+                        createProductSales(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
+                        updateProductSales(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(() => {
+                    deleteProductSales(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>

+ 70 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/ExpressBillDO.java

@@ -0,0 +1,70 @@
+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_express_bill")
+public class ExpressBillDO extends SuperDO {
+
+     /* id */
+    @TableField("id")
+    private Long id;
+     /* 客户编号 */
+    @TableField("customer_no")
+    private String customerNo;
+     /* 客户名称 */
+    @TableField("customer")
+    private String customer;
+     /* 快递种类 */
+    @TableField("courier_aervices")
+    private String courierAervices;
+     /* 产品 */
+    @TableField("goods")
+    private String goods;
+     /* 重量 */
+    @TableField("weight")
+    private String weight;
+     /* 单价 */
+    @TableField("price")
+    private Double price;
+     /* 总价 */
+    @TableField("amount")
+    private Double amount;
+     /* 支付方式 */
+    @TableField("pay_type")
+    private String payType;
+     /* 备注 */
+    @TableField("remarks")
+    private String remarks;
+     /* remark */
+    @TableField("remark")
+    private String remark;
+     /* status */
+    @TableField("status")
+    private Integer status;
+     /* 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;
+
+}

+ 58 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/ForeignExchangeDO.java

@@ -0,0 +1,58 @@
+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_foreign_exchange")
+public class ForeignExchangeDO extends SuperDO {
+
+     /* id */
+    @TableField("id")
+    private Long id;
+     /* 客户编号 */
+    @TableField("customer_no")
+    private String customerNo;
+     /* 收款日期 */
+    @TableField("collection_date")
+    private String collectionDate;
+     /* 汇率 */
+    @TableField("exchange")
+    private Double exchange;
+     /* 人民币 */
+    @TableField("rmb")
+    private Double rmb;
+     /* 欧元 */
+    @TableField("euro")
+    private Double euro;
+     /* 备注 */
+    @TableField("remark")
+    private String remark;
+     /* status */
+    @TableField("status")
+    private Integer status;
+     /* 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;
+
+}

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

@@ -0,0 +1,58 @@
+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_maritime_administration")
+public class MaritimeAdministrationDO extends SuperDO {
+
+     /* id */
+    @TableField("id")
+    private Long id;
+     /* 集装箱柜号 */
+    @TableField("container_no")
+    private String containerNo;
+     /* 客户编号 */
+    @TableField("customer_no")
+    private String customerNo;
+     /* 包裹数 */
+    @TableField("count")
+    private Integer count;
+     /* 人民币 */
+    @TableField("rmb")
+    private Double rmb;
+     /* 欧元 */
+    @TableField("euro")
+    private Double euro;
+     /* 备注 */
+    @TableField("remark")
+    private String remark;
+     /* status */
+    @TableField("status")
+    private Integer status;
+     /* 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;
+
+}

+ 70 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/MaritimeDetailDO.java

@@ -0,0 +1,70 @@
+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_maritime_detail")
+public class MaritimeDetailDO extends SuperDO {
+
+     /* id */
+    @TableField("id")
+    private Long id;
+     /* infoId */
+    @TableField("info_id")
+    private Long infoId;
+     /* 快递公司 */
+    @TableField("courier_services_company")
+    private String courierServicesCompany;
+     /* 已收到单号 */
+    @TableField("received_no")
+    private String receivedNo;
+     /* 内件明细 */
+    @TableField("internal_details")
+    private String internalDetails;
+     /* 实重 */
+    @TableField("weight")
+    private String weight;
+     /* 长 */
+    @TableField("long")
+    private String long;
+     /* 宽 */
+    @TableField("wide")
+    private String wide;
+     /* 高 */
+    @TableField("height")
+    private String height;
+     /* 体积重 */
+    @TableField("bulk_weight")
+    private String bulkWeight;
+     /* 备注 */
+    @TableField("remark")
+    private String remark;
+     /* status */
+    @TableField("status")
+    private Integer status;
+     /* 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;
+
+}

+ 106 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/ProductSalesDO.java

@@ -0,0 +1,106 @@
+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_product_sales")
+public class ProductSalesDO extends SuperDO {
+
+     /* id */
+    @TableField("id")
+    private Long id;
+     /* 日期 */
+    @TableField("sale_date")
+    private String saleDate;
+     /* 销售单号 */
+    @TableField("sale_no")
+    private String saleNo;
+     /* 客户名称 */
+    @TableField("customer")
+    private String customer;
+     /* 电话 */
+    @TableField("phone")
+    private String phone;
+     /* 备注 */
+    @TableField("remark")
+    private String remark;
+     /* 商品名称 */
+    @TableField("trade_name")
+    private String tradeName;
+     /* 货品 */
+    @TableField("article_no")
+    private String articleNo;
+     /* 规格型号 */
+    @TableField("specification")
+    private String specification;
+     /* 销售数量 */
+    @TableField("num")
+    private Integer num;
+     /* 单位 */
+    @TableField("unit")
+    private String unit;
+     /* 期初库存 */
+    @TableField("opening_inventory")
+    private Integer openingInventory;
+     /* 当前库存 */
+    @TableField("current_inventory")
+    private Integer currentInventory;
+     /* 单价 */
+    @TableField("price")
+    private Double price;
+     /* 单盒成本 */
+    @TableField("single_cost")
+    private Double singleCost;
+     /* 折扣 */
+    @TableField("discount")
+    private String discount;
+     /* 折后价 */
+    @TableField("discounted_price")
+    private Double discountedPrice;
+     /* 应收金额 */
+    @TableField("amount_receivable")
+    private Double amountReceivable;
+     /* 实收金额 */
+    @TableField("paid_amount")
+    private Double paidAmount;
+     /* 总成本 */
+    @TableField("total_cost")
+    private Double totalCost;
+     /* 毛利润 */
+    @TableField("gross_profit")
+    private Double grossProfit;
+     /* 支付方式 */
+    @TableField("pay_type")
+    private String payType;
+     /* 备注 */
+    @TableField("remarks")
+    private String remarks;
+     /* status */
+    @TableField("status")
+    private Integer status;
+     /* 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;
+
+}

+ 2 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/SettlementManagementDO.java

@@ -18,6 +18,8 @@ public class SettlementManagementDO extends SuperDO {
      /* 商品名称 */
     @TableField("trade_name")
     private String tradeName;
+    @TableField("closing_date")
+    private String closingDate;
      /* 数量 */
     @TableField("num")
     private Integer num;

+ 51 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/ExpressBillDTO.java

@@ -0,0 +1,51 @@
+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_express_bill")
+public class ExpressBillDTO extends SuperDTO {
+
+     /* id */
+    private Long id;
+     /* 客户编号 */
+    private String customerNo;
+     /* 客户名称 */
+    private String customer;
+     /* 快递种类 */
+    private String courierAervices;
+     /* 产品 */
+    private String goods;
+     /* 重量 */
+    private String weight;
+     /* 单价 */
+    private Double price;
+     /* 总价 */
+    private Double amount;
+     /* 支付方式 */
+    private String payType;
+     /* 备注 */
+    private String remarks;
+     /* remark */
+    private String remark;
+     /* status */
+    private Integer status;
+     /* gmtCreate */
+    private Date gmtCreate;
+     /* gmtUpdate */
+    private Date gmtUpdate;
+     /* userId */
+    private Long userId;
+     /* adminId */
+    private Long adminId;
+     /* companyId */
+    private Long companyId;
+     /* updatePeople */
+    private String updatePeople;
+
+}

+ 43 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/ForeignExchangeDTO.java

@@ -0,0 +1,43 @@
+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_foreign_exchange")
+public class ForeignExchangeDTO extends SuperDTO {
+
+     /* id */
+    private Long id;
+     /* 客户编号 */
+    private String customerNo;
+     /* 收款日期 */
+    private String collectionDate;
+     /* 汇率 */
+    private Double exchange;
+     /* 人民币 */
+    private Double rmb;
+     /* 欧元 */
+    private Double euro;
+     /* 备注 */
+    private String remark;
+     /* status */
+    private Integer status;
+     /* gmtCreate */
+    private Date gmtCreate;
+     /* gmtUpdate */
+    private Date gmtUpdate;
+     /* userId */
+    private Long userId;
+     /* adminId */
+    private Long adminId;
+     /* companyId */
+    private Long companyId;
+     /* updatePeople */
+    private String updatePeople;
+
+}

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

@@ -0,0 +1,43 @@
+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_maritime_administration")
+public class MaritimeAdministrationDTO extends SuperDTO {
+
+     /* id */
+    private Long id;
+     /* 集装箱柜号 */
+    private String containerNo;
+     /* 客户编号 */
+    private String customerNo;
+     /* 包裹数 */
+    private Integer count;
+     /* 人民币 */
+    private Double rmb;
+     /* 欧元 */
+    private Double euro;
+     /* 备注 */
+    private String remark;
+     /* status */
+    private Integer status;
+     /* gmtCreate */
+    private Date gmtCreate;
+     /* gmtUpdate */
+    private Date gmtUpdate;
+     /* userId */
+    private Long userId;
+     /* adminId */
+    private Long adminId;
+     /* companyId */
+    private Long companyId;
+     /* updatePeople */
+    private String updatePeople;
+
+}

+ 51 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/MaritimeDetailDTO.java

@@ -0,0 +1,51 @@
+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_maritime_detail")
+public class MaritimeDetailDTO extends SuperDTO {
+
+     /* id */
+    private Long id;
+     /* infoId */
+    private Long infoId;
+     /* 快递公司 */
+    private String courierServicesCompany;
+     /* 已收到单号 */
+    private String receivedNo;
+     /* 内件明细 */
+    private String internalDetails;
+     /* 实重 */
+    private String weight;
+     /* 长 */
+    private String long;
+     /* 宽 */
+    private String wide;
+     /* 高 */
+    private String height;
+     /* 体积重 */
+    private String bulkWeight;
+     /* 备注 */
+    private String remark;
+     /* status */
+    private Integer status;
+     /* gmtCreate */
+    private Date gmtCreate;
+     /* gmtUpdate */
+    private Date gmtUpdate;
+     /* userId */
+    private Long userId;
+     /* adminId */
+    private Long adminId;
+     /* companyId */
+    private Long companyId;
+     /* updatePeople */
+    private String updatePeople;
+
+}

+ 75 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/ProductSalesDTO.java

@@ -0,0 +1,75 @@
+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_product_sales")
+public class ProductSalesDTO extends SuperDTO {
+
+     /* id */
+    private Long id;
+     /* 日期 */
+    private String saleDate;
+     /* 销售单号 */
+    private String saleNo;
+     /* 客户名称 */
+    private String customer;
+     /* 电话 */
+    private String phone;
+     /* 备注 */
+    private String remark;
+     /* 商品名称 */
+    private String tradeName;
+     /* 货品 */
+    private String articleNo;
+     /* 规格型号 */
+    private String specification;
+     /* 销售数量 */
+    private Integer num;
+     /* 单位 */
+    private String unit;
+     /* 期初库存 */
+    private Integer openingInventory;
+     /* 当前库存 */
+    private Integer currentInventory;
+     /* 单价 */
+    private Double price;
+     /* 单盒成本 */
+    private Double singleCost;
+     /* 折扣 */
+    private String discount;
+     /* 折后价 */
+    private Double discountedPrice;
+     /* 应收金额 */
+    private Double amountReceivable;
+     /* 实收金额 */
+    private Double paidAmount;
+     /* 总成本 */
+    private Double totalCost;
+     /* 毛利润 */
+    private Double grossProfit;
+     /* 支付方式 */
+    private String payType;
+     /* 备注 */
+    private String remarks;
+     /* status */
+    private Integer status;
+     /* gmtCreate */
+    private Date gmtCreate;
+     /* gmtUpdate */
+    private Date gmtUpdate;
+     /* userId */
+    private Long userId;
+     /* adminId */
+    private Long adminId;
+     /* companyId */
+    private Long companyId;
+     /* updatePeople */
+    private String updatePeople;
+
+}

+ 2 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/dto/SettlementManagementDTO.java

@@ -21,6 +21,8 @@ public class SettlementManagementDTO extends SuperDTO {
      /* 商品名称 */
      @Excel(name = "商品名称")
     private String tradeName;
+    @Excel(name = "结算日期")
+    private String closingDate;
      /* 数量 */
      @Excel(name = "数量")
     private Integer num;

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

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

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

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

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

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

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

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

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

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