Commit b00d0086 authored by 施翔轲's avatar 施翔轲

新增咨询机构→编辑咨询机构结算信息相关改造

parent edbf31de
...@@ -78,12 +78,18 @@ public class AdvisoryBodyManageController extends BaseController { ...@@ -78,12 +78,18 @@ public class AdvisoryBodyManageController extends BaseController {
return R.ok(advisoryBodyService.checkAdvisoryBodyExist(advisoryBodyName)); return R.ok(advisoryBodyService.checkAdvisoryBodyExist(advisoryBodyName));
} }
//todo:咨询机构合作明细,项目承接类型下拉列表接口
/** /**
* 新增咨询机构 * 编辑咨询机构结算信息
* 包含:
* 新增咨询机构(advisory_body表)
* 新增/更新咨询机构与项目关联信息(advisory_body_project表)
*/ */
@PostMapping("/addAdvisoryBody") @PostMapping("/editAdvisoryBody")
public R<Void> addAdvisoryBody(@Validated AddAdvisoryBodyBo addAdvisoryBodyBo) { public R<Void> editAdvisoryBody(@Validated EditAdvisoryBodyInfoBo editInfoBo) {
return toAjax(advisoryBodyService.addAdvisoryBody(addAdvisoryBodyBo)); System.out.println("👉🏻editInfoBo:"+editInfoBo);
return toAjax(advisoryBodyService.editAdvisoryBody(editInfoBo));
} }
/** /**
...@@ -94,6 +100,7 @@ public class AdvisoryBodyManageController extends BaseController { ...@@ -94,6 +100,7 @@ public class AdvisoryBodyManageController extends BaseController {
return R.ok(advisoryBodyCustomFormService.getById(projectKey)); return R.ok(advisoryBodyCustomFormService.getById(projectKey));
} }
//todo:自定义表单表格只存一条json数据改造
/** /**
* 新增咨询机构自定义表单 * 新增咨询机构自定义表单
*/ */
......
...@@ -13,7 +13,7 @@ import java.util.Date; ...@@ -13,7 +13,7 @@ import java.util.Date;
* @time 09:54 * @time 09:54
*/ */
@Data @Data
public class AddAdvisoryBodyBo { public class EditAdvisoryBodyInfoBo {
/** /**
* 是否为新资讯机构 * 是否为新资讯机构
*/ */
...@@ -41,6 +41,7 @@ public class AddAdvisoryBodyBo { ...@@ -41,6 +41,7 @@ public class AddAdvisoryBodyBo {
private String businessScope; private String businessScope;
/** /**
* 合作时间 * 合作时间
* PRD上要求以合作时间作为排序字段,但PM未给出新增合作时间的位置,暂用创建时间作为排序字段
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date cooperatorDate; private Date cooperatorDate;
......
...@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody; import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AddAdvisoryBodyBo; import com.dsk.cscec.domain.bo.EditAdvisoryBodyInfoBo;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo; import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo; import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo; import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
...@@ -34,12 +34,15 @@ public interface AdvisoryBodyService extends IService<AdvisoryBody> { ...@@ -34,12 +34,15 @@ public interface AdvisoryBodyService extends IService<AdvisoryBody> {
AdvisoryBodyExistVo checkAdvisoryBodyExist(String advisoryBodyName); AdvisoryBodyExistVo checkAdvisoryBodyExist(String advisoryBodyName);
/** /**
* 新增咨询机构 * 编辑咨询机构结算信息
* 包含:
* 新增咨询机构(advisory_body表)
* 新增/更新咨询机构与项目关联信息(advisory_body_project表)
* *
* @param addAdvisoryBodyBo 新增信息 * @param editInfoBo 编辑信息
* @return 添加结果 * @return 编辑结果
*/ */
Integer addAdvisoryBody(AddAdvisoryBodyBo addAdvisoryBodyBo); Integer editAdvisoryBody(EditAdvisoryBodyInfoBo editInfoBo);
/** /**
* 每小时更新一次咨询机构经营范围 * 每小时更新一次咨询机构经营范围
......
...@@ -15,7 +15,7 @@ import com.dsk.common.exception.ServiceException; ...@@ -15,7 +15,7 @@ import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.domain.AdvisoryBody; import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.AdvisoryBodyProject; import com.dsk.cscec.domain.AdvisoryBodyProject;
import com.dsk.cscec.domain.bo.AddAdvisoryBodyBo; import com.dsk.cscec.domain.bo.EditAdvisoryBodyInfoBo;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo; import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo; import com.dsk.cscec.domain.vo.AdvisoryBodyExistVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo; import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
...@@ -169,26 +169,59 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv ...@@ -169,26 +169,59 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
} }
/** /**
* 新增咨询机构 * 编辑咨询机构结算信息
* 包含:
* 新增咨询机构(advisory_body表)
* 新增/更新咨询机构与项目关联信息(advisory_body_project表)
* *
* @param addAdvisoryBodyBo 新增信息 * @param editInfoBo 编辑信息
* @return 添加结果 * @return 编辑结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Integer addAdvisoryBody(AddAdvisoryBodyBo addAdvisoryBodyBo) { public Integer editAdvisoryBody(EditAdvisoryBodyInfoBo editInfoBo) {
long advisoryBodyId = IdUtil.getSnowflakeNextId(); long advisoryBodyId = IdUtil.getSnowflakeNextId();
; //如果是新增咨询机构,则新增记录到咨询机构表
//如果是新增咨询机构,则需要新增记录到咨询机构表 if (editInfoBo.getIsNewAdvisoryBody()) {
if (addAdvisoryBodyBo.getIsNewAdvisoryBody()) { AdvisoryBody newAdvisoryBody = BeanUtil.toBean(editInfoBo, AdvisoryBody.class);
AdvisoryBody newAdvisoryBody = BeanUtil.toBean(addAdvisoryBodyBo, AdvisoryBody.class);
newAdvisoryBody.setAdvisoryBodyId(advisoryBodyId); newAdvisoryBody.setAdvisoryBodyId(advisoryBodyId);
//考虑到咨询机构经营范围是列表中的一个查询条件,因此需要单独存入表中
//但考虑到经营范围又来自建设库,进而衍生出数据一致性问题,因此在项目中做了定时任务同步数据
//故无需担心数据一致性问题
baseMapper.insert(newAdvisoryBody); baseMapper.insert(newAdvisoryBody);
//校验咨询机构与项目关联表中是否有记录,无则新增,有则修改
return checkAdvisoryBodyProjectInfoAndEdit(editInfoBo, advisoryBodyId);
} else {
//如果不是新增咨询机构,则校验咨询机构与项目关联表中是否有记录,无则新增,有则修改
return checkAdvisoryBodyProjectInfoAndEdit(editInfoBo, advisoryBodyId);
} }
}
AdvisoryBodyProject advisoryBodyProject = BeanUtil.toBean(addAdvisoryBodyBo, AdvisoryBodyProject.class); /**
advisoryBodyProject.setAdvisoryBodyId(advisoryBodyId); * 校验咨询机构与项目关联表中是否有记录,无则新增,有则修改
return advisoryBodyProjectMapper.insert(advisoryBodyProject); */
private Integer checkAdvisoryBodyProjectInfoAndEdit(EditAdvisoryBodyInfoBo editInfoBo, Long advisoryBodyId) {
AdvisoryBodyProject advisoryBodyProject = advisoryBodyProjectMapper.selectById(editInfoBo.getProjectKey());
if (ObjectUtil.isNotNull(advisoryBodyProject)) {
//修改咨询机构与项目关联信息
AdvisoryBodyProject updateAdvisoryBodyProject = BeanUtil.toBean(editInfoBo, AdvisoryBodyProject.class);
updateAdvisoryBodyProject.setProjectKey(editInfoBo.getProjectKey());
if (editInfoBo.getIsNewAdvisoryBody()) {
//新增的咨询机构不会咨询机构ID,需要到咨询机构表中查询
AdvisoryBody advisoryBody = baseMapper.selectOne(new LambdaQueryWrapper<AdvisoryBody>()
.eq(AdvisoryBody::getAdvisoryBodyCid, editInfoBo.getAdvisoryBodyCid()));
updateAdvisoryBodyProject.setAdvisoryBodyId(advisoryBody.getAdvisoryBodyId());
}else {
updateAdvisoryBodyProject.setAdvisoryBodyId(advisoryBodyProject.getAdvisoryBodyId());
}
return advisoryBodyProjectMapper.updateById(updateAdvisoryBodyProject);
} else {
//新增咨询机构与项目关联信息
AdvisoryBodyProject addAdvisoryBodyProject = BeanUtil.toBean(editInfoBo, AdvisoryBodyProject.class);
addAdvisoryBodyProject.setAdvisoryBodyId(advisoryBodyId);
return advisoryBodyProjectMapper.insert(addAdvisoryBodyProject);
}
} }
/** /**
......
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