Search in sources :

Example 1 with Criteria

use of com.plumdo.form.jpa.Criteria in project plumdo-work by wengwh.

the class FormInstanceResource method updateFormInstance.

@ApiOperation(value = "创建表单模型", notes = "根据传过来的modelRequest信息来创建表单模型")
@ApiImplicitParam(name = "modelRequest", value = "表单模型请求实体modelRequest", required = true, dataType = "FormInstanceRequest")
@RequestMapping(value = "/form-instances/{id}", method = RequestMethod.PUT, produces = "application/json")
@ResponseStatus(value = HttpStatus.CREATED)
@Transactional(propagation = Propagation.REQUIRED)
public FormInstanceResponse updateFormInstance(@PathVariable Long id, @RequestBody FormInstanceRequest formInstanceRequest) {
    FormInstance formInstance = getFormInstanceFromRequest(id);
    if (formInstanceRequest.getBusinessKey() != null) {
        formInstance.setBusinessKey(formInstanceRequest.getBusinessKey());
    }
    if (formInstanceRequest.getTenantId() != null) {
        formInstance.setTenantId(formInstanceRequest.getTenantId());
    }
    if (formInstanceRequest.getFormDatas() != null) {
        for (FormInstanceData formInstanceData : formInstanceRequest.getFormDatas()) {
            Criteria<FormData> criteria = new Criteria<FormData>();
            criteria.add(Restrictions.eq("key", formInstanceData.getKey(), false));
            criteria.add(Restrictions.eq("formInstance.id", id, false));
            FormData oldFormData = formDataRepository.findOne(criteria);
            if (oldFormData == null) {
                FormData formData = new FormData();
                formData.setFormInstance(formInstance);
                formData.setKey(formInstanceData.getKey());
                formData.setValue(formInstanceData.getValue());
                formInstance.addFormData(formData);
            } else {
                oldFormData.setValue(formInstanceData.getValue());
                formInstance.addFormData(oldFormData);
            }
        }
    }
    formInstanceRepository.save(formInstance);
    return responseFactory.createFormInstanceResponse(formInstance);
}
Also used : FormData(com.plumdo.form.entity.FormData) Criteria(com.plumdo.form.jpa.Criteria) FormInstance(com.plumdo.form.entity.FormInstance) FormInstanceData(com.plumdo.form.rest.instance.FormInstanceData) ResponseStatus(org.springframework.web.bind.annotation.ResponseStatus) ApiOperation(io.swagger.annotations.ApiOperation) ApiImplicitParam(io.swagger.annotations.ApiImplicitParam) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

FormData (com.plumdo.form.entity.FormData)1 FormInstance (com.plumdo.form.entity.FormInstance)1 Criteria (com.plumdo.form.jpa.Criteria)1 FormInstanceData (com.plumdo.form.rest.instance.FormInstanceData)1 ApiImplicitParam (io.swagger.annotations.ApiImplicitParam)1 ApiOperation (io.swagger.annotations.ApiOperation)1 Transactional (org.springframework.transaction.annotation.Transactional)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1 ResponseStatus (org.springframework.web.bind.annotation.ResponseStatus)1