管道气采购

This commit is contained in:
2026-01-09 15:57:47 +08:00
parent 402c876e86
commit 47f675f9b6

View File

@ -1,6 +1,10 @@
package com.xjrsoft.module.contract.controller; package com.xjrsoft.module.contract.controller;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import javax.validation.Valid; import javax.validation.Valid;
@ -26,8 +30,12 @@ import com.xjrsoft.common.model.result.R;
import com.xjrsoft.module.contract.dto.LngContractPageDto; import com.xjrsoft.module.contract.dto.LngContractPageDto;
import com.xjrsoft.module.contract.dto.UpdateLngContractPurDto; import com.xjrsoft.module.contract.dto.UpdateLngContractPurDto;
import com.xjrsoft.module.contract.dto.UpdateLngContractPurPngPointDto; import com.xjrsoft.module.contract.dto.UpdateLngContractPurPngPointDto;
import com.xjrsoft.module.contract.dto.UpdateLngContractPurPngPointSalesDto;
import com.xjrsoft.module.contract.dto.UpdateLngContractSalesPngPointDto; import com.xjrsoft.module.contract.dto.UpdateLngContractSalesPngPointDto;
import com.xjrsoft.module.contract.service.IContractPurPngService; import com.xjrsoft.module.contract.service.IContractPurPngService;
import com.xjrsoft.module.contract.vo.LngContractPurPngPointSalesVo;
import com.xjrsoft.module.contract.vo.LngContractPurPngPointVo;
import com.xjrsoft.module.contract.vo.LngContractPurVo;
import com.xjrsoft.module.datalog.service.DatalogService; import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo; import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
@ -105,22 +113,61 @@ public class ContractPurPngController {
boolean res = dataService.updateById(dto, new DataOperationListener<UpdateLngContractPurDto>() { boolean res = dataService.updateById(dto, new DataOperationListener<UpdateLngContractPurDto>() {
@Override @Override
public UpdateLngContractPurDto before(DataOperationContent<UpdateLngContractPurDto> content) { public UpdateLngContractPurDto before(DataOperationContent<UpdateLngContractPurDto> content) {
List<UpdateLngContractPurPngPointDto> list = dto.getLngContractPurPngPointList(); LngContractPurVo old = contractPurPngService.getInfoById(dto.getId());
List<LngContractPurPngPointVo> oldPpList = old.getLngContractPurPngPointList();
List<Long> oldPpIdList = Lists.newArrayList();
List<Long> oldSalesIdList = Lists.newArrayList();
for(LngContractPurPngPointVo pp:oldPpList) {
oldPpIdList.add(pp.getId());
if(pp.getLngContractPurPngPointSalesList() != null) {
for(LngContractPurPngPointSalesVo sales:pp.getLngContractPurPngPointSalesList()) {
oldSalesIdList.add(sales.getId());
}
}
}
List<UpdateLngContractPurPngPointDto> list = dto.getLngContractPurPngPointList();
List<Long> newPpIdList = Lists.newArrayList();
List<Long> newSalesIdList = Lists.newArrayList();
for (UpdateLngContractPurPngPointDto dto : list) { for (UpdateLngContractPurPngPointDto dto : list) {
if (dto.getHasDel()) { if(dto.getId() != null) {
String sql = StringUtils.format("{? = call pc_{0}.f before_delete_point(?)}", newPpIdList.add(dto.getId());
"pc_lng_contract_pur_png");
List<JdbcParam> params = Lists.newArrayList();
JdbcParam outParam = JdbcParam.ofString(null).setOut(true);
params.add(outParam);
params.add(JdbcParam.ofLong(dto.getId()));
JdbcTools.call(sql,params);
String error = outParam.getStringValue();
if (StringUtils.isNotEmpty(error)) {
throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_DELETE_EXEC_ERROR, error));
}
} }
if(dto.getLngContractPurPngPointSalesList() != null) {
for(UpdateLngContractPurPngPointSalesDto sales:dto.getLngContractPurPngPointSalesList()) {
newSalesIdList.add(sales.getId());
}
}
} }
for(Long sid:oldPpIdList) {
if(!newPpIdList.contains(sid)) {
String sql = StringUtils.format("{? = call pc_{0}.f_before_delete_point(?)}",
"lng_contract_pur_png");
List<JdbcParam> params = Lists.newArrayList();
JdbcParam outParam = JdbcParam.ofString(null).setOut(true);
params.add(outParam);
params.add(JdbcParam.ofLong(dto.getId()));
JdbcTools.call(sql,params);
String error = outParam.getStringValue();
if (StringUtils.isNotEmpty(error)) {
throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_DELETE_EXEC_ERROR, error));
}
}
}
for(Long sid:oldSalesIdList) {
if(!newSalesIdList.contains(sid)) {
String sql = StringUtils.format("{? = call pc_{0}.f_before_delete_point_sales(?)}",
"lng_contract_pur_png");
List<JdbcParam> params = Lists.newArrayList();
JdbcParam outParam = JdbcParam.ofString(null).setOut(true);
params.add(outParam);
params.add(JdbcParam.ofLong(dto.getId()));
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(); return content.getObj();
} }