Commit 1278898e by 王衍超

合同预警的billid保存合同信息表ID;

parent 528e976d
...@@ -11,6 +11,8 @@ public class ContractConstant { ...@@ -11,6 +11,8 @@ public class ContractConstant {
/** 实体名:合同子表 */ /** 实体名:合同子表 */
public static final String CONTRACT_DETAILS = "contractDetails"; public static final String CONTRACT_DETAILS = "contractDetails";
/** 合同信息表ID */
public static final String CONTRACT_ID = "contractId";
/** 项目 */ /** 项目 */
public static final String PROJECT = "project"; public static final String PROJECT = "project";
/** 项目编号 */ /** 项目编号 */
......
...@@ -77,6 +77,25 @@ public class ContractDao { ...@@ -77,6 +77,25 @@ public class ContractDao {
} }
}); });
} }
/**
* 根据合同信息表ID查找当前有效合同
* @param infoid
* @return
*/
public KObject getContractByContractInfoId(UUID infoid) {
List<KObject> contracts = template.execute(new HibernateCallback<List<KObject>>() {
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + ContractConstant.ENTITY_CONTRACT + " where (discard is null or discard = 0) and contractId =:contractId order by createTime desc", KObject.class);
query.setParameter("contractId", infoid);
return query.getResultList();
}
});
if(contracts.isEmpty()) return null;
return contracts.get(0);
}
public List<KObject> queryContractByCode(String contractCode) { public List<KObject> queryContractByCode(String contractCode) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() { return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@Override @Override
......
...@@ -215,7 +215,7 @@ public class ContractServiceImpl implements ContractService { ...@@ -215,7 +215,7 @@ public class ContractServiceImpl implements ContractService {
contractInfoDao.update(contract); contractInfoDao.update(contract);
//1.合同审批通过后,自动新增砂石余量预警设置 //1.合同审批通过后,自动新增砂石余量预警设置
UUID contractId = contract.getUuid("id"); UUID contractId = contract.getUuid(ContractConstant.CONTRACT_ID);
String billType = ContractWarnConst.billType; String billType = ContractWarnConst.billType;
String contractBaseInfo = getContractBaseInfo(contract); String contractBaseInfo = getContractBaseInfo(contract);
List<KObject> detials = contract.get("contractDetails").toList(); List<KObject> detials = contract.get("contractDetails").toList();
...@@ -308,8 +308,10 @@ public class ContractServiceImpl implements ContractService { ...@@ -308,8 +308,10 @@ public class ContractServiceImpl implements ContractService {
@Override @Override
public Object queryWarnSettingById(UUID id) { public Object queryWarnSettingById(UUID id) {
KObject warnSetting = warnSettingDao.queryWarnSettingById(id); KObject warnSetting = warnSettingDao.queryWarnSettingById(id);
String billId = warnSetting.getString("billId"); String contractId = warnSetting.getString("billId");
KObject contract = contractDao.load(UUID.fromString(billId));
KObject contractInfo = contractInfoDao.load(UUID.fromString(contractId));
KObject contract = contractDao.getContractByContractInfoId(contractInfo.getUuid("id"));
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("contractName", contract.getString("contractName")); map.put("contractName", contract.getString("contractName"));
map.put("purchaseSandUnitName", contract.get("purchaseSandUnit").getString("name")); map.put("purchaseSandUnitName", contract.get("purchaseSandUnit").getString("name"));
......
...@@ -22,7 +22,8 @@ public class ContractPerformWarningProcessor implements DataProcessor { ...@@ -22,7 +22,8 @@ public class ContractPerformWarningProcessor implements DataProcessor {
for (RowData row : rowDatas) { for (RowData row : rowDatas) {
//合同,项目,购砂单位 //合同,项目,购砂单位
UUID contractId = UUID.fromString(row.get("billId").toString()); UUID contractId = UUID.fromString(row.get("billId").toString());
KObject contract = contractService.queryContract(contractId); KObject contractInfo = contractService.queryContractInfo(contractId);
KObject contract = contractService.getLastContractByInfoId(contractInfo.getUuid("id"));
row.put("projectName", contract.isNull("project") ? "" : contract.get("project").getString("projectName")); row.put("projectName", contract.isNull("project") ? "" : contract.get("project").getString("projectName"));
row.put("contractName", contract.getString("contractName")); row.put("contractName", contract.getString("contractName"));
String purchaseSandUnitName = contract.get("purchaseSandUnit").getString("name"); String purchaseSandUnitName = contract.get("purchaseSandUnit").getString("name");
......
...@@ -35,7 +35,8 @@ public class ContractWarnSettingProcessor implements DataProcessor { ...@@ -35,7 +35,8 @@ public class ContractWarnSettingProcessor implements DataProcessor {
for (RowData row : rowDatas) { for (RowData row : rowDatas) {
//合同,项目,购砂单位 //合同,项目,购砂单位
UUID contractId = UUID.fromString(row.get("billId").toString()); UUID contractId = UUID.fromString(row.get("billId").toString());
KObject contract = contractService.queryContract(contractId); KObject contractInfo = contractService.queryContractInfo(contractId);
KObject contract = contractService.getLastContractByInfoId(contractInfo.getUuid("id"));
Assert.notNull(contract, "找不到对应的合同!"); Assert.notNull(contract, "找不到对应的合同!");
row.put("projectName", contract.isNull("project") ? "" : contract.get("project").getString("projectName")); row.put("projectName", contract.isNull("project") ? "" : contract.get("project").getString("projectName"));
row.put("contractName", contract.getString("contractName")); row.put("contractName", contract.getString("contractName"));
......
...@@ -30,7 +30,8 @@ public class AdvanceBalanceWarningCalculator implements IWarningCalculator{ ...@@ -30,7 +30,8 @@ public class AdvanceBalanceWarningCalculator implements IWarningCalculator{
String min = warnSetting.getMin(); String min = warnSetting.getMin();
String target = warnSetting.getTarget(); String target = warnSetting.getTarget();
if(min==null || min.trim().length()==0) return false; if(min==null || min.trim().length()==0) return false;
KObject contract = contractService.queryContract(warnSetting.getBillId()); KObject contractInfo = contractService.queryContractInfo(warnSetting.getBillId());
KObject contract = contractService.getLastContractByInfoId(contractInfo.getUuid("id"));
advanceBalance = contract.getDouble(ContractConstant.ADVANCE_BALANCE); advanceBalance = contract.getDouble(ContractConstant.ADVANCE_BALANCE);
if (advanceBalance < Double.valueOf(min)) { if (advanceBalance < Double.valueOf(min)) {
String contractCode = contract.getString(ContractConstant.CONTRACT_CODE); String contractCode = contract.getString(ContractConstant.CONTRACT_CODE);
......
...@@ -34,7 +34,8 @@ public class ContractExpireWarningCalculator implements IWarningCalculator{ ...@@ -34,7 +34,8 @@ public class ContractExpireWarningCalculator implements IWarningCalculator{
String min = warnSetting.getMin(); String min = warnSetting.getMin();
if(min==null || min.trim().length()==0) return false; if(min==null || min.trim().length()==0) return false;
KObject contract = contractService.queryContract(warnSetting.getBillId()); KObject contractInfo = contractService.queryContractInfo(warnSetting.getBillId());
KObject contract = contractService.getLastContractByInfoId(contractInfo.getUuid("id"));
Date endDate = contract.getDate(ContractConstant.endDate); Date endDate = contract.getDate(ContractConstant.endDate);
Date now = new Date(); Date now = new Date();
diffDays = (int) ((endDate.getTime() -now.getTime()) / millisOfDay); diffDays = (int) ((endDate.getTime() -now.getTime()) / millisOfDay);
......
...@@ -35,7 +35,8 @@ public class DinasCountWarningCalculator implements IWarningCalculator{ ...@@ -35,7 +35,8 @@ public class DinasCountWarningCalculator implements IWarningCalculator{
String target = warnSetting.getTarget(); String target = warnSetting.getTarget();
if(min==null || min.trim().length()==0) return false; if(min==null || min.trim().length()==0) return false;
KObject contract = contractService.queryContract(warnSetting.getBillId()); KObject contractInfo = contractService.queryContractInfo(warnSetting.getBillId());
KObject contract = contractService.getLastContractByInfoId(contractInfo.getUuid("id"));
List<KObject> details = contract.get(ContractConstant.CONTRACT_DETAILS).toList(); List<KObject> details = contract.get(ContractConstant.CONTRACT_DETAILS).toList();
for (KObject detail : details) { for (KObject detail : details) {
String dinasTypeName = detail.get(ContractConstant.dinasType).getString(DinasTypeConstant.DINASTYPE_NAME); String dinasTypeName = detail.get(ContractConstant.dinasType).getString(DinasTypeConstant.DINASTYPE_NAME);
......
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