新中大综合服务合同修改,建管大屏接口优化、gps接口优化
This commit is contained in:
@ -271,6 +271,10 @@ public class ProjectBigScreenController extends BaseController {
|
|||||||
throw new ServiceException("更新云端萤石摄像头名称异常", HttpStatus.ERROR);
|
throw new ServiceException("更新云端萤石摄像头名称异常", HttpStatus.ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (req.getLatitude() != null && req.getLongitude() != null) {
|
||||||
|
ys7Device.setLatitude(req.getLatitude());
|
||||||
|
ys7Device.setLongitude(req.getLongitude());
|
||||||
|
}
|
||||||
return toAjax(othYs7DeviceService.updateById(ys7Device));
|
return toAjax(othYs7DeviceService.updateById(ys7Device));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lilemy
|
* @author lilemy
|
||||||
@ -37,4 +38,13 @@ public class Ys7DeviceUpdateReq implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 纬度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
private BigDecimal latitude;
|
||||||
|
/**
|
||||||
|
* 经度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
private BigDecimal longitude;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -505,7 +505,7 @@ public class ProjectBigScreenServiceImpl implements ProjectBigScreenService {
|
|||||||
gps.put("id", item.getClientId());
|
gps.put("id", item.getClientId());
|
||||||
gps.put("userId", item.getUserId());
|
gps.put("userId", item.getUserId());
|
||||||
gps.put("label", item.getClientId());
|
gps.put("label", item.getClientId());
|
||||||
gps.put("name", item.getDeviceName());
|
gps.put("name", item.getUserId() != null ? item.getUserName() : item.getClientId());
|
||||||
gps.put("type", "gps");
|
gps.put("type", "gps");
|
||||||
gps.put("lat", item.getLocLatitude());
|
gps.put("lat", item.getLocLatitude());
|
||||||
gps.put("lng", item.getLocLongitude());
|
gps.put("lng", item.getLocLongitude());
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import jakarta.servlet.http.HttpServletResponse;
|
|||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.gps.domain.vo.GpsStatusVo;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
@ -56,6 +57,16 @@ public class GpsEquipmentSonController extends BaseController {
|
|||||||
return R.ok(gpsEquipmentSonService.queryList(bo));
|
return R.ok(gpsEquipmentSonService.queryList(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备定位日期信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipmentSon:getRlList")
|
||||||
|
@GetMapping("/getRlList")
|
||||||
|
public R<List<GpsStatusVo>> getRlList(GpsEquipmentSonBo bo) {
|
||||||
|
return R.ok(gpsEquipmentSonService.getRlList(bo));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询GPS设备定位信息列表(大屏获取人员最后一次位置)
|
* 查询GPS设备定位信息列表(大屏获取人员最后一次位置)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
package org.dromara.gps.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GpsStatusVo implements Serializable {
|
||||||
|
private LocalDate riqi;
|
||||||
|
private Long count;
|
||||||
|
}
|
||||||
@ -3,8 +3,10 @@ package org.dromara.gps.mapper;
|
|||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import org.dromara.gps.domain.GpsEquipmentSon;
|
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentSonBo;
|
||||||
import org.dromara.gps.domain.vo.GpsEquipmentSonVo;
|
import org.dromara.gps.domain.vo.GpsEquipmentSonVo;
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.gps.domain.vo.GpsStatusVo;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -28,9 +30,10 @@ public interface GpsEquipmentSonMapper extends BaseMapperPlus<GpsEquipmentSon, G
|
|||||||
"AND create_time BETWEEN #{startTime} AND #{endTime}\n" +
|
"AND create_time BETWEEN #{startTime} AND #{endTime}\n" +
|
||||||
")\n" +
|
")\n" +
|
||||||
"SELECT\n" +
|
"SELECT\n" +
|
||||||
" *\n" +
|
" r.*,su.nick_name as userName\n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" RankedData\n" +
|
" RankedData r\n" +
|
||||||
|
"LEFT JOIN sys_user su ON r.user_id=su.user_id\n" +
|
||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
" rn = 1;")
|
" rn = 1;")
|
||||||
List<GpsEquipmentSonVo> getClientList(@Param("projectId") Long projectId, @Param("startTime") LocalDateTime startOfDay, @Param("endTime") LocalDateTime now);
|
List<GpsEquipmentSonVo> getClientList(@Param("projectId") Long projectId, @Param("startTime") LocalDateTime startOfDay, @Param("endTime") LocalDateTime now);
|
||||||
@ -77,4 +80,32 @@ public interface GpsEquipmentSonMapper extends BaseMapperPlus<GpsEquipmentSon, G
|
|||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
" rn = 1;")
|
" rn = 1;")
|
||||||
List<GpsEquipmentSonVo> getUserListByProjectId(@Param("projectId") Long projectId, @Param("startTime") LocalDateTime startOfDay, @Param("endTime") LocalDateTime now);
|
List<GpsEquipmentSonVo> getUserListByProjectId(@Param("projectId") Long projectId, @Param("startTime") LocalDateTime startOfDay, @Param("endTime") LocalDateTime now);
|
||||||
|
|
||||||
|
@Select("WITH RECURSIVE date_range AS (\n" +
|
||||||
|
" -- 1. 初始化开始日期(取startTime的“年月日”部分,忽略时分秒)\n" +
|
||||||
|
" SELECT DATE(#{bo.startTime}) AS stat_date\n" +
|
||||||
|
" UNION ALL\n" +
|
||||||
|
" -- 2. 递归生成后续日期,直到不超过endTime的“年月日”\n" +
|
||||||
|
" SELECT DATE_ADD(stat_date, INTERVAL 1 DAY)\n" +
|
||||||
|
" FROM date_range\n" +
|
||||||
|
" WHERE stat_date < DATE(#{bo.endTime})\n" +
|
||||||
|
")\n" +
|
||||||
|
"\n" +
|
||||||
|
"SELECT \n" +
|
||||||
|
" dr.stat_date AS riqi, -- 统计日期(格式:YYYY-MM-DD)\n" +
|
||||||
|
" COUNT(ges.id) AS count -- 当天符合条件的记录数\n" +
|
||||||
|
"FROM date_range dr\n" +
|
||||||
|
"LEFT JOIN (\n" +
|
||||||
|
" SELECT \n" +
|
||||||
|
" DATE(create_time) AS data_date, -- 提取创建时间的“年月日”\n" +
|
||||||
|
" id -- 仅需主键用于计数(减少数据传输)\n" +
|
||||||
|
" FROM gps_equipment_son\n" +
|
||||||
|
" WHERE \n" +
|
||||||
|
" project_id = #{bo.projectId} -- 匹配项目ID\n" +
|
||||||
|
" AND client_id =#{bo.clientId} -- 客户端ID为空\n" +
|
||||||
|
" AND create_time BETWEEN #{bo.startTime} AND #{bo.endTime} -- 时间范围\n" +
|
||||||
|
") ges ON dr.stat_date = ges.data_date -- 按日期关联\n" +
|
||||||
|
"GROUP BY dr.stat_date -- 按统计日期分组\n" +
|
||||||
|
"ORDER BY dr.stat_date; -- 按日期升序排列")
|
||||||
|
List<GpsStatusVo> getRlList(@Param("bo") GpsEquipmentSonBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import org.dromara.gps.domain.vo.GpsStatusVo;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -78,4 +79,6 @@ public interface IGpsEquipmentSonService extends IService<GpsEquipmentSon>{
|
|||||||
List<GpsEquipmentSonVo> getLargerScreenList(GpsEquipmentSonBo bo);
|
List<GpsEquipmentSonVo> getLargerScreenList(GpsEquipmentSonBo bo);
|
||||||
|
|
||||||
List<GpsEquipmentSonVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now);
|
List<GpsEquipmentSonVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now);
|
||||||
|
|
||||||
|
List<GpsStatusVo> getRlList(GpsEquipmentSonBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package org.dromara.gps.service.impl;
|
package org.dromara.gps.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.contractor.domain.SubConstructionUser;
|
import org.dromara.contractor.domain.SubConstructionUser;
|
||||||
import org.dromara.contractor.service.ISubConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
|
import org.dromara.gps.domain.vo.GpsStatusVo;
|
||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
import org.dromara.system.domain.vo.SysUserVo;
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
import org.dromara.system.service.ISysDictDataService;
|
import org.dromara.system.service.ISysDictDataService;
|
||||||
@ -100,6 +102,7 @@ public class GpsEquipmentSonServiceImpl extends ServiceImpl<GpsEquipmentSonMappe
|
|||||||
lqw.eq(bo.getProjectId() != null, GpsEquipmentSon::getProjectId, bo.getProjectId());
|
lqw.eq(bo.getProjectId() != null, GpsEquipmentSon::getProjectId, bo.getProjectId());
|
||||||
lqw.eq(bo.getUserId() != null, GpsEquipmentSon::getUserId, bo.getUserId());
|
lqw.eq(bo.getUserId() != null, GpsEquipmentSon::getUserId, bo.getUserId());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getClientId()), GpsEquipmentSon::getClientId, bo.getClientId());
|
lqw.eq(StringUtils.isNotBlank(bo.getClientId()), GpsEquipmentSon::getClientId, bo.getClientId());
|
||||||
|
lqw.between(bo.getStartTime() != null && bo.getEndTime() != null, GpsEquipmentSon::getCreateTime, bo.getStartTime(), bo.getEndTime());
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,4 +197,18 @@ public class GpsEquipmentSonServiceImpl extends ServiceImpl<GpsEquipmentSonMappe
|
|||||||
public List<GpsEquipmentSonVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now) {
|
public List<GpsEquipmentSonVo> getUserListByProjectId(Long projectId, LocalDateTime startOfDay, LocalDateTime now) {
|
||||||
return baseMapper.getUserListByProjectId(projectId,startOfDay,now);
|
return baseMapper.getUserListByProjectId(projectId,startOfDay,now);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<GpsStatusVo> getRlList(GpsEquipmentSonBo bo) {
|
||||||
|
if (bo.getProjectId() == null) {
|
||||||
|
throw new ServiceException("项目id不能为空!");
|
||||||
|
}
|
||||||
|
if (bo.getClientId() == null) {
|
||||||
|
throw new ServiceException("设备id不能为空!");
|
||||||
|
}
|
||||||
|
if (bo.getStartTime() == null || bo.getEndTime() == null) {
|
||||||
|
throw new ServiceException("开始时间和结算时间不能为空!!!");
|
||||||
|
}
|
||||||
|
return baseMapper.getRlList(bo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,76 @@
|
|||||||
|
package org.dromara.xzd.comprehensive.domain;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 综合服务合同-支付款项对象 xzd_cs_contract_suspend_zfkx
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("xzd_cs_contract_suspend_zfkx")
|
||||||
|
public class XzdCsContractSuspendZfkx extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购合同信息ID(合同编码)
|
||||||
|
*/
|
||||||
|
private Long contractInformationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名称(*必填)
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
private String changeName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 款项属性(*必填,如“预付款”“进度款”)
|
||||||
|
*/
|
||||||
|
private String paymentAttribute;
|
||||||
|
private String changePaymentAttribute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付百分比(如“100.00”表示100%)
|
||||||
|
*/
|
||||||
|
private BigDecimal advancePercentage;
|
||||||
|
private BigDecimal changeAdvancePercentage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同预付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractAdvanceAmount;
|
||||||
|
private BigDecimal changeContractAdvanceAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付计算基数(*必填)
|
||||||
|
*/
|
||||||
|
private BigDecimal paymentCalcBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款性质(*必填,如“全款”“分期”)
|
||||||
|
*/
|
||||||
|
private String paymentNature;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -15,6 +15,7 @@ import java.util.Date;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
import org.dromara.xzd.domain.XzdContractClause;
|
import org.dromara.xzd.domain.XzdContractClause;
|
||||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||||
@ -224,7 +225,7 @@ public class XzdCsContractChangeBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 支付条款
|
* 支付条款
|
||||||
*/
|
*/
|
||||||
private List<XzdSettlementRules> zftk;
|
private List<XzdCsContractSuspendZfkx> zftk;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同变更清单
|
* 合同变更清单
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import java.util.Date;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
import org.dromara.xzd.domain.XzdContractClause;
|
import org.dromara.xzd.domain.XzdContractClause;
|
||||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||||
@ -267,7 +268,7 @@ public class XzdCsContractInformationBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 支付条款
|
* 支付条款
|
||||||
*/
|
*/
|
||||||
private List<XzdSettlementRules> zftk;
|
private List<XzdCsContractSuspendZfkx> zftk;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同变更清单
|
* 合同变更清单
|
||||||
|
|||||||
@ -0,0 +1,78 @@
|
|||||||
|
package org.dromara.xzd.comprehensive.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 综合服务合同-支付款项业务对象 xzd_cs_contract_suspend_zfkx
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = XzdCsContractSuspendZfkx.class, reverseConvertGenerate = false)
|
||||||
|
public class XzdCsContractSuspendZfkxBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购合同信息ID(合同编码)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "采购合同信息ID(合同编码)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private Long contractInformationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名称(*必填)
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
private String changeName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 款项属性(*必填,如“预付款”“进度款”)
|
||||||
|
*/
|
||||||
|
private String paymentAttribute;
|
||||||
|
private String changePaymentAttribute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付百分比(如“100.00”表示100%)
|
||||||
|
*/
|
||||||
|
private BigDecimal advancePercentage;
|
||||||
|
private BigDecimal changeAdvancePercentage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同预付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractAdvanceAmount;
|
||||||
|
private BigDecimal changeContractAdvanceAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付计算基数(*必填)
|
||||||
|
*/
|
||||||
|
@NotNull(message = "支付计算基数(*必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private BigDecimal paymentCalcBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款性质(*必填,如“全款”“分期”)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "付款性质(*必填,如“全款”“分期”)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
|
private String paymentNature;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -11,6 +11,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
|
|||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
import org.dromara.xzd.domain.XzdContractClause;
|
import org.dromara.xzd.domain.XzdContractClause;
|
||||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||||
@ -273,7 +274,7 @@ public class XzdCsContractChangeVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 支付条款
|
* 支付条款
|
||||||
*/
|
*/
|
||||||
private List<XzdSettlementRules> zftk;
|
private List<XzdCsContractSuspendZfkx> zftk;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同变更清单
|
* 合同变更清单
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
|
|||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
import org.dromara.xzd.domain.XzdContractClause;
|
import org.dromara.xzd.domain.XzdContractClause;
|
||||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||||
@ -322,7 +323,7 @@ public class XzdCsContractInformationVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 支付条款
|
* 支付条款
|
||||||
*/
|
*/
|
||||||
private List<XzdSettlementRules> zftk;
|
private List<XzdCsContractSuspendZfkx> zftk;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同变更清单
|
* 合同变更清单
|
||||||
|
|||||||
@ -0,0 +1,90 @@
|
|||||||
|
package org.dromara.xzd.comprehensive.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 综合服务合同-支付款项视图对象 xzd_cs_contract_suspend_zfkx
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = XzdCsContractSuspendZfkx.class)
|
||||||
|
public class XzdCsContractSuspendZfkxVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购合同信息ID(合同编码)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "采购合同信息ID", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "合=同编码")
|
||||||
|
private Long contractInformationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名称(*必填)
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
private String changeName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 款项属性(*必填,如“预付款”“进度款”)
|
||||||
|
*/
|
||||||
|
private String paymentAttribute;
|
||||||
|
private String changePaymentAttribute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付百分比(如“100.00”表示100%)
|
||||||
|
*/
|
||||||
|
private BigDecimal advancePercentage;
|
||||||
|
private BigDecimal changeAdvancePercentage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同预付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal contractAdvanceAmount;
|
||||||
|
private BigDecimal changeContractAdvanceAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付计算基数(*必填)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "支付计算基数", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "*=必填")
|
||||||
|
private BigDecimal paymentCalcBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款性质(*必填,如“全款”“分期”)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "付款性质", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "*=必填,如“全款”“分期”")
|
||||||
|
private String paymentNature;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.xzd.comprehensive.mapper;
|
||||||
|
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendZfkxVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 综合服务合同-支付款项Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-21
|
||||||
|
*/
|
||||||
|
public interface XzdCsContractSuspendZfkxMapper extends BaseMapperPlus<XzdCsContractSuspendZfkx, XzdCsContractSuspendZfkxVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.xzd.comprehensive.service;
|
||||||
|
|
||||||
|
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendZfkxVo;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractSuspendZfkxBo;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 综合服务合同-支付款项Service接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-21
|
||||||
|
*/
|
||||||
|
public interface IXzdCsContractSuspendZfkxService extends IService<XzdCsContractSuspendZfkx>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询综合服务合同-支付款项
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 综合服务合同-支付款项
|
||||||
|
*/
|
||||||
|
XzdCsContractSuspendZfkxVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询综合服务合同-支付款项列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 综合服务合同-支付款项分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<XzdCsContractSuspendZfkxVo> queryPageList(XzdCsContractSuspendZfkxBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的综合服务合同-支付款项列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 综合服务合同-支付款项列表
|
||||||
|
*/
|
||||||
|
List<XzdCsContractSuspendZfkxVo> queryList(XzdCsContractSuspendZfkxBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增综合服务合同-支付款项
|
||||||
|
*
|
||||||
|
* @param bo 综合服务合同-支付款项
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(XzdCsContractSuspendZfkxBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改综合服务合同-支付款项
|
||||||
|
*
|
||||||
|
* @param bo 综合服务合同-支付款项
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(XzdCsContractSuspendZfkxBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除综合服务合同-支付款项信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
||||||
@ -16,8 +16,10 @@ import org.dromara.system.service.ISysUserService;
|
|||||||
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
||||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation;
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractInformation;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo;
|
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractInformationVo;
|
||||||
|
import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendZfkxService;
|
||||||
import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService;
|
import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService;
|
||||||
import org.dromara.xzd.domain.XzdContractClause;
|
import org.dromara.xzd.domain.XzdContractClause;
|
||||||
import org.dromara.xzd.domain.XzdDeductionItems;
|
import org.dromara.xzd.domain.XzdDeductionItems;
|
||||||
@ -56,7 +58,7 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
@Autowired
|
@Autowired
|
||||||
private XzdContractClauseServiceImpl xzdContractClauseService;
|
private XzdContractClauseServiceImpl xzdContractClauseService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private XzdSettlementRulesServiceImpl xzdSettlementRulesService;
|
private IXzdCsContractSuspendZfkxService contractSuspendZfkxService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysOssServiceImpl sysOssService;
|
private SysOssServiceImpl sysOssService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -195,10 +197,10 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
throw new ServiceException("支付条款不能为空");
|
throw new ServiceException("支付条款不能为空");
|
||||||
}
|
}
|
||||||
//支付条款
|
//支付条款
|
||||||
for (XzdSettlementRules clause : bo.getZftk()) {
|
for (XzdCsContractSuspendZfkx clause : bo.getZftk()) {
|
||||||
clause.setContractDetailsId(add.getId());
|
clause.setContractInformationId(add.getId());
|
||||||
}
|
}
|
||||||
xzdSettlementRulesService.saveBatch(bo.getZftk());
|
contractSuspendZfkxService.saveBatch(bo.getZftk());
|
||||||
|
|
||||||
//合同变更清单
|
//合同变更清单
|
||||||
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
||||||
@ -231,9 +233,9 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
|
|
||||||
|
|
||||||
//支付条款
|
//支付条款
|
||||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, old.getId());
|
lambdaQueryWrapper3.eq(XzdCsContractSuspendZfkx::getContractInformationId, old.getId());
|
||||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
contractSuspendZfkxService.remove(lambdaQueryWrapper3);
|
||||||
|
|
||||||
|
|
||||||
//合同条款-扣款与奖励项
|
//合同条款-扣款与奖励项
|
||||||
@ -264,10 +266,10 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
throw new ServiceException("支付条款不能为空");
|
throw new ServiceException("支付条款不能为空");
|
||||||
}
|
}
|
||||||
//支付条款
|
//支付条款
|
||||||
for (XzdSettlementRules clause : bo.getZftk()) {
|
for (XzdCsContractSuspendZfkx clause : bo.getZftk()) {
|
||||||
clause.setContractDetailsId(update.getId());
|
clause.setContractInformationId(update.getId());
|
||||||
}
|
}
|
||||||
xzdSettlementRulesService.saveBatch(bo.getZftk());
|
contractSuspendZfkxService.saveBatch(bo.getZftk());
|
||||||
|
|
||||||
//合同变更清单
|
//合同变更清单
|
||||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId()));
|
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId()));
|
||||||
@ -324,9 +326,9 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||||
|
|
||||||
//支付条款
|
//支付条款
|
||||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids);
|
lambdaQueryWrapper3.in(XzdCsContractSuspendZfkx::getContractInformationId, ids);
|
||||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
contractSuspendZfkxService.remove(lambdaQueryWrapper3);
|
||||||
//合同变更清单
|
//合同变更清单
|
||||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().in(XzdHtglHtbgqd::getMainDocumentId,ids));
|
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().in(XzdHtglHtbgqd::getMainDocumentId,ids));
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
@ -393,9 +395,9 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
vo.setHttk(list1);
|
vo.setHttk(list1);
|
||||||
|
|
||||||
//支付条款
|
//支付条款
|
||||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, vo.getId());
|
lambdaQueryWrapper3.eq(XzdCsContractSuspendZfkx::getContractInformationId, vo.getId());
|
||||||
List<XzdSettlementRules> list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3);
|
List<XzdCsContractSuspendZfkx> list2 = contractSuspendZfkxService.list(lambdaQueryWrapper3);
|
||||||
vo.setZftk(list2);
|
vo.setZftk(list2);
|
||||||
|
|
||||||
//合同变更清单
|
//合同变更清单
|
||||||
|
|||||||
@ -17,7 +17,9 @@ import org.dromara.common.utils.BatchNumberGenerator;
|
|||||||
import org.dromara.system.domain.vo.SysDeptVo;
|
import org.dromara.system.domain.vo.SysDeptVo;
|
||||||
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
||||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
|
import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendZfkxService;
|
||||||
import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService;
|
import org.dromara.xzd.comprehensive.service.IXzdHtglHtbgqdService;
|
||||||
import org.dromara.xzd.domain.XzdContractAdvanceInfo;
|
import org.dromara.xzd.domain.XzdContractAdvanceInfo;
|
||||||
import org.dromara.xzd.domain.XzdContractClause;
|
import org.dromara.xzd.domain.XzdContractClause;
|
||||||
@ -58,7 +60,7 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
@Autowired
|
@Autowired
|
||||||
private XzdContractClauseServiceImpl xzdContractClauseService;
|
private XzdContractClauseServiceImpl xzdContractClauseService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private XzdSettlementRulesServiceImpl xzdSettlementRulesService;
|
private IXzdCsContractSuspendZfkxService contractSuspendZfkxService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysOssServiceImpl sysOssService;
|
private SysOssServiceImpl sysOssService;
|
||||||
|
|
||||||
@ -109,9 +111,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
vo.setHttk(list1);
|
vo.setHttk(list1);
|
||||||
|
|
||||||
//支付条款
|
//支付条款
|
||||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, vo.getId());
|
lambdaQueryWrapper3.eq(XzdCsContractSuspendZfkx::getContractInformationId, vo.getId());
|
||||||
List<XzdSettlementRules> list2 = xzdSettlementRulesService.list(lambdaQueryWrapper3);
|
List<XzdCsContractSuspendZfkx> list2 = contractSuspendZfkxService.list(lambdaQueryWrapper3);
|
||||||
vo.setZftk(list2);
|
vo.setZftk(list2);
|
||||||
//合同变更清单
|
//合同变更清单
|
||||||
List<XzdHtglHtbgqd> list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId, vo.getId()));
|
List<XzdHtglHtbgqd> list4 = xzdHtglHtbgqdService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId, vo.getId()));
|
||||||
@ -292,10 +294,10 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
throw new ServiceException("支付条款不能为空");
|
throw new ServiceException("支付条款不能为空");
|
||||||
}
|
}
|
||||||
//支付条款
|
//支付条款
|
||||||
for (XzdSettlementRules clause : bo.getZftk()) {
|
for (XzdCsContractSuspendZfkx clause : bo.getZftk()) {
|
||||||
clause.setContractDetailsId(add.getId());
|
clause.setContractInformationId(add.getId());
|
||||||
}
|
}
|
||||||
xzdSettlementRulesService.saveBatch(bo.getZftk());
|
contractSuspendZfkxService.saveBatch(bo.getZftk());
|
||||||
|
|
||||||
//合同变更清单
|
//合同变更清单
|
||||||
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
||||||
@ -328,9 +330,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
|
|
||||||
|
|
||||||
//支付条款
|
//支付条款
|
||||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper3.eq(XzdSettlementRules::getContractDetailsId, old.getId());
|
lambdaQueryWrapper3.eq(XzdCsContractSuspendZfkx::getContractInformationId, old.getId());
|
||||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
contractSuspendZfkxService.remove(lambdaQueryWrapper3);
|
||||||
|
|
||||||
|
|
||||||
//合同条款-扣款与奖励项
|
//合同条款-扣款与奖励项
|
||||||
@ -361,10 +363,10 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
throw new ServiceException("支付条款不能为空");
|
throw new ServiceException("支付条款不能为空");
|
||||||
}
|
}
|
||||||
//支付条款
|
//支付条款
|
||||||
for (XzdSettlementRules clause : bo.getZftk()) {
|
for (XzdCsContractSuspendZfkx clause : bo.getZftk()) {
|
||||||
clause.setContractDetailsId(update.getId());
|
clause.setContractInformationId(update.getId());
|
||||||
}
|
}
|
||||||
xzdSettlementRulesService.saveBatch(bo.getZftk());
|
contractSuspendZfkxService.saveBatch(bo.getZftk());
|
||||||
//合同变更清单
|
//合同变更清单
|
||||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId()));
|
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().eq(XzdHtglHtbgqd::getMainDocumentId,bo.getId()));
|
||||||
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
if (bo.getHtbgqds() != null && !bo.getHtbgqds().isEmpty()) {
|
||||||
@ -420,9 +422,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
xzdContractClauseService.remove(lambdaQueryWrapper2);
|
||||||
|
|
||||||
//支付条款
|
//支付条款
|
||||||
LambdaQueryWrapper<XzdSettlementRules> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lambdaQueryWrapper3 = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper3.in(XzdSettlementRules::getContractDetailsId, ids);
|
lambdaQueryWrapper3.in(XzdCsContractSuspendZfkx::getContractInformationId, ids);
|
||||||
xzdSettlementRulesService.remove(lambdaQueryWrapper3);
|
contractSuspendZfkxService.remove(lambdaQueryWrapper3);
|
||||||
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().in(XzdHtglHtbgqd::getMainDocumentId,ids));
|
xzdHtglHtbgqdService.remove(new LambdaQueryWrapper<XzdHtglHtbgqd>().in(XzdHtglHtbgqd::getMainDocumentId,ids));
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,137 @@
|
|||||||
|
package org.dromara.xzd.comprehensive.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.bo.XzdCsContractSuspendZfkxBo;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.vo.XzdCsContractSuspendZfkxVo;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
|
import org.dromara.xzd.comprehensive.mapper.XzdCsContractSuspendZfkxMapper;
|
||||||
|
import org.dromara.xzd.comprehensive.service.IXzdCsContractSuspendZfkxService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 综合服务合同-支付款项Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-10-21
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class XzdCsContractSuspendZfkxServiceImpl extends ServiceImpl<XzdCsContractSuspendZfkxMapper, XzdCsContractSuspendZfkx> implements IXzdCsContractSuspendZfkxService {
|
||||||
|
|
||||||
|
private final XzdCsContractSuspendZfkxMapper baseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询综合服务合同-支付款项
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 综合服务合同-支付款项
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public XzdCsContractSuspendZfkxVo queryById(Long id){
|
||||||
|
return baseMapper.selectVoById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询综合服务合同-支付款项列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 综合服务合同-支付款项分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<XzdCsContractSuspendZfkxVo> queryPageList(XzdCsContractSuspendZfkxBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<XzdCsContractSuspendZfkxVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的综合服务合同-支付款项列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 综合服务合同-支付款项列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<XzdCsContractSuspendZfkxVo> queryList(XzdCsContractSuspendZfkxBo bo) {
|
||||||
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<XzdCsContractSuspendZfkx> buildQueryWrapper(XzdCsContractSuspendZfkxBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<XzdCsContractSuspendZfkx> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(XzdCsContractSuspendZfkx::getId);
|
||||||
|
lqw.eq(bo.getContractInformationId() != null, XzdCsContractSuspendZfkx::getContractInformationId, bo.getContractInformationId());
|
||||||
|
lqw.like(StringUtils.isNotBlank(bo.getName()), XzdCsContractSuspendZfkx::getName, bo.getName());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getPaymentAttribute()), XzdCsContractSuspendZfkx::getPaymentAttribute, bo.getPaymentAttribute());
|
||||||
|
lqw.eq(bo.getAdvancePercentage() != null, XzdCsContractSuspendZfkx::getAdvancePercentage, bo.getAdvancePercentage());
|
||||||
|
lqw.eq(bo.getContractAdvanceAmount() != null, XzdCsContractSuspendZfkx::getContractAdvanceAmount, bo.getContractAdvanceAmount());
|
||||||
|
lqw.eq(bo.getPaymentCalcBase() != null, XzdCsContractSuspendZfkx::getPaymentCalcBase, bo.getPaymentCalcBase());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getPaymentNature()), XzdCsContractSuspendZfkx::getPaymentNature, bo.getPaymentNature());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增综合服务合同-支付款项
|
||||||
|
*
|
||||||
|
* @param bo 综合服务合同-支付款项
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(XzdCsContractSuspendZfkxBo bo) {
|
||||||
|
XzdCsContractSuspendZfkx add = MapstructUtils.convert(bo, XzdCsContractSuspendZfkx.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改综合服务合同-支付款项
|
||||||
|
*
|
||||||
|
* @param bo 综合服务合同-支付款项
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(XzdCsContractSuspendZfkxBo bo) {
|
||||||
|
XzdCsContractSuspendZfkx update = MapstructUtils.convert(bo, XzdCsContractSuspendZfkx.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(XzdCsContractSuspendZfkx entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除综合服务合同-支付款项信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -102,6 +102,7 @@ public class XzdCbysJdcbfjVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "年度")
|
@ExcelProperty(value = "年度")
|
||||||
private Long year;
|
private Long year;
|
||||||
|
private String yearStr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 币种
|
* 币种
|
||||||
|
|||||||
@ -59,6 +59,7 @@ public class XzdCbysJdcbfjServiceImpl extends ServiceImpl<XzdCbysJdcbfjMapper, X
|
|||||||
@Override
|
@Override
|
||||||
public XzdCbysJdcbfjVo queryById(Long id){
|
public XzdCbysJdcbfjVo queryById(Long id){
|
||||||
XzdCbysJdcbfjVo vo = baseMapper.selectVoById(id);
|
XzdCbysJdcbfjVo vo = baseMapper.selectVoById(id);
|
||||||
|
vo.setYearStr(String.valueOf(vo.getYear()));
|
||||||
getName(vo);
|
getName(vo);
|
||||||
getHttk(vo);
|
getHttk(vo);
|
||||||
return vo;
|
return vo;
|
||||||
|
|||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?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="org.dromara.xzd.comprehensive.mapper.XzdCsContractSuspendZfkxMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user