| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- package com.ydtech.modules.esm.controller;
- import com.ydtech.core.page.BaseController;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.core.page.PageRequest;
- import com.ydtech.core.page.PageResult;
- import com.ydtech.modules.esm.model.*;
- import com.ydtech.modules.esm.service.*;
- import com.ydtech.utils.idgen.IdGenerate;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- @RestController
- @RequestMapping("esmAgreement")
- public class EsmAgreementController extends BaseController {
- @Autowired
- EsmAgreementService esmAgreementService;
- @Autowired
- EsmAgreementProdService esmAgreementProdService;
- @Autowired
- EsmAgreementProdfeeService esmAgreementProdfeeService;
- @Autowired
- EsmInsCompanyService esmInsCompanyService;
- @Autowired
- EsmAgreementTeamfeeService esmAgreementTeamfeeService;
- @Autowired
- EsmAgreementCheckhistoryService esmAgreementCheckhistoryService;
- // /**
- // * 保存协议信息
- // * @param record
- // * @return
- // */
- // @PostMapping(value="/saveAgreement")
- // public HttpResult save(@RequestBody EsmAgreement record) {
- // Integer result = 0;
- // String msg = "保存成功";
- // if(record.getId()==null || record.getId().isEmpty()){
- //// record.setAgreestatus("1");
- // String id = IdGenerate.nextId();
- // record.setId(id);
- // record.setCreator(getUserName());
- // record.setCreatetime(new Date());
- // record.setUpdateby(getUserName());
- // record.setUpdatetime(new Date());
- // result = esmAgreementService.insertSelective(record);
- //
- // List<EsmAgreementProd> list = record.getAgreementProds();
- // for(EsmAgreementProd prod : list){
- // prod.setId(IdGenerate.nextId());
- // prod.setAgreeid(id);
- // esmAgreementProdService.insertSelective(prod);
- // }
- //
- // } else {
- // record.setCreator(null);
- // record.setUpdateby(getUserName());
- // record.setUpdatetime(new Date());
- // result = esmAgreementService.updateSelective(record);
- //
- // List<EsmAgreementProd> list = record.getAgreementProds();
- // for(EsmAgreementProd prod : list){
- // esmAgreementProdService.updateSelective(prod);
- // }
- // }
- //
- // return HttpResult.ok(msg, result);
- // }
- /**
- * 费用授权
- *
- * @param record
- * @return
- */
- @PostMapping(value = "/saveAgreementAuth")
- public HttpResult save(@RequestBody EsmAgreement record) {
- Integer result = 0;
- String msg = "保存成功";
- List<EsmAgreementProd> list = record.getAgreementProds();
- for (EsmAgreementProd prod : list) {
- esmAgreementProdService.updateSelective(prod);
- result++;
- }
- return HttpResult.ok(msg, result);
- }
- /**
- * 保存协议费用信息
- *
- * @param record
- * @return
- */
- @PostMapping(value = "/saveProdFee")
- public HttpResult saveProdFee(@RequestBody EsmAgreement record) {
- Integer result = 0;
- String msg = "保存成功";
- List<EsmAgreementProd> list = record.getAgreementProds();
- for (EsmAgreementProd prod : list) {
- result = esmAgreementProdService.updateSelective(prod);//设置产品佣金信息
- }
- //设置管理费用信息
- List<EsmAgreementProdfee> prodfees = record.getProdfees();
- for (EsmAgreementProdfee prodfee : prodfees) {
- if (prodfee.getId() == null || prodfee.getId().isEmpty()) {
- prodfee.setId(IdGenerate.nextId());
- prodfee.setCreator(getUserName());
- prodfee.setCreatetime(new Date());
- prodfee.setUpdateby(getUserName());
- prodfee.setUpdatetime(new Date());
- result = esmAgreementProdfeeService.insertSelective(prodfee);
- } else {
- prodfee.setCreator(null);
- prodfee.setUpdateby(getUserName());
- prodfee.setUpdatetime(new Date());
- result = esmAgreementProdfeeService.updateSelective(prodfee);
- }
- }
- return HttpResult.ok(msg, result);
- }
- /**
- * 保存团队费用信息
- *
- * @param record
- * @return
- */
- @PostMapping(value = "/saveTeamFee")
- public HttpResult saveTeamFee(@RequestBody List<EsmAgreementTeamfee> record) {
- Integer result = 0;
- String msg = "保存成功";
- for (EsmAgreementTeamfee teamFee : record) {
- if (teamFee.getId() == null || teamFee.getId().isEmpty()) {
- teamFee.setId(IdGenerate.nextId());
- teamFee.setCreator(getUserName());
- teamFee.setCreatetime(new Date());
- teamFee.setUpdateby(getUserName());
- teamFee.setUpdatetime(new Date());
- result = esmAgreementTeamfeeService.insertSelective(teamFee);//设置团队佣金信息
- } else {
- teamFee.setUpdateby(getUserName());
- teamFee.setUpdatetime(new Date());
- result = esmAgreementTeamfeeService.updateSelective(teamFee);
- }
- }
- return HttpResult.ok(msg, result);
- }
- /**
- * 查询协议团队费用信息
- *
- * @param teamcode
- * @param agreeid
- * @return
- */
- @PostMapping(value = "/queryTeamFee")
- public HttpResult queryTeamFee(@RequestParam String teamcode, @RequestParam String agreeid) {
- StringBuffer whereStr = new StringBuffer(" where 1=1 ");
- if (teamcode == null) teamcode = "";
- whereStr.append(" and teamcode = ?");
- whereStr.append(" and agreeid = ?");
- //传入查询条件
- List<EsmAgreementTeamfee> selectList = esmAgreementTeamfeeService.selectList(whereStr.toString(), new Object[]{teamcode, agreeid});
- return HttpResult.ok(selectList);
- }
- /**
- * 查询团队所属机构相匹配的协议(协议授权机构包含团队机构)
- *
- * @param comcode
- * @return
- */
- @PostMapping(value = "/queryAuthAgreement")
- public HttpResult queryAuthAgreement(@RequestParam String comcode) {
- StringBuffer whereStr = new StringBuffer(" where 1=1 ");
- if (comcode == null) comcode = "99";
- whereStr.append(" and t.id in (SELECT a.agreeid FROM esm_agreement_prod a where a.authcomcode=left(?,length(a.authcomcode)))");
- //传入查询条件
- List<EsmAgreement> selectList = esmAgreementService.selectList(whereStr.toString(), new Object[]{comcode});
- return HttpResult.ok(selectList);
- }
- /**
- * 基础分页查询
- *
- * @param pageRequest
- * @return
- */
- @PostMapping(value = "/findPage")
- public HttpResult findPage(@RequestBody PageRequest pageRequest) {
- // return HttpResult.ok(esmTeamService.findPage(pageRequest));
- int pageNum = pageRequest.getPageNum();
- int pageSize = pageRequest.getPageSize();
- String comcode = pageRequest.getColumnFilterValue(pageRequest, "comcode"); // 所属机构
- String inscode = pageRequest.getColumnFilterValue(pageRequest, "inscode"); // 保险公司
- String insshortcode = pageRequest.getColumnFilterValue(pageRequest, "insshortcode"); // 保险公司简称
- String startdate = pageRequest.getColumnFilterValue(pageRequest, "startdate"); // 开始时间
- String enddate = pageRequest.getColumnFilterValue(pageRequest, "enddate"); // 截止时间
- String status = pageRequest.getColumnFilterValue(pageRequest, "status"); // 协议状态
- String feestatus = pageRequest.getColumnFilterValue(pageRequest, "feestatus"); // 费用状态
- String feeflag = pageRequest.getColumnFilterValue(pageRequest, "feeflag"); // 费用标志
- String productid = pageRequest.getColumnFilterValue(pageRequest, "productid"); // 产品代码
- String cancity = pageRequest.getColumnFilterValue(pageRequest, "cancity"); // 可承保城市
- StringBuffer whereStr = new StringBuffer(" where 1=1");
- ArrayList array = new ArrayList();
- if (comcode != null && comcode.length() > 0) {
- whereStr.append(" and comcode=?");
- array.add(comcode);
- }
- if (inscode != null && inscode.length() > 0) {
- whereStr.append(" and (insure1=? or insure2=? or insure3=? or insure4=?)");
- array.add(inscode);
- array.add(inscode);
- array.add(inscode);
- array.add(inscode);
- }
- if (insshortcode != null && insshortcode.length() > 0) {
- whereStr.append(" and insureshort=?");
- array.add(insshortcode);
- }
- if (status != null && status.length() > 0) {
- //99 时查全部失效协议
- if (status.indexOf("99") >= 0 && status.length() == 2) {
- whereStr.append(" and (current_date > t.enddate or current_date < t.startdate)");
- } else if (status.indexOf("99") >= 0 && status.length() > 2) {
- // whereStr.append(" and agreestatus in (?) and (current_date > t.enddate or current_date < t.startdate)");
- // array.add(status);
- String[] list = status.split(",");
- whereStr.append(" and agreestatus in (");
- for (String s : list) {
- whereStr.append("?,");
- array.add(s);
- }
- whereStr.deleteCharAt(whereStr.length() - 1);
- whereStr.append(") and (current_date > t.enddate or current_date < t.startdate)");
- } else {
- //else if(status.indexOf("99")<0){
- String[] list = status.split(",");
- whereStr.append(" and agreestatus in (");
- for (String s : list) {
- whereStr.append("?,");
- array.add(s);
- }
- whereStr.deleteCharAt(whereStr.length() - 1);
- whereStr.append(") and current_date between t.startdate and t.enddate");
- }
- }
- if (startdate != null && startdate.length() > 0) {
- whereStr.append(" and DATE_FORMAT(createtime, '%Y-%m-%d') >= date ?");
- array.add(startdate);
- }
- if (enddate != null && enddate.length() > 0) {
- whereStr.append(" and DATE_FORMAT(createtime, '%Y-%m-%d') <= date ?");
- array.add(enddate);
- }
- if (productid != null && productid.length() > 0) {
- whereStr.append(" and exists(select 1 from esm_agreement_prod t1 where t1.agreeid=t.id and t1.productid=?)");
- array.add(productid);
- }
- if (cancity != null && cancity.length() > 0) {
- whereStr.append(" and exists(select 1 from esm_agreement_prod t1 where t1.agreeid=t.id and t1.cancity like ?)");
- array.add("%" + cancity + "%");
- }
- if (feestatus != null && feestatus.length() > 0) {
- whereStr.append(" and exists(select 1 from esm_agreement_prodfee t1 where t1.agreementcode=t.id and t1.feestatus=?)");
- array.add(feestatus);
- }
- if ("1".equals(feeflag)) {
- whereStr.append(" and not exists(select 1 from esm_agreement_prodfee t1 where t1.agreementcode=t.id)");
- }
- //需要处理传入的部门
- PageResult pageResult = esmAgreementService.selectPaging(pageNum, pageSize, whereStr.toString(), array.toArray());
- List list = pageResult.getContent();
- List<EsmAgreement> agreeList = new ArrayList<EsmAgreement>();
- for (Object obj : list) {
- EsmAgreement agreement = (EsmAgreement) obj;
- List<EsmAgreementProd> prodList = esmAgreementProdService.selectList(" where agreeid=?", new Object[]{agreement.getId()});
- agreement.setAgreementProds(prodList);
- List<EsmAgreementProdfee> feeList = new ArrayList<EsmAgreementProdfee>();
- for (EsmAgreementProd prod : prodList) {
- List<EsmAgreementProdfee> prodfees = esmAgreementProdfeeService.selectList(" where agreeprodid=?", new Object[]{prod.getId()});
- feeList.addAll(prodfees);
- }
- agreement.setProdfees(feeList);
- agreeList.add(agreement);
- }
- pageResult.setContent(agreeList);
- return HttpResult.ok(pageResult);
- }
- /**
- * 根据主键查询
- *
- * @param id
- * @return
- */
- @GetMapping(value = "/findById")
- public HttpResult findById(@RequestParam String id) {
- EsmAgreement agreement = esmAgreementService.selectByPk(id);
- List<EsmAgreementProd> prodList = esmAgreementProdService.selectList(" where agreeid=?", new Object[]{id});
- List<EsmAgreementProdfee> feeList = new ArrayList<EsmAgreementProdfee>();
- for (EsmAgreementProd prod : prodList) {
- List<EsmAgreementProdfee> prodfees = esmAgreementProdfeeService.selectList(" where agreeprodid=?", new Object[]{prod.getId()});
- feeList.addAll(prodfees);
- }
- agreement.setAgreementProds(prodList);
- agreement.setProdfees(feeList);
- //最新的审核意见
- List<EsmAgreementCheckhistory> checkList = esmAgreementCheckhistoryService.selectList(" where agreeid=? order by checktime desc", new Object[]{id});
- if (checkList.size() > 0) {
- agreement.setRemark(checkList.get(0).getRemark());
- }
- return HttpResult.ok(agreement);
- }
- /**
- * 删除协议
- *
- * @param id
- * @return
- */
- @PostMapping(value = "/deleteAgreement")
- public HttpResult delete(@RequestParam String id) {
- Integer result = 0;
- String msg = "删除成功";
- if (id != null && id.length() > 0) {
- result = esmAgreementService.delete(id);
- //删除协议产品信息
- List<EsmAgreementProd> prodList = esmAgreementProdService.selectList(" where agreeid=?", new Object[]{id});
- List<String> idList = new ArrayList<>();
- for (EsmAgreementProd prod : prodList) {
- idList.add(prod.getId());
- }
- result = esmAgreementProdService.delete(id);
- //删除产品费用信息
- result = esmAgreementProdfeeService.delete(idList);
- } else {
- msg = "id能为空";
- return HttpResult.ok(msg, result);
- }
- return HttpResult.ok(msg, result);
- }
- // @ApiOperation("协议审核 传入协议id和审核状态: 0 申请审核 1 审核通过 2 审核不通过")
- // @GetMapping(value = "/check")
- // public HttpResult check(@RequestParam String id, @RequestParam String status, String remark) {
- // Integer result = 0;
- // String msg = "保存成功";
- //
- // if(id != null && id.length()>0){
- // //更新协议状态
- // EsmAgreement agreement = esmAgreementService.selectByPk(id);
- // if (agreement == null) {
- // msg = "协议不存在";
- // return HttpResult.ok(msg, result);
- // }
- // agreement.setAgreestatus(status);
- // esmAgreementService.updateSelective(agreement);
- //
- // EsmAgreementCheckhistory checkhis = new EsmAgreementCheckhistory();
- // checkhis.setId(IdGenerate.nextId());
- // checkhis.setAgreeid(id);
- // checkhis.setStatus(status);
- // checkhis.setRemark(remark);
- //// checkhis.setCheckid(getUser().getId());
- // checkhis.setCheckname(getUserName());
- // checkhis.setChecktime(new Date());
- //
- // result = esmAgreementCheckhistoryService.insert(checkhis);
- // } else{
- // msg = "协议id不能为空";
- // }
- //
- // return HttpResult.ok(msg, result);
- // }
- }
|