Commit edbca53d by 王衍超

合同统计查询;

parent 7634b508
......@@ -34,7 +34,7 @@ public class WarningSettingServiceImpl implements IWarningSettingService{
KClass type = Amino.getApplicationMetadataContext().getBean(WarnSettingConstant.ENTITY_WARNSETTING, KClass.class);
JsonNode json = JSONObjectUtils.toJson(warnSetting);
KObject object = JSONObjectUtils.toObject(json, type);
KObject object = JSONObjectUtils.toObject(json, type);
object.set(BaseConstants.CREATE_TIME, LocalDateTime.now());
return warnSettingDao.create(object);
......
package com.xyst.dinas.contract.internal.dao;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.persistence.Tuple;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.query.Query;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations;
......@@ -13,6 +17,7 @@ import org.springframework.orm.hibernate5.HibernateOperations;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.enumeration.ContractStateEnum;
import com.xyst.dinas.contract.request.ContractStatisticsQuery;
/**
* 合同主子表
*
......@@ -63,4 +68,58 @@ public class ContractDao {
});
}
/**
* 合同统计查询
* @param contractStatisticsQuery
* @return
*/
public JSONObject statisticsQuery(ContractStatisticsQuery contractStatisticsQuery) {
String contractName = contractStatisticsQuery.getContractName();
String contractState = contractStatisticsQuery.getContractState();
UUID projectId = contractStatisticsQuery.getProjectId();
UUID purchaseSandUnitId = contractStatisticsQuery.getPurchaseSandUnitId();
Date signDate = contractStatisticsQuery.getSignDate();
StringBuilder hql = new StringBuilder("select ");
hql.append("count(DISTINCT m.contractId), ");//合同总数
hql.append("sum(case when m.contractState='UN_EXECUTE' then 1 else 0 end), ");//未执行
hql.append("sum(case when m.contractState='EXECUTING' then 1 else 0 end), ");//执行中
hql.append("sum(case when m.contractState='COMPLETED' then 1 else 0 end) ");//已完成
// hql.append("sum(case when m.contract_state=\"MODIFIED\" then 1 else 0 end) ");//已变更
hql.append("from ").append(ContractConstant.ENTITY_CONTRACT).append(" as m where 1=1 ");
if(contractName!=null) hql.append("and contractName like :contractName ");
if(contractState!=null) hql.append("and contractState =:contractState ");
if(projectId!=null) hql.append("and projectId =:projectId ");
if(purchaseSandUnitId!=null) hql.append("and purchaseSandUnitId =:purchaseSandUnitId ");
if(signDate!=null) hql.append("and signDate =:signDate ");
return template.execute(session -> {
Query<Tuple> query = session.createQuery(hql.toString(), Tuple.class);
if(contractName!=null) query.setParameter("contractName", "%"+contractName+"%");
if(contractState!=null) query.setParameter("contractState", contractState);
if(projectId!=null) query.setParameter("projectId", projectId);
if(purchaseSandUnitId!=null) query.setParameter("purchaseSandUnitId", purchaseSandUnitId);
if(signDate!=null) query.setParameter("signDate", signDate);
List<Tuple> list = query.list();
JSONObject jsonObject = new JSONObject();
if (list.isEmpty()) return jsonObject;
Tuple tuple = list.get(0);
long totalCount = tuple.get(0, Long.class);
long unExecuteCount = tuple.get(1, Long.class);
long executingCount = tuple.get(2, Long.class);
long completedCount = tuple.get(3, Long.class);
jsonObject.put("totalCount", totalCount);
jsonObject.put("unExecuteCount", unExecuteCount);
jsonObject.put("executingCount", executingCount);
jsonObject.put("completedCount", completedCount);
return jsonObject;
});
}
}
package com.xyst.dinas.contract.request;
import java.util.Date;
import java.util.UUID;
public class ContractStatisticsQuery {
private UUID projectId;
private UUID purchaseSandUnitId;
private String contractName;
private String contractState;
private Date signDate;
public UUID getProjectId() {
return projectId;
}
public void setProjectId(UUID projectId) {
this.projectId = projectId;
}
public UUID getPurchaseSandUnitId() {
return purchaseSandUnitId;
}
public void setPurchaseSandUnitId(UUID purchaseSandUnitId) {
this.purchaseSandUnitId = purchaseSandUnitId;
}
public String getContractName() {
return contractName;
}
public void setContractName(String contractName) {
this.contractName = contractName;
}
public String getContractState() {
return contractState;
}
public void setContractState(String contractState) {
this.contractState = contractState;
}
public Date getSignDate() {
return signDate;
}
public void setSignDate(Date signDate) {
this.signDate = signDate;
}
}
......@@ -5,6 +5,7 @@ import java.util.List;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -25,7 +26,9 @@ import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.entity.BaseEntity;
import com.xyst.dinas.contract.entity.CommonResult;
import com.xyst.dinas.contract.internal.dao.ContractDao;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.request.ContractStatisticsQuery;
import com.xyst.dinas.contract.request.ProjectListQuery;
import com.xyst.dinas.contract.service.ContractService;
import com.xyst.dinas.contract.warn.DinasCountWarningCalculate;
......@@ -39,6 +42,8 @@ public class ContractController {
private ContractService contractService;
@Autowired
private ContractInfoDao contractInfoDao;
@Autowired
private ContractDao contractDao;
@PostMapping("/contractInfo/create")
public UUID create(@RequestBody String contractInfo) {
......@@ -128,13 +133,12 @@ public class ContractController {
projectListQuery.getProjectType(), projectListQuery.getProjectName());
}
// 统计查询
// 统计查询:合同数量, 未执行,执行中,已完成
@PostMapping("/contract/statistics")
public Object statisticsQuery(@RequestBody BaseEntity baseEntity) {
// TODO
// 合同数量, 未执行,执行中,已完成
return baseEntity;
public String statisticsQuery(@RequestBody ContractStatisticsQuery contractStatisticsQuery) {
//
JSONObject statisticsQuery = contractDao.statisticsQuery(contractStatisticsQuery);
return statisticsQuery.toString();
}
@Autowired
......
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