Commit 07a4ef90 authored by 祁正's avatar 祁正

Merge remote-tracking branch 'origin/master'

parents 534599a7 667d72ed
......@@ -4,6 +4,7 @@ import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.domain.FyglDailyReimbursement;
import com.ruoyi.domain.dto.FyglDailyReimbursementDTO;
......@@ -35,13 +36,13 @@ public class FyglDailyReimbursementController extends BaseController
* 查询日常报销列表
*/
// @PreAuthorize("@ss.hasPermi('dailyReimbursement:dailyReimbursement:list')")
@Anonymous
@GetMapping("/list")
public AjaxResult list(FyglDailyReimbursementVo fyglDailyReimbursementVO)
public TableDataInfo list(FyglDailyReimbursementVo fyglDailyReimbursementVO)
{
startPage();
List<FyglDailyReimbursementDTO> list = fyglDailyReimbursementService.selectFyglDailyReimbursementList(fyglDailyReimbursementVO);
return AjaxResult.success(list);
return getDataTable(list);
}
//获取所有项目名字和id
......@@ -90,6 +91,7 @@ public class FyglDailyReimbursementController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody FyglDailyReimbursement fyglDailyReimbursement)
{
System.out.println("新增对象 = " + fyglDailyReimbursement);
return toAjax(fyglDailyReimbursementService.insertFyglDailyReimbursement(fyglDailyReimbursement));
}
......
package com.ruoyi.controller;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.domain.dto.FyglTripApplicationDTO;
import com.ruoyi.domain.vo.FyglTripApplicationVo;
import com.ruoyi.service.IFyglTripApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/tripApplication/tripApplication")
public class FyglTripApplicationController extends BaseController {
@Autowired
private IFyglTripApplicationService fyglTripApplicationService;
/**
* 查询出差申请列表
*/
// @PreAuthorize("@ss.hasPermi('dailyReimbursement:dailyReimbursement:list')")
@GetMapping("/list")
public TableDataInfo list(FyglTripApplicationVo fyglTripApplicationVO)
{
startPage();
List<FyglTripApplicationDTO> list = fyglTripApplicationService.selectFyglTripApplicationList(fyglTripApplicationVO);
return getDataTable(list);
}
/**
* 获取出差申请详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(fyglTripApplicationService.selectFyglTripApplicationById(id));
}
}
......@@ -13,7 +13,9 @@ public class FyglDailyReimbursementDTO {
private String projectUserName;
//事业部负责人
private String departmentUserName;
//报销月份
private String reimbursement;
//审批状态
private String startDate;
private String endDate;
//未通过数量
......
......@@ -12,15 +12,19 @@ public class FyglDailyReimbursementDetailDTO {
private String projectName;
private String projectNumber;
private String projectType;
//报销月份
private String reimbursement;
//审批状态
private String status;
//提交人
private String createBy;
//提交时间
private String updateTime;
//项目负责人
//项目负责人
private String userName;
//事业部负责人
private String departName;
// 子列表
List<FyglDailyReimbursementDetailitemListDTO> childList;
......
......@@ -13,4 +13,5 @@ public class FyglDailyReimbursementDetailitemListDTO {
private Integer reimbursementType;
private Double money;
private String remark;
private String accessory;
}
......@@ -8,6 +8,8 @@ public class FyglDailyReimbursementTableItemDTO {
private String registrationTime;
//状态1未通过2审批中3已通过
private Integer status;
//报销月份
private String reimbursement;
//总打车费
private Integer totalTaxiCost;
//总餐饮费
......
package com.ruoyi.domain.dto;
import lombok.Data;
@Data
public class FyglTripApplicationDTO {
private Long id;
//项目编号
private String projectNumber;
//项目名称
private String projectName;
//项目类型
private String projectType;
//出差地点
private String tripAddress;
//出差事由
private String tripReason;
//预计开始时间
private String tripStartDate;
//预计结束时间
private String tripEndDate;
//项目经理
private String projectUserName;
//审批状态
private Integer status;
}
......@@ -16,20 +16,23 @@ public class FyglDailyReimbursementVo extends BaseEntity {
//提交时间
private String registrationTime;
//报销月份
private String reimbursement;
//审批状态
private Integer status;
//项目负责人
private String userName;
//项目负责人id
private Long userId;
//事业部负责人
private String departmentUserName;
//附件
private String accessory;
//删除标志 0未删除1已删除
private Integer delFlag;
private Integer id;
private Long id;
private Integer rid;
private String serialNumber;
private String description;
......
package com.ruoyi.domain.vo;
public class FyglTripApplicationVo {
//项目名称
private String projectName;
//项目类型
private Integer projectType;
//审批状态
//0保存,1未通过,2审批中,3已通过
private Integer status;
//项目经理
private String projectUserName;
//出差时间
private String tripStartDate;
}
......@@ -30,7 +30,7 @@ public interface FyglDailyReimbursementMapper
public List<FyglDailyReimbursementDetailitemListDTO> selectFyglDailyReimbursementItemListById(@Param("rid") Long rid);
// 查找日常报销每个项目的所有报销
public List<FyglDailyReimbursementTableItemDTO> getItemList(Long id);
public List<FyglDailyReimbursementTableItemDTO> getItemList(FyglDailyReimbursementVo fyglDailyReimbursementVO);
public int insertFyglDailyReimbursement2(FyglDailyReimbursement fyglDailyReimbursement);
int updateProjectId(FyglDailyReimbursement fyglDailyReimbursement);
......
package com.ruoyi.mapper;
import com.ruoyi.domain.dto.FyglTripApplicationDTO;
import com.ruoyi.domain.vo.FyglTripApplicationVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 出差申请Mapper接口
*
* @author ruoyi
* @date 2025-03-16
*/
@Mapper
public interface FyglTripApplicationMapper {
/**
* 查询日常报销
*
* @param id 日常报销主键
* @return 日常报销
*/
public FyglTripApplicationDTO selectFyglTripApplicationById(Long id);
/**
* 查询出差申请列表
*
* @return 出差申请集合
*/
public List<FyglTripApplicationDTO> selectTripApplicationList(FyglTripApplicationVo fyglTripApplicationVO);
}
package com.ruoyi.service;
import com.ruoyi.domain.FyglDailyReimbursement;
import com.ruoyi.domain.dto.FyglProjectDTO;
import com.ruoyi.domain.dto.FyglProjectList;
import com.ruoyi.domain.dto.FyglTripApplicationDTO;
import com.ruoyi.domain.vo.FyglTripApplicationVo;
import java.util.List;
public interface IFyglTripApplicationService {
/**
* 查询出差申请
*
* @param id 出差申请主键
* @return 出差申请
*/
public FyglTripApplicationDTO selectFyglTripApplicationById(Long id);
/**
* 查询出差申请列表
*
* @return 出差申请集合
*/
public List<FyglTripApplicationDTO> selectFyglTripApplicationList(FyglTripApplicationVo fyglTripApplicationVO);
FyglProjectDTO getProjectDetail(Long pid);
/**
* 新增出差申请
*
* @param fyglDailyReimbursement 出差申请
* @return 结果
*/
public int insertFyglTripApplication(FyglDailyReimbursement fyglDailyReimbursement);
List<FyglProjectList> getProjectList();
/**
* 修改日常报销
*
* @param fyglDailyReimbursement 日常报销
* @return 结果
*/
public int updateFyglTripApplication(FyglDailyReimbursement fyglDailyReimbursement);
/**
* 批量删除日常报销
*
* @param ids 需要删除的日常报销主键集合
* @return 结果
*/
public int deleteFyglTripApplicationByIds(Long[] ids);
/**
* 删除日常报销信息
*
* @param id 日常报销主键
* @return 结果
*/
public int deleteFyglTripApplicationById(Long id);
}
......@@ -66,9 +66,15 @@ public class FyglDailyReimbursementServiceImpl implements IFyglDailyReimbursemen
fvo.setUserId(sysUser.getUserId());
}else fvo.setUserId(-9999999L);
}
System.out.println("fvo = " + fvo);
List<FyglDailyReimbursementDTO> fyglDailyReimbursements = fyglDailyReimbursementMapper.selectFyglDailyReimbursementList(fvo);
System.out.println("fvo结果 = " + fyglDailyReimbursements);
for(FyglDailyReimbursementDTO item:fyglDailyReimbursements){
List<FyglDailyReimbursementTableItemDTO> itemList = fyglDailyReimbursementMapper.getItemList(item.getId());
FyglDailyReimbursementVo f1 = new FyglDailyReimbursementVo();
f1.setId(item.getId());
f1.setStatus(fvo.getStatus());
f1.setReimbursement(fvo.getReimbursement());
List<FyglDailyReimbursementTableItemDTO> itemList = fyglDailyReimbursementMapper.getItemList(f1);
item.setTableItemList(itemList);
}
return fyglDailyReimbursements;
......
package com.ruoyi.service.impl;
import com.ruoyi.domain.FyglDailyReimbursement;
import com.ruoyi.domain.dto.*;
import com.ruoyi.domain.vo.FyglTripApplicationVo;
import com.ruoyi.mapper.FyglTripApplicationMapper;
import com.ruoyi.service.IFyglTripApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 出差申请Service业务层处理
*
* @author ruoyi
* @date 2025-03-16
*/
@Service
public class FyglTripApplicationServiceImpl implements IFyglTripApplicationService {
@Autowired
private FyglTripApplicationMapper fyglTripApplicationMapper;
/**
* 查询日常报销
*
* @param id 日常报销主键
* @return 日常报销
*/
@Override
public FyglTripApplicationDTO selectFyglTripApplicationById(Long id)
{
FyglTripApplicationDTO fyglTripApplication = fyglTripApplicationMapper.selectFyglTripApplicationById(id);
return fyglTripApplication;
}
@Override
public List<FyglTripApplicationDTO> selectFyglTripApplicationList(FyglTripApplicationVo favo){
List<FyglTripApplicationDTO> fyglTripApplications = fyglTripApplicationMapper.selectTripApplicationList(favo);
return fyglTripApplications;
}
@Override
public FyglProjectDTO getProjectDetail(Long pid) {
return null;
}
@Override
public int insertFyglTripApplication(FyglDailyReimbursement fyglDailyReimbursement) {
return 0;
}
@Override
public List<FyglProjectList> getProjectList() {
return null;
}
@Override
public int updateFyglTripApplication(FyglDailyReimbursement fyglDailyReimbursement) {
return 0;
}
@Override
public int deleteFyglTripApplicationByIds(Long[] ids) {
return 0;
}
@Override
public int deleteFyglTripApplicationById(Long id) {
return 0;
}
}
......@@ -39,6 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="userName" column="user_name" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
<result property="departName" column="depart_name" />
</resultMap>
<resultMap type="com.ruoyi.domain.dto.FyglDailyReimbursementDetailitemListDTO" id="FyglDailyReimbursementDetailItemResult">
......@@ -60,8 +61,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
p.project_name,
p.start_date,
p.end_date,
u1.user_name AS department_leader_name,
u2.user_name AS project_manager_name,
u1.nick_name AS department_leader_name,
u2.nick_name AS project_manager_name,
SUM(CASE WHEN fdr.status = 1 THEN fdrr.money ELSE 0 END) AS not_pass_number,
SUM(CASE WHEN fdr.status = 3 THEN fdrr.money ELSE 0 END) AS pass_number,
SUM(fdrr.money) AS total_money
......@@ -72,16 +73,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN project_manage p ON p.id = fd.project_id
LEFT JOIN sys_user u1 ON u1.user_id = p.department_leader_id
LEFT JOIN sys_user u2 ON u2.user_id = p.project_manager_id
GROUP BY fd.id
<where>
<if test="userName != null and userName != ''"> p.project_manager_id in (SELECT u5.user_id FROM sys_user u5
WHERE u5.nick_name LIKE CONCAT('%', #{userName}, '%'))</if>
<if test="departmentUserName != null and departmentUserName != ''"> and p.department_leader_id in (SELECT u6.user_id FROM sys_user u6
WHERE u6.nick_name LIKE CONCAT('%', #{departmentUserName}, '%'))</if>
<if test="reimbursementType != null and reimbursementType != ''"> and fdrr.reimbursement_type = #{reimbursementType}</if>
<if test="registrationTime != null and registrationTime != ''"> and fdr.registration_time = #{registrationTime}</if>
<if test="status != null and status != ''"> and fdr.status = #{status}</if>
<if test="userId != null and userId != ''"> and u2.user_id = #{userId}</if>
<if test="reimbursement != null and reimbursement != ''">and fdr.reimbursement = #{reimbursement}</if>
<if test="projectName != null and projectName != ''"> and p.project_name LIKE CONCAT('%', #{projectName}, '%')</if>
</where>
GROUP BY fd.id
</select>
<select id="selectFyglDailyReimbursementById" parameterType="Long" resultMap="FyglDailyReimbursementDetailDTOResult">
......@@ -94,7 +98,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
p.project_name,
p.project_number,
p.project_type,
(SELECT u.user_name FROM sys_user u WHERE u.user_id = p.project_manager_id) AS user_name
(SELECT u.user_name FROM sys_user u WHERE u.user_id = p.project_manager_id) AS user_name,
(SELECT u.user_name FROM sys_user u WHERE u.user_id = p.department_leader_id) AS depart_name
FROM
fygl_daily_rembursement_relevancy_r r1,
fygl_daily_reimbursement r2,
......@@ -110,14 +115,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
r.id,
r.registration_time as registrationTime,
r.`status`,
r.reimbursement,
SUM(CASE WHEN re.reimbursement_type IN (1) THEN re.money ELSE 0 END) AS totalTaxiCost,
SUM(CASE WHEN re.reimbursement_type IN (3) THEN re.money ELSE 0 END) AS totalFoodCost,
SUM(re.money) AS totalMoney
FROM
fygl_daily_rembursement_relevancy_r r
LEFT JOIN fygl_daily_reimbursement_relevancy re ON re.rid = r.id
WHERE
<where>
r.did = #{id}
<if test="status != null and status != ''"> and r.status = #{status}</if>
<if test="reimbursement != null and reimbursement != ''">and r.reimbursement = #{reimbursement}</if>
</where>
GROUP BY
r.id,
r.registration_time,
......@@ -131,9 +141,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
r.time_of_expense,
r.reimbursement_type,
r.money,
r.remark
r.remark,
re.accessory
FROM
fygl_daily_reimbursement_relevancy r
LEFT JOIN fygl_daily_rembursement_relevancy_r re ON re.id = r.rid
WHERE
r.rid = #{rid}
</select>
......
<?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.ruoyi.mapper.FyglTripApplicationMapper">
<resultMap type="com.ruoyi.domain.dto.FyglTripApplicationDTO" id="FyglTripApplicationDTOResult">
<result property="id" column="id" />
<result property="projectName" column="project_name" />
<result property="projectUserName" column="project_manager_name" />
<result property="projectType" column="project_type"/>
<result property="tripAddress" column="travel_address" />
<result property="tripReason" column="travel_cause"/>
<result property="tripStartDate" column="travel_start_date" />
<result property="tripEndDate" column="travel_end_date" />
<result property="projectNumber" column="project_number" />
<result property="status" column="status"/>
</resultMap>
<select id="selectTripApplicationList" parameterType="com.ruoyi.domain.vo.FyglTripApplicationVo" resultMap="FyglTripApplicationDTOResult">
SELECT
ftr.id,
p.project_number,
p.project_name,
p.project_type,
ftr.travel_address,
ftr.travel_cause,
ftr.travel_start_date,
ftr.travel_end_date,
u1.nick_name AS project_manager_name,
ftr.status
FROM
fygl_travel_request ftr
LEFT JOIN project_manage p ON p.id = ftr.project_id
LEFT JOIN sys_user u1 ON u1.user_id = p.project_manager_id
<where>
<if test="projectUserName != null and projectUserName != ''"> p.project_manager_id in (SELECT u5.user_id FROM sys_user u5
WHERE u5.nick_name LIKE CONCAT('%', #{projectUserName}, '%'))</if>
<if test="projectType != null and projectType != ''"> and p.project_type = #{projectType}</if>
<if test="tripStartDate != null and tripStartDate != ''"> and ftr.travel_start_date = #{tripStartDate}</if>
<if test="status != null and status != ''"> and ftr.status = #{status}</if>
<!-- <if test="reimbursement != null and reimbursement != ''">and fdr.reimbursement = #{reimbursement}</if>-->
<if test="projectName != null and projectName != ''"> and p.project_name LIKE CONCAT('%', #{projectName}, '%')</if>
</where>
GROUP BY ftr.id
</select>
<select id="selectFyglTripApplicationById" parameterType="Long" resultMap="FyglTripApplicationDTOResult">
SELECT
ftr.id,
p.project_number,
p.project_name,
p.project_type,
ftr.travel_address,
ftr.travel_cause,
ftr.travel_start_date,
ftr.travel_end_date,
u1.nick_name AS project_manager_name,
ftr.status
FROM
fygl_travel_request ftr
LEFT JOIN project_manage p ON p.id = ftr.project_id
LEFT JOIN sys_user u1 ON u1.user_id = p.project_manager_id
WHERE
ftr.id = #{id}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment