From 694128f7b11bd27c2c7dd3869c3ae50926cb9b6b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 21 二月 2025 14:37:05 +0800
Subject: [PATCH] 小程序管理员接口

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java     |   55 +++++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ExamineVO.java                    |   31 +++++++
 ruoyi-system/src/main/java/com/ruoyi/system/query/TExamineAppletQuery.java       |    8 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java          |    5 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java  |   27 +++---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java |   17 ++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java            |    4 +
 ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml                  |   42 ++++++++++
 8 files changed, 171 insertions(+), 18 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
index 0de8a23..c35b38a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -200,20 +200,22 @@
             tContractRentType.setCycleTime(dto.getCycleTime());
             contractRentTypeService.save(tContractRentType);
 
-            //发起合同新增审批
-            ProcessStartBO processStartBO = new ProcessStartBO();
-            processStartBO.setCategory(ProcessCategoryEnum.CATEGORY1.getValue().toString());
-            processStartBO.setModuleName("合同新增审批");
-            processStartBO.setName(dto.getContractName());
-            //需要显示发起申请人所在单位
+            if (dto.getStatus().equals("2")){
+                //发起合同新增审批
+                ProcessStartBO processStartBO = new ProcessStartBO();
+                processStartBO.setCategory(ProcessCategoryEnum.CATEGORY1.getValue().toString());
+                processStartBO.setModuleName("合同新增审批");
+                processStartBO.setName(dto.getContractName());
+                //需要显示发起申请人所在单位
 //            String cedName = SecurityUtils.getLoginUser().getUser().getDept().getDeptName();
 //            String remark = String.format("【镇/街】:%s,【征收实施单位】:%s,【申请金额】:%s万元", stateProject.getStreet(), cedName, stateApplyRecord.getAmount());
-            processStartBO.setRemark("");
-            Map<String, Object> variable = new HashMap<>();
-            variable.put("projectId", dto.getId());
-            processStartBO.setVariable(variable);
-            //开启工作流程
-            stateProcessTemplateService.start(processStartBO);
+                processStartBO.setRemark("");
+                Map<String, Object> variable = new HashMap<>();
+                variable.put("projectId", dto.getId());
+                processStartBO.setVariable(variable);
+                //开启工作流程
+                stateProcessTemplateService.start(processStartBO);
+            }
         }
         return R.ok();
     }
@@ -252,7 +254,6 @@
     @ApiOperation(value = "查询合同信息信息")
     @GetMapping(value = "/getContractById")
     @PreAuthorize("@ss.hasPermi('system:contract:detail')")
-
     public R<TContractVO> getContractById(@RequestParam String id) {
         TContractVO res = new TContractVO();
         TContract contract = contractService.getById(id);
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java
index 23e8f91..699d80c 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/IndexController.java
@@ -7,6 +7,8 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.constant.DictConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.domain.model.LoginUserApplet;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.DateUtils;
@@ -28,10 +30,13 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -63,6 +68,10 @@
     private TCheckAcceptRecordService checkAcceptRecordService;
     @Autowired
     private TTenantService tenantService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private TContractRentTypeService contractRentTypeService;
     /**
      * 获取轮播图管理列表
      */
@@ -337,9 +346,51 @@
     }
     @ApiOperation(value = "管理员-我的审批分页列表")
     @PostMapping("/listExamine")
