|
|
@ -77,13 +77,13 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
public String createBizKey(List<FormField> formFields,FormData formData){ |
|
|
public String createBizKey(List<FormField> formFields,FormData formData){ |
|
|
|
|
|
|
|
|
List<String> pks=new ArrayList<>(); |
|
|
List<String> pks=new ArrayList<>(); |
|
|
List<FormField> pkFields=formFields.stream().filter(k->k.getIsBizKey().endsWith("1")).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
List<FormField> pkFields=formFields.stream().filter(k->k.getBkey().endsWith("1")).collect(Collectors.toList()); |
|
|
if(pkFields==null || pkFields.size()==0){//没有业务主键,则取id |
|
|
if(pkFields==null || pkFields.size()==0){//没有业务主键,则取id |
|
|
return ""; |
|
|
return ""; |
|
|
} |
|
|
} |
|
|
Map<String,Object> formDataMap= BaseUtils.toMap(formData); |
|
|
Map<String,Object> formDataMap= BaseUtils.toMap(formData); |
|
|
FormField pk=pkFields.get(0); |
|
|
FormField pk=pkFields.get(0); |
|
|
String isBizKey=pk.getIsBizKey(); |
|
|
|
|
|
|
|
|
String isBizKey=pk.getBkey(); |
|
|
if(isBizKey.startsWith("1")){ |
|
|
if(isBizKey.startsWith("1")){ |
|
|
pks.add(formData.getCuserid()); |
|
|
pks.add(formData.getCuserid()); |
|
|
} |
|
|
} |
|
|
@ -91,11 +91,11 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
pks.add(formData.getDeptid()); |
|
|
pks.add(formData.getDeptid()); |
|
|
} |
|
|
} |
|
|
for (FormField pkField : pkFields) { |
|
|
for (FormField pkField : pkFields) { |
|
|
Object pkValue= formDataMap.get(pkField.getFieldIdCamel()); |
|
|
|
|
|
|
|
|
Object pkValue= formDataMap.get(pkField.getIdCamel()); |
|
|
if(ObjectTools.isEmpty(pkValue)){ |
|
|
if(ObjectTools.isEmpty(pkValue)){ |
|
|
throw new BizException(LangTips.errMsg("pk-field-required","%s不能为空",pkField.getFieldTitle())); |
|
|
|
|
|
|
|
|
throw new BizException(LangTips.errMsg("pk-field-required","%s不能为空",pkField.getTitle())); |
|
|
} |
|
|
} |
|
|
pks.add((String) formDataMap.get(pkField.getFieldIdCamel())); |
|
|
|
|
|
|
|
|
pks.add((String) formDataMap.get(pkField.getIdCamel())); |
|
|
} |
|
|
} |
|
|
return pks.stream().collect(Collectors.joining(",")); |
|
|
return pks.stream().collect(Collectors.joining(",")); |
|
|
} |
|
|
} |
|
|
@ -106,7 +106,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
* @param formId |
|
|
* @param formId |
|
|
* @param procInstId |
|
|
* @param procInstId |
|
|
*/ |
|
|
*/ |
|
|
public void updateFlowStateByProcInst(String flowState,String formId,String procInstId) { |
|
|
|
|
|
|
|
|
public void updateFstateByProcInst(String flowState,String formId,String procInstId) { |
|
|
Map<String,Object> p=new HashMap<>(); |
|
|
Map<String,Object> p=new HashMap<>(); |
|
|
p.put("flowState", flowState); |
|
|
p.put("flowState", flowState); |
|
|
p.put("formId", formId); |
|
|
p.put("formId", formId); |
|
|
@ -119,15 +119,15 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
* @param formData |
|
|
* @param formData |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
public int insertOrUpdate(FormDataVo formData, boolean checkFlowState) { |
|
|
|
|
|
|
|
|
public int insertOrUpdate(FormDataVo formData, boolean checkFstate) { |
|
|
String formId=formData.getFormId(); |
|
|
String formId=formData.getFormId(); |
|
|
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formId); |
|
|
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formId); |
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(), formData); |
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(), formData); |
|
|
formData.setBizKey(bizKey); |
|
|
formData.setBizKey(bizKey); |
|
|
if(StringUtils.isEmpty(formData.getId())){ |
|
|
if(StringUtils.isEmpty(formData.getId())){ |
|
|
formData.setId(this.createKey("id")); |
|
|
formData.setId(this.createKey("id")); |
|
|
formData.setCreateTime(new Date()); |
|
|
|
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setCtime(new Date()); |
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
if(fd!=null) { |
|
|
if(fd!=null) { |
|
|
throw new BizException("exists-form-data-biz-key","bizKey","数据已经存在不能再添加"); |
|
|
throw new BizException("exists-form-data-biz-key","bizKey","数据已经存在不能再添加"); |
|
|
@ -135,20 +135,20 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
return this.insert(formData); |
|
|
return this.insert(formData); |
|
|
} |
|
|
} |
|
|
}else{ |
|
|
}else{ |
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
|
|
|
|
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
FormData fdObject=getById(formData.getId()); |
|
|
FormData fdObject=getById(formData.getId()); |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
if(checkFlowState) { |
|
|
|
|
|
if("0".equals(fdObject.getFlowState())) { |
|
|
|
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
if(checkFstate) { |
|
|
|
|
|
if("0".equals(fdObject.getFstate())) { |
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
return super.updateByPk(formData); |
|
|
return super.updateByPk(formData); |
|
|
}else { |
|
|
}else { |
|
|
if("1".equals(fdObject.getFlowState())) { |
|
|
|
|
|
|
|
|
if("1".equals(fdObject.getFstate())) { |
|
|
throw new BizException("flow-state-error-001","审核中的数据不允许修改"); |
|
|
throw new BizException("flow-state-error-001","审核中的数据不允许修改"); |
|
|
}else if("2".equals(fdObject.getFlowState())) { |
|
|
|
|
|
|
|
|
}else if("2".equals(fdObject.getFstate())) { |
|
|
throw new BizException("flow-state-error-002","审核完毕的数据不允许修改"); |
|
|
throw new BizException("flow-state-error-002","审核完毕的数据不允许修改"); |
|
|
}else { |
|
|
}else { |
|
|
throw new BizException("flow-state-error-003","数据状态不正确"); |
|
|
throw new BizException("flow-state-error-003","数据状态不正确"); |
|
|
@ -156,14 +156,14 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
}else { |
|
|
}else { |
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
return super.updateByPk(formData); |
|
|
return super.updateByPk(formData); |
|
|
} |
|
|
} |
|
|
}else {//通过id也查不出来,通过bizKey查不出来,说明是新增 |
|
|
}else {//通过id也查不出来,通过bizKey查不出来,说明是新增 |
|
|
formData.setCreateTime(new Date()); |
|
|
|
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
if(StringUtils.isEmpty(formData.getFlowState())) { |
|
|
|
|
|
formData.setFlowState("0"); |
|
|
|
|
|
|
|
|
formData.setCtime(new Date()); |
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
|
|
|
if(StringUtils.isEmpty(formData.getFstate())) { |
|
|
|
|
|
formData.setFstate("0"); |
|
|
} |
|
|
} |
|
|
return this.insert(formData); |
|
|
return this.insert(formData); |
|
|
} |
|
|
} |
|
|
@ -172,21 +172,21 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
|
|
|
|
|
|
//如果id相同,说明是同一条数据 |
|
|
//如果id相同,说明是同一条数据 |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
if(checkFlowState) { |
|
|
|
|
|
if("0".equals(fd.getFlowState())) { |
|
|
|
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
if(checkFstate) { |
|
|
|
|
|
if("0".equals(fd.getFstate())) { |
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
return super.updateByPk(formData); |
|
|
return super.updateByPk(formData); |
|
|
}else { |
|
|
}else { |
|
|
if("1".equals(fd.getFlowState())) { |
|
|
|
|
|
|
|
|
if("1".equals(fd.getFstate())) { |
|
|
throw new BizException("flow-state-error-001","审核中的数据不允许修改"); |
|
|
throw new BizException("flow-state-error-001","审核中的数据不允许修改"); |
|
|
}else if("2".equals(fd.getFlowState())) { |
|
|
|
|
|
|
|
|
}else if("2".equals(fd.getFstate())) { |
|
|
throw new BizException("flow-state-error-002","审核完毕的数据不允许修改"); |
|
|
throw new BizException("flow-state-error-002","审核完毕的数据不允许修改"); |
|
|
}else { |
|
|
}else { |
|
|
throw new BizException("flow-state-error-003","数据状态不正确"); |
|
|
throw new BizException("flow-state-error-003","数据状态不正确"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}else { |
|
|
}else { |
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
return super.updateByPk(formData); |
|
|
return super.updateByPk(formData); |
|
|
} |
|
|
} |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
@ -202,7 +202,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
* 不检查数据状态 |
|
|
* 不检查数据状态 |
|
|
* @param formDatas |
|
|
* @param formDatas |
|
|
*/ |
|
|
*/ |
|
|
public void batchInsertOrUpdate(List<FormDataVo> formDatas,boolean updateFlowState) { |
|
|
|
|
|
|
|
|
public void batchInsertOrUpdate(List<FormDataVo> formDatas,boolean updateFstate) { |
|
|
String formId=formDatas.get(0).getFormId(); |
|
|
String formId=formDatas.get(0).getFormId(); |
|
|
FormDefVo fromDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
FormDefVo fromDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
|
|
|
|
|
|
@ -221,12 +221,12 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
FormData fdObject=this.getById(formData.getId()); |
|
|
FormData fdObject=this.getById(formData.getId()); |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
needUpdateList.add(formData); |
|
|
needUpdateList.add(formData); |
|
|
}else {//通过id也查不出来,通过bizKey查不出来,说明是新增 |
|
|
}else {//通过id也查不出来,通过bizKey查不出来,说明是新增 |
|
|
formData.setCreateTime(new Date()); |
|
|
|
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
formData.setFlowState("1"); |
|
|
|
|
|
|
|
|
formData.setCtime(new Date()); |
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
|
|
|
formData.setFstate("1"); |
|
|
needInsertList.add(formData); |
|
|
needInsertList.add(formData); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -234,7 +234,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
|
|
|
|
|
|
//如果id相同,说明是同一条数据 |
|
|
//如果id相同,说明是同一条数据 |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setLtime(new Date()); |
|
|
needUpdateList.add(formData); |
|
|
needUpdateList.add(formData); |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
throw new BizException("form-data-biz-key-exists","数据已经存在,不能继续添加,请检查是否关键数据错误"); |
|
|
throw new BizException("form-data-biz-key-exists","数据已经存在,不能继续添加,请检查是否关键数据错误"); |
|
|
@ -248,11 +248,11 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(needUpdateList.size()>0) { |
|
|
if(needUpdateList.size()>0) { |
|
|
if(updateFlowState) { |
|
|
|
|
|
|
|
|
if(updateFstate) { |
|
|
this.updateBatchById(formDatas.stream().map(k->(FormData)k).collect(Collectors.toList())); |
|
|
this.updateBatchById(formDatas.stream().map(k->(FormData)k).collect(Collectors.toList())); |
|
|
}else { |
|
|
}else { |
|
|
this.updateBatchById(formDatas.stream().map(k->{ |
|
|
this.updateBatchById(formDatas.stream().map(k->{ |
|
|
k.setFlowState(null); |
|
|
|
|
|
|
|
|
k.setFstate(null); |
|
|
return (FormData)k; |
|
|
return (FormData)k; |
|
|
}).collect(Collectors.toList())); |
|
|
}).collect(Collectors.toList())); |
|
|
|
|
|
|
|
|
@ -303,7 +303,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
for (String fieldId : fieldIds.split(",")) { |
|
|
for (String fieldId : fieldIds.split(",")) { |
|
|
Object value=formDatasMap.get(fieldId); |
|
|
Object value=formDatasMap.get(fieldId); |
|
|
needUpdateFormDataMap.put(fieldId, value); |
|
|
needUpdateFormDataMap.put(fieldId, value); |
|
|
if(formDefVo.getFormFields().stream().filter(k->k.getFieldIdCamel().equals(fieldId)).findAny().isPresent()){ |
|
|
|
|
|
|
|
|
if(formDefVo.getFormFields().stream().filter(k->k.getIdCamel().equals(fieldId)).findAny().isPresent()){ |
|
|
needUpdateBizKey=true; |
|
|
needUpdateBizKey=true; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -331,7 +331,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
formDataVo.setId(this.createKey("id")); |
|
|
formDataVo.setId(this.createKey("id")); |
|
|
} |
|
|
} |
|
|
formDataVo.setFlowState("1"); |
|
|
|
|
|
|
|
|
formDataVo.setFstate("1"); |
|
|
formDatas.add(formDataVo); |
|
|
formDatas.add(formDataVo); |
|
|
|
|
|
|
|
|
FormDataProcessApprova approva=BaseUtils.fromMap(flowVars, FormDataProcessApprova.class); |
|
|
FormDataProcessApprova approva=BaseUtils.fromMap(flowVars, FormDataProcessApprova.class); |
|
|
@ -347,13 +347,13 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
} |
|
|
} |
|
|
}else if("PROCESS_COMPLETED".equals(eventName)) { |
|
|
}else if("PROCESS_COMPLETED".equals(eventName)) { |
|
|
if("1".equals(agree)) { |
|
|
if("1".equals(agree)) { |
|
|
this.updateFlowStateByProcInst("2", formId, procInstId); |
|
|
|
|
|
|
|
|
this.updateFstateByProcInst("2", formId, procInstId); |
|
|
}else { |
|
|
}else { |
|
|
this.updateFlowStateByProcInst("3", formId, procInstId); |
|
|
|
|
|
|
|
|
this.updateFstateByProcInst("3", formId, procInstId); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
}else if("PROCESS_CANCELLED".equals(eventName)) { |
|
|
}else if("PROCESS_CANCELLED".equals(eventName)) { |
|
|
this.updateFlowStateByProcInst("4", formId, procInstId); |
|
|
|
|
|
|
|
|
this.updateFstateByProcInst("4", formId, procInstId); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|