管道气采购
This commit is contained in:
@ -1,6 +1,10 @@
|
||||
package com.xjrsoft.module.contract.controller;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collector;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
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.UpdateLngContractPurDto;
|
||||
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.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.vo.DataChangeLogVo;
|
||||
|
||||
@ -105,11 +113,50 @@ public class ContractPurPngController {
|
||||
boolean res = dataService.updateById(dto, new DataOperationListener<UpdateLngContractPurDto>() {
|
||||
@Override
|
||||
public UpdateLngContractPurDto before(DataOperationContent<UpdateLngContractPurDto> content) {
|
||||
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) {
|
||||
if (dto.getHasDel()) {
|
||||
String sql = StringUtils.format("{? = call pc_{0}.f before_delete_point(?)}",
|
||||
"pc_lng_contract_pur_png");
|
||||
if(dto.getId() != null) {
|
||||
newPpIdList.add(dto.getId());
|
||||
}
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user