This commit is contained in:
2026-04-13 16:30:23 +08:00
48 changed files with 3687 additions and 52 deletions

View File

@ -9,6 +9,7 @@ public enum ApproveCodeEnum {
WTJ("WTJ", "未提交"),
SPZ("SPZ", "审批中"),
YTJ("YTJ", "已提交"),
YSP("YSP", "已审批"),

View File

@ -5,7 +5,7 @@ package com.xjrsoft.module.externalApi.callback;
* FsspCallback接口定义了一个回调方法的规范
* 该接口用于实现回调机制允许在特定事件发生时执行预定义的操作
*/
public interface FsspCallback<Resp> {
public interface ApiCallback<Resp> {
/**
* 执行回调方法

View File

@ -15,7 +15,7 @@ public class LngJkRpBillDto {
/**
* 电子回单id
*/
private String id;
private Long id;
/**
* 单据编号

View File

@ -15,7 +15,7 @@ public class LngJkRpDto {
/**
* 交易明细id
*/
private String id;
private Long id;
/**
* 交易明细编号

View File

@ -0,0 +1,24 @@
package com.xjrsoft.module.externalApi.response;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 用户计量接口返回的数据
*/
@Data
public class GcqResponse {
/**
* 日期
*/
private LocalDateTime prodDate;
/**
* 管存
*/
private BigDecimal pipeAmount;
}

View File

@ -0,0 +1,58 @@
package com.xjrsoft.module.externalApi.response;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 用户计量接口返回的数据
*/
@Data
public class QyjlResponse {
/**
* 日期
*/
private LocalDateTime prodDate;
/**
* 公司编码
*/
private String companyCode;
/**
* 公司名称
*/
private String companyName;
/**
* 下载点编码
*/
private String deptCode;
/**
* 下载点名称
*/
private String deptName;
/**
* 气源编码
*/
private String sourceCode;
/**
* 气源名称
*/
private String sourceName;
/**
* 交接气量(方)
*/
private BigDecimal handoverAmount;
/**
* 交接热值(吉焦)
*/
private BigDecimal energyAmount;
}

View File

@ -0,0 +1,68 @@
package com.xjrsoft.module.externalApi.response;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 用户计量接口返回的数据
*/
@Data
public class YhjlResponse {
/**
* 日期
*/
private LocalDateTime prodDate;
/**
* 公司编码
*/
private String companyCode;
/**
* 公司名称
*/
private String companyName;
/**
* 下载点编码
*/
private String deptCode;
/**
* 下载点名称
*/
private String deptName;
/**
* 气源编码
*/
private String sourceCode;
/**
* 气源名称
*/
private String sourceName;
/**
* 用户编码
*/
private String clientCode;
/**
* 用户名称
*/
private String clientName;
/**
* 交接气量(方)
*/
private BigDecimal handoverAmount;
/**
* 交接热值(吉焦)
*/
private BigDecimal energyAmount;
}

View File

@ -0,0 +1,62 @@
package com.xjrsoft.module.plan.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class AddLngPlanYearDemandHdrDto extends com.xjrsoft.common.model.base.BaseModel {
private static final long serialVersionUID = 1L;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 年度
*/
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,73 @@
package com.xjrsoft.module.plan.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 客户年度需求提报--电商
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class AddLngPlanYearDemandHdrEcDto extends com.xjrsoft.common.model.base.BaseModel {
private static final long serialVersionUID = 1L;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 年度
*/
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,55 @@
package com.xjrsoft.module.plan.dto;
import com.xjrsoft.common.page.PageInput;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @title: 分页查询入参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LngPlanYearDemandHdrEcPageDto extends PageInput {
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 年度
*/
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
}

View File

@ -0,0 +1,56 @@
package com.xjrsoft.module.plan.dto;
import com.xjrsoft.common.page.PageInput;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @title: 分页查询入参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LngPlanYearDemandHdrPageDto extends PageInput {
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 年度
*/
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
}

View File

@ -0,0 +1,184 @@
package com.xjrsoft.module.plan.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import com.pictc.annotations.datalog.LogTable;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogJoin;
import com.pictc.annotations.datalog.LogJoinColumn;
import com.pictc.annotations.datalog.JoinCaseType;
import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.ValueDirectionType;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@LogTable(source="lng_plan_year_demand",name="客户年度需求提报")
public class UpdateLngPlanYearDemandDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)
*/
@LogField(name="年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)",index=1)
@ApiModelProperty("年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)")
private Long pydhId;
/**
* 品种
*/
@LogField(name="品种",index=2)
@ApiModelProperty("品种")
private String catCode;
/**
* 单位(隐藏)
*/
@LogField(name="单位(隐藏)",index=3)
@ApiModelProperty("单位(隐藏)")
private String uomCode;
/**
* 1月
*/
@LogField(name="1月",index=4)
@ApiModelProperty("1月")
private BigDecimal qty01;
/**
* 2月
*/
@LogField(name="2月",index=5)
@ApiModelProperty("2月")
private BigDecimal qty02;
/**
* 3月
*/
@LogField(name="3月",index=6)
@ApiModelProperty("3月")
private BigDecimal qty03;
/**
* 4月
*/
@LogField(name="4月",index=7)
@ApiModelProperty("4月")
private BigDecimal qty04;
/**
* 5月
*/
@LogField(name="5月",index=8)
@ApiModelProperty("5月")
private BigDecimal qty05;
/**
* 6月
*/
@LogField(name="6月",index=9)
@ApiModelProperty("6月")
private BigDecimal qty06;
/**
* 7月
*/
@LogField(name="7月",index=10)
@ApiModelProperty("7月")
private BigDecimal qty07;
/**
* 8月
*/
@LogField(name="8月",index=11)
@ApiModelProperty("8月")
private BigDecimal qty08;
/**
* 9月
*/
@LogField(name="9月",index=12)
@ApiModelProperty("9月")
private BigDecimal qty09;
/**
* 10月
*/
@LogField(name="10月",index=13)
@ApiModelProperty("10月")
private BigDecimal qty10;
/**
* 11月
*/
@LogField(name="11月",index=14)
@ApiModelProperty("11月")
private BigDecimal qty11;
/**
* 12月
*/
@LogField(name="12月",index=15)
@ApiModelProperty("12月")
private BigDecimal qty12;
/**
* 次年1月
*/
@LogField(name="次年1月",index=16)
@ApiModelProperty("次年1月")
private BigDecimal qtyN1;
/**
* 次年2月
*/
@LogField(name="次年2月",index=17)
@ApiModelProperty("次年2月")
private BigDecimal qtyN2;
/**
* 次年3月
*/
@LogField(name="次年3月",index=18)
@ApiModelProperty("次年3月")
private BigDecimal qtyN3;
/**
* 备注
*/
@LogField(name="备注",index=19)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=20)
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,175 @@
package com.xjrsoft.module.plan.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogTable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@LogTable(source="lng_plan_year_demand",name="客户年度需求提报")
public class UpdateLngPlanYearDemandEcDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)
*/
@LogField(name="年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)",index=1)
@ApiModelProperty("年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)")
private Long pydhId;
/**
* 品种
*/
@LogField(name="品种",index=2)
@ApiModelProperty("品种")
private String catCode;
/**
* 单位(隐藏)
*/
@LogField(name="单位(隐藏)",index=3)
@ApiModelProperty("单位(隐藏)")
private String uomCode;
/**
* 1月
*/
@LogField(name="1月",index=4)
@ApiModelProperty("1月")
private BigDecimal qty01;
/**
* 2月
*/
@LogField(name="2月",index=5)
@ApiModelProperty("2月")
private BigDecimal qty02;
/**
* 3月
*/
@LogField(name="3月",index=6)
@ApiModelProperty("3月")
private BigDecimal qty03;
/**
* 4月
*/
@LogField(name="4月",index=7)
@ApiModelProperty("4月")
private BigDecimal qty04;
/**
* 5月
*/
@LogField(name="5月",index=8)
@ApiModelProperty("5月")
private BigDecimal qty05;
/**
* 6月
*/
@LogField(name="6月",index=9)
@ApiModelProperty("6月")
private BigDecimal qty06;
/**
* 7月
*/
@LogField(name="7月",index=10)
@ApiModelProperty("7月")
private BigDecimal qty07;
/**
* 8月
*/
@LogField(name="8月",index=11)
@ApiModelProperty("8月")
private BigDecimal qty08;
/**
* 9月
*/
@LogField(name="9月",index=12)
@ApiModelProperty("9月")
private BigDecimal qty09;
/**
* 10月
*/
@LogField(name="10月",index=13)
@ApiModelProperty("10月")
private BigDecimal qty10;
/**
* 11月
*/
@LogField(name="11月",index=14)
@ApiModelProperty("11月")
private BigDecimal qty11;
/**
* 12月
*/
@LogField(name="12月",index=15)
@ApiModelProperty("12月")
private BigDecimal qty12;
/**
* 次年1月
*/
@LogField(name="次年1月",index=16)
@ApiModelProperty("次年1月")
private BigDecimal qtyN1;
/**
* 次年2月
*/
@LogField(name="次年2月",index=17)
@ApiModelProperty("次年2月")
private BigDecimal qtyN2;
/**
* 次年3月
*/
@LogField(name="次年3月",index=18)
@ApiModelProperty("次年3月")
private BigDecimal qtyN3;
/**
* 备注
*/
@LogField(name="备注",index=19)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=20)
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,104 @@
package com.xjrsoft.module.plan.dto;
import java.io.Serializable;
import java.util.List;
import com.pictc.annotations.datalog.JoinCaseType;
import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogJoin;
import com.pictc.annotations.datalog.LogTable;
import com.pictc.annotations.datalog.ValueDirectionType;
import com.pictc.annotations.datalog.LogJoinColumn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@LogTable(source="lng_plan_year_demand_hdr",name="客户年度需求提报")
public class UpdateLngPlanYearDemandHdrDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 客户编码
*/
@LogField(name="客户编码",index=1)
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 年度
*/
@LogField(name="年度",index=2)
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@LogField(name="版本(自动生成每客户每年从1开始)",index=3)
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@LogField(name="最新版(Y-是N-否每客户每年只有一个Y)",index=4)
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@LogField(name="审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)",index=5)
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@LogField(name="批复意见",index=6)
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@LogField(name="备注",index=7)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=8)
@ApiModelProperty("租户id")
private Long tenantId;
/**
* lngPlanYearDemand
*/
@ApiModelProperty("lngPlanYearDemand子表")
@LogJoin(name = "lngPlanYearDemand子表",
columns = {
@LogJoinColumn(field = "id",relatedField = "pydhId", valueDirection = ValueDirectionType.RIGHT)
},
caseType = JoinCaseType.FULL, target = UpdateLngPlanYearDemandDto.class, type = JoinType.MANY)
private List<UpdateLngPlanYearDemandDto> lngPlanYearDemandList;
}

