package jnpf.onlinedev.controller;
|
|
import jnpf.base.ActionResult;
|
import jnpf.base.DataSourceApi;
|
import jnpf.base.entity.VisualdevEntity;
|
import jnpf.base.entity.VisualdevReleaseEntity;
|
import jnpf.base.model.OnlineImport.VisualdevModelDataInfoVO;
|
import jnpf.base.model.OnlineInfoModel;
|
import jnpf.base.model.VisualDevJsonModel;
|
import jnpf.base.model.flow.DataModel;
|
import jnpf.base.model.flow.FlowFormDataModel;
|
import jnpf.base.model.flow.FlowStateModel;
|
import jnpf.base.service.FlowFormRelationService;
|
import jnpf.base.service.VisualdevReleaseService;
|
import jnpf.base.service.VisualdevService;
|
import jnpf.base.util.FlowFormDataUtil;
|
import jnpf.base.util.FlowFormHttpReqUtils;
|
import jnpf.database.model.entity.DbLinkEntity;
|
import jnpf.exception.DataException;
|
import jnpf.onlinedev.VisualdevOnlineApi;
|
import jnpf.onlinedev.model.VisualParamModel;
|
import jnpf.onlinedev.service.VisualDevInfoService;
|
import jnpf.onlinedev.service.VisualDevListService;
|
import jnpf.onlinedev.service.VisualdevModelDataService;
|
import jnpf.onlinedev.util.onlineDevUtil.FlowFormCustomUtils;
|
import jnpf.onlinedev.util.onlineDevUtil.OnlinePublicUtils;
|
import jnpf.util.*;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.sql.SQLException;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Component
|
@RestController
|
@RequestMapping("/VisualdevForFlow")
|
public class VisualdevForFlowController implements VisualdevOnlineApi {
|
|
@Autowired
|
private VisualdevReleaseService visualdevReleaseService;
|
@Autowired
|
private VisualdevService visualdevService;
|
@Autowired
|
private VisualDevListService visualDevListService;
|
@Autowired
|
private VisualDevInfoService visualDevInfoService;
|
@Autowired
|
private FlowFormHttpReqUtils flowFormHttpReqUtils;
|
@Autowired
|
private FlowFormCustomUtils flowFormCustomUtils;
|
@Autowired
|
private FlowFormDataUtil flowDataUtil;
|
@Autowired
|
private DataSourceApi dblinkService;
|
@Autowired
|
private FlowFormRelationService flowFormRelationService;
|
@Autowired
|
private VisualdevModelDataService visualdevModelDataService;
|
|
@Override
|
@PostMapping("/saveOrUpdate")
|
public ActionResult saveOrUpdate(@RequestBody FlowFormDataModel flowFormDataModel) {
|
DataModel dataModel = null;
|
try {
|
String id = flowFormDataModel.getId();
|
String formId = flowFormDataModel.getFormId();
|
String flowId = flowFormDataModel.getFlowId();
|
Map<String, Object> map = flowFormDataModel.getMap();
|
List<Map<String, Object>> formOperates = flowFormDataModel.getFormOperates();
|
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
|
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
|
|
map.put(FlowFormConstant.FLOWID, flowId);
|
if (map.get(TableFeildsEnum.VERSION.getField().toUpperCase()) != null) {//针对Oracle数据库大小写敏感,出现大写字段补充修复
|
map.put(TableFeildsEnum.VERSION.getField(), map.get(TableFeildsEnum.VERSION.getField().toUpperCase()));
|
}
|
|
//系统表单
|
if (entity.getType() == 2) {
|
map.put("formOperates", formOperates);
|
flowFormHttpReqUtils.saveOrUpdate(visualdevEntity, id, UserProvider.getToken(), map);
|
} else {
|
try {
|
dataModel = flowFormCustomUtils.saveOrUpdate(visualdevEntity, flowFormDataModel);
|
} catch (SQLException sqlException) {
|
sqlException.printStackTrace();
|
} catch (DataException e) {
|
e.printStackTrace();
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ActionResult.fail(e.getMessage());
|
}
|
if (dataModel != null) {
|
dataModel.setOldMainData(null);
|
}
|
return ActionResult.success(dataModel);
|
}
|
|
@Override
|
@DeleteMapping("/delete")
|
public boolean delete(@RequestParam("formId") String formId, @RequestParam("id") String id) {
|
try {
|
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
|
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
|
//系统表单
|
if (entity.getType() == 2) {
|
flowFormHttpReqUtils.delete(visualdevEntity, id, UserProvider.getToken());
|
} else {
|
VisualDevJsonModel visualJsonModel = OnlinePublicUtils.getVisualJsonModel(visualdevEntity);
|
DbLinkEntity linkEntity = StringUtil.isNotEmpty(visualdevEntity.getDbLinkId()) ? dblinkService.getInfo(visualdevEntity.getDbLinkId()) : null;
|
flowDataUtil.deleteTable(id, visualJsonModel, linkEntity);
|
}
|
} catch (Exception e) {
|
return false;
|
}
|
return true;
|
}
|
|
@Override
|
@GetMapping("/info")
|
public ActionResult info(@RequestParam("formId") String formId, @RequestParam("id") String id) {
|
ActionResult result = new ActionResult();
|
Map<String, Object> allDataMap = new HashMap();
|
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
|
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
|
result.setCode(visualdevEntity == null ? 400 : 200);
|
result.setMsg(visualdevEntity == null ? "表单信息不存在" : "");
|
if (visualdevEntity != null) {
|
//判断是否为系统表单
|
boolean b = visualdevEntity.getType() == 2;
|
if (b) {
|
allDataMap.putAll(flowFormHttpReqUtils.info(visualdevEntity, id, UserProvider.getToken()));
|
} else {
|
allDataMap.putAll(flowFormCustomUtils.info(visualdevEntity, id));
|
}
|
}
|
result.setData(allDataMap);
|
return result;
|
}
|
|
@Override
|
@GetMapping("/getFormConfig")
|
public VisualdevEntity getFormConfig(@RequestParam("formId") String formId) {
|
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
|
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
|
return visualdevEntity;
|
}
|
|
@Override
|
@PostMapping("/getFormConfigList")
|
public List<VisualdevEntity> getFormConfigList(@RequestBody List<String> formIds) {
|
List<VisualdevReleaseEntity> list = visualdevReleaseService.selectByIds(formIds,
|
VisualdevReleaseEntity::getId,
|
VisualdevReleaseEntity::getEnCode,
|
VisualdevReleaseEntity::getFullName,
|
VisualdevReleaseEntity::getWebType,
|
VisualdevReleaseEntity::getType);
|
return CollectionUtils.isNotEmpty(list) ? JsonUtil.getJsonToList(list, VisualdevEntity.class) : new ArrayList<>();
|
}
|
|
@Override
|
@PostMapping("/saveFlowIdByFormIds")
|
public void saveFlowIdByFormIds(@RequestBody String flowId, @RequestParam("formId") List<String> formIds) {
|
flowFormRelationService.saveFlowIdByFormIds(flowId, formIds);
|
}
|
|
@Override
|
@GetMapping("/getReleaseInfo")
|
public VisualdevEntity getReleaseInfo(@RequestParam("formId") String formId) {
|
return visualdevService.getReleaseInfo(formId);
|
}
|
|
@Override
|
@PostMapping("/getListWithTableList")
|
public List<Map<String, Object>> getListWithTableList(@RequestBody VisualParamModel model) {
|
return visualDevListService.getListWithTableList(model.getVisualDevJsonModel(), model.getPagination(), model.getUserInfo());
|
}
|
|
@Override
|
@PostMapping("/getEditDataInfo")
|
public VisualdevModelDataInfoVO getEditDataInfo(@RequestBody VisualParamModel model) {
|
return visualDevInfoService.getEditDataInfo(model.getId(), model.getVisualdevEntity(), OnlineInfoModel.builder().build());
|
}
|
|
@Override
|
@PostMapping("/visualCreate")
|
public ActionResult visualCreate(@RequestBody VisualParamModel model) throws Exception {
|
DataModel dataModel;
|
try {
|
dataModel = visualdevModelDataService.visualCreate(VisualParamModel.builder().visualdevEntity(model.getVisualdevEntity()).data(model.getData()).build());
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ActionResult.fail(e.getMessage());
|
}
|
return ActionResult.success(dataModel);
|
}
|
|
@Override
|
@PostMapping("/visualUpdate")
|
public ActionResult visualUpdate(@RequestBody VisualParamModel model) throws Exception {
|
DataModel dataModel;
|
try {
|
dataModel = visualdevModelDataService.visualUpdate(model);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ActionResult.fail(e.getMessage());
|
}
|
return ActionResult.success(dataModel);
|
}
|
|
@Override
|
@PostMapping("/visualDelete")
|
public ActionResult visualDelete(@RequestBody VisualParamModel model) throws Exception {
|
try {
|
visualdevModelDataService.visualDelete(model.getVisualdevEntity(), model.getDataList());
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ActionResult.fail(e.getMessage());
|
}
|
return ActionResult.success();
|
}
|
|
@Override
|
@PostMapping("/deleteByTableName")
|
public ActionResult deleteByTableName(@RequestBody FlowFormDataModel model) throws Exception {
|
try {
|
visualdevModelDataService.deleteByTableName(model);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ActionResult.fail(e.getMessage());
|
}
|
return ActionResult.success();
|
}
|
|
@Override
|
@PostMapping("/saveState")
|
public void saveState(@RequestBody FlowStateModel model) {
|
List<String> formIds = model.getFormIds();
|
String flowTaskId = model.getFlowTaskId();
|
Integer flowState = model.getFlowState();
|
for (String formId : formIds) {
|
VisualdevReleaseEntity entity = visualdevReleaseService.getById(formId);
|
if (entity == null) continue;
|
VisualdevEntity visualdevEntity = JsonUtil.getJsonToBean(entity, VisualdevEntity.class);
|
//系统表单
|
if (entity.getType() == 2) {
|
flowFormHttpReqUtils.saveState(visualdevEntity, flowTaskId, flowState);
|
} else {
|
flowDataUtil.saveState(visualdevEntity, flowTaskId, flowState);
|
}
|
}
|
}
|
}
|