|
@@ -143,23 +143,24 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
|
|
//设置部位基础信息,方便公式生成报表
|
|
//设置部位基础信息,方便公式生成报表
|
|
meter.setNodeName(l.getNodeName());
|
|
meter.setNodeName(l.getNodeName());
|
|
meter.setNodeUrl(l.getNodeUrl());
|
|
meter.setNodeUrl(l.getNodeUrl());
|
|
- meter.setChangeMoney(new BigDecimal(0));
|
|
|
|
|
|
+ meter.setChangeMoney(BigDecimal.ZERO);
|
|
|
|
+ meter.setBeforeChangeMoney(l.getBeforeChangeMoney());
|
|
meter.setIsSupplement(l.getIsSupplement());
|
|
meter.setIsSupplement(l.getIsSupplement());
|
|
List<ChangeFormVO2> list = l.getFormList();
|
|
List<ChangeFormVO2> list = l.getFormList();
|
|
- BigDecimal big = new BigDecimal(0);
|
|
|
|
|
|
+ BigDecimal big = BigDecimal.ZERO;
|
|
if (list != null && list.size() != 0){
|
|
if (list != null && list.size() != 0){
|
|
formList.addAll(list);
|
|
formList.addAll(list);
|
|
for (ChangeFormVO2 vo2 : list) {
|
|
for (ChangeFormVO2 vo2 : list) {
|
|
- big = big.add(vo2.getChangeMoney());
|
|
|
|
|
|
+ big = big.add(vo2.getCurrentChangeMoney());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- meter.setChangeMoney(big);
|
|
|
|
|
|
+ meter.setChangeMoney(l.getBeforeChangeMoney().add(big));
|
|
return meter;
|
|
return meter;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
changeTokenMeterService.saveBatch(meterList);
|
|
changeTokenMeterService.saveBatch(meterList);
|
|
}
|
|
}
|
|
//保存清单,并计算总变更金额设置进变更令
|
|
//保存清单,并计算总变更金额设置进变更令
|
|
- BigDecimal big = new BigDecimal(0);
|
|
|
|
|
|
+ BigDecimal big = BigDecimal.ZERO;
|
|
if (formList.size() != 0){
|
|
if (formList.size() != 0){
|
|
List<ChangeTokenInventory> inventoryList = new ArrayList<>();
|
|
List<ChangeTokenInventory> inventoryList = new ArrayList<>();
|
|
for (ChangeFormVO2 vo2 : formList) {
|
|
for (ChangeFormVO2 vo2 : formList) {
|
|
@@ -178,27 +179,27 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
|
|
throw new ServiceException("未找到清单("+vo2.getFormName()+")的部位id");
|
|
throw new ServiceException("未找到清单("+vo2.getFormName()+")的部位id");
|
|
}
|
|
}
|
|
//如果是负变更,判断当前节点下是否存在当前清单
|
|
//如果是负变更,判断当前节点下是否存在当前清单
|
|
- if (vo2.getCurrentChangeTotal() < 0){
|
|
|
|
|
|
+ if (vo2.getCurrentChangeTotal().compareTo(BigDecimal.ZERO) == -1){
|
|
//获取当前节点下当前清单的分解信息
|
|
//获取当前节点下当前清单的分解信息
|
|
InventoryFormMeter meter = inventoryFormMeterService.getOne(new LambdaQueryWrapper<InventoryFormMeter>()
|
|
InventoryFormMeter meter = inventoryFormMeterService.getOne(new LambdaQueryWrapper<InventoryFormMeter>()
|
|
.eq(InventoryFormMeter::getContractFormId, vo2.getId())
|
|
.eq(InventoryFormMeter::getContractFormId, vo2.getId())
|
|
.eq(InventoryFormMeter::getContractMeterId, vo2.getContractMeterId()));
|
|
.eq(InventoryFormMeter::getContractMeterId, vo2.getContractMeterId()));
|
|
- if (meter == null || (meter.getBuildPictureTotal()+vo2.getCurrentChangeTotal() < 0)){
|
|
|
|
|
|
+ if (meter == null || (meter.getBuildPictureTotal().add(vo2.getCurrentChangeTotal()).compareTo(BigDecimal.ZERO) == -1)){
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,未找到清单("+vo2.getFormName()+")的分解信息,不能负变更");
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,未找到清单("+vo2.getFormName()+")的分解信息,不能负变更");
|
|
}
|
|
}
|
|
- }else if (vo2.getCurrentChangeTotal() == 0){
|
|
|
|
|
|
+ }else if (vo2.getCurrentChangeTotal().compareTo(BigDecimal.ZERO) == 0){
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,清单("+vo2.getFormName()+")的变更数量为0,请确认后再提交");
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,清单("+vo2.getFormName()+")的变更数量为0,请确认后再提交");
|
|
}
|
|
}
|
|
//设置节点id
|
|
//设置节点id
|
|
inventory.setContractMeterId(vo2.getContractMeterId());
|
|
inventory.setContractMeterId(vo2.getContractMeterId());
|
|
//计算变更后
|
|
//计算变更后
|
|
- inventory.setChangeAfterTotal(inventory.getChangeBeforeTotal() + inventory.getChangeTotal());
|
|
|
|
|
|
+ inventory.setChangeAfterTotal(inventory.getChangeBeforeTotal().add(inventory.getChangeTotal()));
|
|
inventory.setChangeBeforeMoney(vo2.getContractMoney());
|
|
inventory.setChangeBeforeMoney(vo2.getContractMoney());
|
|
//计算变更增减金额
|
|
//计算变更增减金额
|
|
- inventory.setChangeMoney(vo2.getCurrentPrice().multiply(new BigDecimal(inventory.getChangeTotal())));
|
|
|
|
- big = big.add(inventory.getChangeMoney());
|
|
|
|
|
|
+ inventory.setChangeMoney(vo2.getCurrentPrice().multiply(inventory.getChangeTotal()));
|
|
|
|
+ big = big.add(vo2.getCurrentChangeMoney());
|
|
//计算变更后金额
|
|
//计算变更后金额
|
|
- inventory.setChangeAfterMoney(vo2.getCurrentPrice().multiply(new BigDecimal(inventory.getChangeAfterTotal())));
|
|
|
|
|
|
+ inventory.setChangeAfterMoney(vo2.getCurrentPrice().multiply(inventory.getChangeAfterTotal()));
|
|
inventoryList.add(inventory);
|
|
inventoryList.add(inventory);
|
|
}
|
|
}
|
|
changeTokenInventoryService.saveBatch(inventoryList);
|
|
changeTokenInventoryService.saveBatch(inventoryList);
|
|
@@ -259,10 +260,10 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
|
|
vos = baseMapper.selectForm(contractId,longs,nodeId);
|
|
vos = baseMapper.selectForm(contractId,longs,nodeId);
|
|
for (ChangeFormVO2 vo : vos) {
|
|
for (ChangeFormVO2 vo : vos) {
|
|
vo.setContractMeterId(nodeId);
|
|
vo.setContractMeterId(nodeId);
|
|
- vo.setCurrentChangeTotal(0);
|
|
|
|
|
|
+ vo.setCurrentChangeTotal(BigDecimal.ZERO);
|
|
vo.setChangeTotal(vo.getContractTotal());
|
|
vo.setChangeTotal(vo.getContractTotal());
|
|
- vo.setContractMoney(vo.getCurrentPrice().multiply(new BigDecimal(vo.getContractTotal())));
|
|
|
|
- vo.setCurrentChangeMoney(new BigDecimal(0));
|
|
|
|
|
|
+ vo.setContractMoney(vo.getCurrentPrice().multiply(vo.getContractTotal()));
|
|
|
|
+ vo.setCurrentChangeMoney(BigDecimal.ZERO);
|
|
vo.setChangeMoney(vo.getContractMoney());
|
|
vo.setChangeMoney(vo.getContractMoney());
|
|
}
|
|
}
|
|
return vos;
|
|
return vos;
|
|
@@ -322,17 +323,18 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
|
|
//设置部位基础信息,方便公式生成报表
|
|
//设置部位基础信息,方便公式生成报表
|
|
meter.setNodeName(l.getNodeName());
|
|
meter.setNodeName(l.getNodeName());
|
|
meter.setNodeUrl(l.getNodeUrl());
|
|
meter.setNodeUrl(l.getNodeUrl());
|
|
- meter.setChangeMoney(new BigDecimal(0));
|
|
|
|
|
|
+ meter.setChangeMoney(BigDecimal.ZERO);
|
|
|
|
+ meter.setBeforeChangeMoney(l.getBeforeChangeMoney());
|
|
meter.setIsSupplement(l.getIsSupplement());
|
|
meter.setIsSupplement(l.getIsSupplement());
|
|
List<ChangeFormVO2> list = l.getFormList();
|
|
List<ChangeFormVO2> list = l.getFormList();
|
|
- BigDecimal big = new BigDecimal(0);
|
|
|
|
|
|
+ BigDecimal big = BigDecimal.ZERO;
|
|
if (list != null && list.size() != 0){
|
|
if (list != null && list.size() != 0){
|
|
formList.addAll(list);
|
|
formList.addAll(list);
|
|
for (ChangeFormVO2 vo2 : list) {
|
|
for (ChangeFormVO2 vo2 : list) {
|
|
- big = big.add(vo2.getChangeMoney());
|
|
|
|
|
|
+ big = big.add(vo2.getCurrentChangeMoney());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- meter.setChangeMoney(big);
|
|
|
|
|
|
+ meter.setChangeMoney(l.getBeforeChangeMoney().add(big));
|
|
return meter;
|
|
return meter;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
changeTokenMeterService.saveBatch(meterList);
|
|
changeTokenMeterService.saveBatch(meterList);
|
|
@@ -359,27 +361,27 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
|
|
throw new ServiceException("未找到清单("+vo2.getFormName()+")的部位id");
|
|
throw new ServiceException("未找到清单("+vo2.getFormName()+")的部位id");
|
|
}
|
|
}
|
|
//如果是负变更,判断当前节点下是否存在当前清单
|
|
//如果是负变更,判断当前节点下是否存在当前清单
|
|
- if (vo2.getCurrentChangeTotal() < 0){
|
|
|
|
|
|
+ if (vo2.getCurrentChangeTotal().compareTo(BigDecimal.ZERO) == -1){
|
|
//获取当前节点下当前清单的分解信息
|
|
//获取当前节点下当前清单的分解信息
|
|
InventoryFormMeter meter = inventoryFormMeterService.getOne(new LambdaQueryWrapper<InventoryFormMeter>()
|
|
InventoryFormMeter meter = inventoryFormMeterService.getOne(new LambdaQueryWrapper<InventoryFormMeter>()
|
|
.eq(InventoryFormMeter::getContractFormId, vo2.getId())
|
|
.eq(InventoryFormMeter::getContractFormId, vo2.getId())
|
|
.eq(InventoryFormMeter::getContractMeterId, vo2.getContractMeterId()));
|
|
.eq(InventoryFormMeter::getContractMeterId, vo2.getContractMeterId()));
|
|
- if (meter == null || (meter.getBuildPictureTotal()+vo2.getCurrentChangeTotal() < 0)){
|
|
|
|
|
|
+ if (meter == null || (meter.getBuildPictureTotal().add(vo2.getCurrentChangeTotal()).compareTo(BigDecimal.ZERO) == -1)){
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,未找到清单["+vo2.getFormName()+"]的分解信息,不能负变更");
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,未找到清单["+vo2.getFormName()+"]的分解信息,不能负变更");
|
|
}
|
|
}
|
|
- }else if (vo2.getCurrentChangeTotal() == 0){
|
|
|
|
|
|
+ }else if (vo2.getCurrentChangeTotal().compareTo(BigDecimal.ZERO) == 0){
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,清单["+vo2.getFormName()+"]的变更数量为0,请确认后再提交");
|
|
throw new ServiceException(voMap.get(vo2.getContractMeterId()).getNodeName()+"部位下,清单["+vo2.getFormName()+"]的变更数量为0,请确认后再提交");
|
|
}
|
|
}
|
|
//设置节点id
|
|
//设置节点id
|
|
inventory.setContractMeterId(vo2.getContractMeterId());
|
|
inventory.setContractMeterId(vo2.getContractMeterId());
|
|
//计算变更后
|
|
//计算变更后
|
|
- inventory.setChangeAfterTotal(inventory.getChangeBeforeTotal() + inventory.getChangeTotal());
|
|
|
|
|
|
+ inventory.setChangeAfterTotal(inventory.getChangeBeforeTotal().add(inventory.getChangeTotal()));
|
|
inventory.setChangeBeforeMoney(vo2.getContractMoney());
|
|
inventory.setChangeBeforeMoney(vo2.getContractMoney());
|
|
//计算变更增减金额
|
|
//计算变更增减金额
|
|
- inventory.setChangeMoney(vo2.getCurrentPrice().multiply(new BigDecimal(inventory.getChangeTotal())));
|
|
|
|
- big = big.add(inventory.getChangeMoney());
|
|
|
|
|
|
+ inventory.setChangeMoney(vo2.getCurrentPrice().multiply(inventory.getChangeTotal()));
|
|
|
|
+ big = big.add(vo2.getCurrentChangeMoney());
|
|
//计算变更后金额
|
|
//计算变更后金额
|
|
- inventory.setChangeAfterMoney(vo2.getCurrentPrice().multiply(new BigDecimal(inventory.getChangeAfterTotal())));
|
|
|
|
|
|
+ inventory.setChangeAfterMoney(vo2.getCurrentPrice().multiply(inventory.getChangeAfterTotal()));
|
|
inventoryList.add(inventory);
|
|
inventoryList.add(inventory);
|
|
}
|
|
}
|
|
changeTokenInventoryService.saveBatch(inventoryList);
|
|
changeTokenInventoryService.saveBatch(inventoryList);
|
|
@@ -463,4 +465,29 @@ public class ChangeTokenFormServiceImpl extends BaseServiceImpl<ChangeTokenFormM
|
|
attachmentFormService.deleteByMasterId(id);
|
|
attachmentFormService.deleteByMasterId(id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 下达变更 变更令表
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional
|
|
|
|
+ public void executeChange(Long id) {
|
|
|
|
+ ChangeTokenForm form = this.getById(id);
|
|
|
|
+ if (form.getCommandStatus() == 1){
|
|
|
|
+ throw new ServiceException("当前变更任务已经下达,请勿重复下达");
|
|
|
|
+ }
|
|
|
|
+ //获取当前变更令的变更节点
|
|
|
|
+
|
|
|
|
+ //获取当前变更令的所有变更清单
|
|
|
|
+ //清单放入节点中
|
|
|
|
+ //修改合同清单
|
|
|
|
+ // 此条清单的变更后数量和变更后金额
|
|
|
|
+
|
|
|
|
+ //修改清单与合同计量单元,当前节点下当前清单
|
|
|
|
+ // 修改施工图数量和施工图变更后数量,施工图金额和施工图变更后金额,并且重新计算节点金额
|
|
|
|
+ //修改清单与中间计量申请,当前节点下当前清单
|
|
|
|
+ // 只修改业务日期在今天之后的,并且未上报的,修改分解数量与变更后数量
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|