View File

@ -0,0 +1,109 @@
package com.xjrsoft.module.plan.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import com.pictc.annotations.datalog.LogTable;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogJoin;
import com.pictc.annotations.datalog.LogJoinColumn;
import com.pictc.annotations.datalog.JoinCaseType;
import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.ValueDirectionType;
/**
* @title: 客户年度需求提报--电商
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@LogTable(source="lng_plan_year_demand_hdr",name="客户年度需求提报--电商")
public class UpdateLngPlanYearDemandHdrEcDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 客户编码
*/
@LogField(name="客户编码",index=1)
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 年度
*/
@LogField(name="年度",index=2)
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@LogField(name="版本(自动生成每客户每年从1开始)",index=3)
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@LogField(name="最新版(Y-是N-否每客户每年只有一个Y)",index=4)
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@LogField(name="审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)",index=5)
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@LogField(name="批复意见",index=6)
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@LogField(name="备注",index=7)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=8)
@ApiModelProperty("租户id")
private Long tenantId;
/**
* lngPlanYearDemand
*/
@ApiModelProperty("lngPlanYearDemand子表")
@LogJoin(name = "lngPlanYearDemand子表",
columns = {
@LogJoinColumn(field = "id",relatedField = "pydhId", valueDirection = ValueDirectionType.RIGHT)
},
caseType = JoinCaseType.FULL, target = UpdateLngPlanYearDemandEcDto.class, type = JoinType.MANY)
private List<UpdateLngPlanYearDemandEcDto> lngPlanYearDemandList;
}

View File

@ -0,0 +1,216 @@
package com.xjrsoft.module.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class LngPlanYearDemandEcVo extends com.xjrsoft.common.model.base.BaseModel{
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)
*/
@ApiModelProperty("年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)")
private Long pydhId;
/**
* 品种
*/
@ApiModelProperty("品种")
private String catCode;
/**
* 单位(隐藏)
*/
@ApiModelProperty("单位(隐藏)")
private String uomCode;
/**
* 1月
*/
@ApiModelProperty("1月")
private BigDecimal qty01;
/**
* 2月
*/
@ApiModelProperty("2月")
private BigDecimal qty02;
/**
* 3月
*/
@ApiModelProperty("3月")
private BigDecimal qty03;
/**
* 4月
*/
@ApiModelProperty("4月")
private BigDecimal qty04;
/**
* 5月
*/
@ApiModelProperty("5月")
private BigDecimal qty05;
/**
* 6月
*/
@ApiModelProperty("6月")
private BigDecimal qty06;
/**
* 7月
*/
@ApiModelProperty("7月")
private BigDecimal qty07;
/**
* 8月
*/
@ApiModelProperty("8月")
private BigDecimal qty08;
/**
* 9月
*/
@ApiModelProperty("9月")
private BigDecimal qty09;
/**
* 10月
*/
@ApiModelProperty("10月")
private BigDecimal qty10;
/**
* 11月
*/
@ApiModelProperty("11月")
private BigDecimal qty11;
/**
* 12月
*/
@ApiModelProperty("12月")
private BigDecimal qty12;
/**
* 次年1月
*/
@ApiModelProperty("次年1月")
private BigDecimal qtyN1;
/**
* 次年2月
*/
@ApiModelProperty("次年2月")
private BigDecimal qtyN2;
/**
* 次年3月
*/
@ApiModelProperty("次年3月")
private BigDecimal qtyN3;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
}

View File

@ -0,0 +1,67 @@
package com.xjrsoft.module.plan.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.xjrsoft.common.annotation.Trans;
import com.xjrsoft.common.enums.TransType;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @title: 分页列表出参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class LngPlanYearDemandHdrEcPageVo {
/**
* 主键
*/
@ExcelIgnore
@ApiModelProperty("主键")
private String id;
/**
* 年度
*/
@ContentStyle(dataFormat = 49)
@ExcelProperty("年度")
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ContentStyle(dataFormat = 49)
@ExcelProperty("版本号")
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ContentStyle(dataFormat = 49)
@ExcelProperty("状态")
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@ContentStyle(dataFormat = 49)
@ExcelProperty("批复意见")
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@ContentStyle(dataFormat = 49)
@ExcelProperty("备注")
@ApiModelProperty("备注")
private String note;
}

View File

@ -0,0 +1,132 @@
package com.xjrsoft.module.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class LngPlanYearDemandHdrEcVo extends com.xjrsoft.common.model.base.BaseModel{
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 年度
*/
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
private List<LngPlanYearDemandEcVo> lngPlanYearDemandList;
}

View File

@ -0,0 +1,51 @@
package com.xjrsoft.module.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 分页列表出参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class LngPlanYearDemandHdrPageVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private String id;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 年度
*/
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
}

View File

@ -0,0 +1,133 @@
package com.xjrsoft.module.plan.vo;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class LngPlanYearDemandHdrVo extends com.xjrsoft.common.model.base.BaseModel{
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 客户编码
*/
@ApiModelProperty("客户名称")
private String cuName;
/**
* 年度
*/
@ApiModelProperty("年度")
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
private List<LngPlanYearDemandVo> lngPlanYearDemandList;
}

View File

@ -0,0 +1,216 @@
package com.xjrsoft.module.plan.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
public class LngPlanYearDemandVo extends com.xjrsoft.common.model.base.BaseModel{
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)
*/
@ApiModelProperty("年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)")
private Long pydhId;
/**
* 品种
*/
@ApiModelProperty("品种")
private String catCode;
/**
* 单位(隐藏)
*/
@ApiModelProperty("单位(隐藏)")
private String uomCode;
/**
* 1月
*/
@ApiModelProperty("1月")
private BigDecimal qty01;
/**
* 2月
*/
@ApiModelProperty("2月")
private BigDecimal qty02;
/**
* 3月
*/
@ApiModelProperty("3月")
private BigDecimal qty03;
/**
* 4月
*/
@ApiModelProperty("4月")
private BigDecimal qty04;
/**
* 5月
*/
@ApiModelProperty("5月")
private BigDecimal qty05;
/**
* 6月
*/
@ApiModelProperty("6月")
private BigDecimal qty06;
/**
* 7月
*/
@ApiModelProperty("7月")
private BigDecimal qty07;
/**
* 8月
*/
@ApiModelProperty("8月")
private BigDecimal qty08;
/**
* 9月
*/
@ApiModelProperty("9月")
private BigDecimal qty09;
/**
* 10月
*/
@ApiModelProperty("10月")
private BigDecimal qty10;
/**
* 11月
*/
@ApiModelProperty("11月")
private BigDecimal qty11;
/**
* 12月
*/
@ApiModelProperty("12月")
private BigDecimal qty12;
/**
* 次年1月
*/
@ApiModelProperty("次年1月")
private BigDecimal qtyN1;
/**
* 次年2月
*/
@ApiModelProperty("次年2月")
private BigDecimal qtyN2;
/**
* 次年3月
*/
@ApiModelProperty("次年3月")
private BigDecimal qtyN3;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
}