-    public R examineList(@RequestBody TExamineAppletQuery dto){
+    public R<PageInfo<ExamineVO>> examineList(@RequestBody TExamineAppletQuery dto){
+        LoginUser loginUser = tokenService.getLoginUser();
+        if (loginUser==null){
+            return R.fail(401,"登录失效");
+        }
+        SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId());
+        dto.setUserName(sysUser.getUserName());
+        PageInfo<ExamineVO> pageInfo = tenantService.examineList(dto);
+        return R.ok(pageInfo);
+    }
+    @ApiOperation(value = "管理员-审批详情")
+    @GetMapping("/examineDetail")
+    public R<TContractVO> examineDetail(@RequestParam String id){
+        TContractVO res = new TContractVO();
+        TContract contract = contractService.getById(id);
+        BeanUtils.copyProperties(contract,res);
+        res.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,res.getPayType()));
+        res.setStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_STATUS,res.getStatus()));
+        TContractRentType contractRentType = contractRentTypeService.lambdaQuery().eq(TContractRentType::getContractId, id).one();
+        if (contractRentType!=null){
+            BeanUtils.copyProperties(contractRentType,res);
+        }
+        TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>()
+                .eq(TContract::getHouseId,contract.getHouseId())
+                .eq(TContract::getStatus, 4)
+                .le(TContract::getStartTime, LocalDateTime.now())
+                .ge(TContract::getEndTime, LocalDateTime.now()));
+        THouse house = houseService.getById(contract.getHouseId());
+        if (oldContract!=null){
+            house.setTenantType(oldContract.getPayType());
+        }
+        res.setHouse(house);
+        List<TBill> list = billService.lambdaQuery()
+                .eq(TBill::getContractId, id)
+                .in(TBill::getPayFeesStatus, Arrays.asList("1,4"))
+                .list();
+        BigDecimal payMoney = new BigDecimal("0");
+        for (TBill tBill : list) {
+            payMoney = payMoney.add(tBill.getPayFeesMoney()).add(tBill.getPayableFeesPenalty());
+        }
+        TCheckAcceptRecord tCheckAcceptRecord = checkAcceptRecordService.lambdaQuery().eq(TCheckAcceptRecord::getContractId, id).one();
+        res.setCheckResult(Objects.nonNull(tCheckAcceptRecord)?tCheckAcceptRecord.getCheckResult():false);
+        res.setPayMoney(payMoney);
 
-        return R.ok();
+        return R.ok(res);
     }
     @ApiOperation(value = "管理员-我的审批-撤销")
     @GetMapping("/cancel")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java
index 969a401..e0812d5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java
@@ -4,8 +4,10 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.TTenant;
 import com.ruoyi.system.query.TBillAppletQuery;
+import com.ruoyi.system.query.TExamineAppletQuery;
 import com.ruoyi.system.query.TTenantAppletQuery;
 import com.ruoyi.system.query.TTenantQuery;
+import com.ruoyi.system.vo.ExamineVO;
 import com.ruoyi.system.vo.TBillVO;
 import com.ruoyi.system.vo.TenantVO;
 import org.apache.ibatis.annotations.Param;
@@ -34,4 +36,6 @@
 
     List<TBillVO> listBill(@Param("query") TBillAppletQuery query,@Param("pageInfo") PageInfo<TBillVO> pageInfo);
 
