|
@@ -66,6 +66,8 @@ public class WorkContractRecordController extends BaseController {
|
|
|
private ActTaskService actTaskService;
|
|
|
@Autowired
|
|
|
private WorkContractInfoService workContractInfoService;
|
|
|
+
|
|
|
+ private static byte[] SYN_BYTE = new byte[0];
|
|
|
@ModelAttribute
|
|
|
public WorkContractRecord get(@RequestParam(required=false) String id) {
|
|
|
WorkContractRecord entity = null;
|
|
@@ -171,7 +173,13 @@ public class WorkContractRecordController extends BaseController {
|
|
|
MyBeanUtils.copyBeanNotNull2Bean(workContractRecord, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
workContractRecordService.save(t);//保存
|
|
|
}else{//新增表单保存
|
|
|
- workContractRecordService.save(workContractRecord);//保存
|
|
|
+ //根据合同id查询合同归档信息
|
|
|
+ WorkContractRecord byContractId = workContractRecordService.getByContractId(workContractRecord);
|
|
|
+ if(null == byContractId){
|
|
|
+ workContractRecordService.save(workContractRecord);//保存
|
|
|
+ }else{
|
|
|
+ addMessage(redirectAttributes, "该合同已归档、无法重复归档");
|
|
|
+ }
|
|
|
}
|
|
|
addMessage(redirectAttributes, "保存合同归档成功");
|
|
|
return "redirect:"+Global.getAdminPath()+"/workcontractrecord/workContractRecord/?repage";
|
|
@@ -185,6 +193,7 @@ public class WorkContractRecordController extends BaseController {
|
|
|
if (!beanValidator(model, workContractRecord)){
|
|
|
return form(workContractRecord, model);
|
|
|
}
|
|
|
+ String oldStatus = workContractRecord.getStatus();
|
|
|
//归档中状态
|
|
|
if(workContractRecord.getWorkContractInfo()!=null){
|
|
|
if(StringUtils.isNotBlank(workContractRecord.getWorkContractInfo().getId())){
|
|
@@ -209,7 +218,15 @@ public class WorkContractRecordController extends BaseController {
|
|
|
Map<String, Object> variables = Maps.newHashMap();
|
|
|
workContractRecord.setCompanyId(UserUtils.getSelectCompany().getId());
|
|
|
workContractRecord.setOfficeId(UserUtils.getSelectOffice().getId());
|
|
|
- String str = workContractRecordService.save(workContractRecord, variables,processInstanceId);
|
|
|
+ String str = null;
|
|
|
+ //新增或修改操作
|
|
|
+ synchronized (SYN_BYTE) {
|
|
|
+ //根据合同id查询合同归档信息
|
|
|
+ WorkContractRecord byContractId = workContractRecordService.getByContractId(workContractRecord);
|
|
|
+ if (null == byContractId || oldStatus.equals(byContractId.getStatus())) {
|
|
|
+ str = workContractRecordService.save(workContractRecord, variables, processInstanceId);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (StringUtils.isNotBlank(str)){
|
|
|
addMessage(redirectAttributes, "合同归档申请提交失败:"+str);
|
|
|
}else {
|
|
@@ -374,7 +391,13 @@ public class WorkContractRecordController extends BaseController {
|
|
|
*/
|
|
|
@RequestMapping("cancelInvalidate")
|
|
|
public String cancelInvalidate(WorkContractRecord workContractRecord,RedirectAttributes redirectAttributes){
|
|
|
- workContractRecordService.cancelInvalidate(workContractRecord);
|
|
|
+ WorkContractRecord contractRecord = workContractRecordService.get(workContractRecord.getId());
|
|
|
+ if(contractRecord.getStatus().equals(workContractRecord.getStatus())){
|
|
|
+ addMessage(redirectAttributes, "撤回成功");
|
|
|
+ workContractRecordService.cancelInvalidate(workContractRecord);
|
|
|
+ }else{
|
|
|
+ addMessage(redirectAttributes, "该合同归档不是送审状态,无法撤回");
|
|
|
+ }
|
|
|
return "redirect:"+Global.getAdminPath()+"/workcontractinfo/workContractInfo/?repage";
|
|
|
}
|
|
|
/**
|