View File

@ -2,7 +2,7 @@ package com.xjrsoft.module.externalApi.client;
import com.pictc.enums.BusinessCode;
import com.xjrsoft.common.exception.BusinessException;
import com.xjrsoft.module.externalApi.callback.FsspCallback;
import com.xjrsoft.module.externalApi.callback.ApiCallback;
import com.xjrsoft.module.externalApi.response.BaseResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*;
@ -22,7 +22,7 @@ public class FsspHttpClient {
public static <Req, Resp extends BaseResponse> void post(Req req,
String url,
Class<Resp> clz,
FsspCallback<Resp> callback) {
ApiCallback<Resp> callback) {
post(req, url, clz, null, callback);
}
@ -30,7 +30,7 @@ public class FsspHttpClient {
String url,
Class<Resp> clz,
Map<String, String> headerMap,
FsspCallback<Resp> callback) {
ApiCallback<Resp> callback) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
if (headerMap != null) {

View File

@ -0,0 +1,73 @@
package com.xjrsoft.module.externalApi.client;
import com.pictc.enums.BusinessCode;
import com.xjrsoft.common.exception.BusinessException;
import com.xjrsoft.module.externalApi.callback.ApiCallback;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
@Slf4j
@Component
public class PipeHttpClient {
private static RestTemplate rest = new RestTemplate();
public static <Resp> void get(String url,
Map<String, String> param,
Class<Resp> clz,
ApiCallback<Resp> callback) {
StringBuilder builder = new StringBuilder();
builder.append(url);
for (String key : param.keySet()) {
builder.append("&");
builder.append(key);
builder.append("=");
builder.append(param.get(key));
}
url = url.replaceFirst("&", "?");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<Resp> response = rest.exchange(
url,
HttpMethod.GET,
entity,
clz
);
if (response.getStatusCode() == HttpStatus.OK) {
callback.execute(response.getBody());;
} else {
throw new BusinessException(BusinessCode.of(10902,"请求失败HTTP状态码: " + response.getStatusCode()));
}
}
public static byte[] downloadFile(String url, Map<String, String> param) {
StringBuilder builder = new StringBuilder();
builder.append(url);
for (String key : param.keySet()) {
builder.append("&");
builder.append(key);
builder.append("=");
builder.append(param.get(key));
}
url = url.replaceFirst("&", "?");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<byte[]> response = rest.exchange(
url,
HttpMethod.GET,
entity,
byte[].class
);
if (response.getStatusCode() == HttpStatus.OK) {
return response.getBody();
} else {
throw new BusinessException(BusinessCode.of(10902,"请求失败HTTP状态码: " + response.getStatusCode()));
}
}
}

View File

@ -15,7 +15,7 @@ public class FsspConfig {
private String appId;
private String appSecuret;
private String appSecret;
private String tenantid;
@ -23,6 +23,8 @@ public class FsspConfig {
private String language;
private Integer pageSize;
private String loginUrl;
private String user;
@ -31,14 +33,9 @@ public class FsspConfig {
private String yhjymxUrl;
private String orgNumber;
private String accountbank;
private String dzhdxxUrl;
private String dzhdfjUrl;
private String pzUrl;
}

View File

@ -0,0 +1,45 @@
package com.xjrsoft.module.externalApi.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
@Data
@Component
@RefreshScope
@ConfigurationProperties("xjrsoft.pipe")
public class PipeConfig {
private String baseUrl;
private String yhjlUrl;
private String qyjlUrl;
private String yhjljjpzUrl;
private String gcqUrl;
private String qzzfUrl;
public String getFullYhjlUrl() {
return baseUrl + yhjlUrl;
}
public String getFullQyjlUrl() {
return baseUrl + qyjlUrl;
}
public String getFullYhjljjpzUrl() {
return baseUrl + yhjljjpzUrl;
}
public String getFullGcqUrl() {
return baseUrl + gcqUrl;
}
public String getFullQzzfUrl() {
return baseUrl + qzzfUrl;
}
}

View File

@ -0,0 +1,118 @@
package com.xjrsoft.module.externalApi.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @title: 接口主数据-银行账号(用于共享收付款)
* @Author 管理员
* @Date: 2025-12-24
* @Version 1.0
*/
@Data
@TableName("lng_b_jk_bankaccount")
@ApiModel(value = "接口主数据-银行账号(用于共享收付款)对象", description = "接口主数据-银行账号(用于共享收付款)")
public class LngBJkBankaccount implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 交易明细id
*/
@ApiModelProperty("id")
@TableId
private Long id;
/**
* 组织机构id(xjr_department.id)
*/
@ApiModelProperty("组织机构id(xjr_department.id)")
private Long comId;
/**
* 资金组织编码(公司三字码)
*/
@ApiModelProperty("资金组织编码(公司三字码)")
private String orgNumber;
/**
* 银行账号
*/
@ApiModelProperty("银行账号")
private String accountbankNumber;
/**
* 开户行
*/
@ApiModelProperty("开户行")
private String bankName;
/**
* 币种
*/
@ApiModelProperty("币种")
private String currencyName;
/**
* 账户类型
*/
@ApiModelProperty("账户类型")
private String accountTypeName;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT)
private Long ruleUserId;
}

View File

@ -40,7 +40,7 @@ public class LngJkRp implements Serializable {
private String billno;
/**
* 资金组织编码, 公司三字码
* 资金组织编码(公司三字码)
*/
@ApiModelProperty("资金组织编码(公司三字码)")
private String orgNumber;
@ -100,7 +100,7 @@ public class LngJkRp implements Serializable {
private String description;
/**
* 业务类型, 1普通 2上划 3下拨
* 业务类型(1普通2上划3下拨)
*/
@ApiModelProperty("业务类型(1普通2上划3下拨)")
private String biztype;

View File

@ -27,7 +27,7 @@ public class LngJkRpBill {
*/
@ApiModelProperty("电子回单id")
@TableId
private String id;
private Long id;
/**
* 单据编号

View File

@ -12,10 +12,12 @@ import com.xjrsoft.module.externalApi.client.FsspHttpClient;
import com.xjrsoft.module.externalApi.config.FsspConfig;
import com.xjrsoft.module.externalApi.dto.LngJkRpBillDto;
import com.xjrsoft.module.externalApi.dto.LngJkRpDto;
import com.xjrsoft.module.externalApi.entity.LngBJkBankaccount;
import com.xjrsoft.module.externalApi.entity.LngJkRp;
import com.xjrsoft.module.externalApi.entity.LngJkRpBill;
import com.xjrsoft.module.externalApi.request.*;
import com.xjrsoft.module.externalApi.response.*;
import com.xjrsoft.module.externalApi.service.LngBJkBankaccountService;
import com.xjrsoft.module.externalApi.service.LngJkRpBillService;
import com.xjrsoft.module.externalApi.service.LngJkRpService;
import com.xjrsoft.module.system.client.IFileClient;
@ -30,6 +32,7 @@ import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@Slf4j
@Component
@ -39,6 +42,8 @@ public class FsspJobHandler {
private RedisUtil redisUtil;
private LngBJkBankaccountService lngBJkBankaccountService;
private LngJkRpService lngJkRpService;
private LngJkRpBillService lngJkRpBillService;
@ -53,11 +58,13 @@ public class FsspJobHandler {
public FsspJobHandler(FsspConfig config,
RedisUtil redisUtil,
LngBJkBankaccountService lngBJkBankaccountService,
LngJkRpService lngJkRpService,
LngJkRpBillService lngJkRpBillService,
IFileClient iFileClient) {
this.config = config;
this.redisUtil = redisUtil;
this.lngBJkBankaccountService = lngBJkBankaccountService;
this.lngJkRpService = lngJkRpService;
this.lngJkRpBillService = lngJkRpBillService;
this.iFileClient = iFileClient;
@ -66,7 +73,7 @@ public class FsspJobHandler {
private String getAppToken() {
AppTokenReq appTokenReq = new AppTokenReq();
appTokenReq.setAppId(config.getAppId());
appTokenReq.setAppSecuret(config.getAppSecuret());
appTokenReq.setAppSecuret(config.getAppSecret());
appTokenReq.setTenantid(config.getTenantid());
appTokenReq.setAccountId(config.getAccountId());
appTokenReq.setLanguage(config.getLanguage());
@ -106,17 +113,34 @@ public class FsspJobHandler {
}
@XxlJob("yhjymxJobHandler")
public void yhjymxJobHandler(Integer pageNo) {
public void yhjymxJobHandler() {
log.info("定时任务---银行交易明细查询---开始");
FsspYhjymxReq fsspYhjymxReq = new FsspYhjymxReq();
fsspYhjymxReq.setOrgNumber(config.getOrgNumber());
fsspYhjymxReq.setAccountbank(config.getAccountbank());
fsspYhjymxReq.setBankcheckflag(null);
// 开始时间必须小于等于结束时间且开始时间和结束时间不可相差60天以上
fsspYhjymxReq.setBeginDate(LocalDateTime.now());
fsspYhjymxReq.setEndDate(LocalDateTime.now());
fsspYhjymxReq.setPageSize(100);
fsspYhjymxReq.setPageNo(pageNo == null ? 1 : pageNo);
LocalDateTime endDate = LocalDateTime.now();
LocalDateTime beginDate = endDate.minusDays(2);
Integer pageSize = config.getPageSize() == null ? 100 : config.getPageSize();
FsspYhjymxReq fsspYhjymxReq;
Map<String, List<LngBJkBankaccount>> orgAccountMap = this.queryOrgAccountMap();
for (String orgNumber : orgAccountMap.keySet()) {
List<LngBJkBankaccount> list = orgAccountMap.get(orgNumber);
for (LngBJkBankaccount lngBJkBankaccount : list) {
fsspYhjymxReq = new FsspYhjymxReq();
fsspYhjymxReq.setOrgNumber(orgNumber);
fsspYhjymxReq.setAccountbank(lngBJkBankaccount.getAccountbankNumber());
// 非必填项
// fsspYhjymxReq.setBankcheckflag(null);
fsspYhjymxReq.setBeginDate(beginDate);
fsspYhjymxReq.setEndDate(endDate);
fsspYhjymxReq.setPageSize(pageSize);
this.queryYhjymx(fsspYhjymxReq);
}
}
log.info("定时任务---电子回单信息查询---结束");
}
private void queryYhjymx(FsspYhjymxReq fsspYhjymxReq) {
Integer pageNo = fsspYhjymxReq.getPageNo() == null ? 1 : fsspYhjymxReq.getPageNo();
fsspYhjymxReq.setPageNo(pageNo);
List<LngJkRpDto> dtoList = Lists.newArrayList();
Map<String, String> headers = Maps.newHashMap();
String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
@ -134,25 +158,52 @@ public class FsspJobHandler {
List<LngJkRp> list = BeanUtil.copyToList(dtoList, LngJkRp.class);
lngJkRpService.saveOrUpdateBatch(list);
if (!data.getLastPage()) {
yhjymxJobHandler(fsspYhjymxReq.getPageNo() + 1);
fsspYhjymxReq.setPageNo(pageNo + 1);
queryYhjymx(fsspYhjymxReq);
}
}
});
log.info("定时任务---电子回单信息查询---结束");
}
private Map<String, List<LngBJkBankaccount>> queryOrgAccountMap() {
List<LngBJkBankaccount> list = lngBJkBankaccountService.list();
if (CollectionUtils.isEmpty(list)) {
throw new BusinessException(BusinessCode.of(10903,"银行账户信息为空"));
}
Map<String, List<LngBJkBankaccount>> map = list.stream().collect(
Collectors.groupingBy(LngBJkBankaccount::getOrgNumber));
return map;
}
@XxlJob("dzhdxxJobHandler")
public void dzhdxxJobHandler(Integer pageNo) {
public void dzhdxxJobHandler() {
log.info("定时任务---电子回单信息查询---开始");
FsspDzhdxxReq fsspDzhdxxReq = new FsspDzhdxxReq();
fsspDzhdxxReq.setOrgNumber(config.getOrgNumber());
fsspDzhdxxReq.setAccountbank(config.getAccountbank());
fsspDzhdxxReq.setReceiptno(null);
// 开始时间必须小于等于结束时间且开始时间和结束时间不可相差60天以上
fsspDzhdxxReq.setBeginDate(LocalDateTime.now());
fsspDzhdxxReq.setEndDate(LocalDateTime.now());
fsspDzhdxxReq.setPageSize(100);
fsspDzhdxxReq.setPageNo(pageNo == null ? 1 : pageNo);
LocalDateTime endDate = LocalDateTime.now();
LocalDateTime beginDate = endDate.minusDays(2);
Integer pageSize = config.getPageSize() == null ? 100 : config.getPageSize();
FsspDzhdxxReq fsspDzhdxxReq;
Map<String, List<LngBJkBankaccount>> orgAccountMap = this.queryOrgAccountMap();
for (String orgNumber : orgAccountMap.keySet()) {
List<LngBJkBankaccount> list = orgAccountMap.get(orgNumber);
for (LngBJkBankaccount lngBJkBankaccount : list) {
fsspDzhdxxReq = new FsspDzhdxxReq();
fsspDzhdxxReq.setOrgNumber(orgNumber);
fsspDzhdxxReq.setAccountbank(lngBJkBankaccount.getAccountbankNumber());
// 非必填项
// fsspDzhdxxReq.setReceiptno(null);
fsspDzhdxxReq.setBeginDate(beginDate);
fsspDzhdxxReq.setEndDate(endDate);
fsspDzhdxxReq.setPageSize(pageSize);
this.queryDzhdxx(fsspDzhdxxReq);
}
}
log.info("定时任务---电子回单信息查询---结束");
}
private void queryDzhdxx(FsspDzhdxxReq fsspDzhdxxReq) {
Integer pageNo = fsspDzhdxxReq.getPageNo() == null ? 1 : fsspDzhdxxReq.getPageNo();
fsspDzhdxxReq.setPageNo(pageNo);
List<LngJkRpBillDto> dtoList = Lists.newArrayList();
Map<String, String> headers = Maps.newHashMap();
String accesstoken = redisUtil.get(FSSP_ACCESS_TOKEN);
@ -171,11 +222,11 @@ public class FsspJobHandler {
List<LngJkRpBill> list = BeanUtil.copyToList(dtoList, LngJkRpBill.class);
lngJkRpBillService.saveOrUpdateBatch(list);
if (!data.getLastPage()) {
dzhdxxJobHandler(fsspDzhdxxReq.getPageNo() + 1);
fsspDzhdxxReq.setPageNo(pageNo + 1);
queryDzhdxx(fsspDzhdxxReq);
}
}
});
log.info("定时任务---电子回单信息查询---结束");
}
@XxlJob("dzhdfjJobHandler")
@ -188,7 +239,8 @@ public class FsspJobHandler {
.in(LngJkRpBill::getStatusProc, statusList));
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(x -> {
downloadFile(x);
this.downloadFile(x);
lngJkRpBillService.updateById(x);
});
}
log.info("定时任务---批量下载电子回单附件---结束");
@ -199,11 +251,12 @@ public class FsspJobHandler {
if (StringUtils.isBlank(accesstoken)) {
accesstoken = this.getAccessToken();
}
byte[] fileByte = FsspHttpClient.downloadFile(lngJkRpBill.getFilepath(), accesstoken, config.getDzhdfjUrl());
FileUploadDto uploadDto = new FileUploadDto();
uploadDto.setBuffer(fileByte);
uploadDto.setTableName("lng_jk_rp_bill");
try {
byte[] fileByte = FsspHttpClient.downloadFile(lngJkRpBill.getFilepath(), accesstoken, config.getDzhdfjUrl());
FileUploadDto uploadDto = new FileUploadDto();
uploadDto.setTableId(lngJkRpBill.getId());
uploadDto.setTableName("lng_jk_rp_bill");
uploadDto.setBuffer(fileByte);
LngFileUploadVo vo = iFileClient.upload(uploadDto);
lngJkRpBill.setFilepathAttr(vo.getFilePath());
lngJkRpBill.setStatusProcAttr("S");
@ -218,11 +271,13 @@ public class FsspJobHandler {
@XxlJob("pzJobHandler")
public void pzJobHandler(Integer pageNo) {
FsspPzReq fsspPzReq = new FsspPzReq();
fsspPzReq.setOrgNumber(config.getOrgNumber());
fsspPzReq.setOrgNumber(null);
fsspPzReq.setBillno(null);
// 开始时间必须小于等于结束时间且开始时间和结束时间不可相差60天以上
fsspPzReq.setBeginDate(LocalDateTime.now());
fsspPzReq.setEndDate(LocalDateTime.now());
LocalDateTime endDate = LocalDateTime.now();
LocalDateTime beginDate = endDate.minusDays(2);
fsspPzReq.setBeginDate(beginDate);
fsspPzReq.setEndDate(endDate);
fsspPzReq.setSourcebill(null);
fsspPzReq.setPageSize(100);
fsspPzReq.setPageNo(pageNo == null ? 1 : pageNo);

View File

@ -0,0 +1,94 @@
package com.xjrsoft.module.externalApi.handler;
import com.google.api.client.util.Maps;
import com.xjrsoft.module.externalApi.client.PipeHttpClient;
import com.xjrsoft.module.externalApi.config.PipeConfig;
import com.xjrsoft.module.externalApi.response.GcqResponse;
import com.xjrsoft.module.externalApi.response.QyjlResponse;
import com.xjrsoft.module.externalApi.response.YhjlResponse;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
@Slf4j
@Component
public class PipeJobHandler {
private PipeConfig config;
public PipeJobHandler(PipeConfig config) {
this.config = config;
}
@XxlJob("yhjlJobHandler")
public void yhjlJobHandler() {
log.info("定时任务---用户计量接口---开始");
Map<String, String> param = Maps.newHashMap();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
param.put("prodDate", LocalDateTime.now().format(formatter));
param.put("clientCode", null);
PipeHttpClient.get(config.getFullYhjlUrl(), param, List.class, resp -> {
List<YhjlResponse> list = resp;
for (YhjlResponse yhjlResponse : list) {
}
});
log.info("定时任务---用户计量接口---结束");
}
@XxlJob("qyjlJobHandler")
public void qyjlJobHandler() {
log.info("定时任务---气源计量接口---开始");
Map<String, String> param = Maps.newHashMap();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
param.put("prodDate", LocalDateTime.now().format(formatter));
param.put("sourceCode", null);
PipeHttpClient.get(config.getFullQyjlUrl(), param, List.class, resp -> {
List<QyjlResponse> list = resp;
for (QyjlResponse qyjlResponse : list) {
}
});
log.info("定时任务---气源计量接口---结束");
}
@XxlJob("yhjljjpzJobHandler")
public void yhjljjpzJobHandler() {
log.info("定时任务---用户计量交接凭证---开始");
Map<String, String> param = Maps.newHashMap();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
param.put("prodDate", LocalDateTime.now().format(formatter));
param.put("clientCode", null);
byte[] fileByte = PipeHttpClient.downloadFile(config.getFullYhjljjpzUrl(), param);
log.info("定时任务---用户计量交接凭证---结束");
}
@XxlJob("gcqJobHandler")
public void gcqJobHandler() {
log.info("定时任务---管存气接口---开始");
Map<String, String> param = Maps.newHashMap();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
param.put("prodDate", LocalDateTime.now().format(formatter));
param.put("gcqJobHandler", null);
PipeHttpClient.get(config.getFullGcqUrl(), param, GcqResponse.class, resp -> {
GcqResponse gcqResponse = resp;
});
log.info("定时任务---管存气接口---结束");
}
@XxlJob("qzzfJobHandler")
public void qzzfJobHandler() {
log.info("定时任务---气质组分---开始");
Map<String, String> param = Maps.newHashMap();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
param.put("prodDate", LocalDateTime.now().format(formatter));
param.put("qzzfJobHandler", null);
byte[] fileByte = PipeHttpClient.downloadFile(config.getFullQzzfUrl(), param);
log.info("定时任务---气质组分---结束");
}
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.module.externalApi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.externalApi.entity.LngBJkBankaccount;
import org.apache.ibatis.annotations.Mapper;
/**
* @title: mapper
* @Author 管理员
* @Date: 2025-12-24
* @Version 1.0
*/
@Mapper
public interface LngBJkBankaccountMapper extends MPJBaseMapper<LngBJkBankaccount>, BaseMapper<LngBJkBankaccount> {
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.module.externalApi.service;
import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.extension.mapping.base.MPJDeepService;
import com.github.yulichang.extension.mapping.base.MPJRelationService;
import com.xjrsoft.module.externalApi.entity.LngBJkBankaccount;
/**
* @title: service
* @Author 管理员
* @Date: 2025-12-24
* @Version 1.0
*/
public interface LngBJkBankaccountService extends MPJBaseService<LngBJkBankaccount>, MPJDeepService<LngBJkBankaccount>, MPJRelationService<LngBJkBankaccount> {
}

View File

@ -0,0 +1,20 @@
package com.xjrsoft.module.externalApi.service.impl;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.xjrsoft.module.externalApi.entity.LngBJkBankaccount;
import com.xjrsoft.module.externalApi.mapper.LngBJkBankaccountMapper;
import com.xjrsoft.module.externalApi.service.LngBJkBankaccountService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @title: service
* @Author 管理员
* @Date: 2025-12-24
* @Version 1.0
*/
@Service
@AllArgsConstructor
public class LngBJkBankaccountServiceImpl extends MPJBaseServiceImpl<LngBJkBankaccountMapper, LngBJkBankaccount> implements LngBJkBankaccountService {
}

View File

@ -0,0 +1,128 @@
package com.xjrsoft.module.plan.controller;
import java.util.List;
import javax.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.pictc.datalog.DataOperationContent;
import com.pictc.datalog.DataOperationListener;
import com.pictc.enums.ApproveCodeEnum;
import com.xjrsoft.common.model.result.R;
import com.xjrsoft.common.page.ConventPage;
import com.xjrsoft.common.page.PageOutput;
import com.xjrsoft.common.utils.VoToColumnUtil;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
import com.xjrsoft.module.plan.dto.LngPlanYearDemandHdrPageDto;
import com.xjrsoft.module.plan.dto.UpdateLngPlanYearDemandHdrDto;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdr;
import com.xjrsoft.module.plan.service.IPlanYearDemandHdrService;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrPageVo;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrVo;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@RestController
@RequestMapping("/plan/planYearDemandHdr")
@Api(value = "/plan" + "/planYearDemandHdr",tags = "客户年度需求提报代码")
@AllArgsConstructor
public class PlanYearDemandHdrController {
private final IPlanYearDemandHdrService planYearDemandHdrService;
private final DatalogService dataService;
@GetMapping(value = "/page")
@ApiOperation(value="LngPlanYearDemandHdr列表(分页)")
@SaCheckPermission("planYearDemandHdr:list")
public R page(@Valid LngPlanYearDemandHdrPageDto dto){
LambdaQueryWrapper<LngPlanYearDemandHdr> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(ObjectUtil.isNotNull(dto.getId()),LngPlanYearDemandHdr::getId,dto.getId())
//.like(StrUtil.isNotBlank(dto.getPlanYear()),LngPlanYearDemandHdr::getPlanYear,dto.getPlanYear())
//.like(StrUtil.isNotBlank(dto.getDemandVerNo()),LngPlanYearDemandHdr::getDemandVerNo,dto.getDemandVerNo())
.like(StrUtil.isNotBlank(dto.getCuCode()),LngPlanYearDemandHdr::getCuCode,dto.getCuCode())
.like(StrUtil.isNotBlank(dto.getNote()),LngPlanYearDemandHdr::getNote,dto.getNote())
.like(StrUtil.isNotBlank(dto.getReply()),LngPlanYearDemandHdr::getReply,dto.getReply())
.like(StrUtil.isNotBlank(dto.getApproCode()),LngPlanYearDemandHdr::getApproCode,dto.getApproCode())
.orderByDesc(LngPlanYearDemandHdr::getId)
.select(LngPlanYearDemandHdr.class,x -> VoToColumnUtil.fieldsToColumns(LngPlanYearDemandHdrPageVo.class).contains(x.getProperty()));
IPage<LngPlanYearDemandHdr> page = planYearDemandHdrService.page(ConventPage.getPage(dto), queryWrapper);
PageOutput<LngPlanYearDemandHdrPageVo> pageOutput = ConventPage.getPageOutput(page, LngPlanYearDemandHdrPageVo.class);
return R.ok(pageOutput);
}
@GetMapping(value = "/info")
@ApiOperation(value="根据id查询LngPlanYearDemandHdr信息")
@SaCheckPermission("planYearDemandHdr:detail")
public R info(@RequestParam Long id){
LngPlanYearDemandHdrVo lngPlanYearDemandHdr = planYearDemandHdrService.getInfoById(id);
if (lngPlanYearDemandHdr == null) {
return R.error("找不到此数据!");
}
return R.ok(lngPlanYearDemandHdr);
}
@GetMapping(value = "/datalog")
@ApiOperation(value="根据id查询LngPlanYearDemandHdr数据详细日志")
@SaCheckPermission("planYearDemandHdr:datalog")
public R datalog(@RequestParam Long id){
List<DataChangeLogVo> logs = dataService.findLogsByEntityId(UpdateLngPlanYearDemandHdrDto.class,id);
return R.ok(logs);
}
@PutMapping
@ApiOperation(value = "修改LngPlanYearDemandHdr")
@SaCheckPermission("planYearDemandHdr:edit")
public R update(@Valid @RequestBody UpdateLngPlanYearDemandHdrDto dto){
return R.ok(dataService.updateById(dto));
}
@PostMapping(value="/reject")
@ApiOperation(value = "驳回LngPlanYearDemandHdr")
//@SaCheckPermission("planYearDemandHdr:edit")
public R reject(@Valid @RequestBody UpdateLngPlanYearDemandHdrDto dto){
LngPlanYearDemandHdr lngPlanYearDemandHdr = planYearDemandHdrService.getById(dto.getId());
lngPlanYearDemandHdr.setApproCode(ApproveCodeEnum.YBH.getCode());
lngPlanYearDemandHdr.setReply(dto.getReply());
dataService.updateById(lngPlanYearDemandHdr,new DataOperationListener<LngPlanYearDemandHdr>() {
@Override
public LngPlanYearDemandHdr before(DataOperationContent<LngPlanYearDemandHdr> content) {
return null;
}
@Override
public LngPlanYearDemandHdr after(DataOperationContent<LngPlanYearDemandHdr> content) {
//callSubmit(dto,content);
return null;
}
});
return R.ok();
}
}

View File

@ -0,0 +1,167 @@
package com.xjrsoft.module.plan.controller;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.pictc.enums.ApproveCodeEnum;
import com.pictc.enums.BusinessCode;
import com.xjrsoft.common.exception.BusinessException;
import com.xjrsoft.common.model.result.R;
import com.xjrsoft.common.page.ConventPage;
import com.xjrsoft.common.page.PageOutput;
import com.xjrsoft.common.utils.ExcelUtil;
import com.xjrsoft.common.utils.VoToColumnUtil;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
import com.xjrsoft.module.plan.dto.LngPlanYearDemandHdrPageDto;
import com.xjrsoft.module.plan.dto.UpdateLngPlanYearDemandHdrDto;
import com.xjrsoft.module.plan.dto.UpdateLngPlanYearDemandHdrEcDto;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdrEc;
import com.xjrsoft.module.plan.service.IPlanYearDemandHdrEcService;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrEcPageVo;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrEcVo;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrPageVo;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandVo;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
/**
* @title: 客户年度需求提报--电商
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@RestController
@RequestMapping("/plan" + "/planYearDemandHdrEc")
@Api(value = "/plan" + "/planYearDemandHdrEc",tags = "客户年度需求提报--电商代码")
@AllArgsConstructor
public class PlanYearDemandHdrEcController {
private final IPlanYearDemandHdrEcService planYearDemandHdrEcService;
private final DatalogService dataService;
@GetMapping(value = "/page")
@ApiOperation(value="LngPlanYearDemandHdr列表(分页)")
@SaCheckPermission("planYearDemandHdrEc:list")
public R page(@Valid LngPlanYearDemandHdrPageDto dto){
LambdaQueryWrapper<LngPlanYearDemandHdrEc> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(ObjectUtil.isNotNull(dto.getId()),LngPlanYearDemandHdrEc::getId,dto.getId())
//.like(StrUtil.isNotBlank(dto.getPlanYear()),LngPlanYearDemandHdrEc::getPlanYear,dto.getPlanYear())
//.like(StrUtil.isNotBlank(dto.getDemandVerNo()),LngPlanYearDemandHdrEc::getDemandVerNo,dto.getDemandVerNo())
.like(StrUtil.isNotBlank(dto.getNote()),LngPlanYearDemandHdrEc::getNote,dto.getNote())
.like(StrUtil.isNotBlank(dto.getReply()),LngPlanYearDemandHdrEc::getReply,dto.getReply())
.like(StrUtil.isNotBlank(dto.getApproCode()),LngPlanYearDemandHdrEc::getApproCode,dto.getApproCode())
.orderByDesc(LngPlanYearDemandHdrEc::getId)
.select(LngPlanYearDemandHdrEc.class,x -> VoToColumnUtil.fieldsToColumns(LngPlanYearDemandHdrEcPageVo.class).contains(x.getProperty()));
IPage<LngPlanYearDemandHdrEc> page = planYearDemandHdrEcService.page(ConventPage.getPage(dto), queryWrapper);
PageOutput<LngPlanYearDemandHdrEcPageVo> pageOutput = ConventPage.getPageOutput(page, LngPlanYearDemandHdrEcPageVo.class);
return R.ok(pageOutput);
}
@GetMapping(value = "/info")
@ApiOperation(value="根据id查询LngPlanYearDemandHdr信息")
@SaCheckPermission("planYearDemandHdrEc:detail")
public R info(@RequestParam Long id){
LngPlanYearDemandHdrEcVo lngPlanYearDemandHdr = planYearDemandHdrEcService.getInfoById(id);
if (lngPlanYearDemandHdr == null) {
return R.error("找不到此数据!");
}
return R.ok(lngPlanYearDemandHdr);
}
@GetMapping(value = "/datalog")
@ApiOperation(value="根据id查询LngPlanYearDemandHdr数据详细日志")
@SaCheckPermission("planYearDemandHdrEc:datalog")
public R datalog(@RequestParam Long id){
List<DataChangeLogVo> logs = dataService.findLogsByEntityId(UpdateLngPlanYearDemandHdrDto.class,id);
return R.ok(logs);
}
@PostMapping
@ApiOperation(value = "新增LngPlanYearDemandHdr")
@SaCheckPermission("planYearDemandHdrEc:add")
public R add(@Valid @RequestBody UpdateLngPlanYearDemandHdrEcDto dto){
UpdateLngPlanYearDemandHdrEcDto res = dataService.insert(dto);
return R.ok(res.getId());
}
@PutMapping
@ApiOperation(value = "修改LngPlanYearDemandHdr")
@SaCheckPermission("planYearDemandHdrEc:edit")
public R update(@Valid @RequestBody UpdateLngPlanYearDemandHdrEcDto dto){
return R.ok(dataService.updateById(dto));
}
@PostMapping(value = "/saveAndSubmit")
@ApiOperation(value = "保存并提交LngPlanYearDemandHdr")
// @SaCheckPermission("planYearDemandHdrEc:add")
public R saveAndSubmit(@Valid @RequestBody UpdateLngPlanYearDemandHdrEcDto dto){
planYearDemandHdrEcService.saveAndSubmit(dto);
return R.ok();
}
@PostMapping(value = "/save")
@ApiOperation(value = "保存并提交LngPlanYearDemandHdr")
// @SaCheckPermission("planYearDemandHdrEc:add")
public R save(@Valid @RequestBody UpdateLngPlanYearDemandHdrEcDto dto){
planYearDemandHdrEcService.save(dto);
return R.ok();
}
@DeleteMapping
@ApiOperation(value = "删除")
@SaCheckPermission("planYearDemandHdrEc:delete")
public R delete(@Valid @RequestBody List<Long> ids){
return R.ok(dataService.deleteByIds(UpdateLngPlanYearDemandHdrEcDto.class, ids));
}
@GetMapping(value="/toChange")
@ApiOperation(value = "变更planYearDemandHdrEc")
//@SaCheckPermission("demand:toChange")
public R toChange(@Valid @RequestParam Long id){
return R.ok(planYearDemandHdrEcService.toChange(id));
}
@GetMapping("/export")
@ApiOperation(value = "导出")
@SaCheckPermission("planYearDemandHdrEc:export")
public ResponseEntity<byte[]> exportData(@Valid LngPlanYearDemandHdrPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
List<LngPlanYearDemandHdrPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<LngPlanYearDemandHdrPageVo>) page(dto).getData()).getList();
ExcelUtil.transExcelData(customerList, false);
ByteArrayOutputStream bot = new ByteArrayOutputStream();
EasyExcel.write(bot, LngPlanYearDemandHdrPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
ByteArrayOutputStream resultBot = ExcelUtil.renderExportRequiredHead(bot);
return R.fileStream(resultBot.toByteArray(), "PlanYearDemandHdrEc" + ExcelTypeEnum.XLSX.getValue());
}
}

View File

@ -0,0 +1,221 @@
package com.xjrsoft.module.plan.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.pictc.annotations.datalog.LogTable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@TableName("lng_plan_year_demand")
@ApiModel(value = "客户年度需求提报对象", description = "客户年度需求提报")
public class LngPlanYearDemand implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long id;
/**
* 年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)
*/
@ApiModelProperty("年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long pydhId;
/**
* 品种
*/
@ApiModelProperty("品种")
private String catCode;
/**
* 单位(隐藏)
*/
@ApiModelProperty("单位(隐藏)")
private String uomCode;
/**
* 1月
*/
@ApiModelProperty("1月")
@TableField(value="qty_01",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty01;
/**
* 2月
*/
@ApiModelProperty("2月")
@TableField(value="qty_02",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty02;
/**
* 3月
*/
@ApiModelProperty("3月")
@TableField(value="qty_03",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty03;
/**
* 4月
*/
@ApiModelProperty("4月")
@TableField(value="qty_04",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty04;
/**
* 5月
*/
@ApiModelProperty("5月")
@TableField(value="qty_05",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty05;
/**
* 6月
*/
@ApiModelProperty("6月")
@TableField(value="qty_06",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty06;
/**
* 7月
*/
@ApiModelProperty("7月")
@TableField(value="qty_07",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty07;
/**
* 8月
*/
@ApiModelProperty("8月")
@TableField(value="qty_08",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty08;
/**
* 9月
*/
@ApiModelProperty("9月")
@TableField(value="qty_09",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty09;
/**
* 10月
*/
@ApiModelProperty("10月")
@TableField(value="qty_10",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty10;
/**
* 11月
*/
@ApiModelProperty("11月")
@TableField(value="qty_11",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty11;
/**
* 12月
*/
@ApiModelProperty("12月")
@TableField(value="qty_12",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty12;
/**
* 次年1月
*/
@ApiModelProperty("次年1月")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyN1;
/**
* 次年2月
*/
@ApiModelProperty("次年2月")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyN2;
/**
* 次年3月
*/
@ApiModelProperty("次年3月")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyN3;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long ruleUserId;
}

View File

@ -0,0 +1,220 @@
package com.xjrsoft.module.plan.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@TableName("lng_plan_year_demand")
@ApiModel(value = "客户年度需求提报对象", description = "客户年度需求提报")
public class LngPlanYearDemandEc implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long id;
/**
* 年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)
*/
@ApiModelProperty("年度计划-需求-主表主键(lng_plan_year_demand_hdr.id)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long pydhId;
/**
* 品种
*/
@ApiModelProperty("品种")
private String catCode;
/**
* 单位(隐藏)
*/
@ApiModelProperty("单位(隐藏)")
private String uomCode;
/**
* 1月
*/
@ApiModelProperty("1月")
@TableField(value="qty_01",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty01;
/**
* 2月
*/
@ApiModelProperty("2月")
@TableField(value="qty_02",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty02;
/**
* 3月
*/
@ApiModelProperty("3月")
@TableField(value="qty_03",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty03;
/**
* 4月
*/
@ApiModelProperty("4月")
@TableField(value="qty_04",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty04;
/**
* 5月
*/
@ApiModelProperty("5月")
@TableField(value="qty_05",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty05;
/**
* 6月
*/
@ApiModelProperty("6月")
@TableField(value="qty_06",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty06;
/**
* 7月
*/
@ApiModelProperty("7月")
@TableField(value="qty_07",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty07;
/**
* 8月
*/
@ApiModelProperty("8月")
@TableField(value="qty_08",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty08;
/**
* 9月
*/
@ApiModelProperty("9月")
@TableField(value="qty_09",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty09;
/**
* 10月
*/
@ApiModelProperty("10月")
@TableField(value="qty_10",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty10;
/**
* 11月
*/
@ApiModelProperty("11月")
@TableField(value="qty_11",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty11;
/**
* 12月
*/
@ApiModelProperty("12月")
@TableField(value="qty_12",updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qty12;
/**
* 次年1月
*/
@ApiModelProperty("次年1月")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyN1;
/**
* 次年2月
*/
@ApiModelProperty("次年2月")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyN2;
/**
* 次年3月
*/
@ApiModelProperty("次年3月")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyN3;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long ruleUserId;
}

View File

@ -0,0 +1,145 @@
package com.xjrsoft.module.plan.entity;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogTable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户年度需求提报
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@TableName("lng_plan_year_demand_hdr")
@LogTable(source="lng_plan_year_demand_hdr",name="客户年度需求提报")
@ApiModel(value = "客户年度需求提报对象", description = "客户年度需求提报")
public class LngPlanYearDemandHdr implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
@LogField(name="主键",index=0)
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long id;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
@LogField(name="客户编码",index=1)
private String cuCode;
/**
* 年度
*/
@ApiModelProperty("年度")
@LogField(name="年度",index=2)
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
@LogField(name="版本(自动生成每客户每年从1开始)",index=3)
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
@LogField(name="最新版(Y-是N-否每客户每年只有一个Y)",index=4)
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
@LogField(name="审批状态",index=5)
private String approCode;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
@LogField(name="批复意见",index=6)
private String reply;
/**
* 备注
*/
@ApiModelProperty("备注")
@LogField(name="备注",index=7)
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
@LogField(name="租户id",index=8)
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long ruleUserId;
}

View File

@ -0,0 +1,137 @@
package com.xjrsoft.module.plan.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.github.yulichang.annotation.EntityMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 客户年度需求提报--电商
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Data
@TableName("lng_plan_year_demand_hdr")
@ApiModel(value = "客户年度需求提报--电商对象", description = "客户年度需求提报--电商")
public class LngPlanYearDemandHdrEc implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long id;
/**
* 客户编码
*/
@ApiModelProperty("客户编码")
private String cuCode;
/**
* 年度
*/
@ApiModelProperty("年度")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Short planYear;
/**
* 版本(自动生成每客户每年从1开始)
*/
@ApiModelProperty("版本(自动生成每客户每年从1开始)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Byte demandVerNo;
/**
* 最新版(Y-是N-否每客户每年只有一个Y)
*/
@ApiModelProperty("最新版(Y-是N-否每客户每年只有一个Y)")
private String lastSign;
/**
* 审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)
*/
@ApiModelProperty("审批状态(WTJ-未提交/YTJ-已提交/YBH-已驳回)")
private String approCode;
/**
* 批复意见
*/
@ApiModelProperty("批复意见")
private String reply;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE, updateStrategy = FieldStrategy.IGNORED)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.IGNORED)
private Long ruleUserId;
}

View File

@ -0,0 +1,28 @@
package com.xjrsoft.module.plan.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandEc;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandEcVo;
/**
* @title: mapper
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Mapper
public interface LngPlanYearDemandEcMapper extends MPJBaseMapper<LngPlanYearDemandEc>,BaseMapper<LngPlanYearDemandEc> {
@Select("SELECT pyd.* "+
" FROM lng_plan_year_demand pyd" +
" WHERE pyd.pydh_id = #{pydhId}")
List<LngPlanYearDemandEcVo> queryLngPlanYearDemandEcList(@Param("pydhId") Long pydhId);
}

View File

@ -0,0 +1,26 @@
package com.xjrsoft.module.plan.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdrEc;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrEcVo;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrVo;
/**
* @title: mapper
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Mapper
public interface LngPlanYearDemandHdrEcMapper extends BaseMapper<LngPlanYearDemandHdrEc> {
@Select("SELECT dh.*,cu.cu_sname AS cu_name"+
" FROM lng_plan_year_demand_hdr dh" +
" LEFT JOIN lng_customer cu ON cu.cu_code=dh.cu_code"+
" WHERE dh.id = #{id}")
LngPlanYearDemandHdrEcVo queryLngPlanYearDemandHdrEcById(@Param("id") Long id);
}

View File

@ -0,0 +1,27 @@
package com.xjrsoft.module.plan.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdr;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrVo;
/**
* @title: mapper
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Mapper
public interface LngPlanYearDemandHdrMapper extends BaseMapper<LngPlanYearDemandHdr> {
@Select("SELECT dh.*,cu.cu_sname AS cu_name"+
" FROM lng_plan_year_demand_hdr dh" +
" LEFT JOIN lng_customer cu ON cu.cu_code=dh.cu_code"+
" WHERE dh.id = #{id}")
LngPlanYearDemandHdrVo queryLngPlanYearDemandHdrById(@Param("id") Long id);
}

View File

@ -0,0 +1,27 @@
package com.xjrsoft.module.plan.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.plan.entity.LngPlanYearDemand;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandVo;
/**
* @title: mapper
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Mapper
public interface LngPlanYearDemandMapper extends MPJBaseMapper<LngPlanYearDemand>,BaseMapper<LngPlanYearDemand> {
@Select("SELECT pyd.* "+
" FROM lng_plan_year_demand pyd" +
" WHERE pyd.pydh_id = #{pydhId}")
List<LngPlanYearDemandVo> queryLngPlanYearDemandList(@Param("pydhId") Long pydhId);
}

View File

@ -0,0 +1,26 @@
package com.xjrsoft.module.plan.service;
import javax.validation.Valid;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xjrsoft.module.plan.dto.UpdateLngPlanYearDemandHdrEcDto;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdrEc;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrEcVo;
/**
* @title: service
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
public interface IPlanYearDemandHdrEcService extends IService<LngPlanYearDemandHdrEc> {
LngPlanYearDemandHdrEcVo getInfoById(Long id);
void saveAndSubmit(@Valid UpdateLngPlanYearDemandHdrEcDto dto);
void save(@Valid UpdateLngPlanYearDemandHdrEcDto dto);
LngPlanYearDemandHdrEcVo toChange(@Valid Long id);
}

View File

@ -0,0 +1,23 @@
package com.xjrsoft.module.plan.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.extension.mapping.base.MPJDeepService;
import com.github.yulichang.extension.mapping.base.MPJRelationService;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdr;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrVo;
import lombok.Data;
import java.util.List;
/**
* @title: service
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
public interface IPlanYearDemandHdrService extends IService<LngPlanYearDemandHdr> {
LngPlanYearDemandHdrVo getInfoById(Long id);
}

View File

@ -0,0 +1,196 @@
package com.xjrsoft.module.plan.service.impl;
import java.util.List;
import javax.validation.Valid;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pictc.datalog.DataOperationContent;
import com.pictc.datalog.DataOperationListener;
import com.pictc.enums.ApproveCodeEnum;
import com.pictc.enums.BusinessCode;
import com.xjrsoft.common.exception.BusinessException;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.plan.dto.UpdateLngPlanYearDemandHdrEcDto;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdrEc;
import com.xjrsoft.module.plan.mapper.LngPlanYearDemandEcMapper;
import com.xjrsoft.module.plan.mapper.LngPlanYearDemandHdrEcMapper;
import com.xjrsoft.module.plan.service.IPlanYearDemandHdrEcService;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandEcVo;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrEcVo;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import shade.powerjob.com.google.common.collect.Lists;
/**
* @title: service
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Service
@AllArgsConstructor
public class PlanYearDemandHdrEcServiceImpl extends ServiceImpl<LngPlanYearDemandHdrEcMapper, LngPlanYearDemandHdrEc> implements IPlanYearDemandHdrEcService {
private final LngPlanYearDemandHdrEcMapper lngPlanYearDemandHdrEcMapper;
private final LngPlanYearDemandEcMapper lngPlanYearDemandEcMapper;
private final DatalogService dataService;
@Override
public LngPlanYearDemandHdrEcVo getInfoById(Long id) {
LngPlanYearDemandHdrEcVo vo = lngPlanYearDemandHdrEcMapper.queryLngPlanYearDemandHdrEcById(id);
List<LngPlanYearDemandEcVo> deVoList = lngPlanYearDemandEcMapper.queryLngPlanYearDemandEcList(id);
vo.setLngPlanYearDemandList(deVoList);
return vo;
}
@Override
public void saveAndSubmit(@Valid UpdateLngPlanYearDemandHdrEcDto dto) {
dto.setApproCode(ApproveCodeEnum.YTJ.getCode());
if(StrUtil.isBlank(dto.getCuCode())) {
throw new BusinessException(BusinessCode.of(10500,"客户编码不能为空"));
}
if(!checkIfCanSave(dto.getCuCode(),dto.getId())) {
throw new BusinessException(BusinessCode.of(10500,"存在未提交或已驳回的需求,不可保存数据"));
}
if(dto.getId() != null) {
LngPlanYearDemandHdrEc demand = this.getById(dto.getId());
if (demand == null) {
throw new BusinessException(BusinessCode.of(10500,"找不到此数据!"));
}
dataService.updateById(dto,new DataOperationListener<UpdateLngPlanYearDemandHdrEcDto>() {
@Override
public UpdateLngPlanYearDemandHdrEcDto before(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
return null;
}
@Override
public UpdateLngPlanYearDemandHdrEcDto after(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
//callSubmit(dto,content);
return null;
}
});
}else {
dto.setId(IdUtil.getSnowflakeNextId());
dataService.insert(dto,new DataOperationListener<UpdateLngPlanYearDemandHdrEcDto>() {
@Override
public UpdateLngPlanYearDemandHdrEcDto before(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
return null;
}
@Override
public UpdateLngPlanYearDemandHdrEcDto after(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
//callSubmit(dto,content);
return null;
}
});
}
}
@Override
public void save(@Valid UpdateLngPlanYearDemandHdrEcDto dto) {
dto.setApproCode(ApproveCodeEnum.WTJ.getCode());
if(dto.getDemandVerNo() == null) {
dto.setDemandVerNo((byte) 1);
}
if(StrUtil.isBlank(dto.getCuCode())) {
throw new BusinessException(BusinessCode.of(10500,"客户编码不能为空"));
}
if(!checkIfCanSave(dto.getCuCode(),dto.getId())) {
throw new BusinessException(BusinessCode.of(10500,"存在未提交或已驳回的需求,不可保存数据"));
}
if(dto.getId() != null) {
LngPlanYearDemandHdrEc lngPngDemand = this.getById(dto.getId());
if (lngPngDemand == null) {
throw new BusinessException(BusinessCode.of(10500,"找不到此数据!"));
}
dataService.updateById(dto,new DataOperationListener<UpdateLngPlanYearDemandHdrEcDto>() {
@Override
public UpdateLngPlanYearDemandHdrEcDto before(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
return null;
}
@Override
public UpdateLngPlanYearDemandHdrEcDto after(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
//callSubmit(dto,content);
return null;
}
});
}else {
dto.setId(IdUtil.getSnowflakeNextId());
dataService.insert(dto,new DataOperationListener<UpdateLngPlanYearDemandHdrEcDto>() {
@Override
public UpdateLngPlanYearDemandHdrEcDto before(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
return null;
}
@Override
public UpdateLngPlanYearDemandHdrEcDto after(DataOperationContent<UpdateLngPlanYearDemandHdrEcDto> content) {
//callSubmit(dto,content);
return null;
}
});
}
}
@Override
public LngPlanYearDemandHdrEcVo toChange(@Valid Long id) {
LngPlanYearDemandHdrEcVo res = this.getInfoById(id);
if (res == null) {
throw new BusinessException(BusinessCode.of(10500,"找不到此数据!"));
}
res.setId(null);
res.setDemandVerNo((byte) (res.getDemandVerNo()+(byte)1));
res.setLastSign("Y");
res.setApproCode(ApproveCodeEnum.WTJ.getCode());
res.setLastSign("Y");
if(res.getLngPlanYearDemandList() != null) {
for(LngPlanYearDemandEcVo pdp: res.getLngPlanYearDemandList()) {
pdp.setId(null);
}
}
return res;
}
private Boolean checkIfCanSave(String cuCode,Long id){
LambdaQueryWrapper<LngPlanYearDemandHdrEc> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LngPlanYearDemandHdrEc::getCuCode, cuCode);
if(id != null) {
queryWrapper.ne(LngPlanYearDemandHdrEc::getId, id);
}
List<String> approCodeList = Lists.newArrayList();
approCodeList.add(ApproveCodeEnum.WTJ.getCode());
approCodeList.add(ApproveCodeEnum.YBH.getCode());
queryWrapper.in(LngPlanYearDemandHdrEc::getApproCode, approCodeList);
Long count = lngPlanYearDemandHdrEcMapper.selectCount(queryWrapper);
return count>0?false:true;
}
}

View File

@ -0,0 +1,40 @@
package com.xjrsoft.module.plan.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xjrsoft.module.plan.entity.LngPlanYearDemandHdr;
import com.xjrsoft.module.plan.mapper.LngPlanYearDemandHdrMapper;
import com.xjrsoft.module.plan.mapper.LngPlanYearDemandMapper;
import com.xjrsoft.module.plan.service.IPlanYearDemandHdrService;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandHdrVo;
import com.xjrsoft.module.plan.vo.LngPlanYearDemandVo;
import lombok.AllArgsConstructor;
/**
* @title: service
* @Author 管理员
* @Date: 2026-04-09
* @Version 1.0
*/
@Service
@AllArgsConstructor
public class PlanYearDemandHdrServiceImpl extends ServiceImpl<LngPlanYearDemandHdrMapper, LngPlanYearDemandHdr> implements IPlanYearDemandHdrService {
private LngPlanYearDemandHdrMapper lngPlanYearDemandHdrMapper;
private LngPlanYearDemandMapper lngPlanYearDemandMapper;
@Override
public LngPlanYearDemandHdrVo getInfoById(Long id) {
LngPlanYearDemandHdrVo vo = lngPlanYearDemandHdrMapper.queryLngPlanYearDemandHdrById(id);
List<LngPlanYearDemandVo> deVoList = lngPlanYearDemandMapper.queryLngPlanYearDemandList(id);
vo.setLngPlanYearDemandList(deVoList);
return vo;
}
}

View File

@ -57,17 +57,21 @@ xjrsoft:
fssp:
app-token-url: https://esb-test.geg.com.cn:8443/gw/query-uat-service/ierp/api/getAppToken.do
app-id: CWT
app-securet: @pK9WM85TTweSnlckk1uJ80rX8cuzDegk
app-secret: @pK9WM85TTweSnlckk1uJ80rX8cuzDegk
tenantid: ierpuat
accountId: 2372076203864489984
language: zh_CN
page-size: 100
login-url: https://esb-test.geg.com.cn:8443/gw/query-uat-service/ierp/api/login.do
user: 111
usertype: 111
user: ID-000023
yhjymx-url: https://esb-test.geg.com.cn:8443/gw/待注册后补充
org-number: 111
accountbank: 111
dzhdxx-url: https://esb-test.geg.com.cn:8443/gw/cas-uat-service/ierp/kapi/v2/dlkf/bei/bei_elecreceipt/getList
dzhdfj-url: https://esb-test.geg.com.cn:8443/gw/cas-uat-service/ierp/attachment/download.do
pz-url: https://esb-test.geg.com.cn:8443/gw/cas-uat-service/ierp/kapi/v2/dlkf/gl/gl_voucher/batchquery
pipe:
base-url: http://123.138.69.234:17196
yhjl-url: /gdny-api/prod/api/clientGas
qyjl-url: /gdny-api/prod/api/sourceGas
yhjljjpz-url: /gdny-api/prod/api/downloadGasTransferPdf
gcq-url: /gdny-api/prod/api/pipeGas
qzzf-url: /gdny-api/prod/api/downloadGasComposePdf