From f22f8001b9fec2079259819aec7af58dbc5117f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=A7=89=E5=8D=93?= Date: Tue, 10 Mar 2026 18:04:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contract/dto/AddLngContractPurLngDto.java | 53 ++++ .../contract/dto/UpdateLngContractPLDto.java | 212 ++++++++++++++ .../dto/UpdateLngContractPurLngDto.java | 67 +++++ .../module/contract/vo/LngContractPLVo.java | 262 ++++++++++++++++++ .../contract/vo/LngContractPurLngVo.java | 61 ++++ .../controller/ContractPurLngController.java | 165 +++++++++++ .../contract/entity/LngContractPurLng.java | 113 ++++++++ .../mapper/LngContractPurLngMapper.java | 17 ++ .../service/IContractPurLngService.java | 19 ++ .../impl/ContractPurLngServiceImpl.java | 88 ++++++ 10 files changed, 1057 insertions(+) create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractPurLngDto.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPLDto.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPurLngDto.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPLVo.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPurLngVo.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractPurLngController.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractPurLng.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractPurLngMapper.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractPurLngService.java create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractPurLngServiceImpl.java diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractPurLngDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractPurLngDto.java new file mode 100644 index 0000000..c6a4c3f --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/AddLngContractPurLngDto.java @@ -0,0 +1,53 @@ +package com.xjrsoft.module.contract.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + + + + + +/** +* @title: 国内LNG采购合同 +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class AddLngContractPurLngDto extends com.xjrsoft.common.model.base.BaseModel { + + private static final long serialVersionUID = 1L; + + /** + * 合同-档案主键 + */ + @ApiModelProperty("合同-档案主键") + private Long kId; + /** + * 长协/现货/年度合同(长协/现货/年度……) + */ + @ApiModelProperty("长协/现货/年度合同(长协/现货/年度……)") + private String longSpotCode; + /** + * 定价机制(固定价/公式价/对标价/无) + */ + @ApiModelProperty("定价机制(固定价/公式价/对标价/无)") + private String prcTypeCode; + /** + * 计量单位(隐藏) + */ + @ApiModelProperty("计量单位(隐藏)") + private String uomCode; + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPLDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPLDto.java new file mode 100644 index 0000000..90f7589 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPLDto.java @@ -0,0 +1,212 @@ +package com.xjrsoft.module.contract.dto; + +import com.pictc.annotations.datalog.*; +import com.xjrsoft.common.model.base.BaseModel; +import com.xjrsoft.module.system.dto.UpdateLngFileUploadDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + + + +/** +* @title: 国内LNG采购合同 +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@Data +@LogTable(source="lng_contract",name="国内LNG采购合同") +public class UpdateLngContractPLDto extends BaseModel implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @LogField(name="主键",index=0) + @ApiModelProperty("主键") + private Long id; + + /** + * 合同主体ID(天然气公司/惠贸) + */ + @LogField(name="合同主体ID",index=1) + @ApiModelProperty("合同主体ID(天然气公司/惠贸)") + private Long comId; + + /** + * 合同号 + */ + @LogField(name="合同号",index=2) + @ApiModelProperty("合同号") + private String kNo; + + /** + * 合同名称 + */ + @LogField(name="合同名称",index=3) + @ApiModelProperty("合同名称") + private String kName; + + /** + * 业务类型(PI-国际采购/SI-国际销售/PP-国内PNG采购/SL-国内LNG销售/SP-国内PNG销售/T-管道运输/P-加工服务) + */ + @LogField(name="业务类型",index=4) + @ApiModelProperty("业务类型(PI-国际采购/SI-国际销售/PP-国内PNG采购/SL-国内LNG销售/SP-国内PNG销售/T-管道运输/P-加工服务)") + private String typeCode; + + /** + * 是否线上(竞拍)合同(Y-是,N-否;线上合同不需要审批) + */ + @LogField(name="是否线上(竞拍)合同",index=5) + @ApiModelProperty("是否线上(竞拍)合同(Y-是,N-否;线上合同不需要审批)") + private String onlineSign; + + /** + * 交易对手类型(lng_supplier-供应商,lng_customer-客户;不显示) + */ + @LogField(name="交易对手类型",index=6) + @ApiModelProperty("交易对手类型(lng_supplier-供应商,lng_customer-客户;不显示)") + private String cpTableName; + + /** + * 主交易对手编码 + */ + @LogField(name="主交易对手编码",index=7) + @ApiModelProperty("主交易对手编码") + private String cpCode; + + /** + * 主交易对手名称 + */ + @LogField(name="主交易对手名称",index=8) + @ApiModelProperty("主交易对手名称") + private String cpName; + + /** + * 合同期限 + */ + @LogField(name="合同期限",index=9) + @ApiModelProperty("合同期限") + private String kPeriod; + + /** + * 合同签订日期 + */ + @LogField(name="合同签订日期",index=10) + @ApiModelProperty("合同签订日期") + private LocalDateTime dateSign; + + /** + * 有效期开始 + */ + @LogField(name="有效期开始",index=11) + @ApiModelProperty("有效期开始") + private LocalDateTime dateFrom; + + /** + * 有效期结束 + */ + @LogField(name="有效期结束",index=12) + @ApiModelProperty("有效期结束") + private LocalDateTime dateTo; + + /** + * 确认函开始日 + */ + @LogField(name="确认函开始日",index=13) + @ApiModelProperty("确认函开始日") + private LocalDateTime dateCfmFrom; + + /** + * 确认函结束日 + */ + @LogField(name="确认函结束日",index=14) + @ApiModelProperty("确认函结束日") + private LocalDateTime dateCfmTo; + + /** + * 币种 + */ + @LogField(name="币种",index=15) + @ApiModelProperty("币种") + private String curCode; + + /** + * 合同金额 + */ + @LogField(name="合同金额",index=16) + @ApiModelProperty("合同金额") + private String amountDesc; + + /** + * 我方联系人 + */ + @LogField(name="我方联系人",index=17) + @ApiModelProperty("我方联系人") + private Long empId; + + /** + * 业务部门ID + */ + @LogField(name="业务部门ID",index=18) + @ApiModelProperty("业务部门ID") + private Long bDeptId; + + /** + * 状态(未提交/审批中/已审批/已驳回) + */ + @LogField(name="状态",index=19) + @ApiModelProperty("状态(未提交/审批中/已审批/已驳回)") + private String approCode; + + /** + * 备注 + */ + @LogField(name="备注",index=20) + @ApiModelProperty("备注") + private String note; + + + /** + * lngContractPurLng + */ + @ApiModelProperty("lngContractPurLng子表") + @LogJoin(name = "lngContractPurLng子表", + columns = { + @LogJoinColumn(field = "id",relatedField = "kId", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngContractPurLngDto.class, type = JoinType.MANY) + private List lngContractPurLngList; + /** + * lngContractFactRel + */ + @ApiModelProperty("lngContractFactRel子表") + @LogJoin(name = "lngContractFactRel子表", + columns = { + @LogJoinColumn(field = "id",relatedField = "kId", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngContractFactRelDto.class, type = JoinType.MANY) + private List lngContractFactRelList; + /** + * lngContractApproRel + */ + @ApiModelProperty("lngContractApproRel子表") + @LogJoin(name = "lngContractApproRel子表", + columns = { + @LogJoinColumn(field = "id",relatedField = "tableId", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngContractApproRelDto.class, type = JoinType.MANY) + private List lngContractApproRelList; + + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + @LogAttrField + private List lngFileUploadList; +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPurLngDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPurLngDto.java new file mode 100644 index 0000000..b2d6f6c --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/dto/UpdateLngContractPurLngDto.java @@ -0,0 +1,67 @@ +package com.xjrsoft.module.contract.dto; + +import com.pictc.annotations.datalog.LogField; +import com.pictc.annotations.datalog.LogTable; +import com.xjrsoft.common.model.base.BaseModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + + + +/** +* @title: 国内LNG采购合同 +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@Data +@LogTable(source="lng_contract_pur_lng",name="国内LNG采购合同") +public class UpdateLngContractPurLngDto extends BaseModel implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @LogField(name="主键",index=0) + @ApiModelProperty("主键") + private Long id; + + /** + * 合同-档案主键 + */ + @LogField(name="合同-档案主键",index=1) + @ApiModelProperty("合同-档案主键") + private Long kId; + + /** + * 长协/现货/年度合同(长协/现货/年度……) + */ + @LogField(name="长协/现货/年度合同",index=2) + @ApiModelProperty("长协/现货/年度合同(长协/现货/年度……)") + private String longSpotCode; + + /** + * 定价机制(固定价/公式价/对标价/无) + */ + @LogField(name="定价机制",index=3) + @ApiModelProperty("定价机制(固定价/公式价/对标价/无)") + private String prcTypeCode; + + /** + * 计量单位(隐藏) + */ + @LogField(name="计量单位",index=4) + @ApiModelProperty("计量单位(隐藏)") + private String uomCode; + + /** + * 备注 + */ + @LogField(name="备注",index=5) + @ApiModelProperty("备注") + private String note; +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPLVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPLVo.java new file mode 100644 index 0000000..c3c82f4 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPLVo.java @@ -0,0 +1,262 @@ +package com.xjrsoft.module.contract.vo; + +import com.xjrsoft.common.annotation.Trans; +import com.xjrsoft.common.enums.TransType; +import com.xjrsoft.module.sales.vo.LngApproVo; +import com.xjrsoft.module.system.vo.LngFileUploadVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; +import java.util.List; + +/** +* @title: 表单出参 +* @Author 管理员 +* @Date: 2025-12-30 +* @Version 1.0 +*/ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class LngContractPLVo { + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long id; + + + /** + * 合同主体ID(天然气公司/惠贸) + */ + @ApiModelProperty("合同主体ID(天然气公司/惠贸)") + @Trans(type = TransType.DEPT, transToFieldName = "comName") + private Long comId; + + private String comName; + + + /** + * 合同号 + */ + @ApiModelProperty("合同号") + private String kNo; + + + /** + * 合同名称 + */ + @ApiModelProperty("合同名称") + private String kName; + + + /** + * 业务类型(PI-国际采购/SI-国际销售/PP-国内PNG采购/SL-国内LNG销售/SP-国内PNG销售/T-管道运输/P-加工服务) + */ + @ApiModelProperty("业务类型(PI-国际采购/SI-国际销售/PP-国内PNG采购/SL-国内LNG销售/SP-国内PNG销售/T-管道运输/P-加工服务)") + private String typeCode; + + + /** + * 是否线上(竞拍)合同(Y-是,N-否;线上合同不需要审批) + */ + @ApiModelProperty("是否线上(竞拍)合同(Y-是,N-否;线上合同不需要审批)") + private String onlineSign; + + + /** + * 交易对手类型(lng_supplier-供应商,lng_customer-客户;不显示) + */ + @ApiModelProperty("交易对手类型(lng_supplier-供应商,lng_customer-客户;不显示)") + private String cpTableName; + + + /** + * 主交易对手编码 + */ + @ApiModelProperty("主交易对手编码") + private String cpCode; + + + /** + * 主交易对手名称 + */ + @ApiModelProperty("主交易对手名称") + private String cpName; + + + /** + * 合同期限 + */ + @ApiModelProperty("合同期限") + private String kPeriod; + + + /** + * 合同签订日期 + */ + @ApiModelProperty("合同签订日期") + private LocalDateTime dateSign; + + + /** + * 有效期开始 + */ + @ApiModelProperty("有效期开始") + private LocalDateTime dateFrom; + + + /** + * 有效期结束 + */ + @ApiModelProperty("有效期结束") + private LocalDateTime dateTo; + + + /** + * 确认函开始日 + */ + @ApiModelProperty("确认函开始日") + private LocalDateTime dateCfmFrom; + + + /** + * 确认函结束日 + */ + @ApiModelProperty("确认函结束日") + private LocalDateTime dateCfmTo; + + + /** + * 币种 + */ + @ApiModelProperty("币种") + @Trans(type = TransType.CURRENCY, transToFieldName = "curName") + private String curCode; + private String curName; + + /** + * 合同金额 + */ + @ApiModelProperty("合同金额") + private String amountDesc; + + + /** + * 我方联系人 + */ + @ApiModelProperty("我方联系人") + @Trans(type = TransType.USER, transToFieldName = "empName") + private Long empId; + private String empName; + + + /** + * 业务部门ID + */ + @ApiModelProperty("业务部门ID") + @Trans(type = TransType.DEPT, transToFieldName = "bDeptName") + private Long bDeptId; + private String bDeptName; + + + /** + * 状态(未提交/审批中/已审批/已驳回) + */ + @ApiModelProperty("状态(未提交/审批中/已审批/已驳回)") + private String approCode; + + + /** + * 备注 + */ + @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; + + /** + * lngContractPurLng + */ + @ApiModelProperty("lngContractPurLng子表") + private List lngContractPurLngList; + /** + * lngContractFact + */ + @ApiModelProperty("lngContractFac子表") + private List lngContractFactList; + /** + * lngContractFactRel + */ + @ApiModelProperty("lngContractFactRel子表") + private List lngContractFactRelList; + /** + * lngApproVoList + */ + @ApiModelProperty("lngAppro子表") + private List lngApproVoList; + /** + * lngContractApproRel + */ + @ApiModelProperty("lngContractApproRel子表") + private List lngContractApproRelList; + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + private List lngFileUploadList; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPurLngVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPurLngVo.java new file mode 100644 index 0000000..b8eaa0b --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractPurLngVo.java @@ -0,0 +1,61 @@ +package com.xjrsoft.module.contract.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +/** +* @title: 表单出参 +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class LngContractPurLngVo extends com.xjrsoft.common.model.base.BaseModel{ + + /** + * 主键 + */ + @ApiModelProperty("主键") + private Long id; + + + /** + * 合同-档案主键 + */ + @ApiModelProperty("合同-档案主键") + private Long kId; + + + /** + * 长协/现货/年度合同(长协/现货/年度……) + */ + @ApiModelProperty("长协/现货/年度合同(长协/现货/年度……)") + private String longSpotCode; + + + /** + * 定价机制(固定价/公式价/对标价/无) + */ + @ApiModelProperty("定价机制(固定价/公式价/对标价/无)") + private String prcTypeCode; + + + /** + * 计量单位(隐藏) + */ + @ApiModelProperty("计量单位(隐藏)") + private String uomCode; + + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractPurLngController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractPurLngController.java new file mode 100644 index 0000000..7ce17cb --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/controller/ContractPurLngController.java @@ -0,0 +1,165 @@ +package com.xjrsoft.module.contract.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.api.client.util.Lists; +import com.pictc.datalog.DataOperationContent; +import com.pictc.datalog.DataOperationListener; +import com.pictc.enums.BusinessCode; +import com.pictc.enums.ExceptionCommonCode; +import com.pictc.jdbc.JdbcTools; +import com.pictc.jdbc.model.JdbcParam; +import com.pictc.utils.StringUtils; +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.VoToColumnUtil; +import com.xjrsoft.module.contract.dto.LngContractPageDto; +import com.xjrsoft.module.contract.dto.UpdateLngContractPLDto; +import com.xjrsoft.module.contract.entity.LngContract; +import com.xjrsoft.module.contract.service.IContractPurLngService; +import com.xjrsoft.module.contract.vo.LngContractPageVo; +import com.xjrsoft.module.datalog.service.DatalogService; +import com.xjrsoft.module.datalog.vo.DataChangeLogVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** +* @title: 国内LNG采购合同 +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@RestController +@RequestMapping("/contract" + "/contractPurLng") +@Api(value = "/contract" + "/contractPurLng",tags = "国内LNG采购合同代码") +@AllArgsConstructor +public class ContractPurLngController { + + + private final IContractPurLngService contractPurLngService; + private final DatalogService dataService; + + @GetMapping(value = "/page") + @ApiOperation(value="LngContract列表(分页)") + @SaCheckPermission("contractPurLng:list") + public R page(@Valid LngContractPageDto dto){ + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .eq(ObjectUtil.isNotNull(dto.getId()),LngContract::getId,dto.getId()) + .like(StrUtil.isNotBlank(dto.getKNo()),LngContract::getKNo,dto.getKNo()) + .like(StrUtil.isNotBlank(dto.getKName()),LngContract::getKName,dto.getKName()) + .like(StrUtil.isNotBlank(dto.getCpName()),LngContract::getCpName,dto.getCpName()) + .eq(ObjectUtil.isNotNull(dto.getComId()),LngContract::getComId,dto.getComId()) + .like(StrUtil.isNotBlank(dto.getApproCode()),LngContract::getApproCode,dto.getApproCode()) + .orderByDesc(LngContract::getId) + .select(LngContract.class,x -> VoToColumnUtil.fieldsToColumns(LngContractPageVo.class).contains(x.getProperty())); + IPage page = contractPurLngService.page(ConventPage.getPage(dto), queryWrapper); + PageOutput pageOutput = ConventPage.getPageOutput(page, LngContractPageVo.class); + return R.ok(pageOutput); + } + + @GetMapping(value = "/info") + @ApiOperation(value="根据id查询LngContract信息") + @SaCheckPermission("contractPurLng:detail") + public R info(@RequestParam Long id){ + return R.ok(contractPurLngService.getInfoById(id)); + } + + @GetMapping(value = "/datalog") + @ApiOperation(value="根据id查询LngContract数据详细日志") + @SaCheckPermission("contractPurLng:datalog") + public R datalog(@RequestParam Long id){ + List logs = dataService.findLogsByEntityId(UpdateLngContractPLDto.class,id); + return R.ok(logs); + } + + + @PostMapping + @ApiOperation(value = "新增LngContract") + @SaCheckPermission("contractPurLng:add") + public R add(@Valid @RequestBody UpdateLngContractPLDto dto){ + UpdateLngContractPLDto res = dataService.insert(dto, new DataOperationListener() { + @Override + public UpdateLngContractPLDto before(DataOperationContent content) { + return null; + } + + @Override + public UpdateLngContractPLDto after(DataOperationContent content) { + execAfter(content.getTableName(), content.getIdValue(), "I"); + return content.getObj(); + } + }); + return R.ok(res); + } + + private void execAfter(String table, Long id, String sign) { + String sql = StringUtils.format("{? = call pc_{0}.f_save(?, ?)}", table); + List params = Lists.newArrayList(); + JdbcParam outParam = JdbcParam.ofString(null).setOut(true); + params.add(outParam); + params.add(JdbcParam.ofLong(id)); + params.add(JdbcParam.ofString(sign)); + JdbcTools.call(sql,params); + String error = outParam.getStringValue(); + if (StringUtils.isNotEmpty(error)) { + throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_SAVE_EXEC_ERROR, error)); + } + } + + @PutMapping + @ApiOperation(value = "修改LngContract") + @SaCheckPermission("contractPurLng:edit") + public R update(@Valid @RequestBody UpdateLngContractPLDto dto){ + return R.ok(dataService.updateById(dto, new DataOperationListener() { + @Override + public UpdateLngContractPLDto before(DataOperationContent content) { + return null; + } + + @Override + public UpdateLngContractPLDto after(DataOperationContent content) { + execAfter(content.getTableName(), content.getIdValue(), "U"); + return content.getObj(); + } + })); + } + + @DeleteMapping + @ApiOperation(value = "删除") + @SaCheckPermission("contractPurLng:delete") + public R delete(@Valid @RequestBody List ids){ + return R.ok(dataService.deleteByIds(UpdateLngContractPLDto.class, ids, new DataOperationListener() { + @Override + public UpdateLngContractPLDto before(DataOperationContent content) { + String sql = StringUtils.format("{? = call pc_{0}.f_before_delete(?)}", content.getTableName()); + List params = Lists.newArrayList(); + JdbcParam outParam = JdbcParam.ofString(null).setOut(true); + params.add(outParam); + params.add(JdbcParam.ofLong(content.getIdValue())); + JdbcTools.call(sql,params); + String error = outParam.getStringValue(); + if (StringUtils.isNotEmpty(error)) { + throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_DELETE_EXEC_ERROR, error)); + } + return content.getObj(); + } + + @Override + public UpdateLngContractPLDto after(DataOperationContent content) { + return null; + } + })); + } +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractPurLng.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractPurLng.java new file mode 100644 index 0000000..6e3516f --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/entity/LngContractPurLng.java @@ -0,0 +1,113 @@ +package com.xjrsoft.module.contract.entity; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + + +/** +* @title: 国内LNG采购合同 +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@Data +@TableName("lng_contract_pur_lng") +@ApiModel(value = "国内LNG采购合同对象", description = "国内LNG采购合同") +public class LngContractPurLng implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + @TableId + private Long id; + + /** + * 合同-档案主键 + */ + @ApiModelProperty("合同-档案主键") + private Long kId; + + /** + * 长协/现货/年度合同(长协/现货/年度……) + */ + @ApiModelProperty("长协/现货/年度合同(长协/现货/年度……)") + private String longSpotCode; + + /** + * 定价机制(固定价/公式价/对标价/无) + */ + @ApiModelProperty("定价机制(固定价/公式价/对标价/无)") + private String prcTypeCode; + + /** + * 计量单位(隐藏) + */ + @ApiModelProperty("计量单位(隐藏)") + private String uomCode; + + /** + * 备注 + */ + @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; + + + +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractPurLngMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractPurLngMapper.java new file mode 100644 index 0000000..96d883a --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/mapper/LngContractPurLngMapper.java @@ -0,0 +1,17 @@ +package com.xjrsoft.module.contract.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; +import com.xjrsoft.module.contract.entity.LngContractPurLng; +import org.apache.ibatis.annotations.Mapper; + +/** +* @title: mapper +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@Mapper +public interface LngContractPurLngMapper extends MPJBaseMapper, BaseMapper { + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractPurLngService.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractPurLngService.java new file mode 100644 index 0000000..16be651 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/IContractPurLngService.java @@ -0,0 +1,19 @@ +package com.xjrsoft.module.contract.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.contract.entity.LngContract; +import com.xjrsoft.module.contract.vo.LngContractPLVo; + +/** +* @title: service +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ + +public interface IContractPurLngService extends MPJBaseService, MPJDeepService, MPJRelationService { + + LngContractPLVo getInfoById(Long id); +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractPurLngServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractPurLngServiceImpl.java new file mode 100644 index 0000000..4387006 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/contract/service/impl/ContractPurLngServiceImpl.java @@ -0,0 +1,88 @@ +package com.xjrsoft.module.contract.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.yulichang.base.MPJBaseServiceImpl; +import com.google.common.collect.Lists; +import com.pictc.enums.BusinessCode; +import com.xjrsoft.common.exception.BusinessException; +import com.xjrsoft.module.contract.entity.*; +import com.xjrsoft.module.contract.mapper.*; +import com.xjrsoft.module.contract.service.IContractPurLngService; +import com.xjrsoft.module.contract.vo.LngContractFactVo; +import com.xjrsoft.module.contract.vo.LngContractPLVo; +import com.xjrsoft.module.contract.vo.LngContractPurLngVo; +import com.xjrsoft.module.sales.vo.LngApproVo; +import com.xjrsoft.module.system.client.IFileClient; +import com.xjrsoft.module.system.vo.LngFileUploadVo; +import lombok.AllArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** +* @title: service +* @Author 管理员 +* @Date: 2026-03-10 +* @Version 1.0 +*/ +@Service +@AllArgsConstructor +public class ContractPurLngServiceImpl extends MPJBaseServiceImpl implements IContractPurLngService { + + private final LngContractPurLngMapper lngContractPurLngMapper; + private final LngContractFactMapper lngContractFactMapper; + private final LngContractFactRelMapper lngContractFactRelMapper; + private final LngContractApproRelMapper lngContractApproRelMapper; + private final IFileClient fileClient; + + @Override + public LngContractPLVo getInfoById(Long id) { + LngContract lngContract = this.getById(id); + if(lngContract == null) { + throw new BusinessException(BusinessCode.of(10500,"找不到此数据")); + } + LngContractPLVo vo = BeanUtil.toBean(lngContract, LngContractPLVo.class); + List lngContractPurLngList = lngContractPurLngMapper.selectList( + new LambdaQueryWrapper() + .eq(LngContractPurLng::getKId, lngContract.getId())); + if (CollectionUtils.isNotEmpty(lngContractPurLngList)) { + vo.setLngContractPurLngList(BeanUtil.copyToList(lngContractPurLngList, + LngContractPurLngVo.class)); + } + List lngContractFactRelList = lngContractFactRelMapper.selectList( + new LambdaQueryWrapper() + .eq(LngContractFactRel::getKId, lngContract.getId())); + if (CollectionUtils.isNotEmpty(lngContractFactRelList)) { + List lngContractFactVoList = Lists.newArrayList(); + lngContractFactRelList.forEach(x -> { + LngContractFact lngContractFact = lngContractFactMapper.selectById(x.getKFactId()); + List fileList = fileClient.getTableFiles("lng_contract_fact", + "lngFileUploadList", lngContractFact.getId()); + LngContractFactVo lngContractFactVo = BeanUtil.toBean(lngContractFact, LngContractFactVo.class); + lngContractFactVo.setLngFileUploadList(fileList); + lngContractFactVoList.add(lngContractFactVo); + }); + vo.setLngContractFactList(lngContractFactVoList); + } + List lngContractApproRelList = lngContractApproRelMapper.selectList( + new LambdaQueryWrapper() + .eq(LngContractApproRel::getTableId, lngContract.getId())); + if (CollectionUtils.isNotEmpty(lngContractApproRelList)) { + List approVoList = Lists.newArrayList(); + lngContractApproRelList.forEach(x -> { + LngApproVo approVo = lngContractFactMapper.getLngApproVo(x.getApproId()); + List fileList = fileClient.getTableFiles("lng_appro", + "lngFileUploadList", approVo.getId()); + approVo.setLngFileUploadList(fileList); + approVoList.add(approVo); + }); + vo.setLngApproVoList(approVoList); + } + List fileList = fileClient.getTableFiles("lng_contract", + "lngFileUploadList", vo.getId()); + vo.setLngFileUploadList(fileList); + return vo; + } +}