diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngDemandDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngDemandDto.java index 709f99a..afdc97e 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngDemandDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngDemandDto.java @@ -265,4 +265,17 @@ public class UpdateLngPngDemandDto implements Serializable { }, caseType = JoinCaseType.FULL, target = UpdateLngPngDemandPurDto.class, type = JoinType.MANY) private List lngPngDemandPurList; + + /** + * lngPngApproPur + */ + /** + @ApiModelProperty("lngPngAppro子表") + @LogJoin(name = "lngPngAppro子表", + columns = { + @LogJoinColumn(field = "demandId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT) + }, + caseType = JoinCaseType.FULL, target = UpdateLngPngApproPurDto.class, type = JoinType.MANY) + private List lngPngApproList; + **/ } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngMeasureSalesPurDto.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngMeasureSalesPurDto.java index 753ccb3..1a8c528 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngMeasureSalesPurDto.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/dto/UpdateLngPngMeasureSalesPurDto.java @@ -5,6 +5,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import com.fasterxml.jackson.annotation.JsonFormat; import com.pictc.annotations.datalog.LogAttrField; import com.pictc.annotations.datalog.LogField; import com.pictc.annotations.datalog.LogTable; @@ -54,6 +55,7 @@ public class UpdateLngPngMeasureSalesPurDto implements Serializable { */ @LogField(name="计划日期",index=3) @ApiModelProperty("计划日期") + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime datePlan; /** @@ -61,6 +63,7 @@ public class UpdateLngPngMeasureSalesPurDto implements Serializable { */ @LogField(name="计量日期",index=4) @ApiModelProperty("计量日期(缺省=计划日期+1)") + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime dateMea; /** diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngDemandPageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngDemandPageVo.java index daa806e..152391e 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngDemandPageVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/dayPlan/vo/LngPngDemandPageVo.java @@ -110,5 +110,11 @@ public class LngPngDemandPageVo { @ExcelProperty("备注") @ApiModelProperty("备注") private String note; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + private Long createUserId; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngScorePageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngScorePageVo.java index 6eae856..8b07dc4 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngScorePageVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngScorePageVo.java @@ -74,5 +74,11 @@ public class LngScorePageVo { */ @ApiModelProperty("备注") private String note; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + private Long createUserId; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngSupplierPageVo.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngSupplierPageVo.java index ec8fbc6..f0e1d56 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngSupplierPageVo.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/supplier/vo/LngSupplierPageVo.java @@ -75,5 +75,11 @@ public class LngSupplierPageVo { @ApiModelProperty("状态(未提交/审批中/已审批/已驳回)") private String approName; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + private Long createUserId; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/DemandController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/DemandController.java index 550557b..1069d0a 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/DemandController.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/DemandController.java @@ -22,6 +22,9 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.pictc.datalog.DataOperationContent; import com.pictc.datalog.DataOperationListener; +import com.pictc.enums.BusinessCode; +import com.pictc.utils.DataLogTools; +import com.xjrsoft.common.exception.BusinessException; import com.xjrsoft.common.model.result.R; import com.xjrsoft.common.page.PageOutput; import com.xjrsoft.common.utils.ExcelUtil; @@ -41,6 +44,7 @@ import cn.hutool.core.bean.BeanUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; +import shade.powerjob.com.google.common.collect.Lists; /** * @title: 日计划-客户需求 @@ -164,6 +168,9 @@ public class DemandController { if (lngPngDemand == null) { return R.error("找不到此数据!"); } + if(!"YSP".equals(lngPngDemand.getApproCode())) { + throw new BusinessException(BusinessCode.of(10500,"审批状态变化,不能取消")); + } UpdateLngPngDemandDto temp = BeanUtil.toBean(lngPngDemand, UpdateLngPngDemandDto.class); temp.setId(null); temp.setAlterSign("D"); @@ -178,7 +185,7 @@ public class DemandController { pdp.setAddSign("N"); } } - return R.ok(dataService.insert(temp,new DataOperationListener() { + return R.ok(dataService.updateById(temp,new DataOperationListener() { @Override public UpdateLngPngDemandDto before(DataOperationContent content) { @@ -202,13 +209,41 @@ public class DemandController { return R.ok(demandService.compare(id)); } + + + @PostMapping(value="/withdraw") + @ApiOperation(value = "撤回LngPngDemand") + //@SaCheckPermission("demand:cancel") + public R withdraw(@Valid @RequestParam List ids){ + demandService.withdraw(ids); + return R.ok(); + } @DeleteMapping @ApiOperation(value = "删除") @SaCheckPermission("demand:delete") public R delete(@Valid @RequestBody List ids){ - return R.ok(dataService.deleteByIds(UpdateLngPngDemandDto.class, ids)); + demandService.deleteByIds(ids); + return R.ok(); + } + + @PostMapping(value="/submit") + @ApiOperation(value = "提交LngPngDemand") + //@SaCheckPermission("demand:edit") + public R submit(@Valid @RequestBody UpdateLngPngDemandDto dto){ + return R.ok(dataService.updateById(dto,new DataOperationListener() { + @Override + public UpdateLngPngDemandDto before(DataOperationContent content) { + return null; + } + + @Override + public UpdateLngPngDemandDto after(DataOperationContent content) { + + return null; + } + })); } @PostMapping("/import") diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngMeasureSalesPurController.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngMeasureSalesPurController.java index 958a473..45b217d 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngMeasureSalesPurController.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/controller/PngMeasureSalesPurController.java @@ -204,7 +204,7 @@ public class PngMeasureSalesPurController { @DeleteMapping @ApiOperation(value = "删除") - @SaCheckPermission("pngMeasureSalesPur:delete") + //@SaCheckPermission("pngMeasureSalesPur:delete") public R delete(@Valid @RequestBody List ids){ return R.ok(dataService.deleteByIds(UpdateLngPngMeasureSalesPurDto.class, ids)); diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngDemand.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngDemand.java index 8548126..6b31509 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngDemand.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngDemand.java @@ -113,9 +113,6 @@ public class LngPngDemand implements Serializable { * 电厂开机方式-连运机组数(电厂用户填报开机方式) */ @ApiModelProperty("电厂开机方式-连运机组数(电厂用户填报开机方式)") - - - @TableField(updateStrategy = FieldStrategy.IGNORED) private Short powerCont; @@ -222,9 +219,6 @@ public class LngPngDemand implements Serializable { * 销售金额(自动计算,扣减预付款用) */ @ApiModelProperty("销售金额(自动计算,扣减预付款用)") - - - @TableField(updateStrategy = FieldStrategy.IGNORED) private BigDecimal amountSales; @@ -285,7 +279,7 @@ public class LngPngDemand implements Serializable { * 租户id */ @ApiModelProperty("租户id") - @TableField(updateStrategy = FieldStrategy.IGNORED) + //@TableField(updateStrategy = FieldStrategy.IGNORED) private Long tenantId; /** diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngMeasureSalesPur.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngMeasureSalesPur.java index 7468674..1651f2a 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngMeasureSalesPur.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/entity/LngPngMeasureSalesPur.java @@ -230,7 +230,7 @@ public class LngPngMeasureSalesPur implements Serializable { * 租户id */ @ApiModelProperty("租户id") - @TableField(updateStrategy = FieldStrategy.IGNORED) + //@TableField(updateStrategy = FieldStrategy.IGNORED) private Long tenantId; /** diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngDemandMapper.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngDemandMapper.java index 6ad8697..93186d4 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngDemandMapper.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/mapper/LngPngDemandMapper.java @@ -37,4 +37,10 @@ public interface LngPngDemandMapper extends MPJBaseMapper,BaseMapp " ORDER BY d.date_plan DESC, (CASE d.appro_code WHEN 'WTJ' THEN 1 WHEN 'YBH' THEN 2 WHEN 'SPZ' THEN 3 WHEN 'YSP' THEN 4 ELSE 5 END) " ) IPage queryPage(IPage page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + @Select(" SELECT count(a.id) "+ + " FROM lng_png_demand d "+ + " JOIN lng_png_appro pa ON pa.demand_id=d.id "+ + " JOIN lng_png_approval a ON a.appro_id=pa.id " + + " WHERE d.id = #{id}") + Long getApprovedCount(@Param("id") Long id); } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IDemandService.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IDemandService.java index e3a59d8..0816faa 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IDemandService.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/IDemandService.java @@ -28,6 +28,12 @@ public interface IDemandService extends MPJBaseService, MPJDeepSer LngPngDemandVo getInfoById(Long id); List compare(@Valid Long id); + + Long selectApprovedCount(Long id); + + void withdraw(@Valid List ids); + + void deleteByIds(@Valid List ids); } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/DemandServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/DemandServiceImpl.java index 093d31a..aaa4dfa 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/DemandServiceImpl.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/dayPlan/service/impl/DemandServiceImpl.java @@ -16,11 +16,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.yulichang.base.MPJBaseServiceImpl; +import com.pictc.datalog.DataOperationContent; +import com.pictc.datalog.DataOperationListener; +import com.pictc.enums.BusinessCode; +import com.pictc.utils.DataLogTools; +import com.xjrsoft.common.exception.BusinessException; import com.xjrsoft.common.page.ConventPage; import com.xjrsoft.common.page.PageOutput; +import com.xjrsoft.module.datalog.service.DatalogService; import com.xjrsoft.module.dayPlan.dto.LngPngDemandPageDto; +import com.xjrsoft.module.dayPlan.dto.UpdateLngPngApproDto; +import com.xjrsoft.module.dayPlan.dto.UpdateLngPngDemandDto; +import com.xjrsoft.module.dayPlan.entity.LngPngAppro; import com.xjrsoft.module.dayPlan.entity.LngPngDemand; import com.xjrsoft.module.dayPlan.entity.LngPngDemandPur; +import com.xjrsoft.module.dayPlan.mapper.LngPngApproMapper; import com.xjrsoft.module.dayPlan.mapper.LngPngDemandMapper; import com.xjrsoft.module.dayPlan.mapper.LngPngDemandPurMapper; import com.xjrsoft.module.dayPlan.service.IDemandService; @@ -42,9 +52,13 @@ import shade.powerjob.com.google.common.collect.Lists; @AllArgsConstructor public class DemandServiceImpl extends MPJBaseServiceImpl implements IDemandService { - private final LngPngDemandMapper demandLngPngDemandMapper; + private final LngPngApproMapper approMapper; - private final LngPngDemandPurMapper demandLngPngDemandPurMapper; + private final LngPngDemandPurMapper demandPurMapper; + + private final LngPngDemandMapper demandMapper; + + private final DatalogService dataService; @Override public PageOutput queryPage(LngPngDemandPageDto dto) { @@ -70,6 +84,11 @@ public class DemandServiceImpl extends MPJBaseServiceImpl compare(@Valid Long id) { @@ -94,7 +113,7 @@ public class DemandServiceImpl extends MPJBaseServiceImpl queryPurWrapper = new LambdaQueryWrapper<>(); queryPurWrapper.eq(LngPngDemandPur::getDemandId,last.getId()); queryPurWrapper.orderByAsc(LngPngDemandPur::getSort); - List lastPurList = demandLngPngDemandPurMapper.selectList(queryPurWrapper); + List lastPurList = demandPurMapper.selectList(queryPurWrapper); //增加了item if(currentPurList.size() >= lastPurList.size()) { for(int i=0;i ids) { + for(Long id:ids) { + Long approvedCount = this.selectApprovedCount(id); + if(approvedCount >= 1) { + throw new BusinessException(BusinessCode.of(10500,"已进入审批环节,不可撤回")); + } + } + List dtoList = Lists.newArrayList(); + for(Long id:ids) { + LngPngDemand lngPngDemand = this.getById(id); + if (lngPngDemand == null) { + throw new BusinessException(BusinessCode.of(10500,"找不到此数据!")); + } + UpdateLngPngDemandDto dto = BeanUtil.toBean(lngPngDemand, UpdateLngPngDemandDto.class); + dto.setApproCode("WTJ"); + dtoList.add(dto); + } + LambdaQueryWrapper queryApproWrapper = new LambdaQueryWrapper<>(); + queryApproWrapper.in(LngPngAppro::getDemandId, ids); + List approList = approMapper.selectList(queryApproWrapper); + List approIds = approList.stream().map(LngPngAppro::getId).collect(Collectors.toList()); + + dataService.insertBatch(dtoList,new DataOperationListener() { + + @Override + public UpdateLngPngDemandDto before(DataOperationContent content) { + return null; + } + + @Override + public UpdateLngPngDemandDto after(DataOperationContent content) { + DataLogTools.deleteByIds(UpdateLngPngApproDto.class,approIds); + return null; + } + }); + + } + + @Override + public void deleteByIds(@Valid List ids) { + List lastList = Lists.newArrayList(); + for(Long id:ids) { + LngPngDemand lngPngDemand = this.getById(id); + if (lngPngDemand == null) { + throw new BusinessException(BusinessCode.of(10500,"找不到此数据!")); + + } + if(!"WTJ".equals(lngPngDemand.getApproCode()) || !"YBH".equals(lngPngDemand.getApproCode()) ) { + throw new BusinessException(BusinessCode.of(10500,"审批状态变化,不能删除")); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LngPngDemand::getOrgId, lngPngDemand.getOrgId()); + queryWrapper.eq(LngPngDemand::getVerNo, lngPngDemand.getVerNo()-1); + LngPngDemand last = this.baseMapper.selectOne(queryWrapper); + lastList.add(last); + + } + LambdaQueryWrapper queryApproWrapper = new LambdaQueryWrapper<>(); + queryApproWrapper.in(LngPngAppro::getDemandId, ids); + List approList = approMapper.selectList(queryApproWrapper); + List approIds = approList.stream().map(LngPngAppro::getId).collect(Collectors.toList()); + + dataService.deleteByIds(UpdateLngPngDemandDto.class, ids,new DataOperationListener() { + + @Override + public UpdateLngPngDemandDto before(DataOperationContent content) { + return null; + } + + @Override + public UpdateLngPngDemandDto after(DataOperationContent content) { + //lngPngDemand.setLastVerSign("N"); + //demandService.updateById(lngPngDemand); + DataLogTools.deleteByIds(UpdateLngPngApproDto.class,approIds); + for(LngPngDemand last:lastList) { + last.setLastVerSign("Y"); + demandMapper.updateById(last); + } + + return null; + } + }); + + + } + }