瀏覽代碼

feat 采购订单和采购订单项后台接口 fix部分自增id改为雪花id

classic_blue 1 月之前
父節點
當前提交
d8ff7b023b
共有 25 個文件被更改,包括 1179 次插入23 次删除
  1. 90 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderDto.java
  2. 66 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderItemDto.java
  3. 17 17
      fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/Page.java
  4. 30 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/PurchaseOrderItemService.java
  5. 31 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/PurchaseOrderService.java
  6. 171 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderItemServiceImpl.java
  7. 195 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderServiceImpl.java
  8. 65 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderItemVo.java
  9. 90 0
      fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderVo.java
  10. 107 0
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderController.java
  11. 112 0
      fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderItemController.java
  12. 7 0
      fuintBackend/fuint-framework/src/main/java/com/fuint/framework/exception/GlobalExceptionHandler.java
  13. 2 0
      fuintBackend/fuint-framework/src/main/java/com/fuint/framework/web/PageResult.java
  14. 14 0
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/mapper/MtPurchaseOrderItemMapper.java
  15. 14 0
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/mapper/MtPurchaseOrderMapper.java
  16. 85 0
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/MtPurchaseOrder.java
  17. 67 0
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/MtPurchaseOrderItem.java
  18. 1 1
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/MtSmsSendedLog.java
  19. 1 1
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TAccount.java
  20. 1 1
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TAccountDuty.java
  21. 1 1
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TDutySource.java
  22. 1 1
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TPlatform.java
  23. 1 1
      fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TSource.java
  24. 5 0
      fuintBackend/fuint-repository/src/main/resources/mapper/MtPurchaseOrderItemMapper.xml
  25. 5 0
      fuintBackend/fuint-repository/src/main/resources/mapper/MtPurchaseOrderMapper.xml

+ 90 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderDto.java

@@ -0,0 +1,90 @@
+package com.fuint.common.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 采购订单表实体
+ *
+ * @Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class MtPurchaseOrderDto extends Page implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("实际支付")
+    @NonNull
+    private Double actualPrice;
+
+    @ApiModelProperty("联系方式")
+    private String contactWay;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("创建用户id")
+    private String createUserId;
+
+    @ApiModelProperty("是否删除 0否 1是")
+    private Integer deleteFlag;
+
+    @ApiModelProperty("发票文件/图片id")
+    private String fileId;
+
+    @ApiModelProperty("采购记录id")
+    @TableId(value = "ID", type = IdType.ID_WORKER)
+    private Long id;
+
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @ApiModelProperty("项目标识")
+    private String project;
+
+    @ApiModelProperty("采购货源")
+    private String puchaseSource;
+
+    @ApiModelProperty("采购时间")
+    private Date purchaseTime;
+
+    @ApiModelProperty("支付方式")
+    private Integer purchaseType;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("总价")
+    private Double totalPrice;
+
+    @ApiModelProperty("商品总数量")
+    private Integer totalQuantity;
+
+    @ApiModelProperty("商品总数量")
+    private Integer totalWeight;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("修改用户id")
+    private String updateUserId;
+
+    @ApiModelProperty("采购人")
+    private String userId;
+
+    @ApiModelProperty("订单项列表")
+    private List<MtPurchaseOrderItemDto> orderItemList;
+
+}

+ 66 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/MtPurchaseOrderItemDto.java

@@ -0,0 +1,66 @@
+package com.fuint.common.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 材料采购订单项表实体
+ *
+ * @Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class MtPurchaseOrderItemDto extends Page implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("创建用户id")
+    private String createUserId;
+
+    @ApiModelProperty("是否删除 0否 1是")
+    private Integer deleteFlag;
+
+    @ApiModelProperty("采购菜单项id")
+    @TableId(value = "ID", type = IdType.ID_WORKER)
+    private Long id;
+
+    @ApiModelProperty("材料id")
+    private String materialId;
+
+    @ApiModelProperty("材料名字")
+    private String materialName;
+
+    @ApiModelProperty("项目标识")
+    private String project;
+
+    @ApiModelProperty("采购订单id")
+    private String purchaseNo;
+
+    @ApiModelProperty("总价")
+    private Long totalPrice;
+
+    @ApiModelProperty("总数")
+    private Integer totalQuantity;
+
+    @ApiModelProperty("单价")
+    private Double unitPrice;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("修改用户id")
+    private String updateUserId;
+
+}

+ 17 - 17
fuintBackend/fuint-application/src/main/java/com/fuint/common/dto/Page.java

