|
|
|
|
@ -8,10 +8,9 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.yulichang.toolkit.JoinWrappers;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpContractMateriel;
|
|
|
|
|
import org.dromara.oa.erp.mapper.ErpContractMaterielMapper;
|
|
|
|
|
import org.dromara.oa.erp.domain.ErpContractMaterial;
|
|
|
|
|
import org.dromara.oa.erp.mapper.ErpContractMaterialMapper;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.dromara.oa.erp.domain.bo.ErpContractInfoBo;
|
|
|
|
|
import org.dromara.oa.erp.domain.vo.ErpContractInfoVo;
|
|
|
|
|
@ -38,7 +37,7 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
|
|
|
|
|
|
|
|
|
|
private final ErpContractInfoMapper baseMapper;
|
|
|
|
|
|
|
|
|
|
private final ErpContractMaterielMapper contractMaterielMapper;
|
|
|
|
|
private final ErpContractMaterialMapper contractMaterialMapper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询合同信息
|
|
|
|
|
@ -118,13 +117,13 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
|
|
|
|
|
public Boolean insertByBo(ErpContractInfoBo bo) {
|
|
|
|
|
ErpContractInfo add = MapstructUtils.convert(bo, ErpContractInfo.class);
|
|
|
|
|
validEntityBeforeSave(add);
|
|
|
|
|
List<ErpContractMateriel> contractMaterielList = bo.getContractMaterielList();
|
|
|
|
|
List<ErpContractMaterial> contractMaterielList = bo.getContractMaterielList();
|
|
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
|
|
if (flag) {
|
|
|
|
|
bo.setContractId(add.getContractId());
|
|
|
|
|
for (ErpContractMateriel erpContractMateriel : contractMaterielList) {
|
|
|
|
|
for (ErpContractMaterial erpContractMateriel : contractMaterielList) {
|
|
|
|
|
erpContractMateriel.setContractId(add.getContractId());
|
|
|
|
|
contractMaterielMapper.insert(erpContractMateriel);
|
|
|
|
|
contractMaterialMapper.insert(erpContractMateriel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return flag;
|
|
|
|
|
@ -141,22 +140,22 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
|
|
|
|
|
public Boolean updateByBo(ErpContractInfoBo bo) {
|
|
|
|
|
ErpContractInfo update = MapstructUtils.convert(bo, ErpContractInfo.class);
|
|
|
|
|
validEntityBeforeSave(update);
|
|
|
|
|
List<ErpContractMateriel> contractMaterielList = bo.getContractMaterielList();
|
|
|
|
|
MPJLambdaWrapper<ErpContractMateriel> lqwRecord = JoinWrappers.lambda(ErpContractMateriel.class);
|
|
|
|
|
lqwRecord.eq(ErpContractMateriel::getContractId, bo.getContractId());
|
|
|
|
|
List<ErpContractMateriel> contractMaterielOldList = contractMaterielMapper.selectList(lqwRecord);
|
|
|
|
|
List<ErpContractMaterial> contractMaterielList = bo.getContractMaterielList();
|
|
|
|
|
MPJLambdaWrapper<ErpContractMaterial> lqwRecord = JoinWrappers.lambda(ErpContractMaterial.class);
|
|
|
|
|
lqwRecord.eq(ErpContractMaterial::getContractId, bo.getContractId());
|
|
|
|
|
List<ErpContractMaterial> contractMaterielOldList = contractMaterialMapper.selectList(lqwRecord);
|
|
|
|
|
if (!contractMaterielList.isEmpty()) {
|
|
|
|
|
for (ErpContractMateriel contractMateriel : contractMaterielList) {
|
|
|
|
|
contractMaterielMapper.insertOrUpdate(contractMateriel);
|
|
|
|
|
for (ErpContractMaterial contractMateriel : contractMaterielList) {
|
|
|
|
|
contractMaterialMapper.insertOrUpdate(contractMateriel);
|
|
|
|
|
}
|
|
|
|
|
Set<Long> existingContractMaterielIds = contractMaterielList.stream()
|
|
|
|
|
.map(ErpContractMateriel::getContractMaterielId)
|
|
|
|
|
.map(ErpContractMaterial::getContractMaterialId)
|
|
|
|
|
.collect(Collectors.toSet());
|
|
|
|
|
List<ErpContractMateriel> filterContractMaterielIds = contractMaterielOldList.stream()
|
|
|
|
|
.filter(materiel -> !existingContractMaterielIds.contains(materiel.getContractMaterielId()))
|
|
|
|
|
List<ErpContractMaterial> filterContractMaterielIds = contractMaterielOldList.stream()
|
|
|
|
|
.filter(materiel -> !existingContractMaterielIds.contains(materiel.getContractMaterialId()))
|
|
|
|
|
.toList();
|
|
|
|
|
for (ErpContractMateriel filterContractMaterielId : filterContractMaterielIds) {
|
|
|
|
|
contractMaterielMapper.deleteById(filterContractMaterielId.getContractMaterielId());
|
|
|
|
|
for (ErpContractMaterial filterContractMaterielId : filterContractMaterielIds) {
|
|
|
|
|
contractMaterialMapper.deleteById(filterContractMaterielId.getContractMaterialId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return baseMapper.updateById(update) > 0;
|
|
|
|
|
|