Commit cdc1aa10 authored by zhangyingbin's avatar zhangyingbin

新增动态表单的更新、查询接口

parent 9e1e341d
......@@ -9,7 +9,9 @@ public enum OrgPersonEnum {
公司("COMPANY", "244", "公司"),
部门("DEPARTMENT", "245", "部门"),
人员("PERSON", "246", "人员");
人员("PERSON", "246", "人员"),
焊工("WELDER","247","焊工"),
企业管理员("ADMIN","248","企业管理员");
private String key;
private String code;
......
......@@ -224,16 +224,17 @@ public class CompanyController extends BaseController {
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(company));
jsonObject.put("amosOrgId",companyModelFeignClient.getSequenceNbr());
jsonObject.put("amosOrgCode",companyModelFeignClient.getOrgCode());
orgServiceImpl.dataHandling(jsonObject,bizOrgType);
// final OrgUsrDto orgUsrDto = new OrgUsrDto();
// orgUsrDto.setBizOrgName(company.getName());
// orgUsrDto.setAmosOrgId(companyModelFeignClient.getSequenceNbr().toString());
// orgUsrDto.setAmosOrgCode(companyModelFeignClient.getOrgCode());
// orgUsrDto.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_COMPANY);
// iOrgUsrService.saveOrgUsr(orgUsrDto);
orgServiceImpl.dataHandling(jsonObject,bizOrgType,null);
}
return ResponseHelper.buildResponse(companyServiceImpl.updateById(company));
}
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@PostMapping(value = "test")
@ApiOperation(httpMethod = "Post", value = "根据sequenceNbr更新,并创建单位及管理员", notes = "根据sequenceNbr更新,并创建单位及管理员")
public ResponseModel<OrgUsrDto> getInfo(@RequestBody JSONObject jsonObject, String bizOrgType,String sequenceNbr){
return ResponseHelper.buildResponse(orgServiceImpl.dataHandling(jsonObject,bizOrgType,sequenceNbr));
}
}
......@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.*;
......@@ -46,18 +47,22 @@ public class OrgServiceImpl {
private RedisUtils redisUtils;
/**
* 保存orgUsr信息和FormInstance实体信息
* 保存或更新orgUsr信息和FormInstance实体信息
* sequenceNbr表示 若是更新动态表单,则传orgUsr表的sequenceNbr,
* 若是新增信息,传null
* @param jsonObject
* @param bizOrgType
* @param sequenceNbr 有值更新 ,没值保存
* @return
*/
public OrgUsrDto dataHandling(JSONObject jsonObject, String bizOrgType){
OrgUsr orgUsr = saveOrgUsr(jsonObject,bizOrgType);
public OrgUsrDto dataHandling(JSONObject jsonObject, String bizOrgType,String sequenceNbr){
OrgUsr orgUsr = saveOrgUsr(jsonObject,bizOrgType,sequenceNbr);
//条件构造器 找出column表种 类型为(COMPANY 或 DEPARTMENT 或 PERSON)的列
LambdaQueryWrapper<DynamicFormColumn> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DynamicFormColumn::getGroupCode,bizOrgType);
List<DynamicFormColumn> dynamicFormColumnList= dynamicFormColumnServiceImpl.list(wrapper);
List<DynamicFormInstance> dynamicFormInstanceList = new ArrayList<>();
Map<String, Long> map = new HashMap<>();
for (DynamicFormColumn dynamicFormColumn : dynamicFormColumnList) {
//将column表的基本字段信息给instance表
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
......@@ -69,7 +74,25 @@ public class OrgServiceImpl {
dynamicFormInstance.setSequenceNbr(null);
dynamicFormInstanceList.add(dynamicFormInstance);
}
alertFormValueServiceImpl.saveBatch(dynamicFormInstanceList);
//如果sequenceNbr有值(更新)
if(!ValidationUtil.isEmpty(sequenceNbr)){
LambdaQueryWrapper<DynamicFormInstance> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DynamicFormInstance ::getInstanceId,orgUsr.getSequenceNbr());
List<DynamicFormInstance> instanceList = alertFormValueServiceImpl.list(lambdaQueryWrapper);
//如果instance表中有值
if(!ValidationUtil.isEmpty(instanceList)){
//将查到的instance信息装到map中
for(DynamicFormInstance dynamicFormInstance:instanceList){
map.put(dynamicFormInstance.getFieldCode(),dynamicFormInstance.getSequenceNbr());
}
//将查到的instance信息中的sequenceNbr装到更新之后的表中。
for(DynamicFormInstance dynamicFormInstance:dynamicFormInstanceList){
dynamicFormInstance.setSequenceNbr(map.get(dynamicFormInstance.getFieldCode()));
}
}
}
//保存或更新 根据sequenceNbr
alertFormValueServiceImpl.saveOrUpdateBatch(dynamicFormInstanceList);
OrgUsrDto orgUsrDto = new OrgUsrDto();
BeanUtils.copyProperties(orgUsr,orgUsrDto);
orgUsrDto.setDynamicFormValue(dynamicFormInstanceList);
......@@ -77,27 +100,39 @@ public class OrgServiceImpl {
}
/**
* 保存orgUsr表信息
* 更新或保存orgUsr表信息
* @param jsonObject
* @param bizOrgType
* @return
*/
public OrgUsr saveOrgUsr(JSONObject jsonObject,String bizOrgType){
public OrgUsr saveOrgUsr(JSONObject jsonObject,String bizOrgType,String sequenceNbr){
ReginParams reginParams = getReginParams();
OrgUsr orgUsr = new OrgUsr();
if(!ValidationUtil.isEmpty(sequenceNbr)) {
if (!ValidationUtil.isEmpty(orgUsrServiceImpl.getById(sequenceNbr))) {
orgUsr = orgUsrServiceImpl.getById(sequenceNbr);
}
}
orgUsr.setRecDate(new Date());
AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecUserName(user.getRealName());
orgUsr.setRecUserId(user.getUserId());
orgUsr.setBizOrgName(jsonObject.getString("name"));
orgUsr.setSequenceNbr(jsonObject.getLong("sequenceNbr"));
orgUsr.setBizOrgType(bizOrgType);
if (OrgPersonEnum.公司.getKey().equals(bizOrgType)){
orgUsr.setOrgExpandAttr1(OrgPersonEnum.公司.getKey());
orgUsr.setBizOrgCode(jsonObject.getString("creditCode"));
orgUsr.setAmosOrgId(jsonObject.getString("amosOrgId"));
orgUsr.setAmosOrgCode(jsonObject.getString("amosOrgCode"));
}
if (OrgPersonEnum.人员.getKey().equals(bizOrgType)){
if (1==jsonObject.getInteger("isWelder")) {
orgUsr.setOrgExpandAttr1(OrgPersonEnum.焊工.getKey());
}else{
orgUsr.setOrgExpandAttr1(OrgPersonEnum.企业管理员.getKey());
}
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OrgUsr :: getAmosOrgId,String.valueOf(reginParams.getCompany().getSequenceNbr()));
orgUsr.setParentId(String.valueOf(orgUsrServiceImpl.getOne(wrapper).getSequenceNbr()));
......@@ -115,7 +150,7 @@ public class OrgServiceImpl {
orgUsr.setBizOrgCode(OrgUsrServiceImpl.getOrgCodeStr());
}
orgUsrServiceImpl.save(orgUsr);
orgUsrServiceImpl.saveOrUpdate(orgUsr);
return orgUsr;
}
......@@ -125,4 +160,43 @@ public class OrgServiceImpl {
public ReginParams getReginParams() {
return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
/**
* 获取企业下的焊工信息列表
* @param companyId 单位/企业id
* @return
*/
public List<Map> getInfo(String companyId){
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OrgUsr :: getSequenceNbr ,companyId);
OrgUsr orgUsrCompany = orgUsrServiceImpl.getOne(wrapper);
LambdaQueryWrapper<OrgUsr> welderWrapper = new LambdaQueryWrapper<>();
welderWrapper.likeRight(OrgUsr :: getBizOrgCode,orgUsrCompany.getBizOrgCode()).eq(OrgUsr :: getOrgExpandAttr1, OrgPersonEnum.焊工.getKey());
List<OrgUsr> orgUsrList = orgUsrServiceImpl.list(welderWrapper);
List<Map> mapList = new ArrayList<>();
for (OrgUsr orgUsr : orgUsrList) {
Map map = getdetialInfo(String.valueOf(orgUsr.getSequenceNbr()));
mapList.add(map);
}
return mapList;
}
/**
* 根据id查询详细信息
* @param sequenceNbr
* @return
*/
public Map getdetialInfo(String sequenceNbr){
Map map = new HashMap();
LambdaQueryWrapper<DynamicFormInstance> instanceWrapper = new LambdaQueryWrapper<>();
instanceWrapper.eq(DynamicFormInstance :: getInstanceId,sequenceNbr);
List<DynamicFormInstance> dynamicFormInstanceList = alertFormValueServiceImpl.list(instanceWrapper);
for (DynamicFormInstance dynamicFormInstance : dynamicFormInstanceList) {
map.put(dynamicFormInstance.getFieldCode(),dynamicFormInstance.getFieldValue());
}
return map;
}
}
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