diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/AddTestflow001Dto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/AddTestflow001Dto.java new file mode 100644 index 0000000..e134031 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/AddTestflow001Dto.java @@ -0,0 +1,62 @@ +package com.xjrsoft.module.dev.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +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; + +import com.pictc.annotations.datalog.LogField; +import com.pictc.annotations.datalog.LogTable; + + + + +/** +* @title: 测试流程 +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@Data +@LogTable(source="testflow_001",name="测试流程") +public class AddTestflow001Dto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户 + */ + @ApiModelProperty("客户") + @LogField(name="客户",index=0) + private String customer; + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + @LogField(name="客户编码",index=0) + private String customerCode; + /** + * 名称 + */ + @ApiModelProperty("名称") + @LogField(name="名称",index=0) + private String name; + /** + * 备注 + */ + @ApiModelProperty("备注") + @LogField(name="备注",index=0) + private String note; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private Long tenantId; + +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/Testflow001PageDto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/Testflow001PageDto.java new file mode 100644 index 0000000..90f8e51 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/Testflow001PageDto.java @@ -0,0 +1,45 @@ +package com.xjrsoft.module.dev.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: 2025-11-25 +* @Version 1.0 +*/ +@Data +@EqualsAndHashCode(callSuper = false) +public class Testflow001PageDto extends PageInput { + + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/UpdateTestflow001Dto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/UpdateTestflow001Dto.java new file mode 100644 index 0000000..6131f55 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/dto/UpdateTestflow001Dto.java @@ -0,0 +1,79 @@ +package com.xjrsoft.module.dev.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: 2025-11-25 +* @Version 1.0 +*/ +@Data +@LogTable(source="testflow_001",name="测试流程") +public class UpdateTestflow001Dto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @LogField(name="",index=0) + @ApiModelProperty("") + private Long id; + + /** + * 客户 + */ + @LogField(name="客户",index=1) + @ApiModelProperty("客户") + private String customer; + + /** + * 客户编码 + */ + @LogField(name="客户编码",index=2) + @ApiModelProperty("客户编码") + private String customerCode; + + /** + * 名称 + */ + @LogField(name="名称",index=3) + @ApiModelProperty("名称") + private String name; + + /** + * 备注 + */ + @LogField(name="备注",index=4) + @ApiModelProperty("备注") + private String note; + + /** + * + */ + @LogField(name="",index=5) + @ApiModelProperty("") + private Long tenantId; + + +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/vo/Testflow001PageVo.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/vo/Testflow001PageVo.java new file mode 100644 index 0000000..1b025b6 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/vo/Testflow001PageVo.java @@ -0,0 +1,48 @@ +package com.xjrsoft.module.dev.vo; + +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: 2025-11-25 +* @Version 1.0 +*/ +@Data +public class Testflow001PageVo { + + /** + * + */ + @ApiModelProperty("") + private String id; + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/vo/Testflow001Vo.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/vo/Testflow001Vo.java new file mode 100644 index 0000000..7119cec --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/dev/vo/Testflow001Vo.java @@ -0,0 +1,100 @@ +package com.xjrsoft.module.dev.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.util.List; + +/** +* @title: 表单出参 +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@Data +public class Testflow001Vo { + + /** + * + */ + @ApiModelProperty("") + private Long id; + + + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + + + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + + + /** + * + */ + @ApiModelProperty("") + private Long createUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime createDate; + + + /** + * + */ + @ApiModelProperty("") + private Long modifyUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime modifyDate; + + + /** + * + */ + @ApiModelProperty("") + private Integer enabledMark; + + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + + + + +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/config/AppConfig.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/config/AppConfig.java index 236ac41..994d4b9 100644 --- a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/config/AppConfig.java +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/config/AppConfig.java @@ -1,7 +1,5 @@ package com.xjrsoft.config; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/controller/Testflow001Controller.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/controller/Testflow001Controller.java new file mode 100644 index 0000000..7c0655a --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/controller/Testflow001Controller.java @@ -0,0 +1,119 @@ +package com.xjrsoft.module.dev.controller; + +import java.util.List; + +import javax.validation.Valid; + +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.dev.dto.Testflow001PageDto; +import com.xjrsoft.module.dev.dto.UpdateTestflow001Dto; +import com.xjrsoft.module.dev.entity.Testflow001; +import com.xjrsoft.module.dev.service.ITestflow001Service; +import com.xjrsoft.module.dev.vo.Testflow001PageVo; +import com.xjrsoft.module.dev.vo.Testflow001Vo; +import com.xjrsoft.module.system.client.ICodeRuleClient; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; + +/** +* @title: 测试流程 +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@RestController +@RequestMapping("/dev" + "/testflow001") +@Api(value = "/dev" + "/testflow001",tags = "测试流程代码") +@AllArgsConstructor +public class Testflow001Controller { + + + private final ITestflow001Service testflow001Service; + private final ICodeRuleClient codeRuleClient; + private final DatalogService dataService; + + @GetMapping(value = "/page") + @ApiOperation(value="Testflow001列表(分页)") + @SaCheckPermission("testflow001:list") + public R page(@Valid Testflow001PageDto dto){ + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .like(StrUtil.isNotBlank(dto.getCustomer()),Testflow001::getCustomer,dto.getCustomer()) + .like(StrUtil.isNotBlank(dto.getCustomerCode()),Testflow001::getCustomerCode,dto.getCustomerCode()) + .like(StrUtil.isNotBlank(dto.getName()),Testflow001::getName,dto.getName()) + .like(StrUtil.isNotBlank(dto.getNote()),Testflow001::getNote,dto.getNote()) + .orderByDesc(Testflow001::getId) + .select(Testflow001.class,x -> VoToColumnUtil.fieldsToColumns(Testflow001PageVo.class).contains(x.getProperty())); + IPage page = testflow001Service.page(ConventPage.getPage(dto), queryWrapper); + PageOutput pageOutput = ConventPage.getPageOutput(page, Testflow001PageVo.class); + return R.ok(pageOutput); + } + + @GetMapping(value = "/info") + @ApiOperation(value="根据id查询Testflow001信息") + @SaCheckPermission("testflow001:detail") + public R info(@RequestParam Long id){ + Testflow001 testflow001 = testflow001Service.getById(id); + if (testflow001 == null) { + return R.error("找不到此数据!"); + } + return R.ok(BeanUtil.toBean(testflow001, Testflow001Vo.class)); + } + + @GetMapping(value = "/datalog") + @ApiOperation(value="根据id查询Testflow001数据详细日志") + @SaCheckPermission("testflow001:datalog") + public R datalog(@RequestParam Long id){ + List logs = dataService.findLogsByEntityId(UpdateTestflow001Dto.class,id); + return R.ok(logs); + } + + + @PostMapping + @ApiOperation(value = "新增Testflow001") + @SaCheckPermission("testflow001:add") + public R add(@Valid @RequestBody UpdateTestflow001Dto dto){ + codeRuleClient.useEncode("TestCode"); + UpdateTestflow001Dto res = dataService.insert(dto); + return R.ok(res.getId()); + } + + @PutMapping + @ApiOperation(value = "修改Testflow001") + @SaCheckPermission("testflow001:edit") + public R update(@Valid @RequestBody UpdateTestflow001Dto dto){ + return R.ok(dataService.updateById(dto)); + } + + @DeleteMapping + @ApiOperation(value = "删除") + @SaCheckPermission("testflow001:delete") + public R delete(@Valid @RequestBody List ids){ + return R.ok(dataService.deleteByIds(UpdateTestflow001Dto.class, ids)); + + } + + +} \ No newline at end of file diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/entity/Testflow001.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/entity/Testflow001.java new file mode 100644 index 0000000..157b930 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/entity/Testflow001.java @@ -0,0 +1,115 @@ +package com.xjrsoft.module.dev.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +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: 2025-11-25 +* @Version 1.0 +*/ +@Data +@TableName("testflow_001") +@ApiModel(value = "测试流程对象", description = "测试流程") +public class Testflow001 implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ApiModelProperty("") + @TableId + private Long id; + + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Long createUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createDate; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private Long modifyUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime modifyDate; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + @TableLogic + private Integer deleteMark; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Integer enabledMark; + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + + +} \ No newline at end of file diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/mapper/Testflow001Mapper.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/mapper/Testflow001Mapper.java new file mode 100644 index 0000000..8558981 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/mapper/Testflow001Mapper.java @@ -0,0 +1,17 @@ +package com.xjrsoft.module.dev.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; +import com.xjrsoft.module.dev.entity.Testflow001; +import org.apache.ibatis.annotations.Mapper; + +/** +* @title: mapper +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@Mapper +public interface Testflow001Mapper extends BaseMapper { + +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/ITestflow001Service.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/ITestflow001Service.java new file mode 100644 index 0000000..c1faa23 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/ITestflow001Service.java @@ -0,0 +1,19 @@ +package com.xjrsoft.module.dev.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.dev.entity.Testflow001; +import lombok.Data; +import java.util.List; + +/** +* @title: service +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ + +public interface ITestflow001Service extends IService { +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/impl/Testflow001ServiceImpl.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/impl/Testflow001ServiceImpl.java new file mode 100644 index 0000000..08f7c8c --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/impl/Testflow001ServiceImpl.java @@ -0,0 +1,25 @@ +package com.xjrsoft.module.dev.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.base.MPJBaseServiceImpl; +import com.xjrsoft.module.dev.entity.Testflow001; +import com.xjrsoft.module.dev.mapper.Testflow001Mapper; +import com.xjrsoft.module.dev.service.ITestflow001Service; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +/** +* @title: service +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@Service +@AllArgsConstructor +public class Testflow001ServiceImpl extends ServiceImpl implements ITestflow001Service { +} diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap-dev.yml b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap-dev.yml new file mode 100644 index 0000000..7423858 --- /dev/null +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap-dev.yml @@ -0,0 +1,59 @@ +spring: + cloud: + nacos: #nacos监控 + config: + server-addr: 10.10.2.101:8848 # nacos 配置中心地址 + namespace: ITC-MS + group: DNE + username: nacos + password: Lng@123 + extension-configs: + - data-id: global-local.yml + refresh: true + group: DNE + + - data-id: discovery-local.yml + refresh: true + group: DNE + + - data-id: datasource-local.yml + refresh: true + group: DNE + + - data-id: seata-local.yml + refresh: true + group: DNE + + - data-id: redis-local.yml + refresh: true + group: DNE + + - data-id: magic-api.yml + refresh: true + group: DNE + + - data-id: sa-token.yml + refresh: true + group: DNE + + - data-id: camunda.yml + refresh: true + group: DNE + + - data-id: sentinel-local.yml + refresh: true + group: DNE + + discovery: + ip: 10.0.0.2 + #network-interface: net7 + +xjrsoft: + generate: + apiJavaPath: F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-mdm\itc-pcitc-mdm-api + javaPath: F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-mdm\itc-pcitc-mdm-service + webPath: F:\ges-scm\code\dev\geg-gas-web + appPath: F:\ges-scm\code\dev\uniapp\xjrsoft-uni #前端app + + + diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/test/java/com/xjrsoft/CallTest.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/test/java/com/xjrsoft/CallTest.java index ef888b6..f545c14 100644 --- a/itc-pcitc-demo/itc-pcitc-demo-service/src/test/java/com/xjrsoft/CallTest.java +++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/test/java/com/xjrsoft/CallTest.java @@ -1,5 +1,10 @@ package com.xjrsoft; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.stream.Stream; + import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -7,6 +12,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import com.xjrsoft.module.common.db.service.CommonCallService; +import cn.hutool.core.io.IoUtil; + @RunWith(SpringRunner.class) @SpringBootTest(classes = ITCDemoApplication.class) public class CallTest { @@ -21,5 +28,21 @@ public class CallTest { String out = callService.saveAfter("Ing_b_price_term", 12); System.out.println(out); } + + public static void main(String[] args) { + String filePath = "D:\\java\\conf\\cn-ips.txt"; + boolean first = false; + // 2. 流式读取(适合大文件,逐行处理,不占内存) + try (Stream lineStream = Files.lines(Paths.get(filePath))) { + lineStream.forEach(line -> { + // 逐行处理逻辑(如解析、过滤) + if (!line.isEmpty()) { // 跳过空行 + System.out.print(";" + line); + } + }); + } catch (IOException e) { + System.err.println("流式读取失败:" + e.getMessage()); + } + } } diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinCaseType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinCaseType.java deleted file mode 100644 index 65e992a..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinCaseType.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.pictc.annotations.datalog; - -public enum JoinCaseType { - - FULL,NONE - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinType.java deleted file mode 100644 index 268e81a..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinType.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pictc.annotations.datalog; - -/** - * @author 张福财 - * @date 2025年8月28日 下午6:00:10 - * @Description: 关联类型 ONE_ONE ONE_MANY - */ -public enum JoinType { - - ONE, - MANY - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinValueType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinValueType.java deleted file mode 100644 index 597f3b9..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinValueType.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pictc.annotations.datalog; - -/** - * @author 张福财 - * @date 2025年8月26日 上午9:18:35 - * @Description: 关联值类型 - */ -public enum JoinValueType { - - FEILD, //字段关联 - STATIC //字段等于静态值 - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogField.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogField.java deleted file mode 100644 index f6de151..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogField.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.pictc.annotations.datalog; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.core.annotation.AliasFor; - -/** - * @author 张福财 - * @date 2025年8月26日 下午5:33:01 - * @Description: 数据日志属性配置 - */ -@Target({ElementType.METHOD, ElementType.FIELD}) -@Retention(RetentionPolicy.RUNTIME) -public @interface LogField { - - @AliasFor("name") - String value() default ""; - - /** - * @Description: 业务名称 - * @return String 返回类型 - */ - @AliasFor("value") - String name() default ""; - - /** - * @Description: 数据库字段 - * @return String 返回类型 - */ - String column() default ""; - - /** - * @Description: 位置 - * @return int 返回类型 - */ - int index() default 0; - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoin.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoin.java deleted file mode 100644 index 7b03ee5..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoin.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.pictc.annotations.datalog; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * @author 张福财 - * @date 2025年8月26日 上午9:37:23 - * @Description: 关联关系 - */ -@Target({ElementType.METHOD, ElementType.FIELD}) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface LogJoin { - - /** - * @Description: 业务名称 - * @return String 返回类型 - */ - String name(); - - /** - * @Description: 关联对象 - * @return Class 返回类型 - */ - Class target(); - - /** - * @Description: 关联类型 - * @return JoinType 返回类型 - */ - JoinType type(); - - /** - * @Description: 级联类型:DEL(删除)、UPD(修改)、FULL(全部); - * @return JoinType 返回类型 - */ - JoinCaseType caseType() default JoinCaseType.FULL; - - /** - * @Description: 关联列 - * @return DataLogJoinColumn[] 返回类型 - */ - LogJoinColumn[] columns() default {}; - - /** - * @Description: 数据来源:默认通过target配置的表名去关联查询;如果sourceType = TQ 时配置查询ID - * @return String 返回类型 - */ - String source() default ""; - - /** - * @Description: TODO(这里用一句话描述这个方法的作用) - * @return - * @return QJoinSource 返回类型 - */ - SourceType sourceType() default SourceType.TABLE; - - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoinColumn.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoinColumn.java deleted file mode 100644 index 1b83476..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoinColumn.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.pictc.annotations.datalog; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * @author 张福财 - * @date 2025年8月26日 上午9:37:45 - * @Description: 关联属性配置 - */ -@Target({ElementType.METHOD, ElementType.FIELD}) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface LogJoinColumn { - - /** - * @Description: 属性 - * @return String 返回类型 - */ - String field() default ""; - - /** - * @Description: 关联属性 - * @return String 返回类型 - */ - String relatedField() default ""; - - - /** - * @Description: 赋值方向 - * @return ValueDirectionType 返回类型 - */ - ValueDirectionType valueDirection() default ValueDirectionType.LEFT; - - /** - * @Description: 关联值类型:JoinValueType: FEILD【字段关联】、STATIC【字段等于静态值】 - * @return String 返回类型 - */ - JoinValueType valueType() default JoinValueType.FEILD; - - String staticValue() default ""; - - Class staticType() default String.class; - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogTable.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogTable.java deleted file mode 100644 index cfb2884..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogTable.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.pictc.annotations.datalog; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.core.annotation.AliasFor; - -/** - * @author 张福财 - * @date 2025年8月25日 下午6:09:03 - * @Description: TODO(这里用一句话描述这个类的作用) - */ -@Target({ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface LogTable { - - /** - * @Description: 业务名称 - * @return String 返回类型 - */ - @AliasFor("name") - String value() default ""; - - - /** - * @Description: 业务名称 - * @return String 返回类型 - */ - @AliasFor("value") - String name() default ""; - - /** - * @Description: 表名或者查询ID - * @return String 返回类型 - */ - String source(); - - /** - * @Description: - * @return QJoinSource 返回类型 - */ - SourceType sourceType() default SourceType.TABLE; - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/SourceType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/SourceType.java deleted file mode 100644 index 781e4c7..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/SourceType.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pictc.annotations.datalog; - -/** - * @author 张福财 - * @date 2025年8月28日 下午4:24:27 - * @Description: 数据来源,默认从关联表,获取从SQL配置表 - */ -public enum SourceType { - - TABLE, - TSQL - -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/ValueDirectionType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/ValueDirectionType.java deleted file mode 100644 index 75f6cc7..0000000 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/ValueDirectionType.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pictc.annotations.datalog; - -/** - * @author 张福财 - * @date 2025年8月28日 下午2:40:03 - * @Description: 赋值方向 - * 左边为主表 - * 右边为子表 - */ -public enum ValueDirectionType { - LEFT, //向左 - RIGHT -} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/config/PEventListenerConfig.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/config/PEventListenerConfig.java new file mode 100644 index 0000000..4785cbc --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/config/PEventListenerConfig.java @@ -0,0 +1,29 @@ +package com.pictc.config; + +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +import com.pictc.listener.PEventListenerPublisher; +import com.pictc.listener.TNacosManager; + +@Configuration +public class PEventListenerConfig { + + @Bean + public PEventListenerPublisher pEventListenerPublisher() { + return new PEventListenerPublisher(); + } + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } + + @Bean + public TNacosManager nacosManager() { + return new TNacosManager(); + } + +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/ListenerParameterContext.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/ListenerParameterContext.java new file mode 100644 index 0000000..dad1c0d --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/ListenerParameterContext.java @@ -0,0 +1,31 @@ +package com.pictc.listener; + +import java.io.Serializable; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ListenerParameterContext implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * 发送源 + */ + private String source; + + /** + * 数据 + */ + private Object data; + /** + * 单个监听器执行成功,就算成功 + */ + private boolean single; + +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/MethodInfo.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/MethodInfo.java new file mode 100644 index 0000000..7c7d3fd --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/MethodInfo.java @@ -0,0 +1,27 @@ +package com.pictc.listener; + +import java.lang.reflect.Method; + +import lombok.Data; + +@Data +public class MethodInfo { + + private Object bean; + + private Method method; + + private PEventListener annotation; + + public MethodInfo(Object bean, Method method, PEventListener annotation) { + super(); + this.bean = bean; + this.method = method; + this.annotation = annotation; + } + + public Object invoke(Object[] args) throws Exception { + return method.invoke(bean, args); + } + +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/PEventListener.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/PEventListener.java new file mode 100644 index 0000000..27793f5 --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/PEventListener.java @@ -0,0 +1,19 @@ +package com.pictc.listener; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) // 标注在方法上 +@Retention(RetentionPolicy.RUNTIME) // 运行时保留,反射可获取 +public @interface PEventListener { + + + /** + * EL表达式内容 + */ + String value() default ""; + + +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/PEventListenerPublisher.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/PEventListenerPublisher.java new file mode 100644 index 0000000..d104b38 --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/PEventListenerPublisher.java @@ -0,0 +1,62 @@ +package com.pictc.listener; + +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Set; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.RequestEntity; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import com.pictc.utils.CollectionUtils; +import com.pictc.utils.ObjectUtils; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class PEventListenerPublisher { + + private static RestTemplate rest; + + @Autowired + public void setRest(RestTemplate rest) { + PEventListenerPublisher.rest = rest; + } + + public static boolean publish(Object source,Object data) { + return publish(source, data, false); + } + + public static boolean publish(Object source,Object data,boolean single) { + ListenerParameterContext conetext = new ListenerParameterContext(); + conetext.setSource(TNacosManager.getAppName()+":"+source.getClass().getCanonicalName()); + conetext.setData(data); + conetext.setSingle(single); + Set services = TNacosManager.getNotSelfServices(); + boolean flag = single?false:true; + if(CollectionUtils.isNotEmpty(services)) { + for (String serviceId : services) { + try { + URI uri = TNacosManager.getServiceURI(serviceId); + if(uri!=null) { + HttpHeaders headers = TNacosManager.createNewHeaders(); + byte[] bytes = ObjectUtils.toBytes(conetext); + RequestEntity request = new RequestEntity(bytes,headers,HttpMethod.POST,uri); + ResponseEntity responseEntity = rest.exchange(request,boolean.class); + if(single && responseEntity.hasBody() && responseEntity.getBody()) { + return true; + } + } + } catch (URISyntaxException e) { + e.printStackTrace(); + log.info("客户端:{}调用失败!",serviceId); + } + } + } + return flag; + } + +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/TNacosManager.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/TNacosManager.java new file mode 100644 index 0000000..2a81ec5 --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/listener/TNacosManager.java @@ -0,0 +1,214 @@ +package com.pictc.listener; + +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; +import org.springframework.http.HttpHeaders; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import com.alibaba.cloud.nacos.NacosDiscoveryProperties; +import com.alibaba.cloud.nacos.NacosServiceManager; +import com.alibaba.nacos.api.common.Constants; +import com.alibaba.nacos.api.exception.NacosException; +import com.alibaba.nacos.api.naming.NamingService; +import com.alibaba.nacos.api.naming.pojo.ListView; +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.Event; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import com.pictc.utils.CollectionUtils; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Getter +public class TNacosManager extends Subscriber implements InitializingBean{ + + private static Set services = CollectionUtils.newConcurrentSet(); + + private static Object lock = new Object(); + + private static NacosServiceManager nacosServiceManager; + + private static NacosDiscoveryProperties properties; + + private static NamingService nacos; + + private static String appName; + + private static String group; + + private static LoadBalancerClient loadba; + + @Autowired + public void setLoadbalancerClient(LoadBalancerClient loadbalancerClient) { + TNacosManager.loadba = loadbalancerClient; + } + + @Value("${spring.application.name}") + public void setAppName(String appName) { + TNacosManager.appName = appName; + } + + public static String getAppName() { + return appName; + } + + public static boolean isSelf(String serviceId) { + return appName.equals(serviceId); + } + + @Autowired + public void setNacosServiceManager(NacosServiceManager nacosServiceManager) { + TNacosManager.nacosServiceManager = nacosServiceManager; + } + + @Autowired + public void setProperties(NacosDiscoveryProperties properties) { + TNacosManager.properties = properties; + } + + public static Set getServices() { + synchronized (lock) { + initServices(); + return services; + } + } + + + public static Set getNotSelfServices() { + return getServices().stream().filter(it->it.equals(appName)).collect(Collectors.toSet()); + } + + public static URI getServiceURI(String serviceId) throws URISyntaxException { + ServiceInstance instance = loadba.choose(serviceId); + if(instance==null) return null; + String url = instance.getUri().toString(); + if(url.endsWith("/")) { + url = url.substring(0, url.length()-1); + } + return new URI(url+"/reception/listener"); + } + + public static HttpHeaders createNewHeaders() { + HttpHeaders source = getHeaders(); + HttpHeaders headers = new HttpHeaders(); + if(source!=null) { + for (String name : source.keySet()) { + if(HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name) + || HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name) + || HttpHeaders.CONTENT_DISPOSITION.equalsIgnoreCase(name) + || HttpHeaders.CONTENT_ENCODING.equalsIgnoreCase(name) + || HttpHeaders.CONTENT_LANGUAGE.equalsIgnoreCase(name) + || HttpHeaders.CONTENT_LOCATION.equalsIgnoreCase(name) + || HttpHeaders.CONTENT_RANGE.equalsIgnoreCase(name) + ) { + continue; + } + headers.addAll(name,source.get(name)); + } + } + return headers; + } + + @Override + public void afterPropertiesSet() throws Exception { + init(); + NotifyCenter.registerSubscriber(this); + initServices(); + } + + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } + + @Override + public void onEvent(InstancesChangeEvent event) { + String serviceName = event.getServiceName(); + String split = Constants.SERVICE_INFO_SPLITER; + if (serviceName.contains(split)) { + serviceName = serviceName.substring(serviceName.indexOf(split) + split.length()); + } + initServices(); + } + + private static void init() { + if(nacos==null) { + nacos = nacosServiceManager.getNamingService(); + group = properties.getGroup(); + } + } + + private static void initServices() { + try { + init(); + services.clear(); + int index = 1; + while (true) { + ListView listView = nacos.getServicesOfServer(index,20,group); + if(CollectionUtils.isEmpty(listView.getData())) { + break; + }else { + for (String name : listView.getData()) { + if(!services.contains(name)) { + services.add(name); + } + } + } + index++; + } + } catch (NacosException e) { + log.error("初始化服务名异常",e); + } + } + + public static HttpHeaders getHeaders() { + HttpServletRequest request = getRequest(); + HttpHeaders headers = null; + if(request!=null) { + headers = new HttpHeaders(); + Enumeration headerNames = request.getHeaderNames(); + if (headerNames != null) { + while (headerNames.hasMoreElements()) { + String name = headerNames.nextElement(); + headers.addAll(name, getValues(request.getHeaders(name))); + } + } + } + return headers; + } + + private static List getValues(Enumeration sourcs){ + List values = new ArrayList(); + if (sourcs != null) { + while (sourcs.hasMoreElements()) { + values.add(sourcs.nextElement()); + } + } + return values; + } + + private static HttpServletRequest getRequest() { + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); + if(servletRequestAttributes!=null) { + return servletRequestAttributes.getRequest(); + } + return null; + } + +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java index 6257a82..a5aef2d 100644 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java @@ -777,7 +777,6 @@ public class DataLogTools { change.setNewValue(parseValue(BeanUtils.getFieldValue(item.getField(),entity),item.getField().getType())); datalog.addFiledChnage(change); } - } } @@ -891,7 +890,9 @@ public class DataLogTools { // } // executeBatch(sql, batchParams); for (DataChangeLog item : logs) { - logDbService.insertDataLog(tableName,item); + if(item.hasFieldChanges()) { + logDbService.insertDataLog(tableName,item); + } } } diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/MethodUtils.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/MethodUtils.java new file mode 100644 index 0000000..eaf43e1 --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/MethodUtils.java @@ -0,0 +1,70 @@ +package com.pictc.utils; + +import java.lang.reflect.Method; +import java.lang.reflect.Parameter; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; + +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.core.ParameterNameDiscoverer; + +public class MethodUtils { + + private static ParameterNameDiscoverer discoverer = new DefaultParameterNameDiscoverer(); + + private MethodUtils() { + super(); + } + + public static String toString(Method method) { + StringBuilder builder = new StringBuilder(method.getName()); + builder.append("("); + String[] names = getArgNames(method); + Parameter[] parameters = method.getParameters(); + if(parameters!=null) { + for (int i = 0; i < parameters.length; i++) { + if(i>0) { + builder.append(","); + } + if(names!=null) { + builder.append(names[i]); + }else { + builder.append("arg"+i); + } + Parameter parameter = parameters[i]; + builder.append(":"); + builder.append(typeToString(parameter.getParameterizedType())); + } + } + builder.append("):"); + if(Void.class.equals(method.getReturnType())) { + builder.append("void"); + }else { + builder.append(method.getReturnType().getName()); + } + return builder.toString(); + } + + public static String[] getArgNames(Method method) { + return discoverer.getParameterNames(method); + } + + public static String typeToString(Type type) { + if(type instanceof ParameterizedType) { + ParameterizedType gtype = ((ParameterizedType)type); + StringBuilder builder = new StringBuilder(); + builder.append(gtype.getRawType().getTypeName()); + Type[] generics = gtype.getActualTypeArguments(); + builder.append("<"); + for (int i = 0; i < generics.length; i++) { + if(i>0) { + builder.append(","); + } + builder.append(typeToString(generics[i])); + } + builder.append(">"); + return builder.toString(); + } + return type.getTypeName(); + } +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/ObjectUtils.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/ObjectUtils.java new file mode 100644 index 0000000..1e6ddb1 --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/ObjectUtils.java @@ -0,0 +1,96 @@ +package com.pictc.utils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.Closeable; +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.io.Serializable; + +/** + * @Description TODO(这里用一句话描述这个类的作用) + * @author zhangfucai + * @Date 2023年4月25日 上午12:49:14 + * @version 1.0.0 + */ +public class ObjectUtils { + + private ObjectUtils() { + super(); + } + + public static byte[] toBytes(Object obj){ + if(obj!=null) { + if(!(obj instanceof Serializable)) { + throw new RuntimeException(obj+"没有实现 Serializable!"); + } + ByteArrayOutputStream out = new ByteArrayOutputStream(); + ObjectOutputStream oo=null; + try { + oo = new ObjectOutputStream(out); + oo.writeObject(obj); + oo.flush(); + return out.toByteArray(); + } catch (Exception e) { + throw new RuntimeException("对象序列化失败!",e); + }finally { + closeQuietly(oo,out); + } + } + return null; + } + + public static void write(OutputStream out,Object obj) { + if(obj!=null) { + if(!(obj instanceof Serializable)) { + throw new RuntimeException(obj+"没有实现 Serializable!"); + } + ObjectOutputStream oo=null; + try { + oo = new ObjectOutputStream(out); + oo.writeObject(obj); + oo.flush(); + } catch (Exception e) { + throw new RuntimeException("对象序列化失败!",e); + }finally { + closeQuietly(oo,out); + } + } + } + + @SuppressWarnings("unchecked") + public static T reader(InputStream in){ + ObjectInputStream ois = null; + try { + ois = new ObjectInputStream(in); + return (T) ois.readObject(); + } catch (Exception e) { + throw new RuntimeException("对象反序列化失败!",e); + }finally { + closeQuietly(ois,in); + } + } + + public static T reader(byte[] bytes){ + return reader(new ByteArrayInputStream(bytes)); + } + + public static void closeQuietly(Closeable... closeables) { + if (closeables == null) + return; + + for (Closeable closeable : closeables) { + if (closeable == null) + return; + + try { + closeable.close(); + } catch (IOException ignored) { + } + } + } + +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/xjrsoft/common/ServiceListenerProvider.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/xjrsoft/common/ServiceListenerProvider.java new file mode 100644 index 0000000..2fc0365 --- /dev/null +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/xjrsoft/common/ServiceListenerProvider.java @@ -0,0 +1,119 @@ +package com.xjrsoft.common; + +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Method; +import java.util.List; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.BeansException; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.alibaba.fastjson.JSON; +import com.pictc.listener.ListenerParameterContext; +import com.pictc.listener.MethodInfo; +import com.pictc.listener.PEventListener; +import com.pictc.utils.CollectionUtils; +import com.pictc.utils.ObjectUtils; +import com.pictc.utils.StringUtils; + +import lombok.extern.slf4j.Slf4j; +import springfox.documentation.annotations.ApiIgnore; + +@Slf4j +@ApiIgnore +@RequestMapping("/reception") +public class ServiceListenerProvider implements ApplicationContextAware,ApplicationRunner{ + + private ApplicationContext context; + + private List cmethods = CollectionUtils.newArrayList(); + + // SpEL解析器 + private final ExpressionParser parser = new SpelExpressionParser(); + + private static byte[] FALSE; + + private static byte[] TRUE; + + static { + try { + FALSE = "false".getBytes("UTF-8"); + TRUE = "true".getBytes("UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.context = applicationContext; + } + + @PostMapping("/listener") + public void reception(HttpServletRequest request,HttpServletResponse response) throws Exception { + boolean flag = false; + if(!cmethods.isEmpty()) { + ListenerParameterContext context = ObjectUtils.reader(request.getInputStream()); + log.info("监听服务:{},调用{}->{},是否单例:{}",context.getSource(),JSON.toJSONString(context.getData()),context.isSingle()); + StandardEvaluationContext elEContext = new StandardEvaluationContext(); + elEContext.setVariable("source", context.getSource()); + elEContext.setVariable("data", context.getData()); + for (MethodInfo info : cmethods) { + PEventListener annotation = info.getAnnotation(); + if(StringUtils.isNotEmpty(annotation.value())) { + Object result = parser.parseExpression(annotation.value()).getValue(elEContext); + System.out.println("EL表达式执行结果:" + result); + if(result!=null && (boolean)result == false) { + continue; + } + } + flag = parseResult(info.invoke(new Object[] {context.getSource(),context.getData()})); + if(context.isSingle() && flag) { + break; + } + } + ServletOutputStream stream = response.getOutputStream(); + stream.write(flag?TRUE:FALSE); + stream.flush(); + }else { + log.info("没有注册监听器"); + } + } + + private boolean parseResult(Object val) { + if(val==null) return false; + if(Boolean.class.equals(val.getClass())) { + return Boolean.class.cast(val).booleanValue(); + }else if(boolean.class.equals(val.getClass())) { + return (boolean)val; + } + return true; + } + + // 项目启动后执行扫描 + @Override + public void run(ApplicationArguments args) throws Exception { + String[] beanNames = context.getBeanDefinitionNames(); + for (String beanName : beanNames) { + Object bean = context.getBean(beanName); + Method[] methods = bean.getClass().getDeclaredMethods(); + for (Method method : methods) { + if (method.isAnnotationPresent(PEventListener.class)) { + cmethods.add(new MethodInfo(bean, method, method.getAnnotation(PEventListener.class))); + } + } + } + log.info("监听器客户端:{}",cmethods); + } +} diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/resources/META-INF/spring.factories b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/resources/META-INF/spring.factories index 4172a60..a621731 100644 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/resources/META-INF/spring.factories +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/resources/META-INF/spring.factories @@ -1,4 +1,5 @@ # src/main/resources/META-INF/spring.factories org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.pictc.config.PcitcAutoConfig,\ -com.pictc.config.JdbcConfig \ No newline at end of file +com.pictc.config.JdbcConfig,\ +com.pictc.config.PEventListenerConfig \ No newline at end of file diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/target/classes/META-INF/spring.factories b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/target/classes/META-INF/spring.factories index 4172a60..a621731 100644 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/target/classes/META-INF/spring.factories +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/target/classes/META-INF/spring.factories @@ -1,4 +1,5 @@ # src/main/resources/META-INF/spring.factories org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.pictc.config.PcitcAutoConfig,\ -com.pictc.config.JdbcConfig \ No newline at end of file +com.pictc.config.JdbcConfig,\ +com.pictc.config.PEventListenerConfig \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/client/ILngStationClient.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/client/ILngStationClient.java new file mode 100644 index 0000000..6b325a6 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/client/ILngStationClient.java @@ -0,0 +1,24 @@ +package com.xjrsoft.module.mdm.client; + +import java.util.Map; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import com.xjrsoft.common.constant.GlobalConstant; + +/** + * @author: ksy + * @since: 2025/11/5 + */ +@FeignClient(value = GlobalConstant.CLIENT_PCITC_MDM_NAME, path = GlobalConstant.CLIENT_API_PRE + GlobalConstant.MDM_MODULE_PREFIX + "/tran/lngStation") +public interface ILngStationClient { + + @GetMapping("/getAllTranData") + Map getAllTranData(); + + @GetMapping("/getTranById") + String getTranById(@RequestParam("id")String id); + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/AddTestflow001Dto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/AddTestflow001Dto.java new file mode 100644 index 0000000..8f24abc --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/AddTestflow001Dto.java @@ -0,0 +1,62 @@ +package com.xjrsoft.module.mdm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +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; + +import com.pictc.annotations.datalog.LogField; +import com.pictc.annotations.datalog.LogTable; + + + + +/** +* @title: 测试流程1 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Data +@LogTable(source="testflow_001",name="测试流程1") +public class AddTestflow001Dto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户 + */ + @ApiModelProperty("客户") + @LogField(name="客户",index=0) + private String customer; + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + @LogField(name="客户编码",index=0) + private String customerCode; + /** + * 名称 + */ + @ApiModelProperty("名称") + @LogField(name="名称",index=0) + private String name; + /** + * 备注 + */ + @ApiModelProperty("备注") + @LogField(name="备注",index=0) + private String note; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private Long tenantId; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/AddTestflow003Dto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/AddTestflow003Dto.java new file mode 100644 index 0000000..2e1e301 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/AddTestflow003Dto.java @@ -0,0 +1,56 @@ +package com.xjrsoft.module.mdm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +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; + +import com.pictc.annotations.datalog.LogField; +import com.pictc.annotations.datalog.LogTable; + + + + +/** +* @title: 测试流程3 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Data +@LogTable(source="testflow_003",name="测试流程3") +public class AddTestflow003Dto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 名称 + */ + @ApiModelProperty("名称") + @LogField(name="名称",index=0) + private String name; + /** + * 编码 + */ + @ApiModelProperty("编码") + @LogField(name="编码",index=0) + private String code; + /** + * 备注 + */ + @ApiModelProperty("备注") + @LogField(name="备注",index=0) + private String note; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private Long tenantId; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/Testflow001PageDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/Testflow001PageDto.java new file mode 100644 index 0000000..2c3d9f9 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/Testflow001PageDto.java @@ -0,0 +1,45 @@ +package com.xjrsoft.module.mdm.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: 2025-11-26 +* @Version 1.0 +*/ +@Data +@EqualsAndHashCode(callSuper = false) +public class Testflow001PageDto extends PageInput { + + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/Testflow003PageDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/Testflow003PageDto.java new file mode 100644 index 0000000..188dc8d --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/Testflow003PageDto.java @@ -0,0 +1,40 @@ +package com.xjrsoft.module.mdm.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: 2025-11-26 +* @Version 1.0 +*/ +@Data +@EqualsAndHashCode(callSuper = false) +public class Testflow003PageDto extends PageInput { + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + /** + * 编码 + */ + @ApiModelProperty("编码") + private String code; + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateLngBPortDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateLngBPortDto.java index 7a276dc..d7ade06 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateLngBPortDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateLngBPortDto.java @@ -43,21 +43,21 @@ public class UpdateLngBPortDto implements Serializable { /** * 助记码(自动生成,4位,0001……) */ - @LogField(name="助记码(自动生成,4位,0001……)",index=1) + @LogField(name="助记码",index=1) @ApiModelProperty("助记码(自动生成,4位,0001……)") private String code; /** * 名称(名称和简称都不能重复) */ - @LogField(name="名称(名称和简称都不能重复)",index=2) + @LogField(name="名称",index=2) @ApiModelProperty("名称(名称和简称都不能重复)") private String fullName; /** * 简称(名称和简称都不能重复) */ - @LogField(name="简称(名称和简称都不能重复)",index=3) + @LogField(name="简称",index=3) @ApiModelProperty("简称(名称和简称都不能重复)") private String shortName; @@ -127,7 +127,7 @@ public class UpdateLngBPortDto implements Serializable { /** * 有效标志(Y-有效,N-无效) */ - @LogField(name="有效标志(Y-有效,N-无效)",index=13) + @LogField(name="有效标志",index=13) @ApiModelProperty("有效标志(Y-有效,N-无效)") private String valid; @@ -141,7 +141,7 @@ public class UpdateLngBPortDto implements Serializable { /** * 租户id */ - @LogField(name="租户id",index=15) + @LogField(name="租户",index=15) @ApiModelProperty("租户id") private Long tenantId; diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateTestflow001Dto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateTestflow001Dto.java new file mode 100644 index 0000000..30f0fc9 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateTestflow001Dto.java @@ -0,0 +1,79 @@ +package com.xjrsoft.module.mdm.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: 测试流程1 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Data +@LogTable(source="testflow_001",name="测试流程1") +public class UpdateTestflow001Dto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @LogField(name="",index=0) + @ApiModelProperty("") + private Long id; + + /** + * 客户 + */ + @LogField(name="客户",index=1) + @ApiModelProperty("客户") + private String customer; + + /** + * 客户编码 + */ + @LogField(name="客户编码",index=2) + @ApiModelProperty("客户编码") + private String customerCode; + + /** + * 名称 + */ + @LogField(name="名称",index=3) + @ApiModelProperty("名称") + private String name; + + /** + * 备注 + */ + @LogField(name="备注",index=4) + @ApiModelProperty("备注") + private String note; + + /** + * + */ + @LogField(name="",index=5) + @ApiModelProperty("") + private Long tenantId; + + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateTestflow003Dto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateTestflow003Dto.java new file mode 100644 index 0000000..32f7b77 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/dto/UpdateTestflow003Dto.java @@ -0,0 +1,72 @@ +package com.xjrsoft.module.mdm.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: 测试流程3 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Data +@LogTable(source="testflow_003",name="测试流程3") +public class UpdateTestflow003Dto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @LogField(name="",index=0) + @ApiModelProperty("") + private Long id; + + /** + * 名称 + */ + @LogField(name="名称",index=1) + @ApiModelProperty("名称") + private String name; + + /** + * 编码 + */ + @LogField(name="编码",index=2) + @ApiModelProperty("编码") + private String code; + + /** + * 备注 + */ + @LogField(name="备注",index=3) + @ApiModelProperty("备注") + private String note; + + /** + * + */ + @LogField(name="",index=4) + @ApiModelProperty("") + private Long tenantId; + + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/LngBPngLinePageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/LngBPngLinePageVo.java index 13bc007..f826945 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/LngBPngLinePageVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/LngBPngLinePageVo.java @@ -44,6 +44,7 @@ public class LngBPngLinePageVo { * 自有接收站(惠州/阳江) */ @ApiModelProperty("自有接收站(惠州/阳江)") + @Trans(type = TransType.LNG_STATION) private String staCodeLng; /** * 显示顺序 diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow001PageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow001PageVo.java new file mode 100644 index 0000000..9bde6fb --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow001PageVo.java @@ -0,0 +1,48 @@ +package com.xjrsoft.module.mdm.vo; + +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: 2025-11-26 +* @Version 1.0 +*/ +@Data +public class Testflow001PageVo { + + /** + * + */ + @ApiModelProperty("") + private String id; + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow001Vo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow001Vo.java new file mode 100644 index 0000000..1698a6f --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow001Vo.java @@ -0,0 +1,100 @@ +package com.xjrsoft.module.mdm.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.util.List; + +/** +* @title: 表单出参 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Data +public class Testflow001Vo { + + /** + * + */ + @ApiModelProperty("") + private Long id; + + + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + + + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + + + /** + * + */ + @ApiModelProperty("") + private Long createUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime createDate; + + + /** + * + */ + @ApiModelProperty("") + private Long modifyUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime modifyDate; + + + /** + * + */ + @ApiModelProperty("") + private Integer enabledMark; + + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + + + + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow003PageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow003PageVo.java new file mode 100644 index 0000000..de48373 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow003PageVo.java @@ -0,0 +1,43 @@ +package com.xjrsoft.module.mdm.vo; + +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: 2025-11-26 +* @Version 1.0 +*/ +@Data +public class Testflow003PageVo { + + /** + * + */ + @ApiModelProperty("") + private String id; + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + /** + * 编码 + */ + @ApiModelProperty("编码") + private String code; + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow003Vo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow003Vo.java new file mode 100644 index 0000000..c39e8fd --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/vo/Testflow003Vo.java @@ -0,0 +1,93 @@ +package com.xjrsoft.module.mdm.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.util.List; + +/** +* @title: 表单出参 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Data +public class Testflow003Vo { + + /** + * + */ + @ApiModelProperty("") + private Long id; + + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + + /** + * 编码 + */ + @ApiModelProperty("编码") + private String code; + + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + + + /** + * + */ + @ApiModelProperty("") + private Long createUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime createDate; + + + /** + * + */ + @ApiModelProperty("") + private Long modifyUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime modifyDate; + + + /** + * + */ + @ApiModelProperty("") + private Integer enabledMark; + + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + + + + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/AddLngCustomerDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/AddLngCustomerDto.java index bf0740b..4248ef2 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/AddLngCustomerDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/AddLngCustomerDto.java @@ -226,4 +226,10 @@ public class AddLngCustomerDto implements Serializable { */ @ApiModelProperty("lngCustomerContact子表") private List lngCustomerContactList; + + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + private List lngFileUploadList; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/AddLngFileUploadDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/AddLngFileUploadDto.java new file mode 100644 index 0000000..20407ef --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/AddLngFileUploadDto.java @@ -0,0 +1,90 @@ +package com.xjrsoft.module.sales.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +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; + +import com.pictc.annotations.datalog.LogField; +import com.pictc.annotations.datalog.LogTable; + + + + +/** +* @title: 客户 +* @Author 管理员 +* @Date: 2025-11-21 +* @Version 1.0 +*/ +@Data +@LogTable(source="lng_file_upload",name="客户") +public class AddLngFileUploadDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private String tableName; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private Long tableId; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private String columnName; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private String fileOrg; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private String filePath; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private Long fileSize; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private String docDesc; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private Short sort; + /** + * + */ + @ApiModelProperty("") + @LogField(name="",index=0) + private Long tenantId; + + @LogField(name="",index=10) + @ApiModelProperty("") + private Long xjrFileId; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerAttrPowerDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerAttrPowerDto.java index 81d5f77..42e68e4 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerAttrPowerDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerAttrPowerDto.java @@ -28,7 +28,7 @@ import com.pictc.annotations.datalog.ValueDirectionType; * @Version 1.0 */ @Data -@LogTable(source="lng_customer_attr_power",name="客户") +@LogTable(source="lng_customer_attr_power",name="客户业务信息") public class UpdateLngCustomerAttrPowerDto implements Serializable { private static final long serialVersionUID = 1L; diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerBankDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerBankDto.java index 4ffe9a4..d2da90d 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerBankDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerBankDto.java @@ -28,7 +28,7 @@ import com.pictc.annotations.datalog.ValueDirectionType; * @Version 1.0 */ @Data -@LogTable(source="lng_customer_bank",name="客户") +@LogTable(source="lng_customer_bank",name="客户银行信息") public class UpdateLngCustomerBankDto implements Serializable { private static final long serialVersionUID = 1L; diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerContactDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerContactDto.java index 897a583..9377a43 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerContactDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerContactDto.java @@ -28,7 +28,7 @@ import com.pictc.annotations.datalog.ValueDirectionType; * @Version 1.0 */ @Data -@LogTable(source="lng_customer_contact",name="客户") +@LogTable(source="lng_customer_contact",name="客户联系人信息") public class UpdateLngCustomerContactDto implements Serializable { private static final long serialVersionUID = 1L; diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDocDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDocDto.java index a0a5721..8924da4 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDocDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDocDto.java @@ -28,7 +28,7 @@ import com.pictc.annotations.datalog.ValueDirectionType; * @Version 1.0 */ @Data -@LogTable(source="lng_customer_doc",name="客户") +@LogTable(source="lng_customer_doc",name="客户证书信息") public class UpdateLngCustomerDocDto implements Serializable { private static final long serialVersionUID = 1L; @@ -96,5 +96,14 @@ public class UpdateLngCustomerDocDto implements Serializable { @ApiModelProperty("租户id") private Long tenantId; - + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + @LogJoin(name = "lngFileUpload子表", + columns = { + @LogJoinColumn(field = "tableId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngFileUploadDto.class, type = JoinType.MANY) + private List fileList; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDto.java index b93f067..dd8dc31 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngCustomerDto.java @@ -252,7 +252,7 @@ public class UpdateLngCustomerDto implements Serializable { * lngCustomerAttrPower */ @ApiModelProperty("lngCustomerAttrPower子表") - @LogJoin(name = "lngCustomerAttrPower子表", + @LogJoin(name = "客户业务信息", columns = { @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) }, @@ -262,7 +262,7 @@ public class UpdateLngCustomerDto implements Serializable { * lngCustomerBank */ @ApiModelProperty("lngCustomerBank子表") - @LogJoin(name = "lngCustomerBank子表", + @LogJoin(name = "客户银行信息", columns = { @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) }, @@ -272,7 +272,7 @@ public class UpdateLngCustomerDto implements Serializable { * lngCustomerDoc */ @ApiModelProperty("lngCustomerDoc子表") - @LogJoin(name = "lngCustomerDoc子表", + @LogJoin(name = "客户证书信息", columns = { @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) }, @@ -282,10 +282,20 @@ public class UpdateLngCustomerDto implements Serializable { * lngCustomerContact */ @ApiModelProperty("lngCustomerContact子表") - @LogJoin(name = "lngCustomerContact子表", - columns = { + @LogJoin(name = "客户联系人信息",columns = { @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) }, caseType = JoinCaseType.FULL, target = UpdateLngCustomerContactDto.class, type = JoinType.MANY) private List lngCustomerContactList; + + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + @LogJoin(name = "lngFileUpload子表", + columns = { + @LogJoinColumn(field = "tableId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngFileUploadDto.class, type = JoinType.MANY) + private List lngFileUploadList; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngFileUploadDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngFileUploadDto.java new file mode 100644 index 0000000..c2c7bd7 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/dto/UpdateLngFileUploadDto.java @@ -0,0 +1,109 @@ +package com.xjrsoft.module.sales.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: 2025-11-21 +* @Version 1.0 +*/ +@Data +@LogTable(source="lng_file_upload",name="客户") +public class UpdateLngFileUploadDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @LogField(name="",index=0) + @ApiModelProperty("") + private Long id; + + /** + * + */ + @LogField(name="",index=1) + @ApiModelProperty("") + private String tableName; + + /** + * + */ + @LogField(name="",index=2) + @ApiModelProperty("") + private Long tableId; + + /** + * + */ + @LogField(name="",index=3) + @ApiModelProperty("") + private String columnName; + + /** + * + */ + @LogField(name="",index=4) + @ApiModelProperty("") + private String fileOrg; + + /** + * + */ + @LogField(name="",index=5) + @ApiModelProperty("") + private String filePath; + + /** + * + */ + @LogField(name="",index=6) + @ApiModelProperty("") + private Long fileSize; + + /** + * + */ + @LogField(name="",index=7) + @ApiModelProperty("") + private String docDesc; + + /** + * + */ + @LogField(name="",index=8) + @ApiModelProperty("") + private Short sort; + + /** + * + */ + @LogField(name="",index=9) + @ApiModelProperty("") + private Long tenantId; + + @LogField(name="",index=10) + @ApiModelProperty("") + private Long xjrFileId; +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerDocVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerDocVo.java index ef0d4fe..6e2cc24 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerDocVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerDocVo.java @@ -122,7 +122,11 @@ public class LngCustomerDocVo { private Long ruleUserId; - + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + private List fileList; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerPageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerPageVo.java index 6eecdab..d8c563a 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerPageVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerPageVo.java @@ -1,5 +1,8 @@ package com.xjrsoft.module.sales.vo; +import com.xjrsoft.common.annotation.Trans; +import com.xjrsoft.common.enums.TransType; + import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -41,26 +44,34 @@ public class LngCustomerPageVo { * 企业性质(国有企业/非国有企业) */ @ApiModelProperty("企业性质(国有企业/非国有企业)") + @Trans(type = TransType.DIC, id = "1990667133987635201") private String natureCode; /** * 客户分类(一类/二类) */ @ApiModelProperty("客户分类(一类/二类)") + @Trans(type = TransType.DIC, id = "1990668094164484097") private String classCode; /** * 客户类别(电厂/工业用户/城燃/贸易商) */ @ApiModelProperty("客户类别(电厂/工业用户/城燃/贸易商)") + @Trans(type = TransType.DIC, id = "1990668471983194113") private String typeCode; /** * 有效标志(不在黑名单)(Y-有效,N-无效) */ @ApiModelProperty("有效标志(不在黑名单)(Y-有效,N-无效)") + @Trans(type = TransType.DIC, id = "1978057078528327681") private String valid; /** * 状态(未提交/审批中/已审批/已驳回) */ @ApiModelProperty("状态(未提交/审批中/已审批/已驳回)") + @Trans(type = TransType.DIC, id = "1990669393069129729", transToFieldName = "approName") private String approCode; + + @ApiModelProperty("状态(未提交/审批中/已审批/已驳回)") + private String approName; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerVo.java index 863df61..fa10322 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngCustomerVo.java @@ -297,5 +297,11 @@ public class LngCustomerVo { */ @ApiModelProperty("lngCustomerContact子表") private List lngCustomerContactList; + + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + private List lngFileUploadList; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngFileUploadVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngFileUploadVo.java new file mode 100644 index 0000000..bee7962 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngFileUploadVo.java @@ -0,0 +1,143 @@ +package com.xjrsoft.module.sales.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.pictc.annotations.datalog.LogField; + +/** +* @title: 表单出参 +* @Author 管理员 +* @Date: 2025-11-21 +* @Version 1.0 +*/ +@Data +public class LngFileUploadVo { + + /** + * + */ + @ApiModelProperty("") + private Long id; + + + /** + * + */ + @ApiModelProperty("") + private String tableName; + + + /** + * + */ + @ApiModelProperty("") + private Long tableId; + + + /** + * + */ + @ApiModelProperty("") + private String columnName; + + + /** + * + */ + @ApiModelProperty("") + private String fileOrg; + + + /** + * + */ + @ApiModelProperty("") + private String filePath; + + + /** + * + */ + @ApiModelProperty("") + private Long fileSize; + + + /** + * + */ + @ApiModelProperty("") + private String docDesc; + + + /** + * + */ + @ApiModelProperty("") + private Short sort; + + + /** + * + */ + @ApiModelProperty("") + private Long createUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime createDate; + + + /** + * + */ + @ApiModelProperty("") + private Long modifyUserId; + + + /** + * + */ + @ApiModelProperty("") + private LocalDateTime modifyDate; + + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + + /** + * + */ + @ApiModelProperty("") + private Long deptId; + + + /** + * + */ + @ApiModelProperty("") + private Long ruleUserId; + + + @ApiModelProperty("") + private String presignedUrl; + + + @LogField(name="",index=10) + @ApiModelProperty("") + private Long xjrFileId; + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/client/LngStationClientImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/client/LngStationClientImpl.java new file mode 100644 index 0000000..69e9479 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/client/LngStationClientImpl.java @@ -0,0 +1,50 @@ +package com.xjrsoft.module.mdm.client; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.xjrsoft.common.constant.GlobalConstant; +import com.xjrsoft.common.utils.TenantUtil; +import com.xjrsoft.module.mdm.entity.LngBStationLng; +import com.xjrsoft.module.mdm.service.ILNGStationService; + +import lombok.AllArgsConstructor; + +/** + * @author: yjw + * @since: 2025/3/5 + */ +//@Api(hidden = true) +@RestController +@RequestMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MDM_MODULE_PREFIX + "/tran/lngStation") +@AllArgsConstructor +public class LngStationClientImpl implements ILngStationClient { + + private final ILNGStationService lngStationService; + + @GetMapping("/getAllTranData") + @Override + public Map getAllTranData() { + try { + TenantUtil.ignore(true); + List list = lngStationService.list(); + return list.stream().collect(Collectors.toMap(LngBStationLng::getCode,LngBStationLng::getFullName)); + }finally { + TenantUtil.clear(); + } + } + + @GetMapping("/getTranById") + @Override + public String getTranById(@RequestParam("id")String code) { + LngBStationLng region = lngStationService.getByCode(code); + return region!=null?region.getFullName():null; + } + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/DocCpController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/DocCpController.java index 940ac0e..90a89b7 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/DocCpController.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/DocCpController.java @@ -15,6 +15,7 @@ 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.utils.CollectionUtils; import com.xjrsoft.common.model.result.R; import com.xjrsoft.common.page.ConventPage; import com.xjrsoft.common.page.PageOutput; @@ -24,9 +25,11 @@ import com.xjrsoft.module.datalog.vo.DataChangeLogVo; import com.xjrsoft.module.mdm.dto.LngBDocCpPageDto; import com.xjrsoft.module.mdm.dto.UpdateLngBDocCpDto; import com.xjrsoft.module.mdm.entity.LngBDocCp; +import com.xjrsoft.module.mdm.entity.LngBRegion; import com.xjrsoft.module.mdm.service.IDocCpService; import com.xjrsoft.module.mdm.vo.LngBDocCpPageVo; import com.xjrsoft.module.mdm.vo.LngBDocCpVo; +import com.xjrsoft.module.mdm.vo.LngBRegionVo; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.bean.BeanUtil; @@ -122,4 +125,25 @@ public class DocCpController { public R disable(@Valid @RequestBody List ids){ return R.ok(dataService.disable(UpdateLngBDocCpDto.class,ids)); } + + @GetMapping(value = "/queryList") + @ApiOperation(value="LngBDocCp列表(不分页)") + public R list(UpdateLngBDocCpDto dto){ + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .like(StrUtil.isNotBlank(dto.getFullName()), LngBDocCp::getFullName, dto.getFullName()) + .eq(StrUtil.isNotBlank(dto.getValid()), LngBDocCp::getValid, dto.getValid()) + .orderByDesc(LngBDocCp::getCode); + List voList = CollectionUtils.newArrayList(); + List docList = docCpService.list(queryWrapper); + if(docList != null && docList.size() > 0) { + for(LngBDocCp doc:docList) { + LngBDocCpVo vo = new LngBDocCpVo(); + BeanUtil.copyProperties(doc, vo); + voList.add(vo); + } + } + return R.ok(voList); + } } \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/Testflow001Controller.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/Testflow001Controller.java new file mode 100644 index 0000000..24df4d2 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/Testflow001Controller.java @@ -0,0 +1,119 @@ +package com.xjrsoft.module.mdm.controller; + +import java.util.List; + +import javax.validation.Valid; + +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.mdm.dto.Testflow001PageDto; +import com.xjrsoft.module.mdm.dto.UpdateTestflow001Dto; +import com.xjrsoft.module.mdm.entity.Testflow001; +import com.xjrsoft.module.mdm.service.ITestflow001Service; +import com.xjrsoft.module.mdm.vo.Testflow001PageVo; +import com.xjrsoft.module.mdm.vo.Testflow001Vo; +import com.xjrsoft.module.system.client.ICodeRuleClient; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; + +/** +* @title: 测试流程 +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@RestController +@RequestMapping("/mdm" + "/testflow001") +@Api(value = "/mdm" + "/testflow001",tags = "测试流程代码") +@AllArgsConstructor +public class Testflow001Controller { + + + private final ITestflow001Service testflow001Service; + private final ICodeRuleClient codeRuleClient; + private final DatalogService dataService; + + @GetMapping(value = "/page") + @ApiOperation(value="Testflow001列表(分页)") + @SaCheckPermission("testflow001:list") + public R page(@Valid Testflow001PageDto dto){ + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .like(StrUtil.isNotBlank(dto.getCustomer()),Testflow001::getCustomer,dto.getCustomer()) + .like(StrUtil.isNotBlank(dto.getCustomerCode()),Testflow001::getCustomerCode,dto.getCustomerCode()) + .like(StrUtil.isNotBlank(dto.getName()),Testflow001::getName,dto.getName()) + .like(StrUtil.isNotBlank(dto.getNote()),Testflow001::getNote,dto.getNote()) + .orderByDesc(Testflow001::getId) + .select(Testflow001.class,x -> VoToColumnUtil.fieldsToColumns(Testflow001PageVo.class).contains(x.getProperty())); + IPage page = testflow001Service.page(ConventPage.getPage(dto), queryWrapper); + PageOutput pageOutput = ConventPage.getPageOutput(page, Testflow001PageVo.class); + return R.ok(pageOutput); + } + + @GetMapping(value = "/info") + @ApiOperation(value="根据id查询Testflow001信息") + @SaCheckPermission("testflow001:detail") + public R info(@RequestParam Long id){ + Testflow001 testflow001 = testflow001Service.getById(id); + if (testflow001 == null) { + return R.error("找不到此数据!"); + } + return R.ok(BeanUtil.toBean(testflow001, Testflow001Vo.class)); + } + + @GetMapping(value = "/datalog") + @ApiOperation(value="根据id查询Testflow001数据详细日志") + @SaCheckPermission("testflow001:datalog") + public R datalog(@RequestParam Long id){ + List logs = dataService.findLogsByEntityId(UpdateTestflow001Dto.class,id); + return R.ok(logs); + } + + + @PostMapping + @ApiOperation(value = "新增Testflow001") + @SaCheckPermission("testflow001:add") + public R add(@Valid @RequestBody UpdateTestflow001Dto dto){ + codeRuleClient.useEncode("TestCode"); + UpdateTestflow001Dto res = dataService.insert(dto); + return R.ok(res.getId()); + } + + @PutMapping + @ApiOperation(value = "修改Testflow001") + @SaCheckPermission("testflow001:edit") + public R update(@Valid @RequestBody UpdateTestflow001Dto dto){ + return R.ok(dataService.updateById(dto)); + } + + @DeleteMapping + @ApiOperation(value = "删除") + @SaCheckPermission("testflow001:delete") + public R delete(@Valid @RequestBody List ids){ + return R.ok(dataService.deleteByIds(UpdateTestflow001Dto.class, ids)); + + } + + +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/Testflow003Controller.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/Testflow003Controller.java new file mode 100644 index 0000000..ae4e2c6 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/controller/Testflow003Controller.java @@ -0,0 +1,118 @@ +package com.xjrsoft.module.mdm.controller; + +import java.util.List; + +import javax.validation.Valid; + +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.mdm.dto.Testflow003PageDto; +import com.xjrsoft.module.mdm.dto.UpdateTestflow003Dto; +import com.xjrsoft.module.mdm.entity.Testflow003; +import com.xjrsoft.module.mdm.service.ITestflow003Service; +import com.xjrsoft.module.mdm.vo.Testflow003PageVo; +import com.xjrsoft.module.mdm.vo.Testflow003Vo; +import com.xjrsoft.module.system.client.ICodeRuleClient; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; + +/** +* @title: 测试流程3 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@RestController +@RequestMapping("/mdm" + "/testflow003") +@Api(value = "/mdm" + "/testflow003",tags = "测试流程3代码") +@AllArgsConstructor +public class Testflow003Controller { + + + private final ITestflow003Service testflow003Service; + private final ICodeRuleClient codeRuleService; + private final DatalogService dataService; + + @GetMapping(value = "/page") + @ApiOperation(value="Testflow003列表(分页)") + @SaCheckPermission("testflow003:list") + public R page(@Valid Testflow003PageDto dto){ + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .like(StrUtil.isNotBlank(dto.getName()),Testflow003::getName,dto.getName()) + .like(StrUtil.isNotBlank(dto.getCode()),Testflow003::getCode,dto.getCode()) + .like(StrUtil.isNotBlank(dto.getNote()),Testflow003::getNote,dto.getNote()) + .orderByDesc(Testflow003::getId) + .select(Testflow003.class,x -> VoToColumnUtil.fieldsToColumns(Testflow003PageVo.class).contains(x.getProperty())); + IPage page = testflow003Service.page(ConventPage.getPage(dto), queryWrapper); + PageOutput pageOutput = ConventPage.getPageOutput(page, Testflow003PageVo.class); + return R.ok(pageOutput); + } + + @GetMapping(value = "/info") + @ApiOperation(value="根据id查询Testflow003信息") + @SaCheckPermission("testflow003:detail") + public R info(@RequestParam Long id){ + Testflow003 testflow003 = testflow003Service.getById(id); + if (testflow003 == null) { + return R.error("找不到此数据!"); + } + return R.ok(BeanUtil.toBean(testflow003, Testflow003Vo.class)); + } + + @GetMapping(value = "/datalog") + @ApiOperation(value="根据id查询Testflow003数据详细日志") + @SaCheckPermission("testflow003:datalog") + public R datalog(@RequestParam Long id){ + List logs = dataService.findLogsByEntityId(UpdateTestflow003Dto.class,id); + return R.ok(logs); + } + + + @PostMapping + @ApiOperation(value = "新增Testflow003") + @SaCheckPermission("testflow003:add") + public R add(@Valid @RequestBody UpdateTestflow003Dto dto){ + codeRuleService.useEncode("TestCode"); + UpdateTestflow003Dto res = dataService.insert(dto,null); + return R.ok(res.getId()); + } + + @PutMapping + @ApiOperation(value = "修改Testflow003") + @SaCheckPermission("testflow003:edit") + public R update(@Valid @RequestBody UpdateTestflow003Dto dto){ + return R.ok(dataService.updateById(dto)); + } + + @DeleteMapping + @ApiOperation(value = "删除") + @SaCheckPermission("testflow003:delete") + public R delete(@Valid @RequestBody List ids){ + return R.ok(dataService.deleteByIds(UpdateTestflow003Dto.class, ids)); + + } + + +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/entity/Testflow001.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/entity/Testflow001.java new file mode 100644 index 0000000..ce126f5 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/entity/Testflow001.java @@ -0,0 +1,115 @@ +package com.xjrsoft.module.mdm.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +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: 2025-11-25 +* @Version 1.0 +*/ +@Data +@TableName("testflow_001") +@ApiModel(value = "测试流程对象", description = "测试流程") +public class Testflow001 implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ApiModelProperty("") + @TableId + private Long id; + + /** + * 客户 + */ + @ApiModelProperty("客户") + private String customer; + + /** + * 客户编码 + */ + @ApiModelProperty("客户编码") + private String customerCode; + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Long createUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createDate; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private Long modifyUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime modifyDate; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + @TableLogic + private Integer deleteMark; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Integer enabledMark; + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + + +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/entity/Testflow003.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/entity/Testflow003.java new file mode 100644 index 0000000..a817f29 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/entity/Testflow003.java @@ -0,0 +1,109 @@ +package com.xjrsoft.module.mdm.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +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: 测试流程3 +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Data +@TableName("testflow_003") +@ApiModel(value = "测试流程3对象", description = "测试流程3") +public class Testflow003 implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ApiModelProperty("") + @TableId + private Long id; + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 编码 + */ + @ApiModelProperty("编码") + private String code; + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String note; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Long createUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createDate; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private Long modifyUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime modifyDate; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + @TableLogic + private Integer deleteMark; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Integer enabledMark; + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + + +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/mapper/Testflow001Mapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/mapper/Testflow001Mapper.java new file mode 100644 index 0000000..28d1c7f --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/mapper/Testflow001Mapper.java @@ -0,0 +1,17 @@ +package com.xjrsoft.module.mdm.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; +import com.xjrsoft.module.mdm.entity.Testflow001; +import org.apache.ibatis.annotations.Mapper; + +/** +* @title: mapper +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@Mapper +public interface Testflow001Mapper extends BaseMapper { + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/mapper/Testflow003Mapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/mapper/Testflow003Mapper.java new file mode 100644 index 0000000..9d6488e --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/mapper/Testflow003Mapper.java @@ -0,0 +1,17 @@ +package com.xjrsoft.module.mdm.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; +import com.xjrsoft.module.mdm.entity.Testflow003; +import org.apache.ibatis.annotations.Mapper; + +/** +* @title: mapper +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Mapper +public interface Testflow003Mapper extends BaseMapper { + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ILNGStationService.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ILNGStationService.java index 3ef055f..a7a2e46 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ILNGStationService.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ILNGStationService.java @@ -23,4 +23,6 @@ public interface ILNGStationService extends IService { boolean enable(@Valid List ids); boolean disable(@Valid List ids); + + LngBStationLng getByCode(String code); } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ITestflow001Service.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ITestflow001Service.java new file mode 100644 index 0000000..25efcf4 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ITestflow001Service.java @@ -0,0 +1,19 @@ +package com.xjrsoft.module.mdm.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.mdm.entity.Testflow001; +import lombok.Data; +import java.util.List; + +/** +* @title: service +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ + +public interface ITestflow001Service extends IService { +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ITestflow003Service.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ITestflow003Service.java new file mode 100644 index 0000000..47716fe --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/ITestflow003Service.java @@ -0,0 +1,19 @@ +package com.xjrsoft.module.mdm.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.mdm.entity.Testflow003; +import lombok.Data; +import java.util.List; + +/** +* @title: service +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ + +public interface ITestflow003Service extends IService { +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java index cfa30d0..d88d4f2 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java @@ -17,7 +17,6 @@ import com.pictc.utils.CollectionUtils; import com.xjrsoft.common.constant.GlobalConstant; import com.xjrsoft.common.utils.TreeUtil; import com.xjrsoft.module.mdm.entity.LngBRegion; -import com.xjrsoft.module.mdm.enums.CountryRegionEnum; import com.xjrsoft.module.mdm.mapper.LngBRegionMapper; import com.xjrsoft.module.mdm.service.ICountryRegionService; import com.xjrsoft.module.mdm.vo.LngBRegionTreeVo; @@ -60,7 +59,8 @@ public class CountryRegionServiceImpl extends ServiceImpl tempQw = Wrappers.query().lambda() - .notIn(StringUtils.isNotBlank(excludeType),LngBRegion::getRegionTypeCode, excludeTypeList); + .notIn(StringUtils.isNotBlank(excludeType),LngBRegion::getRegionTypeCode, excludeTypeList) + .orderByAsc(LngBRegion::getCode); //.eq(StringUtils.isNotBlank(startPCode),LngBRegion::getCode, startPCode); List allList = this.list(tempQw); Map map = allList.stream().collect(Collectors.toMap(LngBRegion::getId, @@ -145,10 +145,10 @@ public class CountryRegionServiceImpl extends ServiceImpl { x.like(StrUtil.isNotBlank(keyword), LngBRegion::getFullName, keyword); - })); + }).orderByAsc(LngBRegion::getCode)); List voList = CollectionUtils.newArrayList(); - if(voList != null && regionList.size() > 0) { + if(regionList != null && regionList.size() > 0) { for(LngBRegion br:regionList) { LngBRegionVo vo = new LngBRegionVo(); BeanUtil.copyProperties(br, vo); diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/LNGStationServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/LNGStationServiceImpl.java index b2a73e2..75e2680 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/LNGStationServiceImpl.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/LNGStationServiceImpl.java @@ -1,5 +1,12 @@ package com.xjrsoft.module.mdm.service.impl; +import java.util.List; +import java.util.Objects; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pictc.constant.FieldNameConstants; @@ -7,6 +14,8 @@ import com.pictc.constant.TableNameConstants; import com.pictc.enums.BusinessCode; import com.pictc.enums.ExceptionCommonCode; import com.pictc.utils.DataLogTools; +import com.xjrsoft.common.advice.tran.LngStationDataProvider; +import com.xjrsoft.common.advice.tran.RegionDataProvider; import com.xjrsoft.common.exception.BusinessException; import com.xjrsoft.module.common.db.service.CommonCallService; import com.xjrsoft.module.mdm.dto.UpdateLngBStationLngDto; @@ -14,13 +23,8 @@ import com.xjrsoft.module.mdm.entity.LngBStationLng; import com.xjrsoft.module.mdm.mapper.LngBStationLngMapper; import com.xjrsoft.module.mdm.service.ILNGStationService; import com.xjrsoft.module.system.client.ICodeRuleClient; -import lombok.AllArgsConstructor; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Objects; +import lombok.AllArgsConstructor; /** * @title: service @@ -37,6 +41,8 @@ public class LNGStationServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper(); + queryWrapper.eq(LngBStationLng::getCode,code); + return baseMapper.selectOne(queryWrapper); + } } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/Testflow001ServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/Testflow001ServiceImpl.java new file mode 100644 index 0000000..e5fa61f --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/Testflow001ServiceImpl.java @@ -0,0 +1,25 @@ +package com.xjrsoft.module.mdm.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.base.MPJBaseServiceImpl; +import com.xjrsoft.module.mdm.entity.Testflow001; +import com.xjrsoft.module.mdm.mapper.Testflow001Mapper; +import com.xjrsoft.module.mdm.service.ITestflow001Service; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +/** +* @title: service +* @Author 管理员 +* @Date: 2025-11-25 +* @Version 1.0 +*/ +@Service +@AllArgsConstructor +public class Testflow001ServiceImpl extends ServiceImpl implements ITestflow001Service { +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/Testflow003ServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/Testflow003ServiceImpl.java new file mode 100644 index 0000000..1e58e60 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/Testflow003ServiceImpl.java @@ -0,0 +1,25 @@ +package com.xjrsoft.module.mdm.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.base.MPJBaseServiceImpl; +import com.xjrsoft.module.mdm.entity.Testflow003; +import com.xjrsoft.module.mdm.mapper.Testflow003Mapper; +import com.xjrsoft.module.mdm.service.ITestflow003Service; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +/** +* @title: service +* @Author 管理员 +* @Date: 2025-11-26 +* @Version 1.0 +*/ +@Service +@AllArgsConstructor +public class Testflow003ServiceImpl extends ServiceImpl implements ITestflow003Service { +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/controller/CustomerController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/controller/CustomerController.java index 582c3fb..025790f 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/controller/CustomerController.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/controller/CustomerController.java @@ -15,6 +15,7 @@ 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.utils.StringUtils; import com.xjrsoft.common.model.result.R; import com.xjrsoft.common.page.ConventPage; import com.xjrsoft.common.page.PageOutput; @@ -85,7 +86,7 @@ public class CustomerController { @ApiOperation(value="根据id查询LngCustomer信息") @SaCheckPermission("customer:detail") public R info(@RequestParam Long id){ - LngCustomer lngCustomer = customerService.getByIdDeep(id); + LngCustomer lngCustomer = customerService.getCustomerById(id); if (lngCustomer == null) { return R.error("找不到此数据!"); } @@ -107,9 +108,10 @@ public class CustomerController { public R add(@Valid @RequestBody UpdateLngCustomerDto dto){ String code = codeRuleClient.genEncode(CUSTOMER_CODE); dto.setCuCode("C"+code); - customerService.add(dto); + Long id = customerService.add(dto); + dto.setId(id); codeRuleClient.useEncode(CUSTOMER_CODE); - return R.ok(); + return R.ok(dto); /** return R.ok(dataService.insert(dto,new DataOperationListener() { @@ -123,9 +125,9 @@ public class CustomerController { @Override public UpdateLngCustomerDto after(DataOperationContent content) { String msg = CommonCallUtils.saveAfter(content.getTableName(),content.getIdValue()); - if (StringUtils.isNotBlank(msg)) { - throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_EXEC_ERROR, msg)); - } + if (StringUtils.isNotBlank(msg)) { + throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_EXEC_ERROR, msg)); + } codeRuleClient.useEncode(CUSTOMER_CODE); return content.getObj(); } @@ -138,7 +140,6 @@ public class CustomerController { @ApiOperation(value = "修改LngCustomer") @SaCheckPermission("customer:edit") public R update(@Valid @RequestBody UpdateLngCustomerDto dto){ - // return R.ok(dataService.updateById(dto)); customerService.update(dto); return R.ok(); } @@ -147,7 +148,7 @@ public class CustomerController { @ApiOperation(value = "删除") @SaCheckPermission("customer:delete") public R delete(@Valid @RequestBody List ids){ - return R.ok(customerService.delete(ids)); + return R.ok(customerService.delete(ids)); } @@ -155,7 +156,7 @@ public class CustomerController { @ApiOperation(value = "启用LngCustomer") @SaCheckPermission("customer:enable") public R enable(@Valid @RequestBody List ids){ - return R.ok(dataService.enable(UpdateLngCustomerDto.class,ids)); + return R.ok(dataService.enable(UpdateLngCustomerDto.class,ids)); } @@ -163,7 +164,7 @@ public class CustomerController { @ApiOperation(value = "禁用LngCustomer") @SaCheckPermission("customer:disable") public R disable(@Valid @RequestBody List ids){ - return R.ok(dataService.disable(UpdateLngCustomerDto.class,ids)); + return R.ok(dataService.disable(UpdateLngCustomerDto.class,ids)); } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomer.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomer.java index 0eac77e..aea74c0 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomer.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomer.java @@ -15,6 +15,7 @@ import com.pictc.annotations.datalog.JoinType; import com.pictc.annotations.datalog.LogJoin; import com.pictc.annotations.datalog.LogJoinColumn; import com.pictc.annotations.datalog.ValueDirectionType; +import com.xjrsoft.module.sales.dto.UpdateLngFileUploadDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -272,8 +273,8 @@ public class LngCustomer implements Serializable { @EntityMapping(thisField = "cuCode", joinField = "cuCode") @LogJoin(name = "客户业务信息", columns = { - @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.LEFT) - }, caseType = JoinCaseType.NONE, target = LngCustomerAttrPower.class, type = JoinType.MANY) + @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) + }, caseType = JoinCaseType.FULL, target = LngCustomerAttrPower.class, type = JoinType.MANY) private List lngCustomerAttrPowerList; /** * lngCustomerBank @@ -283,8 +284,8 @@ public class LngCustomer implements Serializable { @EntityMapping(thisField = "cuCode", joinField = "cuCode") @LogJoin(name = "客户银行信息", columns = { - @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.LEFT) - }, caseType = JoinCaseType.NONE, target = LngCustomerBank.class, type = JoinType.MANY) + @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) + }, caseType = JoinCaseType.FULL, target = LngCustomerBank.class, type = JoinType.MANY) private List lngCustomerBankList; /** @@ -295,8 +296,8 @@ public class LngCustomer implements Serializable { @EntityMapping(thisField = "cuCode", joinField = "cuCode") @LogJoin(name = "客户证书信息", columns = { - @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.LEFT) - }, caseType = JoinCaseType.NONE, target = LngCustomerDoc.class, type = JoinType.MANY) + @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) + }, caseType = JoinCaseType.FULL, target = LngCustomerDoc.class, type = JoinType.MANY) private List lngCustomerDocList; /** @@ -307,9 +308,23 @@ public class LngCustomer implements Serializable { @EntityMapping(thisField = "cuCode", joinField = "cuCode") @LogJoin(name = "客户联系人信息", columns = { - @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.LEFT) - }, caseType = JoinCaseType.NONE, target = LngCustomerContact.class, type = JoinType.MANY) + @LogJoinColumn(field = "cuCode",relatedField = "cuCode", valueDirection = ValueDirectionType.RIGHT) + }, caseType = JoinCaseType.FULL, target = LngCustomerContact.class, type = JoinType.MANY) private List lngCustomerContactList; + + + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + @TableField(exist = false) + @EntityMapping(thisField = "id", joinField = "tableId") + @LogJoin(name = "lngFileUpload子表", + columns = { + @LogJoinColumn(field = "tableId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngFileUploadDto.class, type = JoinType.MANY) + private List lngFileUploadList; } \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerAttrPower.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerAttrPower.java index 4fab19e..aafc9ee 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerAttrPower.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerAttrPower.java @@ -22,7 +22,7 @@ import lombok.Data; */ @Data @TableName("lng_customer_attr_power") -@ApiModel(value = "客户对象", description = "客户") +@ApiModel(value = "客户业务信息", description = "客户") public class LngCustomerAttrPower implements Serializable { private static final long serialVersionUID = 1L; diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerBank.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerBank.java index f0546a3..ae32beb 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerBank.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerBank.java @@ -25,7 +25,7 @@ import java.util.List; */ @Data @TableName("lng_customer_bank") -@ApiModel(value = "客户对象", description = "客户") +@ApiModel(value = "客户银行信息", description = "客户") public class LngCustomerBank implements Serializable { private static final long serialVersionUID = 1L; diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerContact.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerContact.java index f204b1f..91593a0 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerContact.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerContact.java @@ -25,7 +25,7 @@ import java.util.List; */ @Data @TableName("lng_customer_contact") -@ApiModel(value = "客户对象", description = "客户") +@ApiModel(value = "客户-联系人", description = "客户") public class LngCustomerContact implements Serializable { private static final long serialVersionUID = 1L; diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerDoc.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerDoc.java index 6986c82..e8db042 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerDoc.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngCustomerDoc.java @@ -1,20 +1,24 @@ package com.xjrsoft.module.sales.entity; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + import com.baomidou.mybatisplus.annotation.FieldFill; 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.baomidou.mybatisplus.annotation.TableName; import com.github.yulichang.annotation.EntityMapping; +import com.pictc.annotations.datalog.JoinCaseType; +import com.pictc.annotations.datalog.JoinType; +import com.pictc.annotations.datalog.LogJoin; +import com.pictc.annotations.datalog.LogJoinColumn; +import com.pictc.annotations.datalog.ValueDirectionType; +import com.xjrsoft.module.sales.dto.UpdateLngFileUploadDto; + 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; /** @@ -25,7 +29,7 @@ import java.util.List; */ @Data @TableName("lng_customer_doc") -@ApiModel(value = "客户对象", description = "客户") +@ApiModel(value = "客户-资质证书", description = "客户") public class LngCustomerDoc implements Serializable { private static final long serialVersionUID = 1L; @@ -127,6 +131,18 @@ public class LngCustomerDoc implements Serializable { @TableField(fill = FieldFill.INSERT) private Long ruleUserId; + /** + * lngFileUpload + */ + @ApiModelProperty("lngFileUpload子表") + @TableField(exist = false) + @EntityMapping(thisField = "id", joinField = "tableId") + @LogJoin(name = "lngFileUpload子表", + columns = { + @LogJoinColumn(field = "tableId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngFileUploadDto.class, type = JoinType.MANY) + private List fileList; } \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngFileUpload.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngFileUpload.java new file mode 100644 index 0000000..97cc2b2 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/entity/LngFileUpload.java @@ -0,0 +1,143 @@ +package com.xjrsoft.module.sales.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +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: 2025-11-21 +* @Version 1.0 +*/ +@Data +@TableName("lng_file_upload") +@ApiModel(value = "客户对象", description = "客户") +public class LngFileUpload implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ApiModelProperty("") + @TableId + private Long id; + + /** + * + */ + @ApiModelProperty("") + private String tableName; + + /** + * + */ + @ApiModelProperty("") + private Long tableId; + + /** + * + */ + @ApiModelProperty("") + private String columnName; + + /** + * + */ + @ApiModelProperty("") + private String fileOrg; + + /** + * + */ + @ApiModelProperty("") + private String filePath; + + /** + * + */ + @ApiModelProperty("") + private Long fileSize; + + /** + * + */ + @ApiModelProperty("") + private String docDesc; + + /** + * + */ + @ApiModelProperty("") + private Short sort; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Long createUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createDate; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private Long modifyUserId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime modifyDate; + + /** + * + */ + @ApiModelProperty("") + private Long tenantId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Long deptId; + + /** + * + */ + @ApiModelProperty("") + @TableField(fill = FieldFill.INSERT) + private Long ruleUserId; + + @ApiModelProperty("") + @TableField(exist = false) + private String presignedUrl; + + //@ApiModelProperty("") + //private Long xjrFileId; + +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/mapper/LngFileUploadMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/mapper/LngFileUploadMapper.java new file mode 100644 index 0000000..1706efb --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/mapper/LngFileUploadMapper.java @@ -0,0 +1,18 @@ +package com.xjrsoft.module.sales.mapper; + +import org.apache.ibatis.annotations.Mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; +import com.xjrsoft.module.sales.entity.LngFileUpload; + +/** +* @title: mapper +* @Author 管理员 +* @Date: 2025-11-21 +* @Version 1.0 +*/ +@Mapper +public interface LngFileUploadMapper extends MPJBaseMapper,BaseMapper { + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/ICustomerService.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/ICustomerService.java index 21b690f..4cc227b 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/ICustomerService.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/ICustomerService.java @@ -24,7 +24,7 @@ public interface ICustomerService extends MPJBaseService, MPJDeepSe * @return */ - Boolean add(UpdateLngCustomerDto updateLngCustomerDto); + Long add(UpdateLngCustomerDto updateLngCustomerDto); /** * 更新 @@ -42,4 +42,6 @@ public interface ICustomerService extends MPJBaseService, MPJDeepSe */ Boolean delete(List ids); + LngCustomer getCustomerById(Long id); + } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/impl/CustomerServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/impl/CustomerServiceImpl.java index bd63a71..a1b57c7 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/impl/CustomerServiceImpl.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/sales/service/impl/CustomerServiceImpl.java @@ -2,27 +2,37 @@ package com.xjrsoft.module.sales.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl; +import com.pictc.utils.StringUtils; import com.xjrsoft.module.sales.entity.LngCustomerAttrPower; import com.xjrsoft.module.sales.mapper.LngCustomerAttrPowerMapper; import com.xjrsoft.module.sales.entity.LngCustomerBank; import com.xjrsoft.module.sales.mapper.LngCustomerBankMapper; import com.xjrsoft.module.sales.entity.LngCustomerDoc; +import com.xjrsoft.module.sales.entity.LngFileUpload; import com.xjrsoft.module.sales.mapper.LngCustomerDocMapper; import com.xjrsoft.module.sales.entity.LngCustomerContact; import com.xjrsoft.module.sales.mapper.LngCustomerContactMapper; +import com.xjrsoft.common.factory.CloudStorageService; +import com.xjrsoft.common.factory.OssFactory; import com.xjrsoft.module.sales.dto.UpdateLngCustomerAttrPowerDto; import com.xjrsoft.module.sales.dto.UpdateLngCustomerBankDto; import com.xjrsoft.module.sales.dto.UpdateLngCustomerContactDto; import com.xjrsoft.module.sales.dto.UpdateLngCustomerDocDto; import com.xjrsoft.module.sales.dto.UpdateLngCustomerDto; +import com.xjrsoft.module.sales.dto.UpdateLngFileUploadDto; import com.xjrsoft.module.sales.entity.LngCustomer; import com.xjrsoft.module.sales.mapper.LngCustomerMapper; +import com.xjrsoft.module.sales.mapper.LngFileUploadMapper; import com.xjrsoft.module.sales.service.ICustomerService; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -37,47 +47,69 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; @Service @AllArgsConstructor public class CustomerServiceImpl extends MPJBaseServiceImpl implements ICustomerService { - private final LngCustomerMapper customerLngCustomerMapper; + private final LngCustomerMapper lngCustomerMapper; - private final LngCustomerAttrPowerMapper customerLngCustomerAttrPowerMapper; - private final LngCustomerBankMapper customerLngCustomerBankMapper; - private final LngCustomerDocMapper customerLngCustomerDocMapper; - private final LngCustomerContactMapper customerLngCustomerContactMapper; + private final LngCustomerAttrPowerMapper lngCustomerAttrPowerMapper; + private final LngCustomerBankMapper lngCustomerBankMapper; + private final LngCustomerDocMapper lngCustomerDocMapper; + private final LngCustomerContactMapper lngCustomerContactMapper; + private final LngFileUploadMapper lngFileUploadMapper; @Override @Transactional(rollbackFor = Exception.class) - public Boolean add(UpdateLngCustomerDto updateLngCustomerDto) { + public Long add(UpdateLngCustomerDto updateLngCustomerDto) { LngCustomer lngCustomer = new LngCustomer(); BeanUtil.copyProperties(updateLngCustomerDto, lngCustomer); - customerLngCustomerMapper.insert(lngCustomer); + lngCustomerMapper.insert(lngCustomer); for (UpdateLngCustomerAttrPowerDto updateLngCustomerAttrPowerDto : updateLngCustomerDto.getLngCustomerAttrPowerList()) { LngCustomerAttrPower lngCustomerAttrPower = new LngCustomerAttrPower(); BeanUtil.copyProperties(updateLngCustomerAttrPowerDto, lngCustomerAttrPower); lngCustomerAttrPower.setCuCode(lngCustomer.getCuCode()); - customerLngCustomerAttrPowerMapper.insert(lngCustomerAttrPower); + lngCustomerAttrPowerMapper.insert(lngCustomerAttrPower); } for (UpdateLngCustomerBankDto updateLngCustomerBankDto : updateLngCustomerDto.getLngCustomerBankList()) { LngCustomerBank lngCustomerBank = new LngCustomerBank(); BeanUtil.copyProperties(updateLngCustomerBankDto, lngCustomerBank); lngCustomerBank.setCuCode(lngCustomer.getCuCode()); - customerLngCustomerBankMapper.insert(lngCustomerBank); + lngCustomerBankMapper.insert(lngCustomerBank); } for (UpdateLngCustomerDocDto updateLngCustomerDocDto : updateLngCustomerDto.getLngCustomerDocList()) { LngCustomerDoc lngCustomerDoc = new LngCustomerDoc(); BeanUtil.copyProperties(updateLngCustomerDocDto, lngCustomerDoc); lngCustomerDoc.setCuCode(lngCustomer.getCuCode()); - customerLngCustomerDocMapper.insert(lngCustomerDoc); + lngCustomerDocMapper.insert(lngCustomerDoc); + + if(CollectionUtil.isNotEmpty(updateLngCustomerDocDto.getFileList())) { + for(UpdateLngFileUploadDto lngFileUploadDto:updateLngCustomerDocDto.getFileList()) { + LngFileUpload lngFileUpload = new LngFileUpload(); + BeanUtil.copyProperties(lngFileUploadDto, lngFileUpload); + lngFileUpload.setTableName("lng_customer_doc"); + lngFileUpload.setTableId(lngCustomerDoc.getId()); + lngFileUploadMapper.insert(lngFileUpload); + } + + } + } for (UpdateLngCustomerContactDto updateLngCustomerContactDto : updateLngCustomerDto.getLngCustomerContactList()) { LngCustomerContact lngCustomerContact = new LngCustomerContact(); BeanUtil.copyProperties(updateLngCustomerContactDto, lngCustomerContact); lngCustomerContact.setCuCode(lngCustomer.getCuCode()); - customerLngCustomerContactMapper.insert(lngCustomerContact); + lngCustomerContactMapper.insert(lngCustomerContact); } - - return true; + if(updateLngCustomerDto.getLngFileUploadList() != null) { + for (UpdateLngFileUploadDto lngFileUploadDto : updateLngCustomerDto.getLngFileUploadList()) { + LngFileUpload lngFileUpload = new LngFileUpload(); + BeanUtil.copyProperties(lngFileUploadDto, lngFileUpload); + lngFileUpload.setTableName("lng_customer"); + lngFileUpload.setTableId(lngCustomer.getId()); + lngFileUploadMapper.insert(lngFileUpload); + } + } + + return lngCustomer.getId(); } @Override @@ -85,11 +117,11 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl lngCustomerAttrPowerList = customerLngCustomerAttrPowerMapper.selectList(Wrappers.lambdaQuery(LngCustomerAttrPower.class).eq(LngCustomerAttrPower::getCuCode, lngCustomer.getCuCode()).select(LngCustomerAttrPower::getId)); + List lngCustomerAttrPowerList = lngCustomerAttrPowerMapper.selectList(Wrappers.lambdaQuery(LngCustomerAttrPower.class).eq(LngCustomerAttrPower::getCuCode, lngCustomer.getCuCode()).select(LngCustomerAttrPower::getId)); List lngCustomerAttrPowerIds = lngCustomerAttrPowerList.stream().map(LngCustomerAttrPower::getId).collect(Collectors.toList()); //原有子表单 没有被删除的主键 List lngCustomerAttrPowerOldIds = updateLngCustomerDto.getLngCustomerAttrPowerList().stream().map(UpdateLngCustomerAttrPowerDto::getId).filter(Objects::nonNull).collect(Collectors.toList()); @@ -102,18 +134,18 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl 0){ - customerLngCustomerAttrPowerMapper.deleteBatchIds(lngCustomerAttrPowerRemoveIds); + lngCustomerAttrPowerMapper.deleteBatchIds(lngCustomerAttrPowerRemoveIds); } } //********************************* LngCustomerAttrPower 增删改 结束 *******************************************/ @@ -121,7 +153,7 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl lngCustomerBankList = customerLngCustomerBankMapper.selectList(Wrappers.lambdaQuery(LngCustomerBank.class).eq(LngCustomerBank::getCuCode, lngCustomer.getCuCode()).select(LngCustomerBank::getId)); + List lngCustomerBankList = lngCustomerBankMapper.selectList(Wrappers.lambdaQuery(LngCustomerBank.class).eq(LngCustomerBank::getCuCode, lngCustomer.getCuCode()).select(LngCustomerBank::getId)); List lngCustomerBankIds = lngCustomerBankList.stream().map(LngCustomerBank::getId).collect(Collectors.toList()); //原有子表单 没有被删除的主键 List lngCustomerBankOldIds = updateLngCustomerDto.getLngCustomerBankList().stream().map(UpdateLngCustomerBankDto::getId).filter(Objects::nonNull).collect(Collectors.toList()); @@ -133,18 +165,18 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl 0){ - customerLngCustomerBankMapper.deleteBatchIds(lngCustomerBankRemoveIds); + lngCustomerBankMapper.deleteBatchIds(lngCustomerBankRemoveIds); } } //********************************* LngCustomerBank 增删改 结束 *******************************************/ @@ -152,7 +184,7 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl lngCustomerDocList = customerLngCustomerDocMapper.selectList(Wrappers.lambdaQuery(LngCustomerDoc.class).eq(LngCustomerDoc::getCuCode, lngCustomer.getCuCode()).select(LngCustomerDoc::getId)); + List lngCustomerDocList = lngCustomerDocMapper.selectList(Wrappers.lambdaQuery(LngCustomerDoc.class).eq(LngCustomerDoc::getCuCode, lngCustomer.getCuCode()).select(LngCustomerDoc::getId)); List lngCustomerDocIds = lngCustomerDocList.stream().map(LngCustomerDoc::getId).collect(Collectors.toList()); //原有子表单 没有被删除的主键 List lngCustomerDocOldIds = updateLngCustomerDto.getLngCustomerDocList().stream().map(UpdateLngCustomerDocDto::getId).filter(Objects::nonNull).collect(Collectors.toList()); @@ -162,20 +194,34 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl 0){ - customerLngCustomerDocMapper.deleteBatchIds(lngCustomerDocRemoveIds); + lngCustomerDocMapper.deleteBatchIds(lngCustomerDocRemoveIds); + lngFileUploadMapper.delete(Wrappers.lambdaQuery(LngFileUpload.class).eq(LngFileUpload::getTableName, "lng_customer_doc").in(LngFileUpload::getTableId, lngCustomerDocRemoveIds)); + } } //********************************* LngCustomerDoc 增删改 结束 *******************************************/ @@ -183,7 +229,7 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl lngCustomerContactList = customerLngCustomerContactMapper.selectList(Wrappers.lambdaQuery(LngCustomerContact.class).eq(LngCustomerContact::getCuCode, lngCustomer.getCuCode()).select(LngCustomerContact::getId)); + List lngCustomerContactList = lngCustomerContactMapper.selectList(Wrappers.lambdaQuery(LngCustomerContact.class).eq(LngCustomerContact::getCuCode, lngCustomer.getCuCode()).select(LngCustomerContact::getId)); List lngCustomerContactIds = lngCustomerContactList.stream().map(LngCustomerContact::getId).collect(Collectors.toList()); //原有子表单 没有被删除的主键 List lngCustomerContactOldIds = updateLngCustomerDto.getLngCustomerContactList().stream().map(UpdateLngCustomerContactDto::getId).filter(Objects::nonNull).collect(Collectors.toList()); @@ -195,34 +241,99 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl 0){ - customerLngCustomerContactMapper.deleteBatchIds(lngCustomerContactRemoveIds); + lngCustomerContactMapper.deleteBatchIds(lngCustomerContactRemoveIds); } } //********************************* LngCustomerContact 增删改 结束 *******************************************/ + //********************************* LngFileUpload 增删改 开始 *******************************************/ + { + // 查出所有子级的id + List lngFileUploadList = lngFileUploadMapper.selectList(Wrappers.lambdaQuery(LngFileUpload.class).eq(LngFileUpload::getTableName, "lng_customer").eq(LngFileUpload::getTableId, lngCustomer.getId()).select(LngFileUpload::getId)); + List lngFileUploadIds = lngFileUploadList.stream().map(LngFileUpload::getId).collect(Collectors.toList()); + //原有子表单 没有被删除的主键 + List lngFileUploadOldIds = updateLngCustomerDto.getLngFileUploadList().stream().map(UpdateLngFileUploadDto::getId).filter(Objects::nonNull).collect(Collectors.toList()); + //找到需要删除的id + List lngFileUploadRemoveIds = lngFileUploadIds.stream().filter(item -> !lngFileUploadOldIds.contains(item)).collect(Collectors.toList()); + + for (UpdateLngFileUploadDto lngFileUploadDto : updateLngCustomerDto.getLngFileUploadList()) { + LngFileUpload lngFileUpload = new LngFileUpload(); + BeanUtil.copyProperties(lngFileUploadDto, lngFileUpload); + lngFileUpload.setTableName("lng_customer"); + //如果不等于空则修改 + if (lngFileUpload.getId() != null) { + lngFileUploadMapper.updateById(lngFileUpload); + } + //如果等于空 则新增 + else { + lngFileUpload.setTableId(lngCustomer.getId()); + lngFileUploadMapper.insert(lngFileUpload); + } + } + //已经不存在的id 删除 + if(lngFileUploadRemoveIds.size() > 0){ + lngFileUploadMapper.deleteBatchIds(lngFileUploadRemoveIds); + } + } + //********************************* LngFileUpload 增删改 结束 *******************************************/ return true; } @Override @Transactional(rollbackFor = Exception.class) public Boolean delete(List ids) { - customerLngCustomerMapper.deleteBatchIds(ids); - customerLngCustomerAttrPowerMapper.delete(Wrappers.lambdaQuery(LngCustomerAttrPower.class).in(LngCustomerAttrPower::getCuCode, ids)); - customerLngCustomerBankMapper.delete(Wrappers.lambdaQuery(LngCustomerBank.class).in(LngCustomerBank::getCuCode, ids)); - customerLngCustomerDocMapper.delete(Wrappers.lambdaQuery(LngCustomerDoc.class).in(LngCustomerDoc::getCuCode, ids)); - customerLngCustomerContactMapper.delete(Wrappers.lambdaQuery(LngCustomerContact.class).in(LngCustomerContact::getCuCode, ids)); - - return true; + List customerList = lngCustomerMapper.selectList(Wrappers.lambdaQuery(LngCustomer.class).in(LngCustomer::getId, ids)); + List cuCodeList = customerList.stream().map(LngCustomer::getCuCode).filter(Objects::nonNull).collect(Collectors.toList()); + lngCustomerMapper.deleteBatchIds(ids); + if(CollectionUtil.isNotEmpty(cuCodeList)) { + lngCustomerAttrPowerMapper.delete(Wrappers.lambdaQuery(LngCustomerAttrPower.class).in(LngCustomerAttrPower::getCuCode, cuCodeList)); + lngCustomerBankMapper.delete(Wrappers.lambdaQuery(LngCustomerBank.class).in(LngCustomerBank::getCuCode, cuCodeList)); + lngCustomerDocMapper.delete(Wrappers.lambdaQuery(LngCustomerDoc.class).in(LngCustomerDoc::getCuCode, cuCodeList)); + lngCustomerContactMapper.delete(Wrappers.lambdaQuery(LngCustomerContact.class).in(LngCustomerContact::getCuCode, cuCodeList)); + lngFileUploadMapper.delete(Wrappers.lambdaQuery(LngFileUpload.class).in(LngFileUpload::getTableId, ids).eq(LngFileUpload::getTableName, "lng_customer")); + + } + return true; } + + @Override + public LngCustomer getCustomerById(Long id) { + + LngCustomer lngCustomer = this.getByIdDeep(id); + if(lngCustomer == null) { + return null; + } + if(CollectionUtil.isNotEmpty(lngCustomer.getLngCustomerDocList())) { + for(LngCustomerDoc lngCustomerDoc: lngCustomer.getLngCustomerDocList()) { + List tempList = lngFileUploadMapper.selectList(Wrappers.lambdaQuery(LngFileUpload.class).eq(LngFileUpload::getTableId, lngCustomerDoc.getId()).eq(LngFileUpload::getTableName, "lng_customer_doc")); + if(CollectionUtil.isNotEmpty(tempList)) { + CloudStorageService storageService = OssFactory.build(); + tempList.forEach(file -> { + file.setPresignedUrl(storageService.fixUrl(file.getFilePath())); + }); + lngCustomerDoc.setFileList(tempList); + } + } + } + List fileList = lngFileUploadMapper.selectList(Wrappers.lambdaQuery(LngFileUpload.class).eq(LngFileUpload::getTableId, lngCustomer.getId()).eq(LngFileUpload::getTableName, "lng_customer")); + if (CollUtil.isNotEmpty(fileList)) { + CloudStorageService storageService = OssFactory.build(); + fileList.forEach(file -> { + file.setPresignedUrl(storageService.fixUrl(file.getFilePath())); + }); + } + lngCustomer.setLngFileUploadList(fileList); + return lngCustomer; + } }