Commit 7ef8da23 by 焦凯

合同代码提交

parent c98675f1
...@@ -11,7 +11,9 @@ import com.beecode.inz.workflow.config.ProcessConfiguration; ...@@ -11,7 +11,9 @@ import com.beecode.inz.workflow.config.ProcessConfiguration;
import com.beecode.inz.workflow.config.TriggerAction; import com.beecode.inz.workflow.config.TriggerAction;
import com.beecode.inz.workflow.config.TriggerCondition; import com.beecode.inz.workflow.config.TriggerCondition;
import com.xyst.dinas.contract.constant.ContractConstant; import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.internal.dao.ContractDao;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao; import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.internal.scene.ContractListDefaultScene;
import com.xyst.dinas.contract.internal.service.ContractServiceImpl; import com.xyst.dinas.contract.internal.service.ContractServiceImpl;
import com.xyst.dinas.contract.internal.service.ContractWarnServiceImpl; import com.xyst.dinas.contract.internal.service.ContractWarnServiceImpl;
import com.xyst.dinas.contract.listener.ContractProcessEventListener; import com.xyst.dinas.contract.listener.ContractProcessEventListener;
...@@ -41,6 +43,10 @@ public class ContractConfiguration { ...@@ -41,6 +43,10 @@ public class ContractConfiguration {
public ContractInfoDao contractInfoDao() { public ContractInfoDao contractInfoDao() {
return new ContractInfoDao(); return new ContractInfoDao();
} }
@Bean
public ContractDao contractDao() {
return new ContractDao();
}
@Bean @Bean
public ContractWarnService ContractWarnService() { public ContractWarnService ContractWarnService() {
...@@ -75,6 +81,11 @@ public class ContractConfiguration { ...@@ -75,6 +81,11 @@ public class ContractConfiguration {
return new ContractPerformWarningProcessor(); return new ContractPerformWarningProcessor();
} }
@Bean("com.xyst.dinas.contract.internal.scene.ContractListDefaultScene")
public ContractListDefaultScene contractListDefaultScene() {
return new ContractListDefaultScene();
}
//合同变更审批工作流 //合同变更审批工作流
@Bean @Bean
public BizTypeWorkflowConfiguration contractUpdateWorkflowConfig() { public BizTypeWorkflowConfiguration contractUpdateWorkflowConfig() {
......
package com.xyst.dinas.contract.internal.dao; package com.xyst.dinas.contract.internal.dao;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations; import org.springframework.orm.hibernate5.HibernateOperations;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.xyst.dinas.contract.constant.ContractConstant; import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.enumeration.ContractStateEnum;
public class ContractDao { public class ContractDao {
...@@ -18,4 +24,38 @@ public class ContractDao { ...@@ -18,4 +24,38 @@ public class ContractDao {
public KObject load(UUID id) { public KObject load(UUID id) {
return (KObject) template.get(ContractConstant.ENTITY_CONTRACT, id); return (KObject) template.get(ContractConstant.ENTITY_CONTRACT, id);
} }
public List<KObject> getContractsByContractInfoIdOrderDesc(UUID infoid) {
return (List<KObject>)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();
}
});
}
public List<KObject> queryContractByCode(String contractCode) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + ContractConstant.ENTITY_CONTRACT_INFO + " where (discard is null or discard = 0) and contractCode =:contractCode", KObject.class);
query.setParameter("contractCode", contractCode);
return query.getResultList();
}
});
}
public List<KObject> getExecutingContractByContractInfoId(UUID infoid) {
return (List<KObject>)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 and contractState =:contractState", KObject.class);
query.setParameter("contractId", infoid);
query.setParameter("contractState", ContractStateEnum.EXECUTING.name());
return query.getResultList();
}
});
}
} }
package com.xyst.dinas.contract.internal.scene;
import com.beecode.inz.query.exception.SceneExecuteException;
import com.beecode.inz.query.scene.SceneExecuteContext;
import com.beecode.inz.query.scene.SceneExecutor;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.enumeration.ContractStateEnum;
/**
* 合同列表基本场景
* @author joker
*
*/
public class ContractListDefaultScene implements SceneExecutor {
@Override
public void execute(SceneExecuteContext context) throws SceneExecuteException {
context.getCriteriaQuery().and(context.getCriteriaBuilder().notEqual(context.getRoot().get(ContractConstant.CONTRACT_STATE), ContractStateEnum.MODIFIED.name()));
}
}
package com.xyst.dinas.contract.internal.service; package com.xyst.dinas.contract.internal.service;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.json.JSONArray; import org.json.JSONArray;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -13,7 +16,11 @@ import com.beecode.bcp.type.KObject; ...@@ -13,7 +16,11 @@ import com.beecode.bcp.type.KObject;
import com.beecode.inz.common.BaseConstants; import com.beecode.inz.common.BaseConstants;
import com.beecode.inz.workflow.service.InzWorkflowService; import com.beecode.inz.workflow.service.InzWorkflowService;
import com.xyst.dinas.biz.dao.DinasOrganizationDao; import com.xyst.dinas.biz.dao.DinasOrganizationDao;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.contract.constant.ContractConstant; import com.xyst.dinas.contract.constant.ContractConstant;
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.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.service.ContractService; import com.xyst.dinas.contract.service.ContractService;
import com.xyst.dinas.project.dao.ProjectFiledDao; import com.xyst.dinas.project.dao.ProjectFiledDao;
...@@ -22,12 +29,17 @@ import com.xyst.dinas.project.dao.PurchaseSandCompanyDao; ...@@ -22,12 +29,17 @@ import com.xyst.dinas.project.dao.PurchaseSandCompanyDao;
@Service @Service
// @Transactional(rollbackFor = Exception.class) // @Transactional(rollbackFor = Exception.class)
public class ContractServiceImpl implements ContractService { public class ContractServiceImpl implements ContractService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired @Autowired
private InzWorkflowService inzWorkflowService; private InzWorkflowService inzWorkflowService;
@Autowired @Autowired
private ContractInfoDao contractInfoDao; private ContractInfoDao contractInfoDao;
@Autowired
private ContractDao contractDao;
@Autowired @Autowired
private ProjectFiledDao projectFiledDao; private ProjectFiledDao projectFiledDao;
...@@ -37,6 +49,9 @@ public class ContractServiceImpl implements ContractService { ...@@ -37,6 +49,9 @@ public class ContractServiceImpl implements ContractService {
@Autowired @Autowired
private PurchaseSandCompanyDao purchaseSandCompanyDao; private PurchaseSandCompanyDao purchaseSandCompanyDao;
@Autowired
private IWarningSettingService warningSettingService;
@Override @Override
@Transactional @Transactional
...@@ -89,17 +104,23 @@ public class ContractServiceImpl implements ContractService { ...@@ -89,17 +104,23 @@ public class ContractServiceImpl implements ContractService {
@Transactional @Transactional
@Override @Override
public void submitFlow(UUID id) { public void submitFlow(UUID id) {
KObject kobject = contractInfoDao.load(id); KObject kobject = contractDao.load(id);
if (needSubmitFlow(ContractConstant.BIZ_TYPE,kobject)) { if (needSubmitFlow(ContractConstant.BIZ_TYPE,kobject)) {
inzWorkflowService.startWorkflow("SUBMIT", ContractConstant.BIZ_TYPE, kobject.getString("lendReason"),kobject); inzWorkflowService.startWorkflow("SUBMIT", ContractConstant.BIZ_TYPE, kobject.getString(ContractConstant.CONTRACT_NAME),kobject);
}else{
afterSubmitApproved(kobject);
} }
} }
//变更合同的工作流 //变更合同的工作流
@Override
@Transactional
public void submitFlowForUpdate(UUID id) { public void submitFlowForUpdate(UUID id) {
KObject kobject = contractInfoDao.load(id); KObject kobject = contractDao.load(id);
if (needSubmitFlow(ContractConstant.BIZ_TYPE_UPDATE,kobject)) { if (needSubmitFlow(ContractConstant.BIZ_TYPE_UPDATE,kobject)) {
inzWorkflowService.startWorkflow("SUBMIT", ContractConstant.BIZ_TYPE_UPDATE, kobject.getString("lendReason"),kobject); inzWorkflowService.startWorkflow("SUBMIT", ContractConstant.BIZ_TYPE_UPDATE, kobject.getString(ContractConstant.CONTRACT_NAME),kobject);
}else{
afterChangeApproved(kobject);
} }
} }
...@@ -135,5 +156,102 @@ public class ContractServiceImpl implements ContractService { ...@@ -135,5 +156,102 @@ public class ContractServiceImpl implements ContractService {
KObject kobject = contractInfoDao.load(id); KObject kobject = contractInfoDao.load(id);
return kobject; return kobject;
} }
@Override
public KObject getLastContractByInfoId(UUID infoId) {
List<KObject> resultContract = contractDao.getContractsByContractInfoIdOrderDesc(infoId);
return resultContract.get(0);
}
@Override
public Boolean checkChangeAbled(UUID id) {
KObject contract = contractDao.load(id);
UUID contractInfoId = contract.getUuid("contractId");
List<KObject> resultContract = contractDao.getContractsByContractInfoIdOrderDesc(contractInfoId);
if(contract.getUuid("id").equals(resultContract.get(0).getUuid("id")) && contract.getString(ContractConstant.CONTRACT_STATE).equals(ContractStateEnum.EXECUTING.name())){
return true;
}
return false;
}
@Override
public List<KObject> getChangeHistory(UUID id) {
KObject contract = contractDao.load(id);
UUID contractInfoId = contract.getUuid("contractId");
List<KObject> resultContract = contractDao.getContractsByContractInfoIdOrderDesc(contractInfoId);
return resultContract;
}
@Override
public void afterSubmitApproved(KObject contract) {
KObject contractInfo = contractInfoDao.load(contract.getUuid("contractId"));
contractInfo.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.EXECUTING.name());
contractInfoDao.update(contractInfo);
contract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.EXECUTING.name());
contract.set("approveState", 2);
contractInfoDao.update(contract);
//合同审批通过后,自动新增砂石余量预警设置
UUID contractId = contract.getUuid("id");
List<KObject> detials = contract.get("contractDetails").toList();
//
for (KObject detail : detials) {
String dinasTypeName = detail.get("dinasType").getString("dinasTypeName");
String billType = "合同";
WarnSettingEntity warnSetting = new WarnSettingEntity();
warnSetting.setBillType(billType);
warnSetting.setBillId(contractId);
warnSetting.setTarget(dinasTypeName);
warnSetting.setOpen(true);
warningSettingService.insertWarnSetting(warnSetting);
}
}
@Override
public void afterChangeApproved(KObject contract) {
List<KObject> executingContracts = contractDao.getExecutingContractByContractInfoId(contract.getUuid("contractId"));
if(executingContracts.size() != 1){
//不该出现的情况,需要查明
logger.error("不该出现的情况,需要查明:合同["+contract.getUuid("id").toString()+"]是变更审批,审批完成后发现原合同没有执行中的");
}
KObject oldContract = executingContracts.get(0);
oldContract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.MODIFIED.name());
contractInfoDao.update(oldContract);
List<KObject> contracts = contractDao.getContractsByContractInfoIdOrderDesc(contract.getUuid("contractId"));
int contractVersion = contracts.size()-1;
contract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.EXECUTING.name());
contract.set("contractVersion",contractVersion);
contract.set("approveState", 2);
contractInfoDao.update(contract);
KObject contractInfo = contractInfoDao.load(contract.getUuid("contractId"));
contractInfo.set(ContractConstant.CURRENT_VERSION,contractVersion);
contractInfoDao.update(contractInfo);
//合同审批通过后,自动新增砂石余量预警设置---变更需要新旧对比,原有的不动,少了的种类废弃预警设置(按理说不可能有),多了的种类新建设置
// UUID contractId = contract.getUuid("id");
// List<KObject> detials = contract.get("contractDetail").toList();
// //
// for (KObject detail : detials) {
// String dinasTypeName = detail.get("dinasType").getString("dinasTypeName");
//
// String billType = "合同";
// WarnSettingEntity warnSetting = new WarnSettingEntity();
// warnSetting.setBillType(billType);
// warnSetting.setBillId(contractId);
// warnSetting.setTarget(dinasTypeName);
// warnSetting.setOpen(true);
// warningSettingService.insertWarnSetting(warnSetting);
//
// }
}
} }
...@@ -8,16 +8,26 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -8,16 +8,26 @@ import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.warn.WarnSettingEntity; import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.service.IWarningSettingService; import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.enumeration.ContractStateEnum;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.service.ContractWarnService; import com.xyst.dinas.contract.service.ContractWarnService;
public class ContractWarnServiceImpl implements ContractWarnService{ public class ContractWarnServiceImpl implements ContractWarnService{
@Autowired @Autowired
private IWarningSettingService warningSettingService; private IWarningSettingService warningSettingService;
@Autowired
private ContractInfoDao contractInfoDao;
@Override @Override
public void afterApproved(KObject contract) { public void afterApproved(KObject contract) {
contract.set(ContractConstant.CONTRACT_STATE,ContractStateEnum.EXECUTING.name());
contractInfoDao.update(contract);
//合同审批通过后,自动新增砂石余量预警设置 //合同审批通过后,自动新增砂石余量预警设置
UUID contractId = contract.getUuid("id"); UUID contractId = contract.getUuid("id");
......
...@@ -5,13 +5,13 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -5,13 +5,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bap.workflow.core.BizProcessState; import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.inz.workflow.listener.InzBizProcessEvent; import com.beecode.inz.workflow.listener.InzBizProcessEvent;
import com.beecode.inz.workflow.listener.InzBizProcessEventListener; import com.beecode.inz.workflow.listener.InzBizProcessEventListener;
import com.xyst.dinas.contract.service.ContractWarnService; import com.xyst.dinas.contract.service.ContractService;
public class ContractProcessEventListener implements InzBizProcessEventListener { public class ContractProcessEventListener implements InzBizProcessEventListener {
@Autowired @Autowired
private ContractWarnService contractWarnService; private ContractService contractService;
@Override @Override
public void beforeProcessStarted(InzBizProcessEvent event) { public void beforeProcessStarted(InzBizProcessEvent event) {
...@@ -32,7 +32,7 @@ public class ContractProcessEventListener implements InzBizProcessEventListener ...@@ -32,7 +32,7 @@ public class ContractProcessEventListener implements InzBizProcessEventListener
public void afterProcessCompleted(InzBizProcessEvent event) { public void afterProcessCompleted(InzBizProcessEvent event) {
//自动新增合同预警条目 //自动新增合同预警条目
if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){ if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){
contractWarnService.afterApproved(event.getInzBizProcess().getBizDataObject()); contractService.afterSubmitApproved(event.getInzBizProcess().getBizDataObject());
} }
} }
......
...@@ -5,13 +5,13 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -5,13 +5,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bap.workflow.core.BizProcessState; import com.beecode.bap.workflow.core.BizProcessState;
import com.beecode.inz.workflow.listener.InzBizProcessEvent; import com.beecode.inz.workflow.listener.InzBizProcessEvent;
import com.beecode.inz.workflow.listener.InzBizProcessEventListener; import com.beecode.inz.workflow.listener.InzBizProcessEventListener;
import com.xyst.dinas.contract.service.ContractWarnService; import com.xyst.dinas.contract.service.ContractService;
public class ContractUpdateProcessListener implements InzBizProcessEventListener { public class ContractUpdateProcessListener implements InzBizProcessEventListener {
// @Autowired @Autowired
// private ContractWarnService contractWarnService; private ContractService contractService;
@Override @Override
public void beforeProcessStarted(InzBizProcessEvent event) { public void beforeProcessStarted(InzBizProcessEvent event) {
...@@ -32,7 +32,7 @@ public class ContractUpdateProcessListener implements InzBizProcessEventListener ...@@ -32,7 +32,7 @@ public class ContractUpdateProcessListener implements InzBizProcessEventListener
public void afterProcessCompleted(InzBizProcessEvent event) { public void afterProcessCompleted(InzBizProcessEvent event) {
//自动新增合同预警条目 //自动新增合同预警条目
if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){ if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){
// contractWarnService.afterApproved(event.getInzBizProcess().getBizDataObject()); contractService.afterChangeApproved(event.getInzBizProcess().getBizDataObject());
} }
} }
......
package com.xyst.dinas.contract.service; package com.xyst.dinas.contract.service;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.json.JSONArray; import org.json.JSONArray;
...@@ -17,6 +18,20 @@ public interface ContractService { ...@@ -17,6 +18,20 @@ public interface ContractService {
/** /**
* 检查当前合同是否能变更
* @param id
*/
Boolean checkChangeAbled(UUID id);
KObject getLastContractByInfoId(UUID infoId);
/**
* 检查当前合同是否能变更
* @param id
*/
List<KObject> getChangeHistory(UUID id);
/**
* 新增合同工作流 * 新增合同工作流
* @param id * @param id
*/ */
...@@ -40,4 +55,15 @@ public interface ContractService { ...@@ -40,4 +55,15 @@ public interface ContractService {
KObject queryContractById(UUID id); KObject queryContractById(UUID id);
/**
* 审批通过后的回调-提交
* @param object
*/
void afterSubmitApproved(KObject object);
/**
* 审批通过后的回调-变更
* @param object
*/
void afterChangeApproved(KObject object);
} }
package com.xyst.dinas.contract.web; package com.xyst.dinas.contract.web;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
...@@ -17,9 +18,8 @@ import com.beecode.amino.core.Amino; ...@@ -17,9 +18,8 @@ import com.beecode.amino.core.Amino;
import com.beecode.bcp.type.KClass; import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils; import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.biz.warn.BaseBusinessWarn; import com.xyst.dinas.biz.warn.BaseBusinessWarn;
import com.xyst.dinas.contract.warn.DinasCountWarningCalculate;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
import com.xyst.dinas.biz.warn.service.IWarningSettingService; import com.xyst.dinas.biz.warn.service.IWarningSettingService;
import com.xyst.dinas.contract.constant.ContractConstant; import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.entity.BaseEntity; import com.xyst.dinas.contract.entity.BaseEntity;
...@@ -27,27 +27,30 @@ import com.xyst.dinas.contract.entity.CommonResult; ...@@ -27,27 +27,30 @@ import com.xyst.dinas.contract.entity.CommonResult;
import com.xyst.dinas.contract.internal.dao.ContractInfoDao; import com.xyst.dinas.contract.internal.dao.ContractInfoDao;
import com.xyst.dinas.contract.request.ProjectListQuery; import com.xyst.dinas.contract.request.ProjectListQuery;
import com.xyst.dinas.contract.service.ContractService; import com.xyst.dinas.contract.service.ContractService;
import com.xyst.dinas.contract.warn.DinasCountWarningCalculate;
@RestController @RestController
public class ContractController { public class ContractController {
private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired @Autowired
private ContractService contractService; private ContractService contractService;
@Autowired @Autowired
private ContractInfoDao contractInfoDao; private ContractInfoDao contractInfoDao;
@PostMapping("/contractInfo/create") @PostMapping("/contractInfo/create")
public UUID create(@RequestBody String contractInfo) { public UUID create(@RequestBody String contractInfo) {
KClass type = Amino.getApplicationMetadataContext().getBean(ContractConstant.ENTITY_CONTRACT_INFO, KClass.class); KClass type = Amino.getApplicationMetadataContext().getBean(ContractConstant.ENTITY_CONTRACT_INFO,
KClass.class);
KObject kObject = JSONObjectUtils.toObject(contractInfo, type); KObject kObject = JSONObjectUtils.toObject(contractInfo, type);
return contractService.create(kObject); return contractService.create(kObject);
} }
@PostMapping("/contractInfo/update") @PostMapping("/contractInfo/update")
public CommonResult update(@RequestBody String contractInfo) { public CommonResult update(@RequestBody String contractInfo) {
KClass type = Amino.getApplicationMetadataContext().getBean(ContractConstant.ENTITY_CONTRACT_INFO, KClass.class); KClass type = Amino.getApplicationMetadataContext().getBean(ContractConstant.ENTITY_CONTRACT_INFO,
KClass.class);
KObject kObject = JSONObjectUtils.toObject(contractInfo, type); KObject kObject = JSONObjectUtils.toObject(contractInfo, type);
contractService.update(kObject); contractService.update(kObject);
return CommonResult.SUCCESS_RESULT; return CommonResult.SUCCESS_RESULT;
...@@ -55,78 +58,108 @@ public class ContractController { ...@@ -55,78 +58,108 @@ public class ContractController {
@GetMapping("/contractInfo/{contractInfoId}") @GetMapping("/contractInfo/{contractInfoId}")
public KObject queryContractInfo(@PathVariable UUID contractInfoId) { public KObject queryContractInfo(@PathVariable UUID contractInfoId) {
KObject contractInfo = contractService.queryContractInfo(contractInfoId); KObject contractInfo = contractService.queryContractInfo(contractInfoId);
return contractInfo; return contractInfo;
} }
@PostMapping("/contract/change/check")
public Object checkChangeAbled(@RequestBody BaseEntity contract) {
UUID id = UUID.fromString(contract.getId());
Boolean result = contractService.checkChangeAbled(id);
return ResponseObj.success("校验成功", result);
}
@PostMapping("/contract/change/history")
public Object getChangeHistory(@RequestBody BaseEntity contract) {
UUID id = UUID.fromString(contract.getId());
List<KObject> result = contractService.getChangeHistory(id);
if(null == result || result.size()<=0){
return JSONObjectUtils.toJson(new ArrayList<KObject>()).toString();
}
return JSONObjectUtils.toJson(result).toString();
}
@PostMapping("/contract/submitFlow") @PostMapping("/contract/submitFlow")
public Object submitFlow(@RequestBody BaseEntity baseEntity) { public Object submitFlow(@RequestBody BaseEntity baseEntity) {
UUID id = UUID.fromString(baseEntity.getId()); UUID id = UUID.fromString(baseEntity.getId());
contractService.submitFlow(id); try{
return baseEntity; contractService.submitFlow(id);
}catch (Exception e){
e.printStackTrace();
return ResponseObj.error("提交审核提交失败", e.getMessage());
}
return ResponseObj.success("提交审核提交成功");
} }
@PostMapping("/contract/update/submitFlow") @PostMapping("/contract/update/submitFlow")
public Object submitFlowForUpdate(@RequestBody BaseEntity baseEntity) { public Object submitFlowForUpdate(@RequestBody BaseEntity baseEntity) {
UUID id = UUID.fromString(baseEntity.getId()); UUID id = UUID.fromString(baseEntity.getId());
contractService.submitFlowForUpdate(id); try{
return baseEntity; contractService.submitFlowForUpdate(id);
}catch (Exception e){
e.printStackTrace();
return ResponseObj.error("变更审核提交失败", e.getMessage());
}
return ResponseObj.success("变更审核提交成功");
} }
@PostMapping("/contract/load/last")
//根据购砂单位ID 查询所有合同列表里的项目ID列表 public Object getLastContractByInfoId(@RequestBody BaseEntity contract) {
UUID infoId = UUID.fromString(contract.getId());
KObject result = contractService.getLastContractByInfoId(infoId);
return ResponseObj.success("获取成功", result);
}
// 根据购砂单位ID 查询所有合同列表里的项目ID列表
@PostMapping("/sand/user/projectList") @PostMapping("/sand/user/projectList")
public String getProjectListByPurSandId(@RequestBody ProjectListQuery projectListQuery) { public String getProjectListByPurSandId(@RequestBody ProjectListQuery projectListQuery) {
JSONArray projectList = contractService.getProjectListByPurSandId(projectListQuery.getPurchaseSandId(), JSONArray projectList = contractService.getProjectListByPurSandId(projectListQuery.getPurchaseSandId(),
projectListQuery.getProjectType(),projectListQuery.getProjectName()); projectListQuery.getProjectType(), projectListQuery.getProjectName());
return projectList.toString(); return projectList.toString();
} }
@PostMapping("/sand/user/projectList2") @PostMapping("/sand/user/projectList2")
public List<KObject> getProjectListByPurSand(@RequestBody ProjectListQuery projectListQuery) { public List<KObject> getProjectListByPurSand(@RequestBody ProjectListQuery projectListQuery) {
return contractInfoDao.getProjectListByPurSand(projectListQuery.getPurchaseSandId(), return contractInfoDao.getProjectListByPurSand(projectListQuery.getPurchaseSandId(),
projectListQuery.getProjectType(),projectListQuery.getProjectName()); projectListQuery.getProjectType(), projectListQuery.getProjectName());
} }
//统计查询 // 统计查询
@PostMapping("/contract/statistics") @PostMapping("/contract/statistics")
public Object statisticsQuery(@RequestBody BaseEntity baseEntity) { public Object statisticsQuery(@RequestBody BaseEntity baseEntity) {
//TODO // TODO
//合同数量, 未执行,执行中,已完成 // 合同数量, 未执行,执行中,已完成
return baseEntity; return baseEntity;
} }
@Autowired @Autowired
private IWarningSettingService warningSettingService; private IWarningSettingService warningSettingService;
@PostMapping("/contract/test") @PostMapping("/contract/test")
public void afterApproved() { public void afterApproved() {
//合同审批通过后,自动新增砂石余量预警设置 // 合同审批通过后,自动新增砂石余量预警设置
String billType = "合同"; String billType = "合同";
UUID contractId = UUID.fromString("598A9B1B-34C7-4BFB-A846-40EDEF357752"); UUID contractId = UUID.fromString("598A9B1B-34C7-4BFB-A846-40EDEF357752");
String target = "清砂"; String target = "清砂";
int count = 100;//青砂余量 int count = 100;// 青砂余量
BaseBusinessWarn contractBusinessWarn = new BaseBusinessWarn(billType, contractId,target); BaseBusinessWarn contractBusinessWarn = new BaseBusinessWarn(billType, contractId, target);
DinasCountWarningCalculate dinasCountWarningCalculate = new DinasCountWarningCalculate(count); DinasCountWarningCalculate dinasCountWarningCalculate = new DinasCountWarningCalculate(count);
contractBusinessWarn.setWarningCalculate(dinasCountWarningCalculate); contractBusinessWarn.setWarningCalculate(dinasCountWarningCalculate);
contractBusinessWarn.warn(); contractBusinessWarn.warn();
// WarnSettingEntity warnSetting = new WarnSettingEntity();
// WarnSettingEntity warnSetting = new WarnSettingEntity(); // warnSetting.setBillType(billType);
// warnSetting.setBillType(billType); // warnSetting.setBillId(contractId);
// warnSetting.setBillId(contractId); // warnSetting.setTarget(dinasTypeName);
// warnSetting.setTarget(dinasTypeName); // warnSetting.setOpen(true);
// warnSetting.setOpen(true); // warningSettingService.insertWarnSetting(warnSetting);
// warningSettingService.insertWarnSetting(warnSetting);
} }
} }
\ No newline at end of file
...@@ -22,6 +22,12 @@ ...@@ -22,6 +22,12 @@
<defaultExecute></defaultExecute> <defaultExecute></defaultExecute>
<hide></hide> <hide></hide>
</innerScene> </innerScene>
<innerScene title='默认部分'>
<id>cb80f579-e0d1-49b2-9528-8dff2466aef6</id>
<javaImplement>com.xyst.dinas.contract.internal.scene.ContractListDefaultScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
<field title='id'> <field title='id'>
<name>id</name> <name>id</name>
<type>uuid</type> <type>uuid</type>
......
...@@ -27,6 +27,13 @@ ...@@ -27,6 +27,13 @@
<m:defaultExecute></m:defaultExecute> <m:defaultExecute></m:defaultExecute>
<m:hide></m:hide> <m:hide></m:hide>
</m:innerScene> </m:innerScene>
<m:innerScene>
<m:id>cb80f579-e0d1-49b2-9528-8dff2466aef6</m:id>
<m:title>默认部分</m:title>
<m:javaImplement>com.xyst.dinas.contract.internal.scene.ContractListDefaultScene</m:javaImplement>
<m:defaultExecute>true</m:defaultExecute>
<m:hide>true</m:hide>
</m:innerScene>
</m:innerScenes> </m:innerScenes>
<m:fields> <m:fields>
<m:field> <m:field>
......
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