Browse Source

采购---申购流程模块

caozj 2 years ago
parent
commit
914563a9e2
25 changed files with 977 additions and 0 deletions
  1. 0 0
      hx-purchase/src/main/java/com/fjhx/purchase/a-json/SubscribeApi.json
  2. 0 0
      hx-purchase/src/main/java/com/fjhx/purchase/a-json/SubscribeDetailApi.json
  3. 68 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeController.java
  4. 68 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeDetailController.java
  5. 71 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeFlow.java
  6. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailDto.java
  7. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java
  8. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDto.java
  9. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeSelectDto.java
  10. 89 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/po/Subscribe.java
  11. 57 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/po/SubscribeDetail.java
  12. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/vo/SubscribeDetailVo.java
  13. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/vo/SubscribeVo.java
  14. 52 0
      hx-purchase/src/main/java/com/fjhx/purchase/flow/SubscribeFlow.java
  15. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/subscribe/SubscribeDetailMapper.java
  16. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/subscribe/SubscribeMapper.java
  17. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeDetailService.java
  18. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeFlowService.java
  19. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeService.java
  20. 57 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java
  21. 38 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeFlowServiceImpl.java
  22. 57 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeServiceImpl.java
  23. 98 0
      hx-purchase/src/main/java/com/fjhx/purchase/util/code/CodeEnum.java
  24. 23 0
      hx-purchase/src/main/resources/mapper/subscribe/SubscribeDetailMapper.xml
  25. 27 0
      hx-purchase/src/main/resources/mapper/subscribe/SubscribeMapper.xml

File diff suppressed because it is too large
+ 0 - 0
hx-purchase/src/main/java/com/fjhx/purchase/a-json/SubscribeApi.json


File diff suppressed because it is too large
+ 0 - 0
hx-purchase/src/main/java/com/fjhx/purchase/a-json/SubscribeDetailApi.json


+ 68 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeController.java

@@ -0,0 +1,68 @@
+package com.fjhx.purchase.controller.subscribe;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 申购单 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@RestController
+@RequestMapping("/subscribe")
+public class SubscribeController {
+
+    @Autowired
+    private SubscribeService subscribeService;
+
+    /**
+     * 申购单分页
+     */
+    @PostMapping("/page")
+    public Page<SubscribeVo> page(@RequestBody SubscribeSelectDto dto) {
+        return subscribeService.getPage(dto);
+    }
+
+    /**
+     * 申购单明细
+     */
+    @PostMapping("/detail")
+    public SubscribeVo detail(@RequestBody BaseSelectDto dto) {
+        return subscribeService.detail(dto.getId());
+    }
+
+    /**
+     * 申购单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody SubscribeDto subscribeDto) {
+        subscribeService.add(subscribeDto);
+    }
+
+    /**
+     * 申购单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody SubscribeDto subscribeDto) {
+        subscribeService.edit(subscribeDto);
+    }
+
+    /**
+     * 申购单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        subscribeService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeDetailController.java

@@ -0,0 +1,68 @@
+package com.fjhx.purchase.controller.subscribe;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailSelectDto;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 申购单 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@RestController
+@RequestMapping("/subscribeDetail")
+public class SubscribeDetailController {
+
+    @Autowired
+    private SubscribeDetailService subscribeDetailService;
+
+    /**
+     * 申购单分页
+     */
+    @PostMapping("/page")
+    public Page<SubscribeDetailVo> page(@RequestBody SubscribeDetailSelectDto dto) {
+        return subscribeDetailService.getPage(dto);
+    }
+
+    /**
+     * 申购单明细
+     */
+    @PostMapping("/detail")
+    public SubscribeDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return subscribeDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 申购单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody SubscribeDetailDto subscribeDetailDto) {
+        subscribeDetailService.add(subscribeDetailDto);
+    }
+
+    /**
+     * 申购单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody SubscribeDetailDto subscribeDetailDto) {
+        subscribeDetailService.edit(subscribeDetailDto);
+    }
+
+    /**
+     * 申购单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        subscribeDetailService.delete(dto.getId());
+    }
+
+}

+ 71 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/subscribe/SubscribeFlow.java

@@ -0,0 +1,71 @@
+package com.fjhx.purchase.controller.subscribe;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 申购单流程 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@RestController
+@RequestMapping("/subscribe/flow")
+public class SubscribeFlow {
+
+    @Autowired
+    private SubscribeService subscribeService;
+
+    /**
+     * 申购单分页
+     */
+    @PostMapping("/page")
+    public Page<SubscribeVo> page(@RequestBody SubscribeSelectDto dto) {
+        return subscribeService.getPage(dto);
+    }
+
+    /**
+     * 申购单明细
+     */
+    @PostMapping("/detail")
+    public SubscribeVo detail(@RequestBody BaseSelectDto dto) {
+        return subscribeService.detail(dto.getId());
+    }
+
+    /**
+     * 申购单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody SubscribeDto subscribeDto) {
+        subscribeService.add(subscribeDto);
+    }
+
+    /**
+     * 申购单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody SubscribeDto subscribeDto) {
+        subscribeService.edit(subscribeDto);
+    }
+
+    /**
+     * 申购单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        subscribeService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.subscribe.dto;
+
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 申购单新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+public class SubscribeDetailDto extends SubscribeDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.subscribe.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 申购单列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+public class SubscribeDetailSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.subscribe.dto;
+
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 申购单新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+public class SubscribeDto extends Subscribe {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.subscribe.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 申购单列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+public class SubscribeSelectDto extends BaseSelectDto {
+
+}

+ 89 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/po/Subscribe.java

@@ -0,0 +1,89 @@
+package com.fjhx.purchase.entity.subscribe.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.security.core.authority.AuthorityUtils;
+
+/**
+ * <p>
+ * 申购单
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+@TableName("subscribe")
+public class Subscribe extends BasePo {
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 申购人名称
+     */
+    private String subcribeName;
+
+    /**
+     * 申购时间
+     */
+    private Date subcribeTime;
+
+    /**
+     * 申购编码
+     */
+    private String code;
+
+    /**
+     * 申购说明
+     */
+    private String subcribeContent;
+
+    /**
+     * 申购状态 0草稿 10、审批中;20、驳回  30、通过
+     */
+    private Integer subcribeStatus;
+
+    /**
+     * 审核通过时间
+     */
+    private Date approvedDate;
+
+    /**
+     * 流程id
+     */
+    private String processInstanceId;
+
+    /**
+     * 下个节点名称
+     */
+    private String processInstanceName;
+
+    /**
+     * 下个节点处理人id
+     */
+    private String processInstanceUserId;
+
+    /**
+     * 下个节点处理人名称
+     */
+    private String processInstanceUserName;
+
+    /**
+     * 是否删除
+     */
+    private Integer isDelete;
+
+    /**
+     * 申购明细列表
+     */
+    private List<SubscribeDetail> subscribeDetailList;
+}

+ 57 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/po/SubscribeDetail.java

@@ -0,0 +1,57 @@
+package com.fjhx.purchase.entity.subscribe.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 申购单
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+@TableName("subscribe_detail")
+public class SubscribeDetail extends BasePo {
+
+    /**
+     * 关联ID  产品ID/货品ID
+     */
+    private String bussinessId;
+
+    /**
+     * 申购单ID
+     */
+    private Long subscribeId;
+
+    /**
+     * 申购数量
+     */
+    private Integer count;
+
+    /**
+     * 申购事由
+     */
+    private String content;
+
+    /**
+     * 状态 10、审批中  20、已采购  30、部分到货  40、完成
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 是否删除
+     */
+    private Integer isDelete;
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/vo/SubscribeDetailVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.subscribe.vo;
+
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 申购单列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+public class SubscribeDetailVo extends SubscribeDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/vo/SubscribeVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.subscribe.vo;
+
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 申购单列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Getter
+@Setter
+public class SubscribeVo extends Subscribe {
+
+}

+ 52 - 0
hx-purchase/src/main/java/com/fjhx/purchase/flow/SubscribeFlow.java

@@ -0,0 +1,52 @@
+package com.fjhx.purchase.flow;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import com.fjhx.purchase.util.code.CodeEnum;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Author:caozj
+ * @DATE:2023/4/3 17:38
+ */
+@Component
+public class SubscribeFlow extends FlowDelegate {
+
+    @Override
+    public String getFlowKey() {
+        return "subscribe_flow";
+    }
+
+
+    @Override
+    public Long start(Long flowId, JSONObject submitData) {
+        SubscribeService subscribeService = SpringUtil.getBean(SubscribeService.class);
+        SubscribeDetailService subscribeDetailService = SpringUtil.getBean(SubscribeDetailService.class);
+        Subscribe subscribe = submitData.toJavaObject(Subscribe.class);
+        subscribe.setCode(CodeEnum.SUBSCRIBE.getCode());
+        subscribeService.save(subscribe);
+        List<SubscribeDetail> SubscribeDetails = subscribe.getSubscribeDetailList();
+        if(CollectionUtils.isNotEmpty(SubscribeDetails)){
+            for(SubscribeDetail s : SubscribeDetails){
+                s.setSubscribeId(subscribe.getId());
+            }
+            subscribeDetailService.saveBatch(subscribe.getSubscribeDetailList());
+        }
+        return subscribe.getId();
+    }
+
+    @Override
+    public void end(Long aLong, Long aLong1, JSONObject jsonObject) {
+
+    }
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/subscribe/SubscribeDetailMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.subscribe;
+
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 申购单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+public interface SubscribeDetailMapper extends BaseMapper<SubscribeDetail> {
+
+    /**
+     * 申购单分页
+     */
+    Page<SubscribeDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<SubscribeDetail> wrapper);
+
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/subscribe/SubscribeMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.subscribe;
+
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 申购单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+public interface SubscribeMapper extends BaseMapper<Subscribe> {
+
+    /**
+     * 申购单分页
+     */
+    Page<SubscribeVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Subscribe> wrapper);
+
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeDetailService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.subscribe;
+
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailSelectDto;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailDto;
+
+
+/**
+ * <p>
+ * 申购单 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+public interface SubscribeDetailService extends BaseService<SubscribeDetail> {
+
+    /**
+     * 申购单分页
+     */
+    Page<SubscribeDetailVo> getPage(SubscribeDetailSelectDto dto);
+
+    /**
+     * 申购单明细
+     */
+    SubscribeDetailVo detail(Long id);
+
+    /**
+     * 申购单新增
+     */
+    void add(SubscribeDetailDto subscribeDetailDto);
+
+    /**
+     * 申购单编辑
+     */
+    void edit(SubscribeDetailDto subscribeDetailDto);
+
+    /**
+     * 申购单删除
+     */
+    void delete(Long id);
+
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeFlowService.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.service.subscribe;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 申购单 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+public interface SubscribeFlowService  {
+
+    /**
+     * 发起流程
+     * @param subscribe
+     */
+    void start(Subscribe subscribe);
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/SubscribeService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.subscribe;
+
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
+
+
+/**
+ * <p>
+ * 申购单 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+public interface SubscribeService extends BaseService<Subscribe> {
+
+    /**
+     * 申购单分页
+     */
+    Page<SubscribeVo> getPage(SubscribeSelectDto dto);
+
+    /**
+     * 申购单明细
+     */
+    SubscribeVo detail(Long id);
+
+    /**
+     * 申购单新增
+     */
+    void add(SubscribeDto subscribeDto);
+
+    /**
+     * 申购单编辑
+     */
+    void edit(SubscribeDto subscribeDto);
+
+    /**
+     * 申购单删除
+     */
+    void delete(Long id);
+
+}

+ 57 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.purchase.service.subscribe.impl;
+
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import com.fjhx.purchase.mapper.subscribe.SubscribeDetailMapper;
+import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 申购单 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Service
+public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMapper, SubscribeDetail> implements SubscribeDetailService {
+
+    @Override
+    public Page<SubscribeDetailVo> getPage(SubscribeDetailSelectDto dto) {
+        IWrapper<SubscribeDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("sd", SubscribeDetail::getId);
+        Page<SubscribeDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public SubscribeDetailVo detail(Long id) {
+        SubscribeDetail SubscribeDetail = this.getById(id);
+        SubscribeDetailVo result = BeanUtil.toBean(SubscribeDetail, SubscribeDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(SubscribeDetailDto subscribeDetailDto) {
+        this.save(subscribeDetailDto);
+    }
+
+    @Override
+    public void edit(SubscribeDetailDto subscribeDetailDto) {
+        this.updateById(subscribeDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 38 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeFlowServiceImpl.java

@@ -0,0 +1,38 @@
+package com.fjhx.purchase.service.subscribe.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
+import com.fjhx.purchase.mapper.subscribe.SubscribeMapper;
+import com.fjhx.purchase.service.subscribe.SubscribeFlowService;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 申购单 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Service
+public class SubscribeFlowServiceImpl implements SubscribeFlowService {
+
+    /**
+     * 发起审批
+     * @param subscribe
+     */
+    @Override
+    public void start(Subscribe subscribe) {
+
+    }
+}

+ 57 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.purchase.service.subscribe.impl;
+
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.fjhx.purchase.mapper.subscribe.SubscribeMapper;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 申购单 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-03
+ */
+@Service
+public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe> implements SubscribeService {
+
+    @Override
+    public Page<SubscribeVo> getPage(SubscribeSelectDto dto) {
+        IWrapper<Subscribe> wrapper = getWrapper();
+        wrapper.orderByDesc("s", Subscribe::getId);
+        Page<SubscribeVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public SubscribeVo detail(Long id) {
+        Subscribe Subscribe = this.getById(id);
+        SubscribeVo result = BeanUtil.toBean(Subscribe, SubscribeVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(SubscribeDto subscribeDto) {
+        this.save(subscribeDto);
+    }
+
+    @Override
+    public void edit(SubscribeDto subscribeDto) {
+        this.updateById(subscribeDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 98 - 0
hx-purchase/src/main/java/com/fjhx/purchase/util/code/CodeEnum.java

@@ -0,0 +1,98 @@
+package com.fjhx.purchase.util.code;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import com.obs.services.internal.ServiceException;
+import lombok.Getter;
+
+import java.util.Date;
+import java.util.Map;
+
+@Getter
+public enum CodeEnum {
+
+    //申购
+    SUBSCRIBE("PR", "yyMM-", "code", 3, SubscribeService.class),
+    ;
+
+    CodeEnum(String prefix, String dateFormat, String codeFieldName, Integer length, Class<? extends IService<?>> serviceCls) {
+        this.prefix = prefix;
+        this.dateFormat = dateFormat;
+        this.length = length;
+        this.codeFieldName = codeFieldName;
+        this.service = SpringUtil.getBean(serviceCls);
+    }
+
+    // 编码前缀
+    private final String prefix;
+    // 编码加日期规则
+    private final String dateFormat;
+    // 长度
+    private final Integer length;
+    // 编码字段名
+    private final String codeFieldName;
+    // service
+    private final IService<?> service;
+
+    /**
+     * 获取键值对
+     */
+    public String getCode() {
+        String itemPrefix;
+
+        if (ObjectUtil.isNotEmpty(dateFormat)) {
+            Date date = new Date();
+            String format = DateUtil.format(date, dateFormat);
+            itemPrefix = prefix + format;
+        } else {
+            itemPrefix = prefix;
+        }
+
+        Object obj = service.query()
+                .likeRight(codeFieldName, itemPrefix)
+                .orderByDesc(codeFieldName)
+                .last("limit 1")
+                .one();
+
+        if (obj == null) {
+            return itemPrefix + autoGenericCode(length, 0);
+        }
+
+        Map<String, Object> map = Convert.toMap(String.class, Object.class, obj);
+
+        String code = Convert.toStr(map.get(CharSequenceUtil.toCamelCase(codeFieldName)));
+        Integer codeNum = Convert.toInt(code.substring(itemPrefix.length()));
+        if (ObjectUtil.isEmpty(codeNum)) {
+            throw new ServiceException("自定义编码与系统编码生成规则冲突,暂时无法生成编码,请联系管理员");
+        }
+
+        return itemPrefix + autoGenericCode(length, codeNum);
+    }
+
+    /**
+     * 获取键值对
+     */
+    public String getCode(String code) {
+        if (ObjectUtil.isNotEmpty(code)) {
+            Long count = service.query().eq(codeFieldName, code).count();
+            if (count != 0) {
+                throw new ServiceException("编码已存在");
+            }
+            return code;
+        } else {
+            return getCode();
+        }
+    }
+    /**
+     * 不够位数的在前面补0,保留num的长度位数字
+     */
+    private static String autoGenericCode(int length, Integer codeNum) {
+        return String.format("%0" + length + "d", codeNum + 1);
+    }
+
+}

+ 23 - 0
hx-purchase/src/main/resources/mapper/subscribe/SubscribeDetailMapper.xml

@@ -0,0 +1,23 @@
+<?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.fjhx.purchase.mapper.subscribe.SubscribeDetailMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.subscribe.vo.SubscribeDetailVo">
+        select
+            sd.id,
+            sd.code,
+            sd.bussiness_id,
+            sd.subscribe_id,
+            sd.count,
+            sd.content,
+            sd.status,
+            sd.remark,
+            sd.is_delete,
+            sd.create_user,
+            sd.create_time,
+            sd.update_user,
+            sd.update_time
+        from subscribe_detail sd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 27 - 0
hx-purchase/src/main/resources/mapper/subscribe/SubscribeMapper.xml

@@ -0,0 +1,27 @@
+<?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.fjhx.purchase.mapper.subscribe.SubscribeMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.subscribe.vo.SubscribeVo">
+        select
+            s.id,
+            s.dept_name,
+            s.subcribe_name,
+            s.subcribe_time,
+            s.code,
+            s.subcribe_content,
+            s.subcribe_status,
+            s.approved_date,
+            s.process_instance_id,
+            s.process_instance_name,
+            s.process_instance_user_id,
+            s.process_instance_user_name,
+            s.is_delete,
+            s.create_user,
+            s.create_time,
+            s.update_user,
+            s.update_time
+        from subscribe s
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

Some files were not shown because too many files changed in this diff