Commit a08fb29b by 焦凯

修改合同变更审批完成后的关于合同预警的关系

parent 0db91e19
......@@ -36,6 +36,8 @@ import com.beecode.inz.message.enumeration.ParterType;
import com.beecode.inz.message.service.RemindService;
import com.beecode.inz.workflow.service.InzWorkflowService;
import com.xyst.dinas.biz.dao.DinasOrganizationDao;
import com.xyst.dinas.biz.warn.BaseBusinessWarn;
import com.xyst.dinas.biz.warn.WarnSettingConstant;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.WarnTargetTypeEnum;
import com.xyst.dinas.biz.warn.dao.WarnSettingDao;
......@@ -45,7 +47,9 @@ import com.xyst.dinas.contract.enumeration.ContractStateEnum;
import com.xyst.dinas.contract.internal.dao.ContractDao;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.service.ContractService;
import com.xyst.dinas.contract.warn.ContractExpireWarningCalculator;
import com.xyst.dinas.contract.warn.ContractWarnConst;
import com.xyst.dinas.contract.warn.DinasCountWarningCalculate;
import com.xyst.dinas.project.dao.ProjectFiledDao;
import com.xyst.dinas.project.dao.PurchaseSandCompanyDao;
......@@ -87,6 +91,9 @@ public class ContractServiceImpl implements ContractService {
@Autowired
private RemindService remindService;
@Autowired
private WarningService warningService;
@Override
@Transactional
......@@ -304,7 +311,7 @@ public class ContractServiceImpl implements ContractService {
@Override
public void afterApprovedForUpdate(KObject contract) {
List<KObject> executingContracts = contractDao.getExecutingContractByContractInfoId(contract.getUuid("contractId"));
List<KObject> executingContracts = contractDao.getExecutingContractByContractInfoId(contract.getUuid(ContractConstant.CONTRACT_ID));
if(executingContracts.size() != 1){
//不该出现的情况,需要查明
logger.error("不该出现的情况,需要查明:合同["+contract.getUuid("id").toString()+"]是变更审批,审批完成后发现原合同没有执行中的");
......@@ -313,7 +320,7 @@ public class ContractServiceImpl implements ContractService {
oldContract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.MODIFIED.name());
contractInfoDao.update(oldContract);
List<KObject> contracts = contractDao.getContractsByContractInfoIdOrderDesc(contract.getUuid("contractId"));
List<KObject> contracts = contractDao.getContractsByContractInfoIdOrderDesc(contract.getUuid(ContractConstant.CONTRACT_ID));
int contractVersion = contracts.size()-1;
contract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.EXECUTING.name());
contract.set("contractVersion",contractVersion);
......@@ -321,10 +328,32 @@ public class ContractServiceImpl implements ContractService {
contractInfoDao.update(contract);
KObject contractInfo = contractInfoDao.load(contract.getUuid("contractId"));
KObject contractInfo = contractInfoDao.load(contract.getUuid(ContractConstant.CONTRACT_ID));
contractInfo.set(ContractConstant.CURRENT_VERSION,contractVersion);
contractInfoDao.update(contractInfo);
//变更有可能修改砂石量,造成砂石余量变化,所以要重新触发预警
List<KObject> detials = contract.get("contractDetails").toList();
for (KObject detail : detials) {
String dinasTypeName = detail.get("dinasType").getString("dinasTypeName");
BaseBusinessWarn warn = warningService.createWarn("合同", contract.getUuid(ContractConstant.CONTRACT_ID), dinasTypeName);
warn.setWarningCalculate(new DinasCountWarningCalculate(detail.getBigDecimal(ContractConstant.DINAS_AMOUNT).doubleValue()));
warn.warn();
}
//变更有可能修改合同结束时间,所以要重新触发预警
BaseBusinessWarn warn = warningService.createWarn("合同", contract.getUuid(ContractConstant.CONTRACT_ID), ContractWarnConst.warningTarget2);
warn.setWarningCalculate(new ContractExpireWarningCalculator());
warn.warn();
List<KObject>wss = warningService.queryWarnSettings(ContractWarnConst.billType, contract.getUuid(ContractConstant.CONTRACT_ID), null);
for(KObject ws : wss){
String memo = ws.getString(WarnSettingConstant.memo);
memo = memo.replaceAll(oldContract.getUuid(CommonConstants.ID).toString(),contract.getUuid(CommonConstants.ID).toString());
ws.set(WarnSettingConstant.memo,memo);
contractInfoDao.update(ws);
}
//合同审批通过后,自动新增砂石余量预警设置---变更需要新旧对比,原有的不动,少了的种类废弃预警设置(按理说不可能有),多了的种类新建设置
//TODO
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment