Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2026-02-05 17:57:05 +08:00
21 changed files with 3501 additions and 0 deletions

View File

@ -0,0 +1,159 @@
package com.xjrsoft.module.contract.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
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.UpdateLngContractPIDto;
import com.xjrsoft.module.contract.entity.LngContract;
import com.xjrsoft.module.contract.service.IContractPurIntService;
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: 国际采购合同
* @Author 管理员
* @Date: 2026-01-30
* @Version 1.0
*/
@RestController
@RequestMapping("/contract" + "/contractPurInt")
@Api(value = "/contract" + "/contractPurInt",tags = "国际采购合同代码")
@AllArgsConstructor
public class ContractPurIntController {
private final IContractPurIntService contractPurIntService;
private final DatalogService dataService;
@GetMapping(value = "/page")
@ApiOperation(value="LngContract列表(分页)")
@SaCheckPermission("contractPurInt:list")
public R page(@Valid LngContractPageDto dto){
LambdaQueryWrapper<LngContract> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(ObjectUtil.isNotNull(dto.getId()),LngContract::getId,dto.getId())
.orderByDesc(LngContract::getId)
.select(LngContract.class,x -> VoToColumnUtil.fieldsToColumns(LngContractPageVo.class).contains(x.getProperty()));
IPage<LngContract> page = contractPurIntService.page(ConventPage.getPage(dto), queryWrapper);
PageOutput<LngContractPageVo> pageOutput = ConventPage.getPageOutput(page, LngContractPageVo.class);
return R.ok(pageOutput);
}
@GetMapping(value = "/info")
@ApiOperation(value="根据id查询LngContract信息")
@SaCheckPermission("contractPurInt:detail")
public R info(@RequestParam Long id){
return R.ok(contractPurIntService.getInfoById(id));
}
@GetMapping(value = "/datalog")
@ApiOperation(value="根据id查询LngContract数据详细日志")
@SaCheckPermission("contractPurInt:datalog")
public R datalog(@RequestParam Long id){
List<DataChangeLogVo> logs = dataService.findLogsByEntityId(UpdateLngContractPIDto.class,id);
return R.ok(logs);
}
@PostMapping
@ApiOperation(value = "新增LngContract")
@SaCheckPermission("contractPurInt:add")
public R add(@Valid @RequestBody UpdateLngContractPIDto dto){
UpdateLngContractPIDto res = dataService.insert(dto, new DataOperationListener<UpdateLngContractPIDto>() {
@Override
public UpdateLngContractPIDto before(DataOperationContent<UpdateLngContractPIDto> content) {
return null;
}
@Override
public UpdateLngContractPIDto after(DataOperationContent<UpdateLngContractPIDto> 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<JdbcParam> 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("contractPurInt:edit")
public R update(@Valid @RequestBody UpdateLngContractPIDto dto){
return R.ok(dataService.updateById(dto, new DataOperationListener<UpdateLngContractPIDto>() {
@Override
public UpdateLngContractPIDto before(DataOperationContent<UpdateLngContractPIDto> content) {
return null;
}
@Override
public UpdateLngContractPIDto after(DataOperationContent<UpdateLngContractPIDto> content) {
execAfter(content.getTableName(), content.getIdValue(), "U");
return content.getObj();
}
}));
}
@DeleteMapping
@ApiOperation(value = "删除")
@SaCheckPermission("contractPurInt:delete")
public R delete(@Valid @RequestBody List<Long> ids){
return R.ok(dataService.deleteByIds(UpdateLngContractPIDto.class, ids, new DataOperationListener<UpdateLngContractPIDto>() {
@Override
public UpdateLngContractPIDto before(DataOperationContent<UpdateLngContractPIDto> content) {
String sql = StringUtils.format("{? = call pc_{0}.f_before_delete(?)}", content.getTableName());
List<JdbcParam> 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 UpdateLngContractPIDto after(DataOperationContent<UpdateLngContractPIDto> content) {
return null;
}
}));
}
}

View File

@ -0,0 +1,159 @@
package com.xjrsoft.module.contract.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
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.UpdateLngContractSIDto;
import com.xjrsoft.module.contract.entity.LngContract;
import com.xjrsoft.module.contract.service.IContractSalesIntService;
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: 国际销售合同
* @Author 管理员
* @Date: 2026-02-03
* @Version 1.0
*/
@RestController
@RequestMapping("/contract" + "/contractSalesInt")
@Api(value = "/contract" + "/contractSalesInt",tags = "国际销售合同代码")
@AllArgsConstructor
public class ContractSalesIntController {
private final IContractSalesIntService contractSalesIntService;
private final DatalogService dataService;
@GetMapping(value = "/page")
@ApiOperation(value="LngContract列表(分页)")
@SaCheckPermission("contractSalesInt:list")
public R page(@Valid LngContractPageDto dto){
LambdaQueryWrapper<LngContract> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(ObjectUtil.isNotNull(dto.getId()),LngContract::getId,dto.getId())
.orderByDesc(LngContract::getId)
.select(LngContract.class,x -> VoToColumnUtil.fieldsToColumns(LngContractPageVo.class).contains(x.getProperty()));
IPage<LngContract> page = contractSalesIntService.page(ConventPage.getPage(dto), queryWrapper);
PageOutput<LngContractPageVo> pageOutput = ConventPage.getPageOutput(page, LngContractPageVo.class);
return R.ok(pageOutput);
}
@GetMapping(value = "/info")
@ApiOperation(value="根据id查询LngContract信息")
@SaCheckPermission("contractSalesInt:detail")
public R info(@RequestParam Long id){
return R.ok(contractSalesIntService.getInfoById(id));
}
@GetMapping(value = "/datalog")
@ApiOperation(value="根据id查询LngContract数据详细日志")
@SaCheckPermission("contractSalesInt:datalog")
public R datalog(@RequestParam Long id){
List<DataChangeLogVo> logs = dataService.findLogsByEntityId(UpdateLngContractSIDto.class,id);
return R.ok(logs);
}
@PostMapping
@ApiOperation(value = "新增LngContract")
@SaCheckPermission("contractSalesInt:add")
public R add(@Valid @RequestBody UpdateLngContractSIDto dto){
UpdateLngContractSIDto res = dataService.insert(dto, new DataOperationListener<UpdateLngContractSIDto>() {
@Override
public UpdateLngContractSIDto before(DataOperationContent<UpdateLngContractSIDto> content) {
return null;
}
@Override
public UpdateLngContractSIDto after(DataOperationContent<UpdateLngContractSIDto> 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<JdbcParam> 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("contractSalesInt:edit")
public R update(@Valid @RequestBody UpdateLngContractSIDto dto){
return R.ok(dataService.updateById(dto, new DataOperationListener<UpdateLngContractSIDto>() {
@Override
public UpdateLngContractSIDto before(DataOperationContent<UpdateLngContractSIDto> content) {
return null;
}
@Override
public UpdateLngContractSIDto after(DataOperationContent<UpdateLngContractSIDto> content) {
execAfter(content.getTableName(), content.getIdValue(), "U");
return content.getObj();
}
}));
}
@DeleteMapping
@ApiOperation(value = "删除")
@SaCheckPermission("contractSalesInt:delete")
public R delete(@Valid @RequestBody List<Long> ids){
return R.ok(dataService.deleteByIds(UpdateLngContractSIDto.class, ids, new DataOperationListener<UpdateLngContractSIDto>() {
@Override
public UpdateLngContractSIDto before(DataOperationContent<UpdateLngContractSIDto> content) {
String sql = StringUtils.format("{? = call pc_{0}.f_before_delete(?)}", content.getTableName());
List<JdbcParam> 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 UpdateLngContractSIDto after(DataOperationContent<UpdateLngContractSIDto> content) {
return null;
}
}));
}
}

View File

@ -0,0 +1,282 @@
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.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @title: 国际采购合同
* @Author 管理员
* @Date: 2026-01-30
* @Version 1.0
*/
@Data
@TableName("lng_contract_pur_int")
@ApiModel(value = "国际采购合同对象", description = "国际采购合同")
public class LngContractPurInt implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
private Long id;
/**
* 合同-档案主键
*/
@ApiModelProperty("合同-档案主键")
private Long kId;
/**
* 长协/现货(长协/现货……)
*/
@ApiModelProperty("长协/现货(长协/现货……)")
private String longSpotCode;
/**
* 国际气源地
*/
@ApiModelProperty("国际气源地")
private String sourceName;
/**
* 销售区域
*/
@ApiModelProperty("销售区域")
private String salesAreaCode;
/**
* 价格条款
*/
@ApiModelProperty("价格条款")
private String prcTermCode;
/**
* 价格说明
*/
@ApiModelProperty("价格说明")
private String prcDesc;
/**
* 信用担保(SBLC/Open)
*/
@ApiModelProperty("信用担保(SBLC/Open)")
private String crTermCode;
/**
* 信用说明
*/
@ApiModelProperty("信用说明")
private String crDesc;
/**
* 最小合同量(百万英热)
*/
@ApiModelProperty("最小合同量(百万英热)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyFrom;
/**
* 最大合同量(百万英热)
*/
@ApiModelProperty("最大合同量(百万英热)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyTo;
/**
* 合同量约定
*/
@ApiModelProperty("合同量约定")
private String qtyDesc;
/**
* 最小甲烷含量(百万英热/立方英尺)
*/
@ApiModelProperty("最小甲烷含量(百万英热/立方英尺)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal specCh4From;
/**
* 最低热值(百万英热/立方英尺)
*/
@ApiModelProperty("最低热值(百万英热/立方英尺)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal specMmbtuFrom;
/**
* 最高热值(百万英热/立方英尺)
*/
@ApiModelProperty("最高热值(百万英热/立方英尺)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal specMmbtuTo;
/**
* 气质约定
*/
@ApiModelProperty("气质约定")
private String specDesc;
/**
* 收付款说明(收到发票后日)
*/
@ApiModelProperty("收付款说明(收到发票后日)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Short afterInv;
/**
* 自然日/工作日(N-自然日CN-工作日)
*/
@ApiModelProperty("自然日/工作日(N-自然日CN-工作日)")
private String calTypeCode;
/**
* 收付款说明
*/
@ApiModelProperty("收付款说明")
private String paymentDesc;
/**
* 装港(可选可录入)
*/
@ApiModelProperty("装港(可选可录入)")
private String loadingPort;
/**
* 装港描述
*/
@ApiModelProperty("装港描述")
private String loadingPortDesc;
/**
* 卸港(可选可录入)
*/
@ApiModelProperty("卸港(可选可录入)")
private String unloadingPort;
/**
* 卸港描述
*/
@ApiModelProperty("卸港描述")
private String unloadingPortDesc;
/**
* 装卸条款说明
*/
@ApiModelProperty("装卸条款说明")
private String loadUnloadDesc;
/**
* 滞期费说明
*/
@ApiModelProperty("滞期费说明")
private String dmDesc;
/**
* 交付说明
*/
@ApiModelProperty("交付说明")
private String deliveryDesc;
/**
* 计量说明
*/
@ApiModelProperty("计量说明")
private String meaDesc;
/**
* 所有权和风险说明
*/
@ApiModelProperty("所有权和风险说明")
private String riskDesc;
/**
* 保险说明
*/
@ApiModelProperty("保险说明")
private String insurDesc;
/**
* GT&C
*/
@ApiModelProperty("GT&C")
private String gtc;
/**
* 法律仲裁信息
*/
@ApiModelProperty("法律仲裁信息")
private String legalDesc;
/**
* 违约条款说明
*/
@ApiModelProperty("违约条款说明")
private String defaultDesc;
/**
* 备注
*/
@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,282 @@
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.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @title: 国际销售合同
* @Author 管理员
* @Date: 2026-02-03
* @Version 1.0
*/
@Data
@TableName("lng_contract_sales_int")
@ApiModel(value = "国际销售合同对象", description = "国际销售合同")
public class LngContractSalesInt implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
private Long id;
/**
* 合同-档案主键
*/
@ApiModelProperty("合同-档案主键")
private Long kId;
/**
* 长协/现货(长协/现货……)
*/
@ApiModelProperty("长协/现货(长协/现货……)")
private String longSpotCode;
/**
* 国际气源地
*/
@ApiModelProperty("国际气源地")
private String sourceName;
/**
* 销售区域
*/
@ApiModelProperty("销售区域")
private String salesAreaCode;
/**
* 价格条款
*/
@ApiModelProperty("价格条款")
private String prcTermCode;
/**
* 价格说明
*/
@ApiModelProperty("价格说明")
private String prcDesc;
/**
* 信用担保(SBLC/Open)
*/
@ApiModelProperty("信用担保(SBLC/Open)")
private String crTermCode;
/**
* 信用说明
*/
@ApiModelProperty("信用说明")
private String crDesc;
/**
* 最小合同量(百万英热)
*/
@ApiModelProperty("最小合同量(百万英热)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyFrom;
/**
* 最大合同量(百万英热)
*/
@ApiModelProperty("最大合同量(百万英热)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal qtyTo;
/**
* 合同量约定
*/
@ApiModelProperty("合同量约定")
private String qtyDesc;
/**
* 最小甲烷含量(百万英热/立方英尺)
*/
@ApiModelProperty("最小甲烷含量(百万英热/立方英尺)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal specCh4From;
/**
* 最低热值(百万英热/立方英尺)
*/
@ApiModelProperty("最低热值(百万英热/立方英尺)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal specMmbtuFrom;
/**
* 最高热值(百万英热/立方英尺)
*/
@ApiModelProperty("最高热值(百万英热/立方英尺)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private BigDecimal specMmbtuTo;
/**
* 气质约定
*/
@ApiModelProperty("气质约定")
private String specDesc;
/**
* 收付款说明(收到发票后日)
*/
@ApiModelProperty("收付款说明(收到发票后日)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Short afterInv;
/**
* 自然日/工作日(N-自然日W-工作日)
*/
@ApiModelProperty("自然日/工作日(N-自然日W-工作日)")
private String calTypeCode;
/**
* 收付款说明
*/
@ApiModelProperty("收付款说明")
private String paymentDesc;
/**
* 装港(可选可录入)
*/
@ApiModelProperty("装港(可选可录入)")
private String loadingPort;
/**
* 装港描述
*/
@ApiModelProperty("装港描述")
private String loadingPortDesc;
/**
* 卸港(可选可录入)
*/
@ApiModelProperty("卸港(可选可录入)")
private String unloadingPort;
/**
* 卸港描述
*/
@ApiModelProperty("卸港描述")
private String unloadingPortDesc;
/**
* 装卸条款说明
*/
@ApiModelProperty("装卸条款说明")
private String loadUnloadDesc;
/**
* 滞期费说明
*/
@ApiModelProperty("滞期费说明")
private String dmDesc;
/**
* 交付说明
*/
@ApiModelProperty("交付说明")
private String deliveryDesc;
/**
* 计量说明
*/
@ApiModelProperty("计量说明")
private String meaDesc;
/**
* 所有权和风险说明
*/
@ApiModelProperty("所有权和风险说明")
private String riskDesc;
/**
* 保险说明
*/
@ApiModelProperty("保险说明")
private String insurDesc;
/**
* GT&C
*/
@ApiModelProperty("GT&C")
private String gtc;
/**
* 法律仲裁信息
*/
@ApiModelProperty("法律仲裁信息")
private String legalDesc;
/**
* 违约条款说明
*/
@ApiModelProperty("违约条款说明")
private String defaultDesc;
/**
* 备注
*/
@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,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.LngContractPurInt;
import org.apache.ibatis.annotations.Mapper;
/**
* @title: mapper
* @Author 管理员
* @Date: 2026-01-30
* @Version 1.0
*/
@Mapper
public interface LngContractPurIntMapper extends MPJBaseMapper<LngContractPurInt>, BaseMapper<LngContractPurInt> {
}

View File

@ -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.LngContractSalesInt;
import org.apache.ibatis.annotations.Mapper;
/**
* @title: mapper
* @Author 管理员
* @Date: 2026-02-03
* @Version 1.0
*/
@Mapper
public interface LngContractSalesIntMapper extends MPJBaseMapper<LngContractSalesInt>, BaseMapper<LngContractSalesInt> {
}

View File

@ -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.LngContractPIVo;
/**
* @title: service
* @Author 管理员
* @Date: 2026-01-30
* @Version 1.0
*/
public interface IContractPurIntService extends MPJBaseService<LngContract>, MPJDeepService<LngContract>, MPJRelationService<LngContract> {
LngContractPIVo getInfoById(Long id);
}

View File

@ -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.LngContractSIVo;
/**
* @title: service
* @Author 管理员
* @Date: 2026-02-03
* @Version 1.0
*/
public interface IContractSalesIntService extends MPJBaseService<LngContract>, MPJDeepService<LngContract>, MPJRelationService<LngContract> {
LngContractSIVo getInfoById(Long id);
}

View File

@ -0,0 +1,86 @@
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.IContractPurIntService;
import com.xjrsoft.module.contract.vo.*;
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-01-30
* @Version 1.0
*/
@Service
@AllArgsConstructor
public class ContractPurIntServiceImpl extends MPJBaseServiceImpl<LngContractMapper, LngContract> implements IContractPurIntService {
private final LngContractPurIntMapper lngContractPurIntMapper;
private final LngContractFactMapper lngContractFactMapper;
private final LngContractFactRelMapper lngContractFactRelMapper;
private final LngContractApproRelMapper lngContractApproRelMapper;
private final IFileClient fileClient;
@Override
public LngContractPIVo getInfoById(Long id) {
LngContract lngContract = this.getById(id);
if(lngContract == null) {
throw new BusinessException(BusinessCode.of(10500,"找不到此数据"));
}
LngContractPIVo vo = BeanUtil.toBean(lngContract, LngContractPIVo.class);
List<LngContractPurInt> lngContractPurIntList = lngContractPurIntMapper.selectList(
new LambdaQueryWrapper<LngContractPurInt>()
.eq(LngContractPurInt::getKId, lngContract.getId()));
if (CollectionUtils.isNotEmpty(lngContractPurIntList)) {
vo.setLngContractPurIntList(BeanUtil.copyToList(lngContractPurIntList,
LngContractPurIntVo.class));
}
List<LngContractFactRel> lngContractFactRelList = lngContractFactRelMapper.selectList(
new LambdaQueryWrapper<LngContractFactRel>()
.eq(LngContractFactRel::getKId, lngContract.getId()));
if (CollectionUtils.isNotEmpty(lngContractFactRelList)) {
List<LngContractFactVo> lngContractFactVoList = Lists.newArrayList();
lngContractFactRelList.forEach(x -> {
LngContractFact lngContractFact = lngContractFactMapper.selectById(x.getKFactId());
List<LngFileUploadVo> 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<LngContractApproRel> lngContractApproRelList = lngContractApproRelMapper.selectList(
new LambdaQueryWrapper<LngContractApproRel>()
.eq(LngContractApproRel::getTableId, lngContract.getId()));
if (CollectionUtils.isNotEmpty(lngContractApproRelList)) {
List<LngApproVo> approVoList = Lists.newArrayList();
lngContractApproRelList.forEach(x -> {
LngApproVo approVo = lngContractFactMapper.getLngApproVo(x.getApproId());
List<LngFileUploadVo> fileList = fileClient.getTableFiles("lng_appro",
"lngFileUploadList", approVo.getId());
approVo.setLngFileUploadList(fileList);
approVoList.add(approVo);
});
vo.setLngApproVoList(approVoList);
}
List<LngFileUploadVo> fileList = fileClient.getTableFiles("lng_contract",
"lngFileUploadList", vo.getId());
vo.setLngFileUploadList(fileList);
return vo;
}
}

View File

@ -0,0 +1,86 @@
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.IContractSalesIntService;
import com.xjrsoft.module.contract.vo.*;
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-02-03
* @Version 1.0
*/
@Service
@AllArgsConstructor
public class ContractSalesIntServiceImpl extends MPJBaseServiceImpl<LngContractMapper, LngContract> implements IContractSalesIntService {
private final LngContractSalesIntMapper lngContractSalesIntMapper;
private final LngContractFactMapper lngContractFactMapper;
private final LngContractFactRelMapper lngContractFactRelMapper;
private final LngContractApproRelMapper lngContractApproRelMapper;
private final IFileClient fileClient;
@Override
public LngContractSIVo getInfoById(Long id) {
LngContract lngContract = this.getById(id);
if(lngContract == null) {
throw new BusinessException(BusinessCode.of(10500,"找不到此数据"));
}
LngContractSIVo vo = BeanUtil.toBean(lngContract, LngContractSIVo.class);
List<LngContractSalesInt> lngContractSalesIntList = lngContractSalesIntMapper.selectList(
new LambdaQueryWrapper<LngContractSalesInt>()
.eq(LngContractSalesInt::getKId, lngContract.getId()));
if (CollectionUtils.isNotEmpty(lngContractSalesIntList)) {
vo.setLngContractSalesIntList(BeanUtil.copyToList(lngContractSalesIntList,
LngContractSalesIntVo.class));
}
List<LngContractFactRel> lngContractFactRelList = lngContractFactRelMapper.selectList(
new LambdaQueryWrapper<LngContractFactRel>()
.eq(LngContractFactRel::getKId, lngContract.getId()));
if (CollectionUtils.isNotEmpty(lngContractFactRelList)) {
List<LngContractFactVo> lngContractFactVoList = Lists.newArrayList();
lngContractFactRelList.forEach(x -> {
LngContractFact lngContractFact = lngContractFactMapper.selectById(x.getKFactId());
List<LngFileUploadVo> 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<LngContractApproRel> lngContractApproRelList = lngContractApproRelMapper.selectList(
new LambdaQueryWrapper<LngContractApproRel>()
.eq(LngContractApproRel::getTableId, lngContract.getId()));
if (CollectionUtils.isNotEmpty(lngContractApproRelList)) {
List<LngApproVo> approVoList = Lists.newArrayList();
lngContractApproRelList.forEach(x -> {
LngApproVo approVo = lngContractFactMapper.getLngApproVo(x.getApproId());
List<LngFileUploadVo> fileList = fileClient.getTableFiles("lng_appro",
"lngFileUploadList", approVo.getId());
approVo.setLngFileUploadList(fileList);
approVoList.add(approVo);
});
vo.setLngApproVoList(approVoList);
}
List<LngFileUploadVo> fileList = fileClient.getTableFiles("lng_contract",
"lngFileUploadList", vo.getId());
vo.setLngFileUploadList(fileList);
return vo;
}
}