|
@@ -16,20 +16,29 @@
|
|
|
*/
|
|
|
package org.springblade.meter.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springblade.core.log.exception.ServiceException;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springblade.manager.entity.WbsTree;
|
|
|
import org.springblade.meter.entity.ContractInventoryForm;
|
|
|
+import org.springblade.meter.entity.InventoryFormApply;
|
|
|
import org.springblade.meter.entity.InventoryFormMeter;
|
|
|
+import org.springblade.meter.entity.MeterTreeContract;
|
|
|
import org.springblade.meter.mapper.InventoryFormMeterMapper;
|
|
|
+import org.springblade.meter.service.IInventoryFormApplyService;
|
|
|
import org.springblade.meter.service.IInventoryFormMeterService;
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
+import org.springblade.meter.service.MeterTreeContractService;
|
|
|
import org.springblade.meter.vo.ContractFromVO;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -39,8 +48,12 @@ import java.util.List;
|
|
|
* @since 2023-11-29
|
|
|
*/
|
|
|
@Service
|
|
|
+@AllArgsConstructor
|
|
|
public class InventoryFormMeterServiceImpl extends BaseServiceImpl<InventoryFormMeterMapper, InventoryFormMeter> implements IInventoryFormMeterService {
|
|
|
|
|
|
+ private final MeterTreeContractService meterTreeContractService;
|
|
|
+
|
|
|
+ private final IInventoryFormApplyService inventoryFormApplyService;
|
|
|
|
|
|
@Override
|
|
|
public List<Long> getNodeAllForm(Long nodeId) {
|
|
@@ -59,11 +72,14 @@ public class InventoryFormMeterServiceImpl extends BaseServiceImpl<InventoryForm
|
|
|
if(inventoryFormMeter==null && ObjectUtil.isEmpty(inventoryFormMeter)){
|
|
|
ContractInventoryForm inventoryForm = baseMapper.dadainfo(forid);
|
|
|
InventoryFormMeter data =new InventoryFormMeter();
|
|
|
- data.setContractId(inventoryForm.getContractId());
|
|
|
data.setProjectId(inventoryForm.getProjectId());
|
|
|
+ data.setContractId(inventoryForm.getContractId());
|
|
|
data.setContractFormId(forid);
|
|
|
data.setContractMeterId(Func.toLong(meterId));
|
|
|
- data.setBuildPictureTotal(0);
|
|
|
+ data.setBuildPictureTotal(BigDecimal.ZERO);
|
|
|
+ data.setChangeBuildPictureTotal(BigDecimal.ZERO);
|
|
|
+ data.setBuildPictureMoney(BigDecimal.ZERO);
|
|
|
+ data.setChangeBuildPictureMoney(BigDecimal.ZERO);
|
|
|
baseMapper.insert(data);
|
|
|
}
|
|
|
}
|
|
@@ -72,24 +88,56 @@ public class InventoryFormMeterServiceImpl extends BaseServiceImpl<InventoryForm
|
|
|
|
|
|
@Override
|
|
|
public boolean updateInfo(List<ContractFromVO> dataInfo,Long meterId) {
|
|
|
- for (ContractFromVO data:dataInfo){
|
|
|
- LambdaUpdateWrapper<InventoryFormMeter> updateWrapper = new LambdaUpdateWrapper<InventoryFormMeter>();
|
|
|
- updateWrapper.set(InventoryFormMeter::getBuildPictureTotal, data.getPoseNum());
|
|
|
- updateWrapper.eq(InventoryFormMeter::getContractMeterId, meterId);
|
|
|
- updateWrapper.eq(InventoryFormMeter::getContractFormId, data.getId());
|
|
|
- baseMapper.update(null, updateWrapper);
|
|
|
+ //统计施工图金额和变更后施工图金额
|
|
|
+ BigDecimal b1 = BigDecimal.ZERO;
|
|
|
+ BigDecimal b2 = BigDecimal.ZERO;
|
|
|
+ for (ContractFromVO vo:dataInfo){
|
|
|
+ if (vo.getBuildPictureTotal() == null){
|
|
|
+ throw new ServiceException("请填写施工图数量");
|
|
|
+ }
|
|
|
+ //统计
|
|
|
+ vo.setBuildPictureMoney(vo.getCurrentPrice().multiply(vo.getBuildPictureTotal()));
|
|
|
+ vo.setChangeBuildPictureMoney(vo.getCurrentPrice().multiply(vo.getChangeBuildPictureTotal()));
|
|
|
+ b1 = b1.add(vo.getBuildPictureMoney());
|
|
|
+ b2 = b2.add(vo.getChangeBuildPictureMoney());
|
|
|
+ //修改,如果是已经被引用则跳过
|
|
|
+ if (vo.getCiteStatus() == 0){
|
|
|
+ this.update(new LambdaUpdateWrapper<InventoryFormMeter>()
|
|
|
+ .eq(InventoryFormMeter::getId,vo.getId())
|
|
|
+ .set(InventoryFormMeter::getBuildPictureTotal,vo.getBuildPictureTotal())
|
|
|
+ .set(InventoryFormMeter::getChangeBuildPictureTotal,vo.getChangeBuildPictureTotal())
|
|
|
+ .set(InventoryFormMeter::getBuildPictureMoney,vo.getBuildPictureMoney())
|
|
|
+ .set(InventoryFormMeter::getChangeBuildPictureMoney,vo.getChangeBuildPictureMoney())
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
+ //修改节点的统计值
|
|
|
+ meterTreeContractService.update(new LambdaUpdateWrapper<MeterTreeContract>()
|
|
|
+ .eq(MeterTreeContract::getId,meterId)
|
|
|
+ .set(MeterTreeContract::getBuildPictureMoney,b1)
|
|
|
+ .set(MeterTreeContract::getChangeMoney,b2));
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 删除 同合计量 清单
|
|
|
+ */
|
|
|
@Override
|
|
|
- public R delInMeterInfo(String meterId, String formIds) {
|
|
|
- List<Long> longList = Func.toLongList(formIds);
|
|
|
- for(Long forid:longList) {
|
|
|
- baseMapper.delete(Wrappers.<InventoryFormMeter>query().lambda()
|
|
|
- .eq(InventoryFormMeter::getContractMeterId, meterId)
|
|
|
- .eq(InventoryFormMeter::getContractFormId, forid));
|
|
|
+ public R delInMeterInfo(String meterId, Long formIds) {
|
|
|
+ //判断当前清单是否被变更
|
|
|
+ InventoryFormMeter meter = this.getById(formIds);
|
|
|
+ if (meter.getBuildPictureTotal().compareTo(meter.getChangeBuildPictureTotal()) != 0){
|
|
|
+ throw new ServiceException("当前清单已经变更,不能删除");
|
|
|
+ }
|
|
|
+ //判断当前清单是否被计量
|
|
|
+ List<InventoryFormApply> list = inventoryFormApplyService.list(new LambdaQueryWrapper<InventoryFormApply>()
|
|
|
+ .eq(InventoryFormApply::getContractId, meter.getContractId())
|
|
|
+ .eq(InventoryFormApply::getContractFormId, meter.getContractFormId()));
|
|
|
+ if (list.size() > 0){
|
|
|
+ throw new ServiceException("当前清单已经计量,不能删除");
|
|
|
}
|
|
|
+ //删除
|
|
|
+ this.removeById(formIds);
|
|
|
return R.success("成功");
|
|
|
}
|
|
|
}
|