+    List<ExamineVO> examineList(@Param("query")TExamineAppletQuery dto, @Param("pageInfo")PageInfo<ExamineVO> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExamineAppletQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExamineAppletQuery.java
index 5a4cc0e..e2d4612 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExamineAppletQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExamineAppletQuery.java
@@ -12,9 +12,9 @@
 @ApiModel(value = "我的审批查询query")
 public class TExamineAppletQuery extends BasePage {
     /**
-     * 状态全部不传 1待审批 2已审批 3我发起的
+     * 1待审批 2已审批 3我发起的
      */
-    @ApiModelProperty("状态全部不传 1待审批 2已审批 3我发起的")
+    @ApiModelProperty("1待审批 2已审批 3我发起的")
     private Integer status;
     /**
      * 时间 1最近1天 2最近7天 3最近30天
@@ -24,8 +24,10 @@
     /**
      * 1倒序 2正序 首次默认倒序排
      */
-    @ApiModelProperty("1倒序 2正序 首次默认倒序排")
+    @ApiModelProperty("最新到达1倒序  最早到达2正序 首次默认倒序排")
     private Integer sort;
+    @ApiModelProperty("登陆人名称 前端忽略")
+    private String userName;
 
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java
index ae73b87..989de6c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java
@@ -6,10 +6,12 @@
 import com.ruoyi.system.model.TContract;
 import com.ruoyi.system.model.THouse;
 import com.ruoyi.system.query.TBillAppletQuery;
+import com.ruoyi.system.query.TExamineAppletQuery;
 import com.ruoyi.system.query.TTenantAppletQuery;
 import com.ruoyi.system.utils.wx.pojo.AppletUserDecodeData;
 import com.ruoyi.system.model.TTenant;
 import com.ruoyi.system.query.TTenantQuery;
+import com.ruoyi.system.vo.ExamineVO;
 import com.ruoyi.system.vo.TBillVO;
 import com.ruoyi.system.vo.TenantVO;
 
@@ -40,4 +42,7 @@
     List<TContract> listContract(String id);
 
     PageInfo<TBillVO> listBill(TBillAppletQuery query);
+
+    PageInfo<ExamineVO> examineList(TExamineAppletQuery dto);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java
index aabf126..51fa743 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.constant.DictConstants;
 import com.ruoyi.common.utils.DictUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.mapper.TContractMapper;
 import com.ruoyi.system.mapper.THouseMapper;
 import com.ruoyi.system.mapper.TTenantMapper;
@@ -13,16 +14,20 @@
 import com.ruoyi.system.model.THouse;
 import com.ruoyi.system.model.TTenant;
 import com.ruoyi.system.query.TBillAppletQuery;
+import com.ruoyi.system.query.TExamineAppletQuery;
 import com.ruoyi.system.query.TTenantAppletQuery;
 import com.ruoyi.system.query.TTenantQuery;
 import com.ruoyi.system.service.TTenantService;
 import com.ruoyi.system.utils.wx.pojo.AppletUserDecodeData;
+import com.ruoyi.system.vo.ExamineVO;
 import com.ruoyi.system.vo.TBillVO;
 import com.ruoyi.system.vo.TenantVO;
 import com.sun.corba.se.spi.ior.IdentifiableFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.token.TokenService;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -42,6 +47,10 @@
     private THouseMapper houseMapper;
     @Autowired
     private TContractMapper contractMapper;
+    @Autowired
+    private SysUserMapper sysUserMapper;
+    @Autowired
+    private TokenService tokenService;
     @Override
     public PageInfo<TenantVO> pageList(TTenantQuery query) {
         PageInfo<TenantVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
@@ -98,4 +107,12 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
+    @Override
+    public PageInfo<ExamineVO> examineList(TExamineAppletQuery dto) {
+        PageInfo<ExamineVO> pageInfo = new PageInfo<>(dto.getPageNum(), dto.getPageSize());
+        List<ExamineVO> list = this.baseMapper.examineList(dto,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ExamineVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ExamineVO.java
new file mode 100644
index 0000000..63d54e3
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ExamineVO.java
@@ -0,0 +1,31 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.model.TBill;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel(value = "我的审批分页列表VO")
+public class ExamineVO{
+    @ApiModelProperty(value = "合同id")
+    private String id;
+    @ApiModelProperty(value = "合同编号")
+    private String contractNumber;
+    @ApiModelProperty(value = "合同名称")
+    private String contractName;
+    @ApiModelProperty(value = "租户信息")
+    private String partyTwoName;
+    @ApiModelProperty(value = "提交人")
+    private String createBy;
+    @ApiModelProperty(value = "提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+    @ApiModelProperty(value = "合同状态")
+    private String status;
+
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml
index 832d505..112f54f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml
@@ -70,5 +70,47 @@
         </if>
         AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
     </select>
+    <select id="examineList" resultType="com.ruoyi.system.vo.ExamineVO">
+        select t1.* from t_contract t1
+        <where>
+            <if test="query.status == 1">
+                AND t1.status = 2
+            </if>
+            <if test="query.status == 2">
+                AND (t1.status !=1 and t1.status !=2)
+            </if>
+            <if test="query.status == 3">
+                AND t1.create_by = #{query.userName}
+            </if>
+            <if test="query.time != null and query.time != ''">
+                <choose>
+                    <when test="query.time == 1">
+                        AND t1.create_time &gt;= DATE_SUB(NOW(), INTERVAL 1 DAY)
+                    </when>
+                    <when test="query.time == 2">
+                        AND t1.create_time &gt;= DATE_SUB(NOW(), INTERVAL 7 DAY)
+                    </when>
+                    <when test="query.time == 3">
+                        AND t1.create_time &gt;= DATE_SUB(NOW(), INTERVAL 30 DAY)
+                    </when>
+                </choose>
+            </if>
+        </where>
+        <choose>
+            <when test="query.sort != null and query.sort != ''">
+                <choose>
+                    <when test="query.sort == 1">
+                        ORDER BY t1.create_time DESC
+                    </when>
+                    <when test="query.sort == 2">
+                        ORDER BY t1.create_time ASC
+                    </when>
+                </choose>
+            </when>
+            <otherwise>
+                ORDER BY t1.create_time DESC
+            </otherwise>
+        </choose>
+    </select>
 
 </mapper>

--
Gitblit v1.7.1