From 36dcdac894b6bef9a59261b9198f62fb0ca68213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=A7=89=E5=8D=93?= Date: Thu, 15 Jan 2026 17:56:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xjrsoft/module/approve/ApproveDto.java | 40 +++++ .../contract/vo/LngContractFactPageVo.java | 3 +- .../dayPlan/dto/LngPngApproPageDto.java | 12 ++ .../module/dayPlan/vo/LngPngApproPurVo.java | 27 +++- .../module/dayPlan/vo/LngPngApproVo.java | 54 ++++++- .../module/sales/vo/LngApproPageVo.java | 3 +- .../controller/PngApproController.java | 111 ++++++++------ .../dayPlan/mapper/LngPngApproMapper.java | 64 ++++++++ .../dayPlan/service/IPngApproService.java | 33 ++--- .../service/impl/PngApproServiceImpl.java | 139 +++++++++++------- 10 files changed, 348 insertions(+), 138 deletions(-) create mode 100644 itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/approve/ApproveDto.java diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/approve/ApproveDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/approve/ApproveDto.java new file mode 100644 index 0000000..632d50d --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/approve/ApproveDto.java @@ -0,0 +1,40 @@ +package com.xjrsoft.module.approve; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** +* @title: 审批通用类 +* @Author test01 +* @Date: 2026-01-13 +* @Version 1.0 +*/ +@Data +public class ApproveDto { + + private static final long serialVersionUID = 1L; + + /** + * 审批结果(通过C/驳回R) + */ + @ApiModelProperty("审批结果(通过C/驳回R)") + private String result; + + /** + * 审批意见 + */ + @ApiModelProperty("审批意见") + private String remark; + + /** + * 审批人 + */ + @ApiModelProperty("审批人") + private String approver; + + /** + * 操作数据 + */ + private T data; +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractFactPageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractFactPageVo.java index 75037c6..5cd8655 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractFactPageVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/contract/vo/LngContractFactPageVo.java @@ -3,6 +3,7 @@ package com.xjrsoft.module.contract.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.xjrsoft.common.annotation.Trans; import com.xjrsoft.common.enums.TransType; +import com.xjrsoft.common.model.base.BaseModel; import com.xjrsoft.module.system.vo.LngFileUploadVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,7 +19,7 @@ import java.util.List; * @Version 1.0 */ @Data -public class LngContractFactPageVo { +public class LngContractFactPageVo extends BaseModel { /** * 主键 diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/LngPngApproPageDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/LngPngApproPageDto.java index 31865c3..970e6fb 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/LngPngApproPageDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/LngPngApproPageDto.java @@ -102,4 +102,16 @@ public class LngPngApproPageDto extends PageInput { @ApiModelProperty("审批状态(XS-待销售确认/JSZ-待接收站/GD-待管道确认/YSP-已确认)") private String approCode; + /** + * 拟稿日期开始时间 + */ + @ApiModelProperty("计划开始时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime datePlanStart; + /** + * 拟稿日期结束时间 + */ + @ApiModelProperty("计划结束时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime datePlanEnd; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproPurVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproPurVo.java index 4e898ff..ac9e4f2 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproPurVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproPurVo.java @@ -2,16 +2,9 @@ package com.xjrsoft.module.dayPlan.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import lombok.experimental.Accessors; - -import java.time.LocalDateTime; - -import com.xjrsoft.module.dayPlan.dto.AddLngPngMeasureSalesPurDto; import java.math.BigDecimal; +import java.time.LocalDateTime; /** * @title: 表单出参 @@ -69,6 +62,12 @@ public class LngPngApproPurVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("供应商") private String suCode; + + /** + * 供应商 + */ + @ApiModelProperty("供应商") + private String suName; /** @@ -76,6 +75,12 @@ public class LngPngApproPurVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("采购合同-主信息主键") private Long kpId; + + /** + * 采购合同名称 + */ + @ApiModelProperty("采购合同名称") + private Long kpName; /** @@ -90,6 +95,12 @@ public class LngPngApproPurVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("上载点") private String pointUpCode; + + /** + * 上载点 + */ + @ApiModelProperty("上载点") + private String pointUpName; /** diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproVo.java index ba5355a..77e8629 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngApproVo.java @@ -2,17 +2,11 @@ package com.xjrsoft.module.dayPlan.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import lombok.experimental.Accessors; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; -import com.xjrsoft.module.dayPlan.dto.AddLngPngMeasureSalesPurDto; - /** * @title: 表单出参 * @Author test01 @@ -62,6 +56,12 @@ public class LngPngApproVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("变更标识(I/U/D对原始计划的增改删)") private String alterSign; + + /** + * 变更标识(I/U/D对原始计划的增改删) + */ + @ApiModelProperty("变更标识(I/U/D对原始计划的增改删)") + private String alterName; /** @@ -76,6 +76,18 @@ public class LngPngApproVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("客户编码") private String cuCode; + + /** + * 客户简称 + */ + @ApiModelProperty("客户简称") + private String cuSname; + + /** + * 客户名称 + */ + @ApiModelProperty("客户名称") + private String cuName; /** @@ -83,6 +95,12 @@ public class LngPngApproVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("交易主体编码(天然气公司/惠贸)") private Long comId; + + /** + * 交易主体名称(天然气公司/惠贸) + */ + @ApiModelProperty("交易主体名称(天然气公司/惠贸)") + private Long comName; /** @@ -104,6 +122,12 @@ public class LngPngApproVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("交割点") private String pointDelyCode; + + /** + * 交割点名称 + */ + @ApiModelProperty("交割点名称") + private String pointDelyName; /** @@ -279,6 +303,12 @@ public class LngPngApproVo extends com.xjrsoft.common.model.base.BaseModel{ */ @ApiModelProperty("审批状态(XS-待销售确认/JSZ-待接收站/GD-待管道确认/YSP-已确认)") private String approCode; + + /** + * 审批状态(XS-待销售确认/JSZ-待接收站/GD-待管道确认/YSP-已确认) + */ + @ApiModelProperty("审批状态(XS-待销售确认/JSZ-待接收站/GD-待管道确认/YSP-已确认)") + private String approName; /** @@ -352,4 +382,16 @@ public class LngPngApproVo extends com.xjrsoft.common.model.base.BaseModel{ @ApiModelProperty("lngPngApproPur子表") private List lngPngApproPurList; + + /** + * 标记 + */ + @ApiModelProperty("标记") + private String daysSign; + + /** + * 合同 + */ + @ApiModelProperty("合同") + private String kName; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngApproPageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngApproPageVo.java index 9178660..91ccf37 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngApproPageVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/sales/vo/LngApproPageVo.java @@ -3,6 +3,7 @@ package com.xjrsoft.module.sales.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.xjrsoft.common.annotation.Trans; import com.xjrsoft.common.enums.TransType; +import com.xjrsoft.common.model.base.BaseModel; import com.xjrsoft.module.system.vo.LngFileUploadVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,7 +17,7 @@ import java.util.List; * @Version 1.0 */ @Data -public class LngApproPageVo { +public class LngApproPageVo extends BaseModel { /** * 主键 diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngApproController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngApproController.java index bfdf774..15f832b 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngApproController.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngApproController.java @@ -1,24 +1,22 @@ package com.xjrsoft.module.dayPlan.controller; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.xjrsoft.common.page.ConventPage; -import com.xjrsoft.common.page.PageOutput; -import com.xjrsoft.common.model.result.R; -import com.xjrsoft.common.utils.VoToColumnUtil; -import com.xjrsoft.module.dayPlan.dto.UpdateLngPngApproDto; import cn.dev33.satoken.annotation.SaCheckPermission; - -import com.xjrsoft.module.dayPlan.dto.LngPngApproPageDto; -import com.xjrsoft.module.dayPlan.entity.LngPngAppro; -import com.xjrsoft.module.dayPlan.service.IPngApproService; -import com.xjrsoft.module.dayPlan.vo.LngPngApproPageVo; -import com.xjrsoft.module.datalog.vo.DataChangeLogVo; +import com.google.api.client.util.Lists; +import com.pictc.datalog.DataOperationContent; +import com.pictc.datalog.DataOperationListener; +import com.pictc.enums.BusinessCode; +import com.pictc.enums.ExceptionCommonCode; +import com.pictc.jdbc.JdbcTools; +import com.pictc.jdbc.model.JdbcParam; +import com.pictc.utils.StringUtils; +import com.xjrsoft.common.exception.BusinessException; +import com.xjrsoft.common.model.result.R; +import com.xjrsoft.module.approve.ApproveDto; import com.xjrsoft.module.datalog.service.DatalogService; -import com.xjrsoft.module.dayPlan.vo.LngPngApproVo; +import com.xjrsoft.module.datalog.vo.DataChangeLogVo; +import com.xjrsoft.module.dayPlan.dto.LngPngApproPageDto; +import com.xjrsoft.module.dayPlan.dto.UpdateLngPngApproDto; +import com.xjrsoft.module.dayPlan.service.IPngApproService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -43,43 +41,18 @@ public class PngApproController { private final IPngApproService pngApproService; private final DatalogService dataService; - @GetMapping(value = "/page") +// @GetMapping(value = "/page") @ApiOperation(value="LngPngAppro列表(分页)") @SaCheckPermission("pngAppro:list") public R page(@Valid LngPngApproPageDto dto){ - - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper - .eq(ObjectUtil.isNotNull(dto.getId()),LngPngAppro::getId,dto.getId()) - .like(StrUtil.isNotBlank(dto.getCuCode()),LngPngAppro::getCuCode,dto.getCuCode()) - .eq(ObjectUtil.isNotNull(dto.getDemandId()),LngPngAppro::getDemandId,dto.getDemandId()) - .eq(ObjectUtil.isNotNull(dto.getQtyDemandGj()),LngPngAppro::getQtyDemandGj,dto.getQtyDemandGj()) - .eq(ObjectUtil.isNotNull(dto.getQtyDemandM3()),LngPngAppro::getQtyDemandM3,dto.getQtyDemandM3()) - .eq(ObjectUtil.isNotNull(dto.getQtySalesGj()),LngPngAppro::getQtySalesGj,dto.getQtySalesGj()) - .eq(ObjectUtil.isNotNull(dto.getQtySalesM3()),LngPngAppro::getQtySalesM3,dto.getQtySalesM3()) - .eq(ObjectUtil.isNotNull(dto.getRateK()),LngPngAppro::getRateK,dto.getRateK()) - .eq(ObjectUtil.isNotNull(dto.getRateMp()),LngPngAppro::getRateMp,dto.getRateMp()) - .eq(ObjectUtil.isNotNull(dto.getRateS()),LngPngAppro::getRateS,dto.getRateS()) - .like(StrUtil.isNotBlank(dto.getLastVerSign()),LngPngAppro::getLastVerSign,dto.getLastVerSign()) - .like(StrUtil.isNotBlank(dto.getAlterSign()),LngPngAppro::getAlterSign,dto.getAlterSign()) - .like(StrUtil.isNotBlank(dto.getNote()),LngPngAppro::getNote,dto.getNote()) - .like(StrUtil.isNotBlank(dto.getApproCode()),LngPngAppro::getApproCode,dto.getApproCode()) - .orderByDesc(LngPngAppro::getId) - .select(LngPngAppro.class,x -> VoToColumnUtil.fieldsToColumns(LngPngApproPageVo.class).contains(x.getProperty())); - IPage page = pngApproService.page(ConventPage.getPage(dto), queryWrapper); - PageOutput pageOutput = ConventPage.getPageOutput(page, LngPngApproPageVo.class); - return R.ok(pageOutput); + return R.ok(pngApproService.queryPage(dto)); } @GetMapping(value = "/info") @ApiOperation(value="根据id查询LngPngAppro信息") @SaCheckPermission("pngAppro:detail") public R info(@RequestParam Long id){ - LngPngAppro lngPngAppro = pngApproService.getByIdDeep(id); - if (lngPngAppro == null) { - return R.error("找不到此数据!"); - } - return R.ok(BeanUtil.toBean(lngPngAppro, LngPngApproVo.class)); + return R.ok(pngApproService.getInfoById(id)); } @GetMapping(value = "/datalog") @@ -90,6 +63,29 @@ public class PngApproController { return R.ok(logs); } + @ApiOperation(value = "销售审批") + @PostMapping(value = "/approveXS") + @SaCheckPermission("pngAppro:approveXS") + public R approveXS(@Valid @RequestBody ApproveDto dto){ + pngApproService.approve(dto); + return R.ok(); + } + + @ApiOperation(value = "管道审批") + @PostMapping(value = "/approveGD") + @SaCheckPermission("pngAppro:approveGD") + public R approveGD(@Valid @RequestBody ApproveDto dto){ + pngApproService.approve(dto); + return R.ok(); + } + + @ApiOperation(value = "接收站审批") + @PostMapping(value = "/approveJSZ") + @SaCheckPermission("pngAppro:approveJSZ") + public R approveJSZ(@Valid @RequestBody ApproveDto dto){ + pngApproService.approve(dto); + return R.ok(); + } @PostMapping @ApiOperation(value = "新增LngPngAppro") @@ -103,7 +99,30 @@ public class PngApproController { @ApiOperation(value = "修改LngPngAppro") @SaCheckPermission("pngAppro:edit") public R update(@Valid @RequestBody UpdateLngPngApproDto dto){ - return R.ok(dataService.updateById(dto)); + return R.ok(dataService.updateById(dto, new DataOperationListener() { + @Override + public UpdateLngPngApproDto before(DataOperationContent content) { + return null; + } + + @Override + public UpdateLngPngApproDto after(DataOperationContent content) { + String sql = StringUtils.format("{? = call pc_{0}.f_approval(?, ?, ?, ?, ?)}", + content.getTableName()); + List params = Lists.newArrayList(); + JdbcParam outParam = JdbcParam.ofString(null).setOut(true); + params.add(outParam); + params.add(JdbcParam.ofLong(content.getIdValue())); + params.add(JdbcParam.ofString("XS")); + params.add(JdbcParam.ofString("XS")); + JdbcTools.call(sql,params); + String error = outParam.getStringValue(); + if (StringUtils.isNotEmpty(error)) { + throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_DELETE_EXEC_ERROR, error)); + } + return content.getObj(); + } + })); } @DeleteMapping diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngApproMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngApproMapper.java index 73a1d01..5998d7e 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngApproMapper.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngApproMapper.java @@ -1,8 +1,18 @@ package com.xjrsoft.module.dayPlan.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.github.yulichang.base.MPJBaseMapper; +import com.xjrsoft.module.dayPlan.dto.LngPngApproPageDto; import com.xjrsoft.module.dayPlan.entity.LngPngAppro; +import com.xjrsoft.module.dayPlan.vo.LngPngApproPurVo; +import com.xjrsoft.module.dayPlan.vo.LngPngApproVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * @title: mapper @@ -13,4 +23,58 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface LngPngApproMapper extends MPJBaseMapper { + @Select("SELECT a.id, a.rule_user_id, a.demand_org_id, a.date_plan, " + + " (CASE a.date_plan - CURRENT_DATE " + + " WHEN 0 THEN '当日' " + + " WHEN 1 THEN '次日' " + + " ELSE IF(a.date_plan - CURRENT_DATE < 0,'',a.date_plan - CURRENT_DATE || '日后') " + + " END) days_sign" + + " a.cu_code, cu.cu_name, cu.cu_sname, a.ver_no, a.point_dely_code, sp.full_name AS poin_dely_name," + + " a.qty_demand_gj, a.qty_demand_m3/10000 AS qty_demand_m3," + + " a.qty_sales_gj, a.qty_sales_m3/10000 AS qty_sales_m3," + + " a.rate_k, a.rate_mp, a.rate_s, k.k_name, a.alter_sign, dd_iud.name AS alter_name," + + " a.com_id, com.name AS com_name, a.appro_code, dd_a.name as appro_name, a.reply, a.note" + + " FROM lng_png_appro a" + + " LEFT JOIN lng_customer cu ON cu.cu_code=a.cu_code" + + " LEFT JOIN lng_contract k ON k.id=a.ks_id" + + " LEFT JOIN xjr_dictionary_item di_iud on di_iud.code='LNG_ALTER'" + + " LEFT JOIN xjr_dictionary_detail dd_iud on dd_iud.item_id=di_iud.id AND dd_iud.code=a.alter_sign" + + " LEFT JOIN xjr_dictionary_item di_a on di_a.code='LNG_APPRO1'" + + " LEFT JOIN xjr_dictionary_detail dd_a on dd_a.item_id=di_a.id AND dd_a.code=a.appro_code" + + " LEFT JOIN lng_b_station_png sp ON sp.code=a.point_dely_code" + + " LEFT JOIN xjr_department com ON com.id=a.com_id" + + " WHERE a.last_ver_sign='Y'" + + " ${ew.customSqlSegment}" + + " ORDER BY a.date_plan DESC, (CASE a.appro_code WHEN 'XS' THEN 1 WHEN 'JSZ' THEN 2 WHEN 'GD' THEN 3 WHEN 'YSP' THEN 4 ELSE 5 END) , cu.cu_sname") + IPage queryPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + @Select("SELECT a.*," + + " (CASE a.date_plan - CURRENT_DATE " + + " WHEN 0 THEN '当日' " + + " WHEN 1 THEN '次日' " + + " ELSE IF(a.date_plan - CURRENT_DATE < 0,'',a.date_plan - CURRENT_DATE || '日后') " + + " END) days_sign," + + " cu.cu_name, cu.cu_sname, sp.full_name AS poin_dely_name," + + " k.k_name, dd_iud.name AS alter_name," + + " com.name AS com_name, dd_a.name as appro_name" + + " FROM lng_png_appro a" + + " LEFT JOIN lng_customer cu ON cu.cu_code=a.cu_code" + + " LEFT JOIN lng_contract k ON k.id=a.ks_id" + + " LEFT JOIN xjr_dictionary_item di_iud on di_iud.code='LNG_ALTER'" + + " LEFT JOIN xjr_dictionary_detail dd_iud on dd_iud.item_id=di_iud.id AND dd_iud.code=a.alter_sign" + + " LEFT JOIN xjr_dictionary_item di_a on di_a.code='LNG_APPRO1'" + + " LEFT JOIN xjr_dictionary_detail dd_a on dd_a.item_id=di_a.id AND dd_a.code=a.appro_code" + + " LEFT JOIN lng_b_station_png sp ON sp.code=a.point_dely_code" + + " LEFT JOIN xjr_department com ON com.id=a.com_id" + + " WHERE a.id = #{id}") + LngPngApproVo getOneById(@Param("id") Long id); + + @Select("SELECT a.*, su.su_name, k.k_name AS kp_name, sp.full_name AS point_up_name" + + " FROM lng_png_appro_pur a" + + " LEFT JOIN lng_supplier su ON su.su_code=a.su_code" + + " LEFT JOIN lng_contract k ON k.id=a.kp_id" + + " LEFT JOIN lng_b_station_png sp ON sp.code=a.point_up_code" + + " WHERE a.appro_id = #{id}" + + " ORDER BY a.sort") + List queryLngPngApproPurList(@Param("id")Long id); } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IPngApproService.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IPngApproService.java index 5aadfb0..80fca42 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IPngApproService.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IPngApproService.java @@ -3,9 +3,15 @@ package com.xjrsoft.module.dayPlan.service; import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.extension.mapping.base.MPJDeepService; import com.github.yulichang.extension.mapping.base.MPJRelationService; +import com.xjrsoft.common.page.PageOutput; +import com.xjrsoft.module.approve.ApproveDto; +import com.xjrsoft.module.dayPlan.dto.LngPngApproPageDto; +import com.xjrsoft.module.dayPlan.dto.UpdateLngPngApproDto; import com.xjrsoft.module.dayPlan.entity.LngPngAppro; +import com.xjrsoft.module.dayPlan.vo.LngPngApproPageVo; +import com.xjrsoft.module.dayPlan.vo.LngPngApproVo; -import java.util.List; +import javax.validation.Valid; /** * @title: service @@ -15,27 +21,10 @@ import java.util.List; */ public interface IPngApproService extends MPJBaseService, MPJDeepService, MPJRelationService { - /** - * 新增 - * - * @param lngPngAppro - * @return - */ - Boolean add(LngPngAppro lngPngAppro); - /** - * 更新 - * - * @param lngPngAppro - * @return - */ - Boolean update(LngPngAppro lngPngAppro); + PageOutput queryPage(@Valid LngPngApproPageDto dto); - /** - * 删除 - * - * @param ids - * @return - */ - Boolean delete(List ids); + LngPngApproVo getInfoById(Long id); + + void approve(@Valid ApproveDto dto); } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/PngApproServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/PngApproServiceImpl.java index 45a85b1..2b4bc89 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/PngApproServiceImpl.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/PngApproServiceImpl.java @@ -1,19 +1,39 @@ package com.xjrsoft.module.dayPlan.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import cn.dev33.satoken.session.SaSession; +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.yulichang.base.MPJBaseServiceImpl; +import com.google.api.client.util.Lists; +import com.pictc.enums.BusinessCode; +import com.pictc.enums.ExceptionCommonCode; +import com.pictc.jdbc.JdbcTools; +import com.pictc.jdbc.model.JdbcParam; +import com.xjrsoft.common.constant.GlobalConstant; +import com.xjrsoft.common.exception.BusinessException; +import com.xjrsoft.common.page.ConventPage; +import com.xjrsoft.common.page.PageOutput; +import com.xjrsoft.module.approve.ApproveDto; +import com.xjrsoft.module.dayPlan.dto.LngPngApproPageDto; +import com.xjrsoft.module.dayPlan.dto.UpdateLngPngApproDto; +import com.xjrsoft.module.dayPlan.dto.UpdateLngPngApproPurDto; import com.xjrsoft.module.dayPlan.entity.LngPngAppro; import com.xjrsoft.module.dayPlan.entity.LngPngApproPur; import com.xjrsoft.module.dayPlan.mapper.LngPngApproMapper; import com.xjrsoft.module.dayPlan.mapper.LngPngApproPurMapper; import com.xjrsoft.module.dayPlan.service.IPngApproService; +import com.xjrsoft.module.dayPlan.vo.LngPngApproPageVo; +import com.xjrsoft.module.dayPlan.vo.LngPngApproPurVo; +import com.xjrsoft.module.dayPlan.vo.LngPngApproVo; +import com.xjrsoft.module.organization.dto.UserDto; 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 java.util.stream.Collectors; /** * @title: service @@ -24,65 +44,76 @@ import java.util.stream.Collectors; @Service @AllArgsConstructor public class PngApproServiceImpl extends MPJBaseServiceImpl implements IPngApproService { - private final LngPngApproMapper pngApproLngPngApproMapper; - - private final LngPngApproPurMapper pngApproLngPngApproPurMapper; + private final LngPngApproPurMapper lngPngApproPurMapper; @Override - @Transactional(rollbackFor = Exception.class) - public Boolean add(LngPngAppro lngPngAppro) { - pngApproLngPngApproMapper.insert(lngPngAppro); - for (LngPngApproPur lngPngApproPur : lngPngAppro.getLngPngApproPurList()) { - lngPngApproPur.setApproId(lngPngAppro.getId()); - pngApproLngPngApproPurMapper.insert(lngPngApproPur); - } + public PageOutput queryPage(LngPngApproPageDto dto) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper + .between(ObjectUtil.isNotNull(dto.getDatePlanStart()) && ObjectUtil.isNotNull(dto.getDatePlanEnd()), + "a.date_plan", dto.getDatePlanStart(), dto.getDatePlanEnd()) + .and(StringUtils.isNotBlank(dto.getCuCode()), r -> + r.like("cu.cu_code", dto.getCuCode()) + .or() + .like("cu.cu_name", dto.getCuCode()) + .or() + .like("cu.cu_sname", dto.getCuCode()) + ) + .eq(StringUtils.isNotBlank(dto.getApproCode()), "a.appro_code", dto.getApproCode()); + IPage page = this.baseMapper.queryPage(ConventPage.getPage(dto), queryWrapper); + PageOutput pageOutput = ConventPage.getPageOutput(page, LngPngApproPageVo.class); + return pageOutput; + } - return true; + @Override + public LngPngApproVo getInfoById(Long id) { + LngPngApproVo vo = this.baseMapper.getOneById(id); + if(vo == null) { + new BusinessException(BusinessCode.of(10500,"找不到此数据")); + } + List lngPngApproPurList = this.baseMapper.queryLngPngApproPurList(id); + vo.setLngPngApproPurList(lngPngApproPurList); + return vo; } @Override @Transactional(rollbackFor = Exception.class) - public Boolean update(LngPngAppro lngPngAppro) { - pngApproLngPngApproMapper.updateById(lngPngAppro); - //********************************* LngPngApproPur 增删改 开始 *******************************************/ - { - // 查出所有子级的id - List lngPngApproPurList = pngApproLngPngApproPurMapper.selectList(Wrappers.lambdaQuery(LngPngApproPur.class).eq(LngPngApproPur::getApproId, lngPngAppro.getId()).select(LngPngApproPur::getId)); - List lngPngApproPurIds = lngPngApproPurList.stream().map(LngPngApproPur::getId).collect(Collectors.toList()); - //原有子表单 没有被删除的主键 - List lngPngApproPurOldIds = lngPngAppro.getLngPngApproPurList().stream().map(LngPngApproPur::getId).filter(Objects::nonNull).collect(Collectors.toList()); - //找到需要删除的id - List lngPngApproPurRemoveIds = lngPngApproPurIds.stream().filter(item -> !lngPngApproPurOldIds.contains(item)).collect(Collectors.toList()); - - for (LngPngApproPur lngPngApproPur : lngPngAppro.getLngPngApproPurList()) { - //如果不等于空则修改 - if (lngPngApproPur.getId() != null) { - pngApproLngPngApproPurMapper.updateById(lngPngApproPur); - } - //如果等于空 则新增 - else { - //已经不存在的id 删除 - lngPngApproPur.setApproId(lngPngAppro.getId()); - pngApproLngPngApproPurMapper.insert(lngPngApproPur); - } - } - //已经不存在的id 删除 - if(lngPngApproPurRemoveIds.size() > 0){ - pngApproLngPngApproPurMapper.deleteBatchIds(lngPngApproPurRemoveIds); - } + public void approve(ApproveDto dto) { + UpdateLngPngApproDto data = dto.getData(); + LngPngAppro lngPngAppro = this.baseMapper.selectById(data.getId()); + if(lngPngAppro == null) { + new BusinessException(BusinessCode.of(10500,"找不到此数据")); + } + lngPngAppro.setQtySalesGj(data.getQtySalesGj()); + lngPngAppro.setQtySalesM3(data.getQtySalesM3()); + this.baseMapper.updateById(lngPngAppro); + for (UpdateLngPngApproPurDto lngPngApproPurDto : data.getLngPngApproPurList()) { + LngPngApproPur lngPngApproPur = lngPngApproPurMapper.selectById(lngPngApproPurDto.getId()); + if(lngPngApproPur == null) { + new BusinessException(BusinessCode.of(10500,"找不到此数据")); + } + lngPngApproPur.setQtySalesGj(lngPngApproPurDto.getQtySalesGj()); + lngPngApproPur.setQtySalesM3(lngPngApproPurDto.getQtySalesM3()); + lngPngApproPur.setNote(lngPngApproPurDto.getNote()); + lngPngApproPurMapper.updateById(lngPngApproPur); + } + String sql = com.pictc.utils.StringUtils.format("{? = call pc_{0}.f_approval(?, ?, ?, ?, ?)}", + "lng_png_appro"); + List params = Lists.newArrayList(); + JdbcParam outParam = JdbcParam.ofString(null).setOut(true); + params.add(outParam); + params.add(JdbcParam.ofLong(data.getId())); + params.add(JdbcParam.ofString("XS")); + params.add(JdbcParam.ofString(dto.getResult())); + params.add(JdbcParam.ofString(dto.getRemark())); + SaSession tokenSession = StpUtil.getTokenSession(); + UserDto user = tokenSession.get(GlobalConstant.LOGIN_USER_INFO_KEY, new UserDto()); + params.add(JdbcParam.ofLong(user.getId())); + JdbcTools.call(sql,params); + String error = outParam.getStringValue(); + if (com.pictc.utils.StringUtils.isNotEmpty(error)) { + throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_DELETE_EXEC_ERROR, error)); } - //********************************* LngPngApproPur 增删改 结束 *******************************************/ - - return true; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public Boolean delete(List ids) { - pngApproLngPngApproMapper.deleteBatchIds(ids); - pngApproLngPngApproPurMapper.delete(Wrappers.lambdaQuery(LngPngApproPur.class).in(LngPngApproPur::getApproId, ids)); - - return true; } }