新增需求

This commit is contained in:
马三炮 2026-01-30 13:32:38 +08:00
parent 4b482dad87
commit 5d53969cd3
10 changed files with 77 additions and 18 deletions

View File

@ -114,7 +114,7 @@ public class MonthPlanExcelExporter {
// 固定列空值兜底 // 固定列空值兜底
newRow.put("运检站", item.getInspectionStationName() == null ? "" : item.getInspectionStationName()); newRow.put("运检站", item.getInspectionStationName() == null ? "" : item.getInspectionStationName());
newRow.put("姓名", item.getName() == null ? "" : item.getName()); newRow.put("姓名", item.getName() == null ? "" : item.getName());
newRow.put("性别", item.getSex() == null ? "" : item.getSex()); newRow.put("性别", Objects.equals(item.getSex(), "1") ? "" : "");
newRow.put("岗位", item.getPositionName() == null ? "" : item.getPositionName()); newRow.put("岗位", item.getPositionName() == null ? "" : item.getPositionName());
newRow.put("人员性质", item.getPersonnelNatureName() == null ? "" : item.getPersonnelNatureName()); newRow.put("人员性质", item.getPersonnelNatureName() == null ? "" : item.getPersonnelNatureName());
newRow.put("分类", item.getPersonnelClassificationName() == null ? "" : item.getPersonnelClassificationName()); newRow.put("分类", item.getPersonnelClassificationName() == null ? "" : item.getPersonnelClassificationName());

View File

@ -203,6 +203,15 @@ public class DayPlanVo {
* 结束日期 * 结束日期
*/ */
private String endDate; private String endDate;
/**
* 实际投入高空分包
*/
private String actualHighSub;
/**
* 实际投入地面分包
*/
private String actualGroundSub;
// 拟投入高处作业人员data_source=2 // 拟投入高处作业人员data_source=2
private String proposedHighPersonnelNames; // 姓名拼接 private String proposedHighPersonnelNames; // 姓名拼接

View File

@ -1,37 +1,43 @@
package com.bonus.digital.dao; package com.bonus.digital.dao;
import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
/** /**
* 拟投入人员值对象(VO)
* 用于封装拟投入人员相关的数据信息
*
* @author 马三炮 * @author 马三炮
* @date 2025/12/26 * @date 2025/12/26
*/ */
@Data @Data // Lombok注解自动生成gettersetter等方法
public class ProposedPersonnelVo { public class ProposedPersonnelVo {
/** /**
* 拟投入人员id * 拟投入人员id
* 唯一标识一条拟投入人员记录
*/ */
private Integer proposedPersonnelId; private Integer proposedPersonnelId;
/** /**
* 日计划id * 日计划id
* 关联到具体的日计划
*/ */
private Integer dayPlanId; private Integer dayPlanId;
/** /**
* 人员所属 * 人员所属
* 表示人员所属的检查站点名称
*/ */
private String inspectionStationName; private String inspectionStationName;
/** /**
* 人员id * 人员id
* 系统中人员的唯一标识
*/ */
private Integer personnelId; private Integer personnelId;
/** /**
* 姓名 * 姓名
* 人员的实际姓名
*/ */
private String name; private String name;
@ -41,4 +47,15 @@ public class ProposedPersonnelVo {
* *
*/ */
private String dataSource; private String dataSource;
/**
* 人员分类id
*/
private int personnelClassificationId;
/**
* 人员分类名称
*/
private String personnelClassificationName;
} }

View File

@ -48,4 +48,14 @@ public class WorkloadVo {
* 结算单价 * 结算单价
*/ */
private int settlementUnitPrice; private int settlementUnitPrice;
/**
* 完成率
*/
private String completionRate;
/**
* 实际工作量
*/
private String actualWorkloadNum;
} }

View File

@ -64,7 +64,7 @@ public interface MonthlyPlanMapper {
/** /**
* 删除工作量信息 * 删除工作量信息
*/ */
void delWorkload(MonthlyPlanVo monthlyPlanVo); void delWorkload(WorkloadVo workloadVo);
/** /**
* 修改月计划 * 修改月计划

View File

@ -58,13 +58,13 @@ public class DayPlanServiceImpl implements DayPlanService {
dayPlanMapper.delProposedPersonnel(dayPlanVo); dayPlanMapper.delProposedPersonnel(dayPlanVo);
dayPlanMapper.addProposedPersonnelList(proposedPersonnelList); dayPlanMapper.addProposedPersonnelList(proposedPersonnelList);
} }
WorkloadVo workloadVo = new WorkloadVo();
workloadVo.setPlanId(dayPlanVo.getDayPlanId());
workloadVo.setDataSource("1");
monthlyPlanMapper.delWorkload(workloadVo);
//保存工作量信息 //保存工作量信息
List<WorkloadVo> workloadVoList = dayPlanVo.getWorkloadList(); List<WorkloadVo> workloadVoList = dayPlanVo.getWorkloadList();
if (workloadVoList != null && !workloadVoList.isEmpty()) { if (workloadVoList != null && !workloadVoList.isEmpty()) {
MonthlyPlanVo monthlyPlanVo = new MonthlyPlanVo();
monthlyPlanVo.setMonthlyPlanId(dayPlanVo.getMonthlyPlanId());
monthlyPlanMapper.delWorkload(monthlyPlanVo);
for (WorkloadVo w : workloadVoList) { for (WorkloadVo w : workloadVoList) {
w.setPlanId(dayPlanVo.getDayPlanId()); w.setPlanId(dayPlanVo.getDayPlanId());
w.setDataSource("1"); w.setDataSource("1");
@ -140,10 +140,16 @@ public class DayPlanServiceImpl implements DayPlanService {
if (res != null ) { if (res != null ) {
List<ProposedPersonnelVo> proposedPersonnelList =dayPlanMapper.getProposedPersonnelList(res); List<ProposedPersonnelVo> proposedPersonnelList =dayPlanMapper.getProposedPersonnelList(res);
res.setProposedPersonnelList(proposedPersonnelList); res.setProposedPersonnelList(proposedPersonnelList);
//先看日计划是否编辑没有编辑获取月计划的工作量编辑了就获取日计划的工作量
WorkloadVo workloadVo = new WorkloadVo(); WorkloadVo workloadVo = new WorkloadVo();
workloadVo.setPlanId(res.getDayPlanId()); workloadVo.setPlanId(res.getDayPlanId());
workloadVo.setDataSource("1"); workloadVo.setDataSource("1");
List<WorkloadVo> workloadVoList = workloadCategoryMapper.getWorkloadList(workloadVo); List<WorkloadVo> workloadVoList = workloadCategoryMapper.getWorkloadList(workloadVo);
if (workloadVoList == null || workloadVoList.isEmpty()) {
workloadVo.setPlanId(res.getMonthlyPlanId());
workloadVo.setDataSource("0");
workloadVoList = workloadCategoryMapper.getWorkloadList(workloadVo);
}
res.setWorkloadList(workloadVoList); res.setWorkloadList(workloadVoList);
} }
return res; return res;

View File

@ -104,7 +104,10 @@ public class MonthlyPlanServiceImpl implements MonthlyPlanService {
return 2; return 2;
} }
monthlyPlanMapper.delPersonnelArrangement(monthlyPlanVo); monthlyPlanMapper.delPersonnelArrangement(monthlyPlanVo);
monthlyPlanMapper.delWorkload(monthlyPlanVo); WorkloadVo workloadVo = new WorkloadVo();
workloadVo.setPlanId(monthlyPlanVo.getMonthlyPlanId());
workloadVo.setDataSource("0");
monthlyPlanMapper.delWorkload(workloadVo);
return monthlyPlanMapper.delMonthlyPlanList(monthlyPlanVo); return monthlyPlanMapper.delMonthlyPlanList(monthlyPlanVo);
} }
@ -119,7 +122,10 @@ public class MonthlyPlanServiceImpl implements MonthlyPlanService {
monthlyPlanVo.setUpdateTime(new Date()); monthlyPlanVo.setUpdateTime(new Date());
int res = monthlyPlanMapper.updateMonthlyPlan(monthlyPlanVo); int res = monthlyPlanMapper.updateMonthlyPlan(monthlyPlanVo);
monthlyPlanMapper.delPersonnelArrangement(monthlyPlanVo); monthlyPlanMapper.delPersonnelArrangement(monthlyPlanVo);
monthlyPlanMapper.delWorkload(monthlyPlanVo); WorkloadVo workloadVo = new WorkloadVo();
workloadVo.setPlanId(monthlyPlanVo.getMonthlyPlanId());
workloadVo.setDataSource("0");
monthlyPlanMapper.delWorkload(workloadVo);
//保存人员安排信息 //保存人员安排信息
List<PersonnelArrangementVo> personnelArrangementList = monthlyPlanVo.getPersonnelArrangementList(); List<PersonnelArrangementVo> personnelArrangementList = monthlyPlanVo.getPersonnelArrangementList();
for (PersonnelArrangementVo p : personnelArrangementList) { for (PersonnelArrangementVo p : personnelArrangementList) {

View File

@ -115,6 +115,8 @@
<if test="updateUser != null and updateUser != ''">update_user = #{updateUser},</if> <if test="updateUser != null and updateUser != ''">update_user = #{updateUser},</if>
<if test="status != null and status != ''">status = #{status},</if> <if test="status != null and status != ''">status = #{status},</if>
<if test="riskLevel != null and riskLevel != ''">risk_level = #{riskLevel},</if> <if test="riskLevel != null and riskLevel != ''">risk_level = #{riskLevel},</if>
<if test="actualHighSub != null and actualHighSub != ''">actual_high_sub = #{actualHighSub},</if>
<if test="actualGroundSub != null and actualGroundSub != ''">actual_ground_sub = #{actualGroundSub},</if>
</trim> </trim>
WHERE day_plan_id = #{dayPlanId} WHERE day_plan_id = #{dayPlanId}
</update> </update>
@ -157,6 +159,8 @@
tdp.status AS status, tdp.status AS status,
tdp.day_plan_type AS dayPlanType, tdp.day_plan_type AS dayPlanType,
tdp.risk_level AS riskLevel, tdp.risk_level AS riskLevel,
tdp.actual_high_sub AS actualHighSub,
tdp.actual_ground_sub AS actualGroundSub,
tmp.inspection_station_name AS inspectionStationName, tmp.inspection_station_name AS inspectionStationName,
tpm.plan_major_name AS planMajorName, tpm.plan_major_name AS planMajorName,
tmp.project_name AS projectName, tmp.project_name AS projectName,
@ -216,8 +220,12 @@
ORDER BY tmp.inspection_station_name ASC; ORDER BY tmp.inspection_station_name ASC;
</select> </select>
<select id="getProposedPersonnelList" resultType="com.bonus.digital.dao.ProposedPersonnelVo"> <select id="getProposedPersonnelList" resultType="com.bonus.digital.dao.ProposedPersonnelVo">
select day_plan_id,inspection_station_name,personnel_id,name,data_source select tpp.day_plan_id,tpp.inspection_station_name,tpp.personnel_id,tpp.name,tpp.data_source,
from tb_proposed_personnel where day_plan_id = #{dayPlanId} tpc.personnel_classification_id, tpc.personnel_classification_name
from tb_proposed_personnel tpp
left join tb_personnel tp on tpp.personnel_id = tp.id
left join tb_personnel_classification tpc on tp.personnel_nature_id = tpc.personnel_classification_id
where tpp.day_plan_id = #{dayPlanId}
</select> </select>
<select id="getDayPlanById" resultType="com.bonus.digital.dao.DayPlanVo"> <select id="getDayPlanById" resultType="com.bonus.digital.dao.DayPlanVo">
SELECT SELECT
@ -250,6 +258,8 @@
tdp.status AS status, tdp.status AS status,
tdp.day_plan_type AS dayPlanType, tdp.day_plan_type AS dayPlanType,
tdp.risk_level AS riskLevel, tdp.risk_level AS riskLevel,
tdp.actual_high_sub AS actualHighSub,
tdp.actual_ground_sub AS actualGroundSub,
tmp.inspection_station_name AS inspectionStationName, tmp.inspection_station_name AS inspectionStationName,
tpm.plan_major_name AS planMajorName, tpm.plan_major_name AS planMajorName,
tmp.project_name AS projectName, tmp.project_name AS projectName,

View File

@ -17,9 +17,9 @@
insert into tb_personnel_arrangement (monthly_plan_id,day,personnel_names) insert into tb_personnel_arrangement (monthly_plan_id,day,personnel_names)
values (#{monthlyPlanId},#{day},#{personnelNames}) values (#{monthlyPlanId},#{day},#{personnelNames})
</insert> </insert>
<insert id="addWorkload"> <insert id="addWorkload">
insert into tb_workload (plan_id,workload_category_id,workload_category_name,unit_price,workload_num,data_source,settlement_unit_price) insert into tb_workload (plan_id,workload_category_id,workload_category_name,unit_price,workload_num,data_source,settlement_unit_price,completion_rate,actual_workload_num)
values (#{planId},#{workloadCategoryId},#{workloadCategoryName},#{unitPrice},#{workloadNum},#{dataSource},#{settlementUnitPrice}) values (#{planId},#{workloadCategoryId},#{workloadCategoryName},#{unitPrice},#{workloadNum},#{dataSource},#{settlementUnitPrice},#{completionRate},#{actualWorkloadNum})
</insert> </insert>
<update id="updateMonthlyPlan"> <update id="updateMonthlyPlan">
update tb_monthly_plan update tb_monthly_plan
@ -100,7 +100,7 @@
delete from tb_personnel_arrangement where monthly_plan_id = #{monthlyPlanId} delete from tb_personnel_arrangement where monthly_plan_id = #{monthlyPlanId}
</delete> </delete>
<delete id="delWorkload"> <delete id="delWorkload">
delete from tb_workload where plan_id= #{monthlyPlanId} delete from tb_workload where plan_id= #{planId} and data_source=#{dataSource}
</delete> </delete>
<select id="getPlanMajorList" resultType="com.bonus.digital.dao.MonthlyPlanVo"> <select id="getPlanMajorList" resultType="com.bonus.digital.dao.MonthlyPlanVo">

View File

@ -43,7 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if> </if>
</select> </select>
<select id="getWorkloadList" resultType="com.bonus.digital.dao.WorkloadVo"> <select id="getWorkloadList" resultType="com.bonus.digital.dao.WorkloadVo">
select workload_id,plan_id,workload_category_id,workload_category_name,unit_price,workload_num,data_source,settlement_unit_price select workload_id,plan_id,workload_category_id,workload_category_name,unit_price,
workload_num,data_source,settlement_unit_price,completion_rate,actual_workload_num
from tb_workload where plan_id = #{planId} and data_source = #{dataSource} from tb_workload where plan_id = #{planId} and data_source = #{dataSource}
</select> </select>
<select id="getWorkloadCategoryByName" resultType="com.bonus.digital.dao.WorkloadCategoryVo"> <select id="getWorkloadCategoryByName" resultType="com.bonus.digital.dao.WorkloadCategoryVo">