From ac3587fec379a08d94d30b0a13e67e10612b3b06 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期一, 01 四月 2024 15:24:32 +0800
Subject: [PATCH] 提交一把

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java |  187 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 174 insertions(+), 13 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 1398edb..8dceba4 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -12,10 +12,7 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
-import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO;
-import com.doumee.dao.business.dto.ApplyChangeOptDTO;
-import com.doumee.dao.business.dto.CountCyclePriceDTO;
-import com.doumee.dao.business.dto.InsuranceApplyOptDTO;
+import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.join.*;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.CountCyclePriceVO;
@@ -25,6 +22,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.third.SignService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -104,6 +102,8 @@
     @Autowired
     private SolutionsMapper solutionsMapper;
 
+    @Autowired
+    private SmsEmailService smsEmailService;
     @Autowired
     private NoticesMapper noticesMapper;
     /**
@@ -664,7 +664,6 @@
             );
 
             update.setFee(totalFee);
-
         }
     }
 
@@ -1456,7 +1455,7 @@
                 .selectAs(Company::getName,ApplyChange::getCompanyName)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0  )",ApplyChange::getAddNum)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1  )",ApplyChange::getDelNum)
-                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
+                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
                 .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID  )",ApplyChange::getChangeMoney)
                 .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
@@ -1466,17 +1465,29 @@
                 .in(!Objects.isNull(model.getStatus())&&model.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()),ApplyChange::getStatus,
                         Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey(),
                         Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
-//                .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
+                .eq(!Objects.isNull(model.getUnionApplyId()),InsuranceApply::getUnionApplyId,model.getUnionApplyId())
 //                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
-                .eq(!Objects.isNull(model.getType()),Solutions::getType,model.getSolutionType())
+                .eq(!Objects.isNull(model.getSolutionType()),Solutions::getType,model.getSolutionType())
                 .eq(!Objects.isNull(model.getApplyId()),ApplyChange::getApplyId,model.getApplyId())
                 .eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
                 .ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
-                .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
+                .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" )
+                .ge(StringUtils.isNotBlank(model.getApplyStartS()),ApplyChange::getApplyStartTime, model.getApplyStartS()+" 00:00:00" )
+                .le(StringUtils.isNotBlank(model.getApplyStartE()),ApplyChange::getApplyStartTime, model.getApplyStartE()+" 23:59:59" );
         LoginUserInfo loginUserInfo =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         //浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹�
         if(loginUserInfo.getType().equals(Constants.ONE)){
             queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
+        }else if(loginUserInfo.getType().equals(Constants.TWO)){
+            //濡傛灉鏄晢鎴锋煡鐪�
+            if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==0){
+                queryWrapper.exists("select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t1.company_id and cs.shop_id="+loginUserInfo.getCompanyId());
+            }else if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==1){
+                queryWrapper.eq(Solutions::getShopId,loginUserInfo.getCompanyId());
+            }else{
+                queryWrapper.apply("((t1.type=0 and exists(select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t1.company_id and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" +
+                        "t2.type=1 and t2.shop_id="+loginUserInfo.getCompanyId()+"))") ;
+            }
         }else{
             if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
                 queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
@@ -1743,9 +1754,9 @@
         }
         String fileUrl = null;
         if(Constants.equalsObject(model.getType(), Constants.ONE)){
-              fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�");
+              fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","鎶曚繚浼佷笟");
         }else{
-            fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃");
+            fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","鎶曚繚浼佷笟");
         }
         String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
         notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
@@ -1763,8 +1774,6 @@
         update.setEditDate(new Date());
         update.setSignApplyNo(applyNo);
         applyChangeMapper.updateById(update);
-
-
 
         return  link;
     }
@@ -1922,4 +1931,156 @@
         return sumPrice.divide(new BigDecimal(sumDays),2, RoundingMode.HALF_UP).multiply(new BigDecimal(optDays));
     }
 
+    public  ApplyChange  queryApplyChangeData(Integer applyChangeId){
+        ApplyChange model = findDetail(applyChangeId);
+        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getIsdeleted())){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        MPJLambdaWrapper<ApplyChagneDetail> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(ApplyChagneDetail.class);
+        queryWrapper.select("t2.name",ApplyChagneDetail::getWorkTypeName);
+        queryWrapper.select("t3.name",ApplyChagneDetail::getDuName);
+        queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName);
+        queryWrapper.select("t5.name",ApplyChagneDetail::getOldDuName);
+        queryWrapper.selectAs(Member::getName,ApplyChagneDetail::getMemberName);
+        queryWrapper.selectAs(Member::getSex,ApplyChagneDetail::getSex);
+        queryWrapper.selectAs(Member::getIdcardNo,ApplyChagneDetail::getMemberIdcardNo);
+        queryWrapper.leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId);
+        queryWrapper.eq(ApplyChagneDetail::getApplyChangeId,applyChangeId);
+        List<ApplyChagneDetail> list = applyChangeDetailJoinMapper.selectJoinList(ApplyChagneDetail.class, queryWrapper);
+        for (ApplyChagneDetail applyChagneDetail:list) {
+            applyChagneDetail.setAge(Constants.getAgeByIdCard(applyChagneDetail.getMemberIdcardNo()));
+        }
+        if(CollectionUtils.isNotEmpty(list)){
+            model.setAddDetailList(list.stream().filter(m->m.getType().equals(Constants.ZERO)).collect(Collectors.toList()));
+            model.setDelDetailList(list.stream().filter(m->m.getType().equals(Constants.ONE)).collect(Collectors.toList()));
+            model.setChangeDetailList(list.stream().filter(m->m.getType().equals(Constants.TWO)).collect(Collectors.toList()));
+        }
+        return model;
+    }
+
+    /**
+     * 浜哄憳鍚嶅崟绛剧珷
+     */
+    @Override
+    public String getChangeMemberListOnlineSignLink(SmsCheckDTO smsCheckDTO) {
+        if(Objects.isNull(smsCheckDTO)
+                || Objects.isNull(smsCheckDTO.getBusinessId())
+                || StringUtils.isBlank(smsCheckDTO.getCode())
+        ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        //楠岃瘉 楠岃瘉鐮�
+        if(!debugModel){
+            smsEmailService.validateCode(smsCheckDTO.getCode());
+        }
+        ApplyChange model = this.queryApplyChangeData(smsCheckDTO.getBusinessId());
+        if(Objects.isNull(model)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠姞鍑忎繚淇℃伅");
+        }
+        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getIsdeleted())){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.ZERO,model.getStatus())){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔绛剧珷鎿嶄綔锛�");
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Company company = user.getCompany();
+        if(debugModel){
+            company = companyMapper.selectById(model.getCompanyId());
+        }
+        if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.THREE)){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
+        }
+        Solutions solutions = solutionsMapper.selectById(model.getSolutionsId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
+        if(solutions.getType().equals(Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝闈炲鎵樹繚鏂规淇濆崟锛屾棤娉曡繘琛岃鎿嶄綔!");
+        }
+        String fileUrl = null;
+        if(Constants.equalsObject(model.getType(), Constants.ONE)){
+            fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","琚繚闄╀汉");
+        }else{
+            fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","琚繚闄╀汉");
+        }
+        String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
+        notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
+        String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl);
+        if(StringUtils.isBlank(applyNo) ){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        String link = signService.signLink(applyNo,company.getName(),company.getCode());
+        if(StringUtils.isBlank(link) ){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        ApplyChange update= new ApplyChange();
+        update.setId(model.getId());
+        update.setEditor(user.getId());
+        update.setEditDate(new Date());
+        update.setSignMemberListNo(applyNo);
+        applyChangeMapper.updateById(update);
+        return  link;
+    }
+
+
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer check(ApplyChange applyChange) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!user.getType().equals(Constants.TWO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风鏃犳硶杩涜璇ユ搷浣�");
+        }
+        if(applyChange.getId() == null){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        ApplyChange model = applyChangeJoinMapper.selectJoinOne(ApplyChange.class,
+                new MPJLambdaWrapper<ApplyChange>()
+                        .selectAll(ApplyChange.class)
+                        .selectAs(InsuranceApply::getSolutionId,ApplyChange::getSolutionsId)
+                        .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
+                        .eq(ApplyChange::getId,applyChange.getId())
+                        .last(" limit 1")
+        );
+
+        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        Solutions solutions = solutionsMapper.selectById(model.getSolutionsId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
+        if(solutions.getType().equals(Constants.ZERO)){
+           throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐩翠繚鍗曟嵁鏃犳硶杩涜璇ユ搷浣�");
+        }else{
+            if(!Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.COMPANY_SIGN.getKey())){
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+            }
+        }
+
+        ApplyChange update = new ApplyChange();
+        update.setEditDate(new Date());
+        update.setEditor(user.getId());
+        update.setCheckDate(update.getEditDate());
+        update.setCheckInfo(applyChange.getCheckInfo());
+        update.setCheckUserId(user.getId());
+        update.setId(model.getId());
+        if(applyChange.getDealBackApply() ==1){
+            //濡傛灉鏄笉閫氳繃
+            update.setStatus(Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey());
+        }else{
+            update.setStatus(Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS.getKey());
+        }
+        applyChangeJoinMapper.updateById(update);
+
+        return  1;
+
+    }
+
 }

--
Gitblit v1.9.3