@@ -10,29 +10,29 @@ import java.io.Serializable;
  */
 public class Page implements Serializable {
 
-    private static final Long DEFAULT_PAGE_NO = 1L;
-    private static final Long DEFAULT_PAGE_SIZE = 100L;
+    private static final Integer DEFAULT_PAGE_NO = 1;
+    private static final Integer DEFAULT_PAGE_SIZE = 100;
 
-    private Long pageNo;// 页号
-    private Long pageSize;// 每页行数
-    private Long totalRows;// 总行数
-    private Long totalPages;// 总页数
+    private Integer pageNo;// 页号
+    private Integer pageSize;// 每页行数
+    private Integer totalRows;// 总行数
+    private Integer totalPages;// 总页数
     private Boolean firstPage;// 是否首页
     private Boolean lastPage;// 是否尾页
 
     public Page() {
     }
 
-    public Page(Long pageNo, Long pageSize) {
+    public Page(Integer pageNo, Integer pageSize) {
         setPageNo(pageNo);
         setPageSize(pageSize);
     }
 
-    public Long getPageNo() {
+    public Integer getPageNo() {
         return pageNo;
     }
 
-    public void setPageNo(Long pageNo) {
+    public void setPageNo(Integer pageNo) {
         if (pageNo == null || pageNo < 1) {
             pageNo = DEFAULT_PAGE_NO;
         } else if (totalPages != null && pageNo > totalPages) {
@@ -41,25 +41,25 @@ public class Page implements Serializable {
         this.pageNo = pageNo;
     }
 
-    public Long getPageSize() {
+    public Integer getPageSize() {
         return pageSize;
     }
 
-    public void setPageSize(Long pageSize) {
+    public void setPageSize(Integer pageSize) {
         if (pageSize == null) {
             this.pageSize = DEFAULT_PAGE_SIZE;
-        } else if (pageSize < 1L) {
-            this.pageSize = 1L;
+        } else if (pageSize < 1) {
+            this.pageSize = 1;
         } else {
             this.pageSize = pageSize;
         }
     }
 
-    public Long getTotalRows() {
+    public Integer getTotalRows() {
         return totalRows;
     }
 
-    public void setTotalRows(Long totalRows) {
+    public void setTotalRows(Integer totalRows) {
         //总行数
         this.totalRows = totalRows;
         //总页数
@@ -81,11 +81,11 @@ public class Page implements Serializable {
         }
     }
 
-    public Long getTotalPages() {
+    public Integer getTotalPages() {
         return totalPages;
     }
 
-    public void setTotalPages(Long totalPages) {
+    public void setTotalPages(Integer totalPages) {
         this.totalPages = totalPages;
     }
 

+ 30 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/PurchaseOrderItemService.java

@@ -0,0 +1,30 @@
+package com.fuint.common.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fuint.common.dto.MtPurchaseOrderItemDto;
+import com.fuint.common.vo.MtPurchaseOrderItemVo;
+import com.fuint.framework.pagination.PaginationRequest;
+import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.framework.web.PageResult;
+import com.fuint.repository.model.MtPurchaseOrderItem;
+import com.fuint.framework.exception.BusinessCheckException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 材料采购订单项表业务接口
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+public interface PurchaseOrderItemService extends IService<MtPurchaseOrderItem> {
+
+
+    PageResult<MtPurchaseOrderItemVo> queryPurchaseOrderItemListByParam(MtPurchaseOrderItemDto mtPurchaseOrderItemDto);
+
+    void deleteOrderItemById(Long id);
+
+    void updateOrderItem(MtPurchaseOrderItemDto mtPurchaseOrderItemDto);
+
+    MtPurchaseOrderItemVo addOrderItem(MtPurchaseOrderItemDto mtPurchaseOrderItemDto);
+}

+ 31 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/PurchaseOrderService.java

@@ -0,0 +1,31 @@
+package com.fuint.common.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fuint.common.dto.MtPurchaseOrderDto;
+import com.fuint.common.vo.MtPurchaseOrderVo;
+import com.fuint.framework.pagination.PaginationRequest;
+import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.framework.web.PageResult;
+import com.fuint.repository.model.MtPurchaseOrder;
+import com.fuint.framework.exception.BusinessCheckException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 采购订单表业务接口
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+public interface PurchaseOrderService extends IService<MtPurchaseOrder> {
+
+    MtPurchaseOrderVo queryPurchaseOrderById(Long id) throws BusinessCheckException;
+
+    PageResult<MtPurchaseOrderVo> queryOrderPageList(MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException;
+
+    void savePurcahseOrder(MtPurchaseOrderDto mtPurchaseOrderDto);
+
+    void updatePurchaseOrderByOrderNo(MtPurchaseOrderDto mtPurchaseOrderDto);
+
+    void deletePurchaseOrderByOrderNo(Long orderNo);
+}

+ 171 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderItemServiceImpl.java

@@ -0,0 +1,171 @@
+package com.fuint.common.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.dto.MtPurchaseOrderItemDto;
+import com.fuint.common.util.AuthUserUtil;
+import com.fuint.common.vo.MtPurchaseOrderItemVo;
+import com.fuint.framework.exception.BusinessCheckException;
+import com.fuint.framework.web.PageResult;
+import com.fuint.repository.mapper.MtMaterialMapper;
+import com.fuint.repository.mapper.MtPurchaseOrderMapper;
+import com.fuint.repository.mapper.MtStoreMapper;
+import com.fuint.repository.model.MtMaterial;
+import com.fuint.repository.model.MtPurchaseOrder;
+import com.fuint.repository.model.MtPurchaseOrderItem;
+import com.fuint.common.service.PurchaseOrderItemService;
+import com.fuint.repository.mapper.MtPurchaseOrderItemMapper;
+import com.fuint.repository.model.MtStore;
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.*;
+
+
+/**
+ * 材料采购订单项表服务接口
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Service
+@AllArgsConstructor
+public class PurchaseOrderItemServiceImpl extends ServiceImpl<MtPurchaseOrderItemMapper, MtPurchaseOrderItem> implements PurchaseOrderItemService {
+
+    private static final Logger logger = LoggerFactory.getLogger(PurchaseOrderItemServiceImpl.class);
+
+    private MtPurchaseOrderItemMapper mtPurchaseOrderItemMapper;
+    private MtPurchaseOrderMapper mtPurchaseOrderMapper;
+    private MtMaterialMapper mtMaterialMapper;;
+    private MtStoreMapper mtStoreMapper;
+
+   /**
+    * 根据条件搜索材料采购订单项表
+    *
+    * @param  mtPurchaseOrderItemDto 查询参数
+    * @throws BusinessCheckException
+    * @return
+    * */
+    @Override
+    public PageResult<MtPurchaseOrderItemVo> queryPurchaseOrderItemListByParam(MtPurchaseOrderItemDto mtPurchaseOrderItemDto) {
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "登录信息不能为空");
+        Assert.isTrue(mtPurchaseOrderItemDto != null, "查询参数不能为空");
+        Assert.isTrue(StringUtils.isNotBlank(mtPurchaseOrderItemDto.getPurchaseNo()), "采购订单号不能为空");
+
+        IPage<MtPurchaseOrderItem> page = new Page<>(mtPurchaseOrderItemDto.getPageNo() == null ? 1 : mtPurchaseOrderItemDto.getPageNo(), mtPurchaseOrderItemDto.getPageSize() == null ? 10 : mtPurchaseOrderItemDto.getPageSize());
+
+        IPage<MtPurchaseOrderItem> itemPage = mtPurchaseOrderItemMapper.selectPage(page,new LambdaQueryWrapper<MtPurchaseOrderItem>()
+                .eq(MtPurchaseOrderItem::getPurchaseNo, mtPurchaseOrderItemDto.getPurchaseNo()));
+        return PageResult.<MtPurchaseOrderItemVo>builder()
+                .data(BeanUtil.copyToList(ObjectUtils.isNotEmpty(itemPage.getRecords()) ? itemPage.getRecords() : new ArrayList<>(), MtPurchaseOrderItemVo.class))
+                .currentPage((int) itemPage.getCurrent())
+                .total((int)itemPage.getTotal())
+                .build();
+    }
+
+    @Override
+    @Transactional
+    public void deleteOrderItemById(Long id) {
+
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "登录信息不能为空");
+        Assert.isTrue(id != null, "请选择要删除的订单项");
+
+        MtPurchaseOrderItem item = mtPurchaseOrderItemMapper.selectById(id);
+        Assert.isTrue(ObjectUtils.isNotEmpty(item), "订单项不存在");
+
+        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, item.getPurchaseNo()));
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), "该采购单不存在");
+        Assert.isTrue(accountInfo.getStoreId()!=0 && mtPurchaseOrder.getStoreId() != accountInfo.getStoreId(), "暂无该餐厅权限");
+
+        MtStore mtStore = mtStoreMapper.selectById(accountInfo.getStoreId());
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
+
+        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice() - item.getTotalPrice());
+
+        int delete = mtPurchaseOrderItemMapper.deleteById(id);
+        int delete1 = mtPurchaseOrderMapper.updateById(mtPurchaseOrder);
+
+        Assert.isFalse(delete!=1||delete1!=1, "删除失败");
+    }
+
+    @Override
+    @Transactional
+    public void updateOrderItem(MtPurchaseOrderItemDto mtPurchaseOrderItemDto) {
+
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "登录信息不能为空");
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderItemDto), "请选择要修改的订单项");
+        Assert.isFalse(mtPurchaseOrderItemDto.getId()== null, "请选择要删除的订单项");
+
+        MtPurchaseOrderItem item = BeanUtil.copyProperties(mtPurchaseOrderItemDto, MtPurchaseOrderItem.class);
+
+        MtPurchaseOrderItem item1 = mtPurchaseOrderItemMapper.selectById(mtPurchaseOrderItemDto.getId());
+        Assert.isTrue(ObjectUtils.isNotEmpty(item1), "订单项不存在");
+
+        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, item.getPurchaseNo()));
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), "该采购单不存在");
+        Assert.isTrue(accountInfo.getStoreId()!=0 && mtPurchaseOrder.getStoreId() != accountInfo.getStoreId(), "暂无该餐厅权限");
+
+        MtStore mtStore = mtStoreMapper.selectById(accountInfo.getStoreId());
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
+
+        MtMaterial mtMaterial = mtMaterialMapper.selectById(item.getMaterialId());
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtMaterial), "该材料不存在");
+
+        item.setUpdateTime(new Date());
+        item.setUpdateUserId(String.valueOf(accountInfo.getId()));
+
+        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice() - item1.getTotalPrice() + item.getTotalPrice());
+
+        int update = mtPurchaseOrderItemMapper.updateById(item);
+
+        int update1 = mtPurchaseOrderMapper.updateById(mtPurchaseOrder);
+    Assert.isFalse(update!=1 ||update1!=1, "修改失败");
+
+    }
+
+    @Override
+    @Transactional
+    public MtPurchaseOrderItemVo addOrderItem(MtPurchaseOrderItemDto mtPurchaseOrderItemDto) {
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "登录信息不能为空");
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderItemDto), "参数不能为空");
+        Assert.isFalse(mtPurchaseOrderItemDto.getPurchaseNo()== null, "请选择要添加到的订单");
+
+        MtPurchaseOrderItem item = BeanUtil.copyProperties(mtPurchaseOrderItemDto, MtPurchaseOrderItem.class);
+
+        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, item.getPurchaseNo()));
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), "该采购单不存在");
+        Assert.isTrue(accountInfo.getStoreId()!=0 && mtPurchaseOrder.getStoreId() != accountInfo.getStoreId(), "暂无该餐厅权限");
+
+        MtStore mtStore = mtStoreMapper.selectById(accountInfo.getStoreId());
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
+
+        MtMaterial mtMaterial = mtMaterialMapper.selectById(item.getMaterialId());
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtMaterial), "该材料不存在");
+
+        item.setCreateTime(new Date());
+        item.setCreateUserId(String.valueOf(accountInfo.getId()));
+
+        int insert = mtPurchaseOrderItemMapper.insert(item);
+        Assert.isFalse(insert!=1, "添加失败");
+
+        mtPurchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice()  + item.getTotalPrice());
+
+        int update = mtPurchaseOrderMapper.updateById(mtPurchaseOrder);
+        Assert.isFalse(update!=1, "添加失败");
+
+        return BeanUtil.copyProperties(item, MtPurchaseOrderItemVo.class);
+    }
+}

+ 195 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/service/impl/PurchaseOrderServiceImpl.java

@@ -0,0 +1,195 @@
+package com.fuint.common.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Assert;
+import cn.hutool.core.lang.Snowflake;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.dto.MtPurchaseOrderDto;
+import com.fuint.common.dto.MtPurchaseOrderItemDto;
+import com.fuint.common.service.PurchaseOrderItemService;
+import com.fuint.common.util.AuthUserUtil;
+import com.fuint.common.vo.MtPurchaseOrderItemVo;
+import com.fuint.common.vo.MtPurchaseOrderVo;
+import com.fuint.framework.web.PageResult;
+import com.fuint.repository.mapper.MtPurchaseOrderItemMapper;
+import com.fuint.repository.mapper.MtStoreMapper;
+import com.fuint.repository.model.MtPurchaseOrder;
+import com.fuint.common.service.PurchaseOrderService;
+import com.fuint.common.enums.StatusEnum;
+import com.fuint.repository.mapper.MtPurchaseOrderMapper;
+import com.fuint.repository.model.MtPurchaseOrderItem;
+import com.fuint.repository.model.MtStore;
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+/**
+ * 采购订单表服务接口
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Service
+@AllArgsConstructor
+public class PurchaseOrderServiceImpl extends ServiceImpl<MtPurchaseOrderMapper, MtPurchaseOrder> implements PurchaseOrderService {
+
+    private static final Logger logger = LoggerFactory.getLogger(PurchaseOrderServiceImpl.class);
+
+    private MtPurchaseOrderMapper mtPurchaseOrderMapper;
+
+    private MtPurchaseOrderItemMapper mtPurchaseOrderItemMapper;
+
+    private MtStoreMapper mtStoreMapper;
+
+    private PurchaseOrderItemService purchaseOrderItemService;
+
+    @Override
+    public MtPurchaseOrderVo queryPurchaseOrderById(Long id) {
+
+        Assert.isTrue(ObjectUtils.isNotEmpty(AuthUserUtil.get()), "请先登录");
+        Assert.isTrue(ObjectUtils.isNotEmpty(id), "请选择查询的订单");
+
+        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getId, id));
+        List<MtPurchaseOrderItem> itemList = mtPurchaseOrderItemMapper.selectList(new LambdaQueryWrapper<MtPurchaseOrderItem>().eq(MtPurchaseOrderItem::getPurchaseNo, id));
+
+        MtPurchaseOrderVo mtPurchaseOrderVo = BeanUtil.copyProperties(mtPurchaseOrder, MtPurchaseOrderVo.class);
+        if (ObjectUtils.isNotEmpty(itemList)) {
+            List<MtPurchaseOrderItemVo> mtPurchaseOrderItemVos = BeanUtil.copyToList(itemList, MtPurchaseOrderItemVo.class);
+            mtPurchaseOrderVo.setOrderItemList(mtPurchaseOrderItemVos);
+        }
+
+        return mtPurchaseOrderVo ;
+    }
+
+
+
+    @Override
+    public PageResult<MtPurchaseOrderVo> queryOrderPageList(MtPurchaseOrderDto mtPurchaseOrderDto)  {
+
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "请先登录");
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getStoreId()), "请选择餐厅");
+        Assert.isFalse(accountInfo.getStoreId()!=0 && !accountInfo.getStoreId().equals(mtPurchaseOrderDto.getStoreId()), "暂无该餐厅权限");
+
+        //分页
+        IPage<MtPurchaseOrder> page = new Page<>(mtPurchaseOrderDto.getPageNo()==null?1:mtPurchaseOrderDto.getPageNo(), mtPurchaseOrderDto.getPageSize()==null?10:mtPurchaseOrderDto.getPageSize());
+        IPage<MtPurchaseOrder> orderIPage = mtPurchaseOrderMapper.selectPage(page, new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getStoreId, mtPurchaseOrderDto.getStoreId()));
+        if (ObjectUtils.isEmpty(orderIPage.getRecords())){
+            return PageResult.<MtPurchaseOrderVo>builder().data(new ArrayList<>()).currentPage((int)orderIPage.getCurrent()).total((int)orderIPage.getTotal()).build();
+        }
+        List<MtPurchaseOrderVo> mtPurchaseOrderVos = BeanUtil.copyToList(orderIPage.getRecords(), MtPurchaseOrderVo.class);
+
+        //订单项列表
+        List<MtPurchaseOrderItem> itemList = mtPurchaseOrderItemMapper.selectList(new LambdaQueryWrapper<MtPurchaseOrderItem>()
+                .in(MtPurchaseOrderItem::getPurchaseNo));
+        Map<String, List<MtPurchaseOrderItem>> orderNoItemMap = itemList.stream().collect(Collectors.groupingBy(MtPurchaseOrderItem::getPurchaseNo));
+
+        mtPurchaseOrderVos.forEach(vo -> {
+            List<MtPurchaseOrderItem> orderItemList = orderNoItemMap.get(vo.getOrderNo());
+            if (ObjectUtils.isNotEmpty(orderItemList)) {
+                List<MtPurchaseOrderItemVo> orderItemVos = BeanUtil.copyToList(orderItemList, MtPurchaseOrderItemVo.class);
+                vo.setOrderItemList(orderItemVos);
+            }
+        });
+        return PageResult.<MtPurchaseOrderVo>builder().data(mtPurchaseOrderVos).total((int)orderIPage.getTotal()).currentPage(mtPurchaseOrderDto.getPageNo()).build();
+    }
+
+    @Override
+    @Transactional
+    public void savePurcahseOrder(MtPurchaseOrderDto mtPurchaseOrderDto) {
+        //参数验证
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "请先登录");
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getStoreId()), "请选择餐厅");
+        List<MtPurchaseOrderItemDto> orderItemList = mtPurchaseOrderDto.getOrderItemList();
+        Assert.isFalse(orderItemList.isEmpty(), "请添加采购项");
+        Assert.isFalse(accountInfo.getStoreId()!=0 && !accountInfo.getStoreId().equals(mtPurchaseOrderDto.getStoreId()), "暂无该餐厅权限");
+        MtStore mtStore = mtStoreMapper.selectOne(new LambdaQueryWrapper<MtStore>().eq(MtStore::getId, mtPurchaseOrderDto.getStoreId()).eq(MtStore::getStatus, StatusEnum.ENABLED.getKey()));
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
+        //参数准备
+        MtPurchaseOrder purchaseOrder = BeanUtil.copyProperties(mtPurchaseOrderDto, MtPurchaseOrder.class);
+        purchaseOrder.setCreateTime(new Date());
+        purchaseOrder.setCreateUserId(String.valueOf(accountInfo.getId()));
+        purchaseOrder.setOrderNo(new Snowflake(1,1).nextIdStr());
+
+        ArrayList<MtPurchaseOrderItem> orderItems = new ArrayList<>();
+        for (MtPurchaseOrderItemDto itemDto : orderItemList) {
+            MtPurchaseOrderItem purchaseOrderItem = BeanUtil.copyProperties(itemDto, MtPurchaseOrderItem.class);
+            purchaseOrderItem.setPurchaseNo(String.valueOf(purchaseOrder.getOrderNo()));
+            purchaseOrderItem.setCreateTime(new Date());
+            purchaseOrderItem.setCreateUserId(String.valueOf(accountInfo.getId()));
+            purchaseOrderItem.setTotalPrice(purchaseOrderItem.getUnitPrice()*purchaseOrderItem.getTotalQuantity());
+            orderItems.add(purchaseOrderItem);
+        }
+        purchaseOrder.setTotalPrice(orderItems.stream().mapToDouble(MtPurchaseOrderItem::getTotalPrice).sum());
+        //保存订单
+        int insert = mtPurchaseOrderMapper.insert(purchaseOrder);
+        Assert.isFalse(insert!=1, "保存失败");
+        //保存订单项
+        boolean b = purchaseOrderItemService.saveBatch(orderItems);
+        Assert.isFalse(b, "保存失败");
+    }
+
+    @Override
+    @Transactional
+    public void updatePurchaseOrderByOrderNo(MtPurchaseOrderDto mtPurchaseOrderDto) {
+        //参数验证
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "请先登录");
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getStoreId()), "请选择餐厅");
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrderDto.getOrderNo()), "请选择采购单");
+        Assert.isFalse(mtPurchaseOrderDto.getOrderItemList().isEmpty(), "请添加采购项");
+        Assert.isFalse(accountInfo.getStoreId()!=0 && !accountInfo.getStoreId().equals(mtPurchaseOrderDto.getStoreId()), "暂无该餐厅权限");
+
+        MtStore mtStore = mtStoreMapper.selectOne(new LambdaQueryWrapper<MtStore>().eq(MtStore::getId, mtPurchaseOrderDto.getStoreId()).eq(MtStore::getStatus, StatusEnum.ENABLED.getKey()));
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtStore), "该餐厅不存在");
+
+        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, mtPurchaseOrderDto.getOrderNo()));
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), "该采购单不存在");
+
+        //修改订单
+        MtPurchaseOrder purchaseOrder = BeanUtil.copyProperties(mtPurchaseOrderDto, MtPurchaseOrder.class);
+        purchaseOrder.setUpdateTime(new Date());
+        purchaseOrder.setUpdateUserId(String.valueOf(accountInfo.getId()));
+        purchaseOrder.setTotalPrice(mtPurchaseOrder.getTotalPrice() );
+        purchaseOrder.setTotalQuantity(mtPurchaseOrder.getTotalQuantity());
+        purchaseOrder.setTotalWeight(mtPurchaseOrder.getTotalWeight());
+        purchaseOrder.setCreateUserId(mtPurchaseOrder.getCreateUserId());
+        purchaseOrder.setCreateTime(mtPurchaseOrder.getCreateTime());
+        purchaseOrder.setDeleteFlag(mtPurchaseOrderDto.getDeleteFlag());
+        purchaseOrder.setOrderNo(mtPurchaseOrder.getOrderNo());
+        purchaseOrder.setId(mtPurchaseOrder.getId());
+        purchaseOrder.setProject(mtPurchaseOrder.getProject());
+        int update = mtPurchaseOrderMapper.updateById(purchaseOrder);
+        Assert.isFalse(update!=1, "修改失败");
+
+    }
+
+    @Override
+    @Transactional
+    public void deletePurchaseOrderByOrderNo(Long orderNo) {
+        //参数验证
+        AccountInfo accountInfo = AuthUserUtil.get();
+        Assert.isTrue(ObjectUtils.isNotEmpty(accountInfo), "请先登录");
+        Assert.isTrue(ObjectUtils.isNotEmpty(orderNo), "请选择采购单");
+
+        MtPurchaseOrder mtPurchaseOrder = mtPurchaseOrderMapper.selectOne(new LambdaQueryWrapper<MtPurchaseOrder>().eq(MtPurchaseOrder::getOrderNo, orderNo));
+        Assert.isTrue(ObjectUtils.isNotEmpty(mtPurchaseOrder), "该采购单不存在");
+        Assert.isFalse(accountInfo.getStoreId()!=0 && mtPurchaseOrder.getStoreId() != accountInfo.getStoreId(), "暂无该餐厅权限");
+
+        int delete = mtPurchaseOrderMapper.deleteById(orderNo);
+        Assert.isFalse(delete!=1, "删除失败");
+        int delete1 = mtPurchaseOrderItemMapper.delete(new LambdaQueryWrapper<MtPurchaseOrderItem>().eq(MtPurchaseOrderItem::getPurchaseNo, orderNo));
+        Assert.isFalse(delete1!=1, "删除失败");
+    }
+}

+ 65 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderItemVo.java

@@ -0,0 +1,65 @@
+package com.fuint.common.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fuint.common.dto.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 材料采购订单项表实体
+ *
+ * @Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class MtPurchaseOrderItemVo extends Page implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("创建用户id")
+    private String createUserId;
+
+    @ApiModelProperty("是否删除 0否 1是")
+    private Integer deleteFlag;
+
+    @ApiModelProperty("采购菜单项id")
+    @TableId(value = "ID", type = IdType.ID_WORKER)
+    private Long id;
+
+    @ApiModelProperty("材料id")
+    private String materialId;
+
+    @ApiModelProperty("材料名字")
+    private String materialName;
+
+    @ApiModelProperty("项目标识")
+    private String project;
+
+    @ApiModelProperty("采购订单id")
+    private String purchaseNo;
+
+    @ApiModelProperty("总价")
+    private Long totalPrice;
+
+    @ApiModelProperty("总数")
+    private Integer totalQuantity;
+
+    @ApiModelProperty("单价")
+    private Double unitPrice;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("修改用户id")
+    private String updateUserId;
+
+}

+ 90 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/common/vo/MtPurchaseOrderVo.java

@@ -0,0 +1,90 @@
+package com.fuint.common.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fuint.common.dto.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 采购订单表实体
+ *
+ * @Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class MtPurchaseOrderVo extends Page implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("实际支付")
+    private Double actualPrice;
+
+    @ApiModelProperty("联系方式")
+    private String contactWay;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("创建用户id")
+    private String createUserId;
+
+    @ApiModelProperty("是否删除 0否 1是")
+    private Integer deleteFlag;
+
+    @ApiModelProperty("发票文件/图片id")
+    private String fileId;
+
+    @ApiModelProperty("采购记录id")
+    @TableId(value = "ID", type = IdType.ID_WORKER)
+    private Long id;
+
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @ApiModelProperty("项目标识")
+    private String project;
+
+    @ApiModelProperty("采购货源")
+    private String puchaseSource;
+
+    @ApiModelProperty("采购时间")
+    private Date purchaseTime;
+
+    @ApiModelProperty("支付方式")
+    private Integer purchaseType;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("总价")
+    private Double totalPrice;
+
+    @ApiModelProperty("商品总数量")
+    private Integer totalQuantity;
+
+    @ApiModelProperty("商品总数量")
+    private Integer totalWeight;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("修改用户id")
+    private String updateUserId;
+
+    @ApiModelProperty("采购人")
+    private String userId;
+
+    @ApiModelProperty("订单发票图片列表")
+    private List<String> fileList;
+
+    @ApiModelProperty("订单项列表")
+    private List<MtPurchaseOrderItemVo> orderItemList;
+
+}

+ 107 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderController.java

@@ -0,0 +1,107 @@
+package com.fuint.module.backendApi.controller;
+
+import com.fuint.common.dto.MtPurchaseOrderDto;
+import com.fuint.common.vo.MtPurchaseOrderVo;
+import com.fuint.framework.web.BaseController;
+import com.fuint.framework.web.PageResult;
+import com.fuint.framework.web.ResponseObject;
+import com.fuint.common.service.PurchaseOrderService;
+import com.fuint.framework.exception.BusinessCheckException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 采购订单表管理类controller
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Api(tags="管理端-采购订单表相关接口")
+@RestController
+@AllArgsConstructor
+@RequestMapping(value = "/backendApi/purchase_order")
+public class BackendPurchaseOrderController extends BaseController {
+
+    /**
+     * 采购订单表服务接口
+     */
+    private PurchaseOrderService purchaseOrderService;
+
+    /**
+     * 采购订单表列表查询
+     *
+     * @param  request HttpServletRequest对象
+     * @return 采购订单表列表
+     */
+    @ApiOperation(value = "采购订单表列表查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order:list')")
+    public ResponseObject list(HttpServletRequest request, @RequestBody MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException {
+
+        PageResult<MtPurchaseOrderVo> pageVoList = purchaseOrderService.queryOrderPageList(mtPurchaseOrderDto);
+
+        return getSuccessResult(pageVoList);
+    }
+
+    /**
+     * 更新采购订单表状态
+     *
+     * @return
+     */
+    @ApiOperation(value = "更新采购订单表状态")
+    @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order:edit')")
+    public ResponseObject updateStatus(HttpServletRequest request, @RequestBody MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException {
+        purchaseOrderService.updatePurchaseOrderByOrderNo(mtPurchaseOrderDto);
+        return getSuccessResult(true);
+    }
+
+    /**
+     * 保存采购订单表
+     *
+     * @param request HttpServletRequest对象
+     * @return
+     */
+    @ApiOperation(value = "保存采购订单表")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order:add')")
+    public ResponseObject saveHandler(HttpServletRequest request, @RequestBody MtPurchaseOrderDto mtPurchaseOrderDto) throws BusinessCheckException {
+        purchaseOrderService.savePurcahseOrder(mtPurchaseOrderDto);
+        return getSuccessResult(true);
+    }
+
+    /**
+     * 获取采购订单表详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "获取采购订单表详情")
+    @RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order:list')")
+    public ResponseObject info(HttpServletRequest request, @PathVariable("id") Long id) throws BusinessCheckException {
+
+        MtPurchaseOrderVo vo = purchaseOrderService.queryPurchaseOrderById(id);
+
+        return getSuccessResult(vo);
+    }
+
+    @ApiOperation(value = "删除采购订单表")
+    @RequestMapping(value = "/delete/{orderNo}", method = RequestMethod.GET)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order:delete')")
+    public ResponseObject delete(HttpServletRequest request, @PathVariable("orderNo") Long orderNo) throws BusinessCheckException {
+
+        purchaseOrderService.deletePurchaseOrderByOrderNo(orderNo);
+
+        return getSuccessResult(true);
+    }
+}

+ 112 - 0
fuintBackend/fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendPurchaseOrderItemController.java

@@ -0,0 +1,112 @@
+package com.fuint.module.backendApi.controller;
+
+import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.dto.MtPurchaseOrderItemDto;
+import com.fuint.common.util.TokenUtil;
+import com.fuint.common.vo.MtPurchaseOrderItemVo;
+import com.fuint.framework.web.BaseController;
+import com.fuint.framework.web.PageResult;
+import com.fuint.framework.web.ResponseObject;
+import com.fuint.common.Constants;
+import com.fuint.common.enums.StatusEnum;
+import com.fuint.common.service.PurchaseOrderItemService;
+import com.fuint.framework.pagination.PaginationRequest;
+import com.fuint.framework.pagination.PaginationResponse;
+import com.fuint.framework.exception.BusinessCheckException;
+import com.fuint.repository.model.MtPurchaseOrderItem;
+import com.fuint.utils.StringUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 材料采购订单项表管理类controller
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Api(tags="管理端-材料采购订单项表相关接口")
+@RestController
+@AllArgsConstructor
+@RequestMapping(value = "/backendApi/purchase_order_item")
+public class BackendPurchaseOrderItemController extends BaseController {
+
+    /**
+     * 材料采购订单项表服务接口
+     */
+    private PurchaseOrderItemService purchaseOrderItemService;
+
+    /**
+     * 材料采购订单项表列表查询
+     *
+     * @param  request HttpServletRequest对象
+     * @return 材料采购订单项表列表
+     */
+    @ApiOperation(value = "材料采购订单项表列表查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order_item:list')")
+    public ResponseObject list(HttpServletRequest request, @RequestBody MtPurchaseOrderItemDto mtPurchaseOrderItemDto) throws BusinessCheckException {
+
+        PageResult<MtPurchaseOrderItemVo> result = purchaseOrderItemService.queryPurchaseOrderItemListByParam(mtPurchaseOrderItemDto);
+
+        return getSuccessResult(result);
+    }
+
+    /**
+     * 更新材料采购订单项表状态
+     *
+     * @return
+     */
+    @ApiOperation(value = "更新材料采购订单项表")
+    @RequestMapping(value = "/updateOrderItem", method = RequestMethod.POST)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order_item:edit')")
+    public ResponseObject updateOrderItem(HttpServletRequest request, @RequestBody MtPurchaseOrderItemDto mtPurchaseOrderItemDto) throws BusinessCheckException {
+
+        purchaseOrderItemService.updateOrderItem(mtPurchaseOrderItemDto);
+
+        return getSuccessResult(true);
+    }
+
+    /**
+     * 删除材料采购订单项
+     *
+     * @return
+     */
+    @ApiOperation(value = "删除材料采购订单项")
+    @RequestMapping(value = "/deleteOrderItemById/{id}", method = RequestMethod.POST)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order_item:delete')")
+    public ResponseObject deleteOrderItemById(HttpServletRequest request,@PathVariable("id") Long id) throws BusinessCheckException {
+
+        purchaseOrderItemService.deleteOrderItemById(id);
+
+        return getSuccessResult(true);
+    }
+
+    /**
+     * 更新材料采购订单项表状态
+     *
+     * @return
+     */
+    @ApiOperation(value = "添加材料采购订单项表")
+    @RequestMapping(value = "/updateOrderItem", method = RequestMethod.POST)
+    @CrossOrigin
+    @PreAuthorize("@pms.hasPermission('purchase_order_item:edit')")
+    public ResponseObject addOrderItem(HttpServletRequest request, @RequestBody MtPurchaseOrderItemDto mtPurchaseOrderItemDto) throws BusinessCheckException {
+
+        MtPurchaseOrderItemVo mtPurchaseOrderItemVo = purchaseOrderItemService.addOrderItem(mtPurchaseOrderItemDto);
+
+        return getSuccessResult(mtPurchaseOrderItemVo);
+    }
+
+
+
+}

+ 7 - 0
fuintBackend/fuint-framework/src/main/java/com/fuint/framework/exception/GlobalExceptionHandler.java

@@ -23,6 +23,13 @@ public class GlobalExceptionHandler {
 
     private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
 
+    @ExceptionHandler(IllegalArgumentException.class)
+    public ResponseObject handleHttpRequestMethodNotSupported(IllegalArgumentException e,HttpServletRequest request){
+        String requestURI = request.getRequestURI();
+        e.printStackTrace();
+        return new ResponseObject(400, e.getMessage(), null);
+    }
+
     /**
      * 请求方式不支持
      */

+ 2 - 0
fuintBackend/fuint-framework/src/main/java/com/fuint/framework/web/PageResult.java

@@ -20,5 +20,7 @@ import java.util.List;
 public class PageResult<T> {
 	private List<T> data;
 
+	private int currentPage;
+
 	private int total;
 }

+ 14 - 0
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/mapper/MtPurchaseOrderItemMapper.java

@@ -0,0 +1,14 @@
+package com.fuint.repository.mapper;
+
+import com.fuint.repository.model.MtPurchaseOrderItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 材料采购订单项表 Mapper 接口
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+public interface MtPurchaseOrderItemMapper extends BaseMapper<MtPurchaseOrderItem> {
+
+}

+ 14 - 0
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/mapper/MtPurchaseOrderMapper.java

@@ -0,0 +1,14 @@
+package com.fuint.repository.mapper;
+
+import com.fuint.repository.model.MtPurchaseOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 采购订单表 Mapper 接口
+ *
+ * Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+public interface MtPurchaseOrderMapper extends BaseMapper<MtPurchaseOrder> {
+
+}

+ 85 - 0
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/MtPurchaseOrder.java

@@ -0,0 +1,85 @@
+package com.fuint.repository.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购订单表实体
+ *
+ * @Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+@TableName("mt_purchase_order")
+@ApiModel(value = "purchase_order表对象", description = "purchase_order表对象")
+public class MtPurchaseOrder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("实际支付")
+    private Double actualPrice;
+
+    @ApiModelProperty("联系方式")
+    private String contactWay;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("创建用户id")
+    private String createUserId;
+
+    @ApiModelProperty("是否删除 0否 1是")
+    private Integer deleteFlag;
+
+    @ApiModelProperty("发票文件/图片id")
+    private String fileId;
+
+    @ApiModelProperty("采购记录id")
+    @TableId(value = "ID", type = IdType.ID_WORKER)
+    private Long id;
+
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @ApiModelProperty("项目标识")
+    private String project;
+
+    @ApiModelProperty("采购货源")
+    private String puchaseSource;
+
+    @ApiModelProperty("采购时间")
+    private Date purchaseTime;
+
+    @ApiModelProperty("支付方式")
+    private Integer purchaseType;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("总价")
+    private Double totalPrice;
+
+    @ApiModelProperty("商品总数量")
+    private Integer totalQuantity;
+
+    @ApiModelProperty("商品总数量")
+    private Integer totalWeight;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("修改用户id")
+    private String updateUserId;
+
+    @ApiModelProperty("采购人")
+    private String userId;
+
+}

+ 67 - 0
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/MtPurchaseOrderItem.java

@@ -0,0 +1,67 @@
+package com.fuint.repository.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 材料采购订单项表实体
+ *
+ * @Created by huangwen
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+@TableName("mt_purchase_order_item")
+@ApiModel(value = "purchase_order_item表对象", description = "purchase_order_item表对象")
+public class MtPurchaseOrderItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("创建用户id")
+    private String createUserId;
+
+    @ApiModelProperty("是否删除 0否 1是")
+    private Integer deleteFlag;
+
+    @ApiModelProperty("采购菜单项id")
+    @TableId(value = "ID", type = IdType.ID_WORKER)
+    private Long id;
+
+    @ApiModelProperty("材料id")
+    private String materialId;
+
+    @ApiModelProperty("材料名字")
+    private String materialName;
+
+    @ApiModelProperty("项目标识")
+    private String project;
+
+    @ApiModelProperty("采购订单id")
+    private String purchaseNo;
+
+    @ApiModelProperty("总价")
+    private Double totalPrice;
+
+    @ApiModelProperty("总数")
+    private Integer totalQuantity;
+
+    @ApiModelProperty("单价")
+    private Double unitPrice;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("修改用户id")
+    private String updateUserId;
+
+}

+ 1 - 1
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/MtSmsSendedLog.java

@@ -25,7 +25,7 @@ public class MtSmsSendedLog implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("日志ID")
-    @TableId(value = "LOG_ID", type = IdType.AUTO)
+    @TableId(value = "LOG_ID", type = IdType.ID_WORKER)
     private Integer logId;
 
     @ApiModelProperty("商户ID")

+ 1 - 1
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TAccount.java

@@ -25,7 +25,7 @@ public class TAccount implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("主键id")
-    @TableId(value = "acct_id", type = IdType.AUTO)
+    @TableId(value = "acct_id", type = IdType.ID_WORKER)
     private Long acctId;
 
     @ApiModelProperty("账户编码")

+ 1 - 1
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TAccountDuty.java

@@ -24,7 +24,7 @@ public class TAccountDuty implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("账户角色ID")
-    @TableId(value = "acc_duty_id", type = IdType.AUTO)
+    @TableId(value = "acc_duty_id", type = IdType.ID_WORKER)
     private Long accDutyId;
 
     @ApiModelProperty("账户ID")

+ 1 - 1
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TDutySource.java

@@ -23,7 +23,7 @@ public class TDutySource implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @TableId(value = "duty_source_id", type = IdType.AUTO)
+    @TableId(value = "duty_source_id", type = IdType.ID_WORKER)
     private Long dutySourceId;
 
     private Long dutyId;

+ 1 - 1
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TPlatform.java

@@ -24,7 +24,7 @@ public class TPlatform implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("主键")
-    @TableId(value = "owner_id", type = IdType.AUTO)
+    @TableId(value = "owner_id", type = IdType.ID_WORKER)
     private Integer ownerId;
 
     @ApiModelProperty("平台名称")

+ 1 - 1
fuintBackend/fuint-repository/src/main/java/com/fuint/repository/model/TSource.java

@@ -24,7 +24,7 @@ public class TSource implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("菜单Id")
-    @TableId(value = "source_id", type = IdType.AUTO)
+    @TableId(value = "source_id", type = IdType.ID_WORKER)
     private Long sourceId;
 
     @ApiModelProperty("商户ID")

+ 5 - 0
fuintBackend/fuint-repository/src/main/resources/mapper/MtPurchaseOrderItemMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fuint.repository.mapper.MtPurchaseOrderItemMapper">
+
+</mapper>

+ 5 - 0
fuintBackend/fuint-repository/src/main/resources/mapper/MtPurchaseOrderMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fuint.repository.mapper.MtPurchaseOrderMapper">
+
+</mapper>