111
k94314517
2024-02-21 c421d2deeec5530d8060d8e06b5b86bb02e72dbf
111
已添加1个文件
已修改29个文件
667 ■■■■ 文件已修改
server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/CompanyController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/NoticesController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/task/ScheduleTool.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/Member.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/vo/ApplyNoticeVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/NoticesService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 165 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -82,6 +82,13 @@
        return ApiResponse.success(applyDetailService.findListForCompany(applyDetailPageDTO));
    }
    @ApiOperation("查询全部")
    @PostMapping("/list")
    @RequiresPermissions("business:applydetail:query")
    public ApiResponse<List<ApplyDetail>> list (@RequestBody  ApplyDetail pageWrap) {
        return ApiResponse.success(applyDetailService.findList(pageWrap));
    }
    @ApiOperation("导出在保人员详单Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:applydetail:exportExcel")
server/company/src/main/java/com/doumee/api/business/CompanyController.java
@@ -3,6 +3,8 @@
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
@@ -91,4 +93,14 @@
        return ApiResponse.success(companyService.findById(id));
    }
    @ApiOperation("企业证件下载")
    @PostMapping("/exportFiles")
    @RequiresPermissions("business:company:exportExcel")
    public void exportFiles(@RequestBody Company company,HttpServletResponse response) {
        if(company.getId() == null){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        companyService.exportFiles(company.getId(),response);
    }
}
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -143,5 +143,11 @@
    }
    @ApiOperation("测试生成待续保通知")
    @GetMapping("/generateNotice")
    public ApiResponse generateNotice() {
        insuranceApplyService.generateNotice();
        return ApiResponse.success(null);
    }
}
server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java
@@ -79,9 +79,11 @@
    @PostMapping("/findList")
    @RequiresPermissions("business:memberinsurance:query")
    public ApiResponse<List<MemberInsurance>> findList (@RequestBody MemberInsurance memberInsurance) {
        return ApiResponse.success(memberInsuranceService.findList(memberInsurance));
        return ApiResponse.success(memberInsuranceService.getList(memberInsurance));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:memberinsurance:exportExcel")
server/company/src/main/java/com/doumee/api/business/NoticesController.java
@@ -9,6 +9,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Notices;
import com.doumee.dao.business.vo.ApplyNoticeVO;
import com.doumee.service.business.NoticesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -93,4 +94,22 @@
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(noticesService.findById(id));
    }
    @ApiOperation("查询投保单提醒数量")
    @GetMapping("/getApplyNotice")
    public ApiResponse<ApplyNoticeVO> getApplyNotice() {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        return ApiResponse.success(noticesService.getApplyNotice(loginUserInfo.getCompanyId()));
    }
    @ApiOperation("投保单关闭提醒")
    @GetMapping("/closeApplyNotice")
    public ApiResponse closeApplyNotice(@RequestParam Integer type) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        noticesService.closeApplyNotice(loginUserInfo.getCompanyId(),type);
        return ApiResponse.success("操作成功");
    }
}
server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
@@ -67,13 +67,13 @@
        applyChagneDetailService.updateById(applyChagneDetail);
        return ApiResponse.success(null);
    }
//
@ApiOperation("分页查询")
@PostMapping("/page")
@RequiresPermissions("business:applychagnedetail:query")
public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) {
    return ApiResponse.success(applyChagneDetailService.findPageForCompany(pageWrap));
}
    //
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:applychagnedetail:query")
    public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) {
        return ApiResponse.success(applyChagneDetailService.findPageForCompany(pageWrap));
    }
    @ApiOperation("分页查询")
    @PostMapping("/list")
server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -83,7 +83,8 @@
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:applydetail:exportExcel")
    public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(ApplyDetail.class).exportWithFirstAndEnd(applyDetailService.findPageForCompany(pageWrap).getRecords(), pageWrap.getModel().getCompanyName()+"_"+pageWrap.getModel().getSolutionName()+".xlsx","在保人员名单",null, response);
        ExcelExporter.build(ApplyDetail.class).exportWithFirstAndEnd(applyDetailService.findPageForCompany(pageWrap).getRecords(),
                 pageWrap.getModel().getSolutionName(),"在保人员名单",null, response);
    }
    @ApiOperation("根据ID查询")
server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java
@@ -79,11 +79,25 @@
        return ApiResponse.success(memberInsuranceService.findPage(pageWrap));
    }
//    @ApiOperation("导出Excel")
//    @PostMapping("/exportExcel")
//    @RequiresPermissions("business:memberinsurance:exportExcel")
//    public void exportExcel (@RequestBody PageWrap<MemberInsurance> pageWrap, HttpServletResponse response) {
//        ExcelExporter.build(MemberInsurance.class).export(memberInsuranceService.findPage(pageWrap).getRecords(), "员工投保明细记录", response);
//    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:memberinsurance:exportExcel")
    public void exportExcel (@RequestBody PageWrap<MemberInsurance> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(MemberInsurance.class).export(memberInsuranceService.findPage(pageWrap).getRecords(), "员工投保明细记录", response);
        List<MemberInsurance> list = memberInsuranceService.findPage(pageWrap).getRecords();
        for (int i = 0; i < list.size(); i++) {
            MemberInsurance memberInsurance  = list.get(i);
            memberInsurance.setSn(i+1);
        }
        ExcelExporter.build(MemberInsurance.class).exportWithFirstAndEnd(list,
                "人员投保详单_姓名:"+pageWrap.getModel().getMemberName() +"_身份证号:"+pageWrap.getModel().getIdcardNo(),
                "人员投保详单_姓名:"+pageWrap.getModel().getMemberName() +"_身份证号:"+pageWrap.getModel().getIdcardNo(),null, response);
    }
    @ApiOperation("根据ID查询")
server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -77,4 +77,17 @@
    }
    /**
     * å®šæ—¶æ›´æ–°ç”Ÿæˆç»­ä¿æé†’
     * @throws Exception
     */
    @Scheduled(cron = "0 1 00 * * ?")
    public void generateNotice(){
        log.info("==============定时更新生成续保提醒=======start======");
        insuranceApplyService.generateNotice();
        log.info("==============定时更新生成续保提醒======end=======");
    }
}
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1010,7 +1010,8 @@
        TWO(2, "待出单","待审批","待审批","","",""),
        THREE(3, "申请退回","申请退回","申请退回","","",""),
        FOUR(4, "已退回","已退回","已退回","","",""),
        FIVE(5, "申请驳回","申请驳回","申请驳回","","","")
        FIVE(5, "申请驳回","申请驳回","申请驳回","","",""),
        SIX(6, "","","","","","")
        ;
        // æˆå‘˜å˜é‡
server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
@@ -116,6 +116,12 @@
    @ApiModelProperty(value = "派遣单位名称")
    @TableField(exist = false)
    private String oldDuName;
    @ApiModelProperty(value = "方案名称")
    @TableField(exist = false)
    private String solutionsName;
    @ApiModelProperty(value = "保单号")
    @TableField(exist = false)
    private String applyCode;
    @ApiModelProperty(value = "工种名称")
    @TableField(exist = false)
server/service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -47,22 +47,22 @@
    private Integer sortnum;
    @ApiModelProperty(value = "姓名")
    @ExcelColumn(name="员工名称",index = 2)
    @ExcelColumn(name="员工名称",index = 2,width = 6)
    private String name;
    @ApiModelProperty(value = "投保申请编码(关联insurance_apply", example = "1")
    private Integer applyId;
    @ApiModelProperty(value = "实际保险生效止期")
    @ExcelColumn(name="保险生效止期",index = 9)
    @ExcelColumn(name="保险生效止期",index = 9,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    @ApiModelProperty(value = "实际保险生效起期")
    @ExcelColumn(name="保险生效起期",index = 8)
    @ExcelColumn(name="保险生效起期",index = 8,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    @ApiModelProperty(value = "身份证号码")
    @ExcelColumn(name="身份证号",index = 3)
    @ExcelColumn(name="身份证号",index = 3,width = 12)
    private String idcardNo;
    @ApiModelProperty(value = "企业编码(关联company)", example = "1")
@@ -78,17 +78,17 @@
    private Integer sex;
    @ApiModelProperty(value = "保险方案名称")
    @ExcelColumn(name="保险方案",index = 5)
    @ExcelColumn(name="保险方案",index = 5,width = 10)
    @TableField(exist = false)
    private String solutionName;
    @ApiModelProperty(value = "派遣单位名称")
    @ExcelColumn(name="派遣单位",index = 6)
    @ExcelColumn(name="派遣单位",index = 6,width = 10)
    @TableField(exist = false)
    private String duName;
    @ApiModelProperty(value = "所属工种名称")
    @ExcelColumn(name="所属工种",index = 7)
    @ExcelColumn(name="所属工种",index = 7,width = 20)
    @TableField(exist = false)
    private String workTypeName;
@@ -97,17 +97,17 @@
    private String companyName;
    @ApiModelProperty(value = "保险状态:1=保障中;2=不在保")
    @ExcelColumn(name="保险状态",index = 1,valueMapping = "1=保障中;2=不在保;")
    @ExcelColumn(name="保险状态",index = 1,valueMapping = "1=保障中;2=不在保;",width = 6)
    @TableField(exist = false)
    private Integer solutionsStatus;
    @ApiModelProperty(value = "年龄")
    @ExcelColumn(name="年龄",index = 4)
    @ExcelColumn(name="年龄",index = 4,width = 4)
    @TableField(exist = false)
    private Long age;
    @ApiModelProperty(value = "序号", example = "1")
    @ExcelColumn(name="序号",index = 0)
    @ExcelColumn(name="序号",index = 0,width = 4)
    @TableField(exist = false)
    private Integer sn;
server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java
@@ -57,6 +57,7 @@
        this.creator = sysUserId;
        this.isdeleted = Constants.ZERO;
        this.applyId = applyChange.getApplyId();
        this.applyChangeId = applyChange.getId();
        this.memberId = applyChangeDetail.getMemberId();
        this.endTime = applyChangeDetail.getEndTime();
        this.startTime = applyChangeDetail.getStartTime();
@@ -65,9 +66,9 @@
        this.worktypeId = applyChangeDetail.getWorktypeId();
        this.fee = applyChangeDetail.getFee();
        this.sex = applyChangeDetail.getSex();
        this.bdCode = applyChange.getApplyCode();
        this.pdCode = applyChange.getCode();
        this.solutionName = applyChange.getSolutionsName();
        this.bdCode = applyChangeDetail.getApplyCode();
        this.pdCode = applyChange.getValidCode();
        this.solutionName = applyChangeDetail.getSolutionsName();
        this.worktypeName = applyChangeDetail.getWorkTypeName();
        this.duName = applyChangeDetail.getDuName();
//        this.relationType = Constants.ONE;
@@ -109,11 +110,11 @@
    private Integer memberId;
    @ApiModelProperty(value = "实际保险生效止期")
    @ExcelColumn(name="保险生效止期",index = 7)
    @ExcelColumn(name="保险生效止期",index = 7,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    @ApiModelProperty(value = "实际保险生效起期")
    @ExcelColumn(name="保险生效起期",index = 6)
    @ExcelColumn(name="保险生效起期",index = 6,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    @ApiModelProperty(value = "身份证号码")
@@ -141,33 +142,34 @@
    private Integer sex;
    @ApiModelProperty(value = "保单号")
    @ExcelColumn(name="保单号",index = 2)
    @ExcelColumn(name="保单号",index = 2,width = 5)
    private String bdCode;
    @ApiModelProperty(value = "批单号")
    @ExcelColumn(name="批单号",index = 3)
    @ExcelColumn(name="批单号",index = 3,width = 5)
    private String pdCode;
    @ApiModelProperty(value = "保险方案名称")
    @ExcelColumn(name="保险方案",index = 1)
    @ExcelColumn(name="保险方案",index = 1,width = 6)
    private String solutionName;
    @ApiModelProperty(value = "批单申请编码", example = "1")
    private Integer applyChangeId;
    @ApiModelProperty(value = "工种名称")
    @ExcelColumn(name="工种名称",index = 5)
    @ExcelColumn(name="工种名称",index = 5,width = 6)
    private String worktypeName;
    @ApiModelProperty(value = "派遣单位名称")
    @ExcelColumn(name="派遣单位",index = 4)
    @ExcelColumn(name="派遣单位",index = 4,width = 6)
    private String duName;
    @ApiModelProperty(value = "序号", example = "1")
    @ExcelColumn(name="序号",index = 0)
    @ExcelColumn(name="序号",index = 0,width = 3)
    @TableField(exist = false)
    private Integer sn;
    @ApiModelProperty(value = "关联明细主键", example = "1")
@@ -177,6 +179,12 @@
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "筛选状态:0=未开始;1=已开始(包括已过期)", example = "1")
    @TableField(exist = false)
    private Integer status;
//    @ApiModelProperty(value = "关联明细类型:0=投保申请;1=加减保/换厂", example = "1")
//    @ExcelColumn(name="关联明细类型:0=投保申请;1=加减保/换厂")
//    private Integer relationType;
server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
@@ -226,6 +226,10 @@
    @TableField(exist = false)
    private Date baoxianEndTime;
    @ApiModelProperty(value = "资料完成时间")
    @TableField(exist = false)
    private Date finishDate;
    @ApiModelProperty(value = "方案基表编码(关联solutions)", example = "1")
    @TableField(exist = false)
server/service/src/main/java/com/doumee/dao/business/vo/ApplyNoticeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.doumee.dao.business.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/2/21 14:13
 */
@Data
public class ApplyNoticeVO {
    @ApiModelProperty(value = "待签署数量")
    private Integer  waitSignNum;
    @ApiModelProperty(value = "续保数量")
    private Integer  renewalNum;
}
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -132,4 +132,6 @@
    void dealWaitSignedData();
    CountCyclePriceVO getCountCyclePriceVO(CountCyclePriceDTO countCyclePriceDTO);
    void generateNotice();
}
server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java
@@ -78,7 +78,9 @@
     * @return List<MemberInsurance>
     */
    List<MemberInsurance> findList(MemberInsurance memberInsurance);
    List<MemberInsurance> getList(MemberInsurance memberInsurance);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
server/service/src/main/java/com/doumee/service/business/NoticesService.java
@@ -3,6 +3,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Notices;
import com.doumee.dao.business.vo.ApplyNoticeVO;
import java.util.List;
/**
@@ -94,4 +96,10 @@
     * @return long
     */
    long count(Notices notices);
    ApplyNoticeVO getApplyNotice(Integer companyId);
    void closeApplyNotice(Integer companyId,Integer type);
}
server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
@@ -93,6 +93,7 @@
    public List<ApplyChagneDetail> findList(ApplyChagneDetail applyDetailPageDTO) {
        MPJLambdaWrapper<ApplyChagneDetail> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(applyDetailPageDTO );
        queryWrapper.selectAll(ApplyChagneDetail.class);
        queryWrapper.select("t2.name",ApplyChagneDetail::getWorkTypeName);
        queryWrapper.select("t3.name",ApplyChagneDetail::getDuName);
        queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName);
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -82,6 +82,9 @@
    private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
    @Autowired
    private ApplyChangeDetailJoinMapper applyChangeDetailJoinMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
@@ -164,6 +167,11 @@
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~");
        }
        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId());
        if(Objects.isNull(insuranceApply)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到保单信息");
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        ApplyChange update = new ApplyChange();
        update.setEditDate(new Date());
@@ -175,8 +183,8 @@
        update.setCheckUserId(user.getId());
        update.setId(model.getId());
        update.setValidCode(param.getValidCode());
        update.setApplyStartTime(model.getApplyStartTime());
        applyChangeMapper.updateById(update);
        update.setApplyStartTime(param.getApplyStartTime());
        update.setCode(model.getCode());
        param.getPidanFile().setIsdeleted(Constants.ZERO);
        param.getPidanFile().setCreator(user.getId());
@@ -187,6 +195,8 @@
        multifileMapper.insert(param.getPidanFile());
        update.setApplyId(model.getApplyId());
        if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
            //如果是加减保申请 å¤„理加减保明细数据
            dealDetailsValidTime(update);
@@ -194,6 +204,8 @@
            //如果是换厂申请 å¤„理明细数据
            dealDetailsDUdata(update);
        }
        applyChangeMapper.updateById(update);
//        if(1==1){
//            throw new BusinessException(ResponseStatus.DATA_EMPTY);
@@ -278,21 +290,38 @@
                        .selectAll(ApplyChagneDetail.class)
                        .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit)
                        .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice)
                        .selectAs(Solutions::getName,ApplyChagneDetail::getSolutionsName)
                        .selectAs(Worktype::getName,ApplyChagneDetail::getWorkTypeName)
                        .selectAs(DispatchUnit::getName,ApplyChagneDetail::getDuName)
                  .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
                  .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
                  .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
                        .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
                        .selectAs(Member::getName, ApplyChagneDetail::getMemberName)
                        .selectAs(InsuranceApply::getCode,ApplyChagneDetail::getApplyCode)
                        .leftJoin(Member.class, Member::getId, ApplyChagneDetail::getMemberId)
                        .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
                      .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
                      .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
                    .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
                    .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId)
                  .eq(ApplyChagneDetail::getApplyChangeId,update.getId())
                  .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) );
        if(detailList ==null || detailList.size()==0){
            return;
        }
        //实际批单生效日期
        Date applyStartTime = DateUtil.getMontageDate(update.getApplyStartTime(),1);
        for(ApplyChagneDetail detail : detailList){
            //查询减保人员是否存在 å†²çªçš„ ä¿å•明细数据
            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
                    .lambda()
                    .eq(ApplyDetail::getApplyId,update.getApplyId())
                    .eq(ApplyDetail::getIdcardNo,detail.getIdcardNo())
                    .le(ApplyDetail::getStartTime,applyStartTime)
                    .ge(ApplyDetail::getEndTime,applyStartTime)
            )<=Constants.ZERO){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "当前保单下,换厂人员【" + detail.getMemberName() + "】未查询到符合批单日期的数据");
            }
            //查询员工是在主单下 æ˜¯å¦å­˜åœ¨ç”Ÿæ•ˆä¸­çš„æ•°æ®
            ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
                    .eq(ApplyDetail::getApplyId, update.getApplyId())
@@ -337,12 +366,16 @@
                applyDetail.setCreateDate(new Date());
                applyDetail.setCreator(update.getEditor());
                applyDetail.setMemberId(oldModel.getMemberId());
                applyDetail.setIdcardNo(detail.getIdcardNo());
                applyDetail.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
                applyDetail.setMemberName(detail.getMemberName());
                applyDetail.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(),1));
                applyDetail.setEndTime(endDate);
                applyDetail.setDuId(detail.getDuId());
                applyDetail.setWorktypeId(detail.getWorktypeId());
                applyDetail.setIdcardNo(oldModel.getIdcardNo());
                applyDetail.setFee(fee.subtract(oldFee));
                applyDetail.setIsdeleted(Constants.ZERO);
                if(flag){
                    applyDetail.setCurrentFee(oldCurrentFee.multiply(oldFee));
                }else{
@@ -385,6 +418,11 @@
            member.setStartTime(detail.getStartTime());
            member.setEndTime(detail.getEndTime());
            memberMapper.updateById(member);
            applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
                    .set(ApplyChagneDetail::getStartTime,DateUtil.getMontageDate(update.getApplyStartTime(), 1))
                    .eq(ApplyChagneDetail::getId,detail.getId())
            );
        }
    }
    /**
@@ -395,11 +433,16 @@
        List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,
                new MPJLambdaWrapper<ApplyChagneDetail>()
                        .selectAll(ApplyChagneDetail.class)
                        .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
                        .selectAs(Solutions::getTimeUnit, ApplyChagneDetail::getSolutionTimeUnit)
                        .selectAs(Solutions::getPrice, ApplyChagneDetail::getSolutionPrice)
                        .selectAs(Worktype::getName, ApplyChagneDetail::getWorkTypeName)
                        .selectAs(DispatchUnit::getName, ApplyChagneDetail::getDuName)
                        .selectAs(Member::getName, ApplyChagneDetail::getMemberName)
                        .selectAs(Solutions::getName,ApplyChagneDetail::getSolutionsName)
                        .selectAs(InsuranceApply::getCode,ApplyChagneDetail::getApplyCode)
                        .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
                        .leftJoin(Member.class, Member::getId, ApplyChagneDetail::getMemberId)
                        .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
                        .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
                        .leftJoin(Worktype.class, Worktype::getId, ApplyChagneDetail::getWorktypeId)
@@ -416,7 +459,6 @@
        //投保记录 åŠ ä¿æ•°æ®åŠ å…¥æ–°æ•°æ®  å‡ä¿æ•°æ® ä¿®æ”¹è€æ•°æ®
        List<MemberInsurance> memberInsuranceList = new ArrayList<>();
        //加保业务 ä½¿ç”¨çš„加保金额
        ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO_add = new ApplyChangeCyclePriceDTO();
        applyChangeCyclePriceDTO_add.setApplyId(update.getApplyId());
@@ -432,6 +474,19 @@
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到员工数据");
            }
            if (Constants.equalsInteger(detail.getType(), Constants.ZERO)) {
                //查询加保人员是否存在 å†²çªçš„ ä¿å•明细数据
                if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
                        .lambda()
                        .eq(ApplyDetail::getApplyId,update.getApplyId())
                        .eq(ApplyDetail::getIdcardNo,detail.getIdcardNo())
                        .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(update.getApplyStartTime(),1))
                        .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(),3))
                )>Constants.ZERO){
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "当前保单下,加保人员【" + detail.getMemberName() + "】存在日期冲突的数据");
                }
                //加保
                ApplyDetail add = new ApplyDetail();
                add.setApplyId(update.getApplyId());
@@ -443,9 +498,12 @@
                add.setMemberId(detail.getMemberId());
                add.setMemberName(detail.getMemberName());
                add.setWorktypeId(detail.getWorktypeId());
                add.setIsdeleted(Constants.ZERO);
                add.setIdcardNo(detail.getIdcardNo());
                add.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
                add.setMemberName(detail.getMemberName());
                add.setDuId(detail.getDuId());
                add.setStartTime(update.getApplyStartTime());
                add.setEndTime(detail.getEndTime());
                add.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(), 1));
                add.setEndTime(DateUtil.getMontageDate(detail.getEndTime(), 2));
                add.setFee(countCyclePriceVO_add.getCyclePrice());
@@ -464,6 +522,13 @@
                MemberInsurance memberInsurance = new MemberInsurance(detail, update, update.getEditor(), add.getId());
                memberInsuranceList.add(memberInsurance);
                applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
                        .set(ApplyChagneDetail::getFee,add.getFee())
                        .set(ApplyChagneDetail::getStartTime,DateUtil.getMontageDate(update.getApplyStartTime(), 1))
                        .eq(ApplyChagneDetail::getId,detail.getId())
                );
            } else {
                    //减保操作
                    //查询员工是在主单下 æ˜¯å¦å­˜åœ¨ç”Ÿæ•ˆä¸­çš„æ•°æ®
@@ -507,6 +572,14 @@
                            .set(MemberInsurance::getEndTime, update.getApplyStartTime())
                            .eq(MemberInsurance::getRelationId, oldModel.getId())
                    );
                    //修改业务明细行数据实际批单日期
                    applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
                            .set(ApplyChagneDetail::getFee,updateFee)
                            .set(ApplyChagneDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(), 3))
                            .eq(ApplyChagneDetail::getId,detail.getId())
                    );
            }
            member.setApplyId(update.getApplyId());
@@ -529,6 +602,9 @@
                    .set(InsuranceApply::getEditDate, update.getEditDate())
                    .eq(InsuranceApply::getId, update.getApplyId())
            );
            update.setFee(totalFee);
        }
    }
@@ -684,12 +760,6 @@
        applyChangeFee.setId(applyChange.getId());
        applyChangeFee.setFee(fee);
        applyChangeMapper.updateById(applyChangeFee);
//        if(1==1){
//            throw new BusinessException(ResponseStatus.DATA_EMPTY);
//        }
        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_COMPANY_COMMIT;
        String info =applyLogType.getInfo();
@@ -887,6 +957,18 @@
            if (Objects.isNull(applyChagneDetail.getMemberId())) {
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "减保人员【" + applyChagneDetail.getMemberName() + "】必填项缺失");
            }
            //查询减保人员是否存在 å†²çªçš„ ä¿å•明细数据
            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
                    .lambda()
                    .eq(ApplyDetail::getApplyId,applyChange.getApplyId())
                    .eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo())
                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
            )<=Constants.ZERO){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "当前保单下,减保人员【" + applyChagneDetail.getMemberName() + "】未查询到符合批单日期的数据");
            }
            Member member = memberMapper.selectById(applyChagneDetail.getMemberId());
            if (Objects.isNull(member)) {
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "减保人员【" + applyChagneDetail.getMemberName() + "】未查询到系统人员信息");
@@ -905,6 +987,8 @@
            List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                    .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
                    .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
                    .orderByDesc(ApplyDetail::getCreateDate));
            if (applyDetailList.size() > Constants.ONE) {
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "减保人员【" + applyChagneDetail.getMemberName() + "】保单信息异常,存在多条数据");
@@ -944,13 +1028,25 @@
     * @param duSolutionList
     * @param loginUserInfo
     */
    public void addChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> addDetailList,List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList,InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal detailFee){
    public void addChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> addDetailList,
                                List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList,
                                InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal detailFee){
        for (ApplyChagneDetail applyChagneDetail : addDetailList) {
            if (    Objects.isNull(applyChagneDetail.getDuId())
                    || Objects.isNull(applyChagneDetail.getWorktypeId())
                    || StringUtils.isBlank(applyChagneDetail.getIdcardNo())
            ) {
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "加保人员【" + applyChagneDetail.getMemberName() + "】必填项缺失");
            }
            //查询加保人员是否存在 å†²çªçš„ ä¿å•明细数据
            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
                    .lambda()
                    .eq(ApplyDetail::getApplyId,applyChange.getApplyId())
                    .eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo())
                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
            )>Constants.ZERO){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "当前保单下,加保人员【" + applyChagneDetail.getMemberName() + "】存在日期冲突的数据");
            }
            applyChagneDetail.setCreateDate(new Date());
@@ -1069,6 +1165,18 @@
            ) {
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "换厂人员【" + applyChagneDetail.getMemberName() + "】必填项缺失");
            }
            //查询换厂人员是否存在  æœ‰æ•ˆçš„保单明细数据
            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
                    .lambda()
                    .eq(ApplyDetail::getApplyId,applyChange.getApplyId())
                    .eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo())
                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
            )<=Constants.ZERO){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "当前保单下,换厂人员【" + applyChagneDetail.getMemberName() + "】未查询到符合批单日期的数据");
            }
            Member member = memberMapper.selectById(applyChagneDetail.getMemberId());
            if (Objects.isNull(member)) {
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "换厂人员【" + applyChagneDetail.getMemberName() + "】未查询到系统人员信息");
@@ -1087,7 +1195,8 @@
            List<ApplyDetail>  applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                    .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
                    .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
                    .ge(ApplyDetail::getEndTime, new Date()));
                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1)));
            if(applyDetailList.size()>Constants.ONE){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "换厂人员【" + applyChagneDetail.getMemberName() + "】保单信息异常,存在多条数据");
            }else if(applyDetailList.size()==Constants.ZERO){
@@ -1249,6 +1358,7 @@
                        Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
//                .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
//                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
                .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" );
@@ -1264,13 +1374,16 @@
            }
            queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        queryWrapper.orderByDesc(ApplyDetail::getCreateDate);
//        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
//            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
//                queryWrapper.orderByDesc(sortData.getProperty());
//            } else {
//                queryWrapper.orderByAsc(sortData.getProperty());
//            }
//        }
        PageData<ApplyChange> pageData = PageData.from(applyChangeJoinMapper.selectJoinPage(page,ApplyChange.class, queryWrapper));
        return pageData;
    }
@@ -1328,7 +1441,7 @@
            //删除其他待办
            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,applyChange.getId()));
            Notices notices = new Notices(noticeObjectType,Constants.ZERO,applyChange.getId(),solutions.getName(),
                    applyChange.getCompanyId(), Constants.NoticeType.THREE);
                    insuranceApply.getCompanyId(), Constants.NoticeType.THREE);
            noticesMapper.insert(notices);
@@ -1382,7 +1495,9 @@
        applyChangeMapper.updateById(applyChange);
        String info = applyLogType.getInfo();
        info = info.replace("${param}", applyChangeOptDTO.getOptIllustration());
        if(StringUtils.isNotBlank(applyChangeOptDTO.getOptIllustration())){
            info = info.replace("${param}", applyChangeOptDTO.getOptIllustration());
        }
        ApplyLog log = new ApplyLog(applyChange,applyLogType.getName(),info,applyChange.getId(),applyLogType.getKey(), null, null);
        applyLogMapper.insert(log);
    }
@@ -1579,7 +1694,7 @@
                .selectAs(InsuranceApply::getCompanyId,ApplyChange::getCompanyId)
                .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime)
                .selectAs(InsuranceApply::getStartTime,ApplyChange::getEndTime)
                .selectAs(InsuranceApply::getEndTime,ApplyChange::getEndTime)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -200,10 +200,15 @@
        queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName);
        queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo);
        queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName);
        queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName);
        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
        queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
        queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId);
        queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
        ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel();
        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId());
        queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                        &&!applyDetailPageDTO.getApplyStatus().equals(Constants.ZERO),
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -810,13 +810,16 @@
        if (pageWrap.getModel().getBaseId() != null) {
            queryWrapper.eq(DispatchUnit::getBaseId, pageWrap.getModel().getBaseId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        queryWrapper.orderByAsc(DispatchUnit::getUnitStatus);
        queryWrapper.orderByAsc(DispatchUnit::getWorktypeStatus);
        queryWrapper.orderByDesc(DispatchUnit::getCreateDate);
//        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
//            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
//                queryWrapper.orderByDesc(sortData.getProperty());
//            } else {
//                queryWrapper.orderByAsc(sortData.getProperty());
//            }
//        }
        PageData<DispatchUnit> pageData = PageData.from(dispatchUnitJoinMapper.selectJoinPage(page,DispatchUnit.class, queryWrapper));
        return pageData;
    }
server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java
@@ -6,8 +6,12 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.DispatchUnitMapper;
import com.doumee.dao.business.DuWorktypeMapper;
import com.doumee.dao.business.WorktypeMapper;
import com.doumee.dao.business.model.DispatchUnit;
import com.doumee.dao.business.model.DuWorktype;
import com.doumee.dao.business.model.Worktype;
import com.doumee.service.business.DuWorktypeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -31,6 +35,12 @@
    @Autowired
    private DuWorktypeMapper duWorktypeMapper;
    @Autowired
    private WorktypeMapper worktypeMapper;
    @Autowired
    private DispatchUnitMapper dispatchUnitMapper;
    @Override
    public Integer create(DuWorktype duWorktype) {
        duWorktypeMapper.insert(duWorktype);
@@ -39,16 +49,35 @@
    @Override
    public void deleteById(Integer id) {
        DuWorktype duWorktype = duWorktypeMapper.selectById(id);
        if(Objects.isNull(duWorktype)){
        DuWorktype dbDuWorkType = duWorktypeMapper.selectById(id);
        if(Objects.isNull(dbDuWorkType)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(duWorktype.getStatus().equals(Constants.TWO)){
            duWorktypeMapper.deleteById(id);
        }else{
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前状态无法进行删除");
        if(!dbDuWorkType.getStatus().equals(Constants.TWO)){
            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"数据状态错误,无法进行删除");
        }
        DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(dbDuWorkType.getDispatchUnitId());
        if(Objects.isNull(dispatchUnit)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        duWorktypeMapper.deleteById(id);
        if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda()
                .eq(DuWorktype::getWorkTypeId,dbDuWorkType.getWorkTypeId())
                .eq(DuWorktype::getStatus,Constants.ZERO)
                .ne(DuWorktype::getId,dbDuWorkType.getId())
        )>Constants.ZERO){
            dispatchUnit.setWorktypeStatus(0);
        }else  if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda()
                .eq(DuWorktype::getWorkTypeId,dbDuWorkType.getWorkTypeId())
                .eq(DuWorktype::getStatus,Constants.TWO)
                .ne(DuWorktype::getId,dbDuWorkType.getId())
        )>Constants.ZERO){
            dispatchUnit.setWorktypeStatus(2);
        }else{
            dispatchUnit.setWorktypeStatus(1);
        }
        dispatchUnitMapper.updateById(dispatchUnit);
    }
    @Override
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -133,7 +133,9 @@
        //存储待办信息
        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
        //删除其他待办
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                .eq(Notices::getObjId,insuranceApply.getId()));
        Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
                model.getCompanyId(), Constants.NoticeType.FOUR);
        noticesMapper.insert(notices);
@@ -186,6 +188,9 @@
        update.setStartTime(insuranceApply.getStartTime());
        insuranceApplyMapper.updateById(update);
        //修改明细行的开始结束日期
        applyDetailMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda().set(ApplyDetail::getStartTime,insuranceApply.getStartTime())
                .set(ApplyDetail::getEndTime,actEndTime).eq(ApplyDetail::getApplyId,model.getId()));
        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
                .eq(Multifile::getIsdeleted,Constants.ZERO)
@@ -453,7 +458,9 @@
        //存储待办信息
        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
        //删除其他待办
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                .eq(Notices::getObjId,model.getId()));
        Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),model.getCompanyId(),Constants.NoticeType.TWO);
        noticesMapper.insert(notices);
@@ -478,6 +485,7 @@
    }
    public Multifile  uploadChangeSignedFileDo(ApplyChange model,String fileurl,String fullurl) {
        Integer companyId = model.getCompanyId();
        ApplyChange update = new ApplyChange();
        update.setEditDate(new Date());
        update.setEditor(model.getCreator());
@@ -494,9 +502,11 @@
            noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY;
        }
        //删除其他待办
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                .eq(Notices::getObjId,model.getId()));
        Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),
                model.getCompanyId(), Constants.NoticeType.TWO);
                companyId, Constants.NoticeType.TWO);
        notices.setParam1(model.getApplyId().toString());
        noticesMapper.insert(notices);
@@ -771,7 +781,9 @@
        //存储待办信息
        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
        //删除其他待办
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                .eq(Notices::getObjId,model.getId()));
        Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),solutions.getName(),model.getCompanyId(),noticeType);
        noticesMapper.insert(notices);
@@ -856,7 +868,9 @@
        //存储待办信息
        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
        //删除其他待办
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                .eq(Notices::getObjId,insuranceApply.getId()));
        Notices notices = new Notices(noticeObjectType,Constants.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO);
        noticesMapper.insert(notices);
@@ -940,7 +954,9 @@
        //存储待办信息
        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
        //删除其他待办
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                .eq(Notices::getObjId,insuranceApply.getId()));
        Notices notices = new Notices(noticeObjectType,Constants.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO);
        noticesMapper.insert(notices);
@@ -1458,7 +1474,9 @@
            //存储待办信息
            //删除其他待办
            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                            .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                    .eq(Notices::getObjId,insuranceApply.getId()));
            Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
                    insuranceApply.getCompanyId(), Constants.NoticeType.THREE);
            noticesMapper.insert(notices);
@@ -1522,6 +1540,9 @@
                            Integer days =  DateUtil.calculateBetween(applyDetail.getStartTime(),new Date(),0);
                            applyDetail.setCurrentFee(fee.divide(BigDecimal.valueOf(maxDays),2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(days)));
                            applyDetailMapper.updateById(applyDetail);
                        }else if(applyDetail.getStartTime().compareTo(new Date()) <= 0&&applyDetail.getEndTime().compareTo(new Date()) <= 0){
                            applyDetail.setCurrentFee(fee);
                            applyDetailMapper.updateById(applyDetail);
                        }
                        sumAmount = sumAmount.add(applyDetail.getCurrentFee());
                    }
@@ -1530,6 +1551,9 @@
                insuranceApplyMapper.updateById(insuranceApply);
            }
        }
//        if(1==1){
//            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
//        }
    }
@@ -1553,6 +1577,26 @@
    }
    /**
     * ç”Ÿæˆ å¾…审批通知
     */
    @Override
    public void generateNotice(){
        List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,new MPJLambdaWrapper<InsuranceApply>()
                .selectAll(InsuranceApply.class)
                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
                .ge(InsuranceApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss"))
                        .apply("  DATEDIFF(t.END_TIME,CURRENT_DATE() ) <= 5 ")
                .notExists(" select  1 from notices n where n.obj_type = 0 and n.type = 6 and n.obj_id = t.id   ")
        );
        for (InsuranceApply insuranceApply:insuranceApplyList) {
            Notices notices = new Notices(Constants.NoticeObjectType.INSURANCE_APPLY,Constants.ONE,insuranceApply.getId(),insuranceApply.getSolutionsName(),
                    insuranceApply.getCompanyId(), Constants.NoticeType.SIX);
            noticesMapper.insert(notices);
        }
    }
server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
@@ -17,6 +17,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -92,7 +93,25 @@
        wrapper.orderByDesc("CREATE_DATE");
        return memberInsuranceMapper.selectList(wrapper);
    }
    @Override
    public List<MemberInsurance> getList(MemberInsurance memberInsurance) {
        memberInsurance.setIsdeleted(Constants.ZERO);
        QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
        if(!Objects.isNull(memberInsurance.getStatus())){
            if(memberInsurance.getStatus().equals(Constants.ZERO)){
                wrapper.lambda().ge(MemberInsurance::getStartTime,new Date());
            }else{
                wrapper.lambda().le(MemberInsurance::getStartTime,new Date());
            }
        }
        wrapper.lambda().orderByDesc(MemberInsurance::getCreateDate);
        return memberInsuranceMapper.selectList(wrapper);
    }
    @Override
    public PageData<MemberInsurance> findPage(PageWrap<MemberInsurance> pageWrap) {
        IPage<MemberInsurance> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -182,7 +201,9 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(memberInsuranceMapper.selectPage(page, queryWrapper));
        PageData<MemberInsurance> pageData = PageData.from(memberInsuranceMapper.selectPage(page, queryWrapper));
        return pageData;
    }
@@ -192,4 +213,8 @@
        QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
        return memberInsuranceMapper.selectCount(wrapper);
    }
}
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -29,10 +29,8 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
 * ç”¨å·¥ä¿¡æ¯è¡¨Service实现
@@ -221,6 +219,15 @@
//            }
//        }
        PageData<Member> pageData = PageData.from(memberJoinMapper.selectJoinPage(page,Member.class, queryWrapper));
        Integer sn = 0;
        for (Member member:pageData.getRecords()) {
            sn = sn + 1;
            member.setSn(sn);
            if(StringUtils.isNotBlank(member.getIdcardNo())){
                member.setAge(Constants.getAgeByIdCard(member.getIdcardNo()));
            }
        }
        return pageData;
    }
@@ -248,9 +255,10 @@
                .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.ONE),"now() between t.start_time and t.end_time")
                .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.TWO),"now()  >  t.end_time")
                .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName())
                .notExists(!Objects.isNull(memberQueryDTO.getNotInInsuranceApplyId()),
                        " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getNotInInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
                                " and ad.member_id = t.id ");
                .notExists(!Objects.isNull(memberQueryDTO.getNotInInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()),
                        " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getNotInInsuranceApplyId()+"" +
                                " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " +
                                " and ad.member_id = t.id ") ;
        if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())){
            lambdaWrapper = new MPJLambdaWrapper<Member>()
                    .selectAll(Member.class)
@@ -265,8 +273,9 @@
                    .eq(InsuranceApply::getId,memberQueryDTO.getInsuranceApplyId())
                    .le(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getStartTime,memberQueryDTO.getValidTime())
                    .ge(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getEndTime,memberQueryDTO.getValidTime())
                    .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId()),
                            " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
                    .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()),
                            " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getInsuranceApplyId()+"" +
                                    " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " +
                                    " and ad.member_id = t.id ");
        }
        List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,lambdaWrapper);
@@ -287,6 +296,7 @@
                .selectAs(Worktype::getName,Member::getWorkTypeName)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,Member::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,Member::getWorktypeId)
                .isNotNull(Member::getIdcardNo)
                .eq(Member::getCompanyId,loginUserInfo.getCompanyId())
                .eq(Member::getIsdeleted,Constants.ZERO)
        );
@@ -301,15 +311,17 @@
        if(dataList == null || dataList.size() ==0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
        }
        List<String> idCardList = dataList.stream().map(m->m.getIdCard()).collect(Collectors.toList());
        Set<String> set = new HashSet<>(idCardList);
        if(idCardList.size() != set.size()){
            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"对不起,录入数据存在身份证号相同数据!");
        }
        for(MemberImport model : dataList){
            if(CollectionUtils.isNotEmpty(list)){
                Member member = list.stream().filter(m->m.getIdcardNo().equals(model.getIdCard())).findAny().get();
                if(!Objects.isNull(member)){
//                    model.setWorkTypeId(member.getWorktypeId());
//                    model.setWorkTypeName(member.getWorkTypeName());
                Optional<Member>  memberOptional= list.stream().filter(m->m.getIdcardNo().equals(model.getIdCard())).findFirst();
                if(memberOptional.isPresent()){
                    Member member =  memberOptional.get();
                    model.setIdCard(member.getIdcardNo());
//                    model.setDuId(member.getDuId());
//                    model.setDuName(member.getDuName());
                    model.setSex(member.getSex());
                }else{
                    model.setSex(Constants.getSexByIdCard(model.getIdCard()));
server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java
@@ -11,6 +11,7 @@
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.InsuranceApply;
import com.doumee.dao.business.model.Notices;
import com.doumee.dao.business.vo.ApplyNoticeVO;
import com.doumee.service.business.NoticesService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -22,6 +23,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
 * ç³»ç»Ÿæ¶ˆæ¯ä¿¡æ¯è¡¨Service实现
@@ -172,4 +174,50 @@
        QueryWrapper<Notices> wrapper = new QueryWrapper<>(notices);
        return noticesMapper.selectCount(wrapper);
    }
    /**
     * æŸ¥è¯¢æŠ•保单 æé†’数量
     * @param companyId
     * @return
     */
    @Override
    public ApplyNoticeVO getApplyNotice(Integer companyId){
        ApplyNoticeVO applyNoticeVO = new ApplyNoticeVO();
        applyNoticeVO.setWaitSignNum(Constants.ZERO);
        applyNoticeVO.setRenewalNum(Constants.ZERO);
        List<Notices> noticesList = noticesMapper.selectList(new QueryWrapper<Notices>()
                .lambda()
                .select(Notices::getType)
                .eq(Notices::getPalt,Constants.ONE)
                .eq(Notices::getCompanyId,companyId)
                .eq(Notices::getObjType,Constants.NoticeObjectType.INSURANCE_APPLY.getKey())
                .eq(Notices::getStatus,Constants.ZERO)
                .in(Notices::getType,Constants.NoticeType.SIX.getStatus(),Constants.NoticeType.ONE.getStatus())
        );
        if(CollectionUtils.isNotEmpty(noticesList)){
            applyNoticeVO.setRenewalNum(noticesList.stream().filter(m->m.getType().equals(Constants.NoticeType.SIX.getStatus())).collect(Collectors.toList()).size());
            applyNoticeVO.setWaitSignNum(noticesList.size() - applyNoticeVO.getRenewalNum());
        }
        return applyNoticeVO ;
    }
    /**
     * å…³é—­æé†’
     * @param companyId
     * @param type
     */
    @Override
    public void closeApplyNotice(Integer companyId,Integer type){
        noticesMapper.update(null,new UpdateWrapper<Notices>()
                .lambda()
                .set(Notices::getStatus,Constants.ONE)
                .eq(Notices::getPalt,Constants.ONE)
                .eq(Notices::getCompanyId,companyId)
                .eq(Notices::getStatus,Constants.ZERO)
                .eq(Notices::getObjType,Constants.NoticeObjectType.INSURANCE_APPLY.getKey())
                .eq(Notices::getType,type)
        );
    }
}
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -554,8 +554,34 @@
                        .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
                        .orderByAsc(SettleClaimsLog::getCreateDate)
        );
        settleClaims.setSettleClaimsLogList(settleClaimsLogList);
        SettleClaimsLog lastConfirm = settleClaimsLogMapper.selectOne(new QueryWrapper<SettleClaimsLog>().lambda()
                .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
                .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_CONFIRM_INFORMATION.getKey())
                .orderByDesc(SettleClaimsLog::getCreateDate)
                .last(" limit 1")
        );
        Multifile multifile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>()
                .lambda()
                .eq(Multifile::getObjId,settleClaims.getId())
                .eq(Multifile::getIsdeleted,Constants.ZERO)
                .in(Multifile::getObjType,
                        Constants.MultiFile.LP_SGXC_FILE.getKey(),
                        Constants.MultiFile.LP_YGGX_FILE.getKey(),
                        Constants.MultiFile.LP_MZCL_FILE.getKey(),
                        Constants.MultiFile.LP_ZYCL_FILE.getKey(),
                        Constants.MultiFile.LP_SCZL_FILE.getKey(),
                        Constants.MultiFile.LP_JACL_FILE.getKey())
                .orderByDesc(Multifile::getCreateDate)
                .last(" limit 1")
        );
        if(!Objects.isNull(lastConfirm)&&!Objects.isNull(multifile)){
            settleClaims.setFinishDate(lastConfirm.getCreateDate().compareTo(multifile.getCreateDate())>=0?lastConfirm.getCreateDate():multifile.getCreateDate());
        }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){
            settleClaims.setFinishDate(lastConfirm.getCreateDate());
        }
        return settleClaims;
    }
@@ -674,7 +700,7 @@
        multifile.setObjType(scSupplementDTO.getObjType());
        multifile.setObjId(scSupplementDTO.getId());
        multifile.setFileurl(scSupplementDTO.getFileUrl());
        multifile.setName(scSupplementDTO.getFileUrl().substring(scSupplementDTO.getFileUrl().lastIndexOf("/") + 1));
        multifile.setName(scSupplementDTO.getFileName());
        multifile.setType(scSupplementDTO.getFileType());
        multifileJoinMapper.insert(multifile);
    }
@@ -847,7 +873,15 @@
            queryWrapper.eq(SettleClaims::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
            if(pageWrap.getModel().getStatus().equals(Constants.ZERO)){
                queryWrapper.in(SettleClaims::getStatus, Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()
                        ,Constants.SettleClaimsStatus.DEAL_ING.getKey()
                        ,Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey());
            }else{
                queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
            }
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.eq(SettleClaims::getType, pageWrap.getModel().getType());
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -451,11 +451,17 @@
        List<Solutions> solutionsList = solutionsJoinMapper.selectJoinList(Solutions.class,new MPJLambdaWrapper<Solutions>()
                        .selectAll(Solutions.class)
                .leftJoin(CompanySolution.class,CompanySolution::getSolutionId,Solutions::getId)
                .leftJoin(Company.class,Company::getId,CompanySolution::getCompanyId)
                .leftJoin(Insurance.class,Insurance::getId,Solutions::getInsuranceId)
                .eq(Solutions::getIsdeleted,Constants.ZERO)
                .eq(Solutions::getStatus,Constants.ZERO)
                .eq(Solutions::getDataType,dataType)
                .eq(CompanySolution::getIsdeleted,Constants.ZERO)
                .eq(CompanySolution::getCompanyId,user.getCompanyId())
                .eq(Company::getIsdeleted,Constants.ZERO)
                .eq(Company::getStatus,Constants.ZERO)
                .eq(Insurance::getIsdeleted,Constants.ZERO)
                .eq(Insurance::getStatus,Constants.ZERO)
                .orderByAsc(Solutions::getSortnum)
        );
        return solutionsList;
server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
@@ -240,7 +240,7 @@
        if(model==null || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
        if(Constants.equalsInteger(model.getApplyType(),Constants.ZERO)){
            List<TaxDetial> detialList = getDetailsApplysListById(id);
            model.setApplyList(detialList);
        }else{
@@ -272,8 +272,12 @@
            queryWrapper.selectAll(TaxDetial.class);
            queryWrapper.selectAs(InsuranceApply::getCode,TaxDetial::getApplyCode);
            queryWrapper.selectAs(Solutions::getName,TaxDetial::getSolutionName);
            queryWrapper.selectAs(ApplyChange::getValidCode,TaxDetial::getChangApplyCode);
            queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,TaxDetial::getInsuranceApplyId);
            queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
            queryWrapper.leftJoin(ApplyChange.class,ApplyChange::getId,TaxDetial::getApplyChangeId);
            queryWrapper.in(TaxDetial::getType,Constants.ZERO,Constants.ONE);
            queryWrapper.eq(TaxDetial::getTaxId,id);
            List<TaxDetial> detialList =  taxDetailJoinMapper.selectJoinList(TaxDetial.class,queryWrapper.orderByAsc(TaxDetial::getType));
            return detialList;
    }
@@ -443,6 +447,7 @@
        taxes.setAddr(entrustInvoicingDTO.getAddress());
        taxes.setCompanyName(company.getName());
        taxes.setApplyType(Constants.ZERO);
        taxes.setTaxBank(company.getTaxBank());
        taxesMapper.insert(taxes);
        List<TaxDetial> taxDetialList = entrustInvoicingDTO.getTaxDetialList();
@@ -540,6 +545,7 @@
        List<ApplyChange> applyChangeList = applyChangeJoinMapper.selectJoinList(ApplyChange.class,new MPJLambdaWrapper<ApplyChange>()
                .selectAll(ApplyChange.class)
                .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0  ) as addNum ")
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1  ) as delNum ")
                .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID  ) as changeMoney" )
@@ -553,11 +559,13 @@
        if(CollectionUtils.isNotEmpty(applyChangeList)){
            for (ApplyChange applyChange:applyChangeList) {
                insuranceApply.setFee(insuranceApply.getFee().subtract(applyChange.getFee()));
                TaxesInvoicingVO taxesInvoicingVO = applyChange.toTaxesInvoicingVO();
                if(!Objects.isNull(insuranceApply)){
                    taxesInvoicingVO.setAmount(BigDecimal.ZERO);
                    insuranceApply.setFee(insuranceApply.getFee().subtract(applyChange.getFee()));
                }
                TaxesInvoicingVO taxesInvoicingVO = applyChange.toTaxesInvoicingVO();
//                if(!Objects.isNull(insuranceApply)){
//                    taxesInvoicingVO.setAmount(BigDecimal.ZERO);
//                }
                taxesInvoicingVOList.add(taxesInvoicingVO);
            }
        }
@@ -613,6 +621,7 @@
        taxes.setType(directInvoicingDTO.getType());
        taxes.setTaxCode(company.getTaxCode());
        taxes.setTaxAccount(company.getTaxAccount());
        taxes.setTaxBank(company.getTaxBank());
        taxes.setTaxAddr(company.getTaxAddr());
        taxes.setAddr(directInvoicingDTO.getAddress());
        taxes.setCompanyName(company.getName());
@@ -639,8 +648,8 @@
            taxDetial.setTaxId(taxes.getId());
            taxDetial.setTotalFee(taxesInvoicingVO.getAmount());
            taxDetial.setFee(taxesInvoicingVO.getAmount());
            taxDetial.setInsuranceApplyId(taxes.getApplyId());
            if(taxesInvoicingVO.getType().equals(Constants.ZERO)){
                taxDetial.setInsuranceApplyId(taxesInvoicingVO.getId());
                taxDetial.setType(taxesInvoicingVO.getType());
            }else if(taxesInvoicingVO.getType().equals(Constants.ONE)){
                taxDetial.setApplyChangeId(taxesInvoicingVO.getId());