MrShi
2024-02-22 e622bd5e3b2638b9ab9a712ed1160a66018d6fd7
mrshi
已添加1个文件
已删除130个文件
已修改61个文件
25338 ■■■■■ 文件已修改
company/src/api/business/company.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaCompanyDescWindow.vue 305 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaCompanyWindow.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyWindow.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSolutionsWindow.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaTaxesWindow.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/modification.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/system/user/allocationEnterprises.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/company.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/dispatchUnit.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/.env 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/.env.development 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/.env.production 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/.gitignore 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/README.md 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/babel.config.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/package-lock.json 14309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/package.json 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/public/avatar/man.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/public/avatar/woman.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
platform/public/index.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/App.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/business/company.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/business/dispatchUnit.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/business/duWorktype.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/business/solutions.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/business/worktype.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/common.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/dataPermission.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/department.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/dict.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/dictData.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/loginLog.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/menu.js 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/monitor.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/permission.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/position.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/role.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/traceLog.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/api/system/user.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/ext/index.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/department.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/dictionary.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/index.scss 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/listener.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/log-login.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/log-opera.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/log.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/permission.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/position.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/pwd.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/role.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/icons/system/shield.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/images/404-tip.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/images/404.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/images/login.jpg 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/images/man.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/images/not-allow.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/images/woman.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/style/element-variables.scss 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/style/style.scss 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/assets/style/variables.scss 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/base/BaseOpera.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/base/BasePage.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/base/BaseTable.vue 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/business/OperaDispatchUnitWindow.vue 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/ColumnDetail.vue 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/DepartmentSelect.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/GlobalAlertWindow.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/GlobalWindow.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/Header.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/ImportButton.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/ImportWindow.vue 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/Light.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/Menu.vue 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/MenuItems.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/MenuSelect.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/NotAllow.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/Pagination.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/PositionSelect.vue 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/Profile.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/Scrollbar.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/SearchFormCollapse.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/TreeSelect.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/UploadAvatarImage.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/UploadAvatarVideo.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/UploadImage.vue 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/common/Value.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/datapermission/CustomSelect.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/datapermission/DataPermModuleSelect.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/datapermission/DataPermTypeSelect.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/datapermission/OperaDataPermissionWindow.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/department/DepartmentUserWindow.vue 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/department/OperaDepartmentWindow.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/dict/DictDataManagerWindow.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/dict/OperaDictDataWindow.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/dict/OperaDictWindow.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/menu/OperaMenuWindow.vue 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/permission/OperaPermissionWindow.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/position/OperaPositionWindow.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/position/PositionUserWindow.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/role/MenuConfigWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/role/OperaRoleWindow.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/role/PermissionConfigWindow.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/role/RoleSelect.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/user/OperaUserWindow.vue 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/user/ResetPwdWindow.vue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/components/system/user/RoleConfigWindow.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/directives/index.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/directives/v-permissions.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/directives/v-roles.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/directives/v-trim.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/filters/index.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/layouts/AppLayout.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/layouts/TableLayout.vue 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/main.js 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/plugins/cache.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/plugins/consts.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/plugins/download.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/plugins/index.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/plugins/message.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/plugins/messagebox.js 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/router/index.js 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/store/index.js 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/utils/form.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/utils/icons.js 293 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/utils/request.js 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/utils/util.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/business/dispatchUnit.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/index.vue 599 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/login.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/no-permissions.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/not-found.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/data-permission.vue 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/department.vue 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/dict.vue 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/loginLog.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/menu.vue 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/menuCom.vue 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/monitor.vue 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/permission.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/position.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/role.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/traceLog.vue 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/views/system/user.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/CompanyController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java 8 ●●●● 补丁 | 查看 | 原始文档 | 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/company/src/main/java/com/doumee/api/business/SolutionsController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/system/SystemMenuController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | 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/CompanyController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | 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/platform/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | 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/CompanySolution.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java 4 ●●● 补丁 | 查看 | 原始文档 | 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/model/Solutions.java 3 ●●●●● 补丁 | 查看 | 原始文档 | 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/SolutionsService.java 4 ●●● 补丁 | 查看 | 原始文档 | 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 309 ●●●● 补丁 | 查看 | 原始文档 | 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/CompanyServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | 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 102 ●●●● 补丁 | 查看 | 原始文档 | 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 57 ●●●●● 补丁 | 查看 | 原始文档 | 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 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/company.js
@@ -17,8 +17,12 @@
    return request.post('/business/company/updateById', data)
}
// æŸ¥è¯¢å…¨éƒ¨æ•°æ®(账号分配企业使用)
export function pageAll (data) {
    return request.post('/business/company/list', data)
}
// æŸ¥è¯¢å…¨éƒ¨æ•°æ®(账号分配企业使用)
export function allForFp (data) {
    return request.post('/business/company/pageAll', data)
}
company/src/components/business/OperaCompanyDescWindow.vue
@@ -180,156 +180,163 @@
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
    import modification from '@/components/business/modification'
    import { getById, updatePhone } from '@/api/business/company'
    import { listForCompany } from '@/api/business/solutions'
    import { sendSms } from '@/api/business/smsEmail'
    export default {
        name: 'OperaCompanyDescWindow',
        extends: BaseOpera,
        components: { GlobalWindow, OperaCompanyWindow, modification },
        data () {
            return {
                ruleForm: {
                    phone: '',
                    code: ''
                },
                num: 0,
                timer: null,
                // è¡¨å•数据
                form: {},
                phone: '',
                code: '',
                visiblePhone: false,
                options: [],
                tableData: []
            }
        },
        created () {
            this.config({
                api: '/business/company',
                'field.id': 'id'
            })
        },
        methods: {
            close() {
                this.visiblePhone = false
                this.phone = ''
                this.code = ''
                clearInterval(this.timer)
                this.num = 0
            },
            updatePhoneEvent() {
                if (!this.phone) {
                    this.$message.warning('请输入手机号')
                    return
                }
                if (!this.code) {
                    this.$message.warning('请输入验证码')
                    return
                }
                updatePhone({
                    id: this.form.id,
                    captche: this.code,
                    phone: this.phone
                }).then(res => {
                    this.form.phone = JSON.parse(JSON.stringify(this.phone))
                    this.$message.success('操作成功')
                    this.visiblePhone = false
                    this.phone = ''
                    this.code = ''
                    clearInterval(this.timer)
                    this.num = 0
                })
            },
            send() {
                if (!this.phone) {
                    this.$message.warning('请输入手机号')
                    return
                }
                sendSms({ phone: this.phone })
                    .then(res => {
                        this.num = 60
                        this.setTime()
                    })
            },
            setTime() {
                this.timer = setInterval(() => {
                    this.num -= 1
                    if (this.num === 0) {
                        clearInterval(this.timer)
                        this.num = 0
                    }
                }, 1000)
            },
            open (title, target) {
                const that = this;
                this.title = title
                this.phone = ''
                this.code = ''
                clearInterval(this.timer)
                this.num = 0
                getById(target.id)
                    .then(res => {
                        this.form = res
                        this.form.type = 1
                        this.form.file = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        this.form.file1 = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        this.form.file2 = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        this.form.file3 = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        this.form.file.imgurl = res.businessImg.fileurl
                        this.form.file.imgurlfull = res.businessImg.fileurlFull
                        this.form.file1.imgurl = res.idcardImgList[0].fileurl
                        this.form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
                        this.form.file2.imgurl = res.idcardImgList[1].fileurl
                        this.form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
                        this.form.file3.imgurl = res.signImg.fileurl
                        this.form.file3.imgurlfull = res.signImg.fileurlFull
                        listForCompany({ companyId: target.id })
                            .then(resa => {
                                that.form.solutionList = resa.map(item => {
                                    return {
                                        solutionBaseId: item.solutionBaseId,
                                        canAdd: item.canAdd,
                                        canReduce: item.canReduce
                                    }
                                })
                                that.form.solutionListName = resa.map(item => {
                                    return {
                                        solutionName: item.solutionName,
                                        canAdd: item.canAdd,
                                        canReduce: item.canReduce
                                    }
                                })
                                console.log(that.form)
                                that.visible = true
                            })
                    })
            },
            callback() {
                this.$emit('success')
                this.visible = false
            }
        }
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
import modification from '@/components/business/modification'
import { getById, updatePhone } from '@/api/business/company'
import { listForCompany } from '@/api/business/solutions'
import { sendSms } from '@/api/business/smsEmail'
export default {
  name: 'OperaCompanyDescWindow',
  extends: BaseOpera,
  components: { GlobalWindow, OperaCompanyWindow, modification },
  data () {
    return {
      ruleForm: {
        phone: '',
        code: ''
      },
      dataId: null,
      num: 0,
      timer: null,
      // è¡¨å•数据
      form: {},
      phone: '',
      code: '',
      visiblePhone: false,
      options: [],
      tableData: []
    }
  },
  created () {
    this.config({
      api: '/business/company',
      'field.id': 'id'
    })
  },
  methods: {
    close () {
      this.visiblePhone = false
      this.phone = ''
      this.code = ''
      clearInterval(this.timer)
      this.num = 0
    },
    updatePhoneEvent () {
      if (!this.phone) {
        this.$message.warning('请输入手机号')
        return
      }
      if (!this.code) {
        this.$message.warning('请输入验证码')
        return
      }
      updatePhone({
        id: this.form.id,
        captche: this.code,
        phone: this.phone
      }).then(res => {
        this.form.phone = JSON.parse(JSON.stringify(this.phone))
        this.$message.success('操作成功')
        this.visiblePhone = false
        this.phone = ''
        this.code = ''
        clearInterval(this.timer)
        this.num = 0
      })
    },
    send () {
      if (!this.phone) {
        this.$message.warning('请输入手机号')
        return
      }
      sendSms({ phone: this.phone })
        .then(res => {
          this.num = 60
          this.setTime()
        })
    },
    setTime () {
      this.timer = setInterval(() => {
        this.num -= 1
        if (this.num === 0) {
          clearInterval(this.timer)
          this.num = 0
        }
      }, 1000)
    },
    open (title, target) {
      const that = this
      this.title = title
      this.dataId = target.id
      this.phone = ''
      this.code = ''
      clearInterval(this.timer)
      this.num = 0
      this.getDetail()
    },
    getDetail () {
      var that =this
      getById(this.dataId)
        .then(res => {
          this.form = res
          this.form.type = 1
          this.form.file = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file1 = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file2 = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file3 = {
            imgurl: '',
            imgurlfull: ''
          }
          this.form.file.imgurl = res.businessImg.fileurl
          this.form.file.imgurlfull = res.businessImg.fileurlFull
          this.form.file1.imgurl = res.idcardImgList[0].fileurl
          this.form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
          this.form.file2.imgurl = res.idcardImgList[1].fileurl
          this.form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
          this.form.file3.imgurl = res.signImg.fileurl
          this.form.file3.imgurlfull = res.signImg.fileurlFull
          listForCompany({ companyId: this.dataId })
            .then(resa => {
              that.form.solutionList = resa.map(item => {
                return {
                  solutionBaseId: item.solutionBaseId,
                  canAdd: item.canAdd,
                  canReduce: item.canReduce
                }
              })
              that.form.solutionListName = resa.map(item => {
                return {
                  solutionName: item.solutionName,
                  canAdd: item.canAdd,
                  canReduce: item.canReduce
                }
              })
              console.log(that.form)
              that.visible = true
            })
        })
    },
    callback () {
      this.getDetail()
      this.$emit('success')
      // this.visible = false
    }
  }
}
</script>
<style lang="scss" scoped>
company/src/components/business/OperaCompanyWindow.vue
@@ -50,22 +50,32 @@
            <el-form-item label="纸质发票接收地址" prop="invoiceAddr">
                <el-input v-model="form.invoiceAddr" placeholder="请输入" v-trim/>
            </el-form-item>
<<<<<<< HEAD
            <el-form-item label="营业执照" prop="businessImg">
                <div style="width: 100%; height: 100px; display: flex; align-items: center;">
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
                </div>
=======
            <el-form-item label="营业执照" prop="businessImg"  style="height: 120px">
                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
            </el-form-item>
            <el-form-item label="法人身份证" prop="idcardImgList">
            <el-form-item label="法人身份证" prop="idcardImgList"  style="height: 120px">
                <div style="width: 100%; display: flex; align-items: center;">
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file1" @uploadSuccess="result1" />
                    <div style="width: 15px;height: 100%;"></div>
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file2" @uploadSuccess="result2" />
                </div>
            </el-form-item>
<<<<<<< HEAD
            <el-form-item label="电子签章" prop="signImg">
                <div style="width: 100%; height: 100px; display: flex; align-items: center;">
                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />
                </div>
=======
            <el-form-item label="电子签章" prop="signImg" style="height: 120px">
                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
            </el-form-item>
        </el-form>
        <el-button type="primary" style="margin-bottom: 15px;" @click="add" v-if="form.type !== 1">添加</el-button>
@@ -85,15 +95,15 @@
            <el-table-column
                align="center"
                label="保险方案">
                <template slot-scope="{row}">
                    <el-select v-model="row.solutionBaseId" placeholder="请选择">
                        <el-option
                            v-for="item in programme"
                            :key="item.id"
                            :label="item.name"
                            :value="item.id">
                        </el-option>
                    </el-select>
                <template slot-scope="scope">
                  <el-select  v-model="scope.row.solution"  value-key="id" placeholder="请选择" change="changeSolution($event,scope.$index)">
                    <el-option
                        v-for="item in programme"
                        :key="item.id"
                        :label="item.name"
                        :value="item">
                    </el-option>
                  </el-select>
                </template>
            </el-table-column>
            <el-table-column
@@ -129,7 +139,7 @@
  data () {
    return {
      // è¡¨å•数据
      form: {
      initParam:{
        id: null,
        name: '',
        code: '',
@@ -155,12 +165,12 @@
        },
        solutionList: [
          {
            solutionBaseId: '',
            solution: null,
            canAdd: 0,
            canReduce: 0
          }
        ],
        type: '',
        type: '0',
        file: {
          imgurl: '',
          imgurlfull: ''
@@ -176,8 +186,9 @@
        file3: {
          imgurl: '',
          imgurlfull: ''
        }
        },
      },
      form: {},
      timer: null,
      num: 0,
      // éªŒè¯è§„则
@@ -237,6 +248,10 @@
    }
  },
  methods: {
    changeSolution(row,index){
     this.form.solutionList[index].solution=row
   //   console.log(this.form.solutionList)
    },
    send () {
      if (!this.form.phone) {
        this.$message.warning('请输入手机号')
@@ -257,9 +272,10 @@
        }
      }, 1000)
    },
    open (title, target) {
    open (title, target,type) {
      this.title = title
      this.visible = true
      this.form = this.initParam
      this.getAll()
      // æ–°å»º
      if (target == null) {
@@ -292,7 +308,8 @@
    },
    add () {
      this.form.solutionList.push({
        solutionName: '',
        solutionId:null,
        solution: {},
        canAdd: '',
        canReduce: ''
      })
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -35,6 +35,9 @@
                    <template v-else>
                      <el-button type="primary" @click="$refs.InsuranceDetails.open('投保详情单',model,0)">导出详单</el-button>
                      <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">查看投保单</el-button>
<!--
                      <el-button v-if="model.status == 2" type="primary" @click="goSign">签署投保单</el-button>
-->
                      <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">查看保险单</el-button>
                      <el-button v-if="model.status == 10" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传投保单',model,2)">上传投保单</el-button>
                      <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传保险单',model,3)">上传保险单</el-button>
company/src/components/business/OperaSolutionsWindow.vue
@@ -1,6 +1,7 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
@@ -87,8 +88,8 @@
            <el-form-item label="接收文件邮箱" prop="email">
                <el-input v-model="form.email" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="投保单签章关键字" prop="signKeyword">
                <el-input v-model="form.signKeyword" placeholder="多个英文逗号隔开" v-trim/>
            <el-form-item label="投保单签章关键字(如有多个关键字,请使用英文分号 ; éš”开)" prop="signKeyword">
                <el-input v-model="form.signKeyword" placeholder="多个英文分号 ; éš”å¼€" v-trim/>
            </el-form-item>
            <el-button type="primary" @click="add">添加工种</el-button>
            <el-table
company/src/components/business/OperaTaxesWindow.vue
@@ -51,7 +51,11 @@
                    <div class="info_list_item_val" style="color:rgba(249, 86, 1, 0.996078431372549);">{{ model.price }}</div>
                </div>
            </div>
<<<<<<< HEAD
            <el-table v-if="model.applyType == 0"
=======
            <el-table v-if="model.applyType ==0"
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
                :data="tableData"
                border
                show-summary
@@ -84,6 +88,7 @@
                  </template>
                </el-table-column>
            </el-table>
<<<<<<< HEAD
          <el-table
            v-if="model.applyType == 1"
            :data="tableData1"
@@ -91,6 +96,14 @@
            show-summary
            :summary-method="getSummaries"
            style="width: 100%; margin-bottom: 20px;">
=======
          <el-table v-if="model.applyType ==1"
                    :data="tableData1"
                    border
                    show-summary
                    :summary-method="getSummaries"
                    style="width: 100%; margin-bottom: 20px;">
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
            <el-table-column
                label="保单"
                align="center"
company/src/components/business/modification.vue
@@ -23,12 +23,12 @@
                align="center"
                label="保险方案">
                <template slot-scope="{row}">
                    <el-select v-model="row.solutionBaseId" placeholder="请选择">
                    <el-select v-model="row.solution" placeholder="请选择">
                        <el-option
                            v-for="item in programme"
                            :key="item.id"
                            :label="item.name"
                            :value="item.id">
                            :value="{id:item.id,baseId:item.baseId}">
                        </el-option>
                    </el-select>
                </template>
@@ -71,7 +71,7 @@
                    id: null,
                    solutionList: [
                        {
                            solutionBaseId: '',
                            solution: {id: null, baseId: null },
                            canAdd: 0,
                            canReduce: 0
                        }
@@ -126,7 +126,7 @@
                    .then(resa => {
                        that.form.solutionList = resa.map(item => {
                            return {
                                solutionBaseId: item.solutionBaseId,
                                solution: {id: item.baseSolutionId, baseId: item.solutionId },
                                canAdd: item.canAdd,
                                canReduce: item.canReduce
                            }
@@ -136,7 +136,7 @@
            },
            add() {
                this.form.solutionList.push({
                    solutionName: '',
                    solution: {id: null, baseId: null },
                    canAdd: '',
                    canReduce: ''
                })
company/src/components/system/user/allocationEnterprises.vue
@@ -23,7 +23,7 @@
<script>
    import BasePage from '@/components/base/BasePage'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { pageAll } from '@/api/business/company'
    import { allForFp } from '@/api/business/company'
    import { create } from '@/api/business/companyPermission'
    export default {
        name: 'allocationEnterprises',
@@ -47,7 +47,7 @@
                this.visible = true
                this.title = title
                this.user = target
                pageAll({ userId: target.id })
              allForFp({ userId: target.id })
                    .then(res => {
                        this.company = res.map(r => {
                            return {
@@ -73,7 +73,7 @@
                    companyIdList: this.selectedIds
                })
                    .then(() => {
                        this.$tip.apiSuccess('角色配置成功,用户重新登录后生效')
                        this.$tip.apiSuccess('企业分配成功,用户重新登录后生效')
                        this.visible = false
                        this.$emit('success')
                    })
company/src/views/business/company.vue
@@ -5,9 +5,6 @@
            <el-form-item label="企业名称" prop="name">
                <el-input v-model="searchForm.name" placeholder="请输入企业名称" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="所属商户" prop="name">
                <el-input v-model="searchForm.name" placeholder="请输入所属商户" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="所属理赔员" prop="username">
                <el-input v-model="searchForm.username" placeholder="请输入所属理赔员" @keypress.enter.native="search"></el-input>
            </el-form-item>
@@ -19,7 +16,7 @@
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:company:create']">
                <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('新建企业')" v-permissions="['business:company:create']">新建企业</el-button></li>
                <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('新建企业',null)" v-permissions="['business:company:create']">新建企业</el-button></li>
            </ul>
            <el-table
                v-loading="isWorking.search"
company/src/views/business/dispatchUnit.vue
@@ -2,7 +2,7 @@
  <TableLayout :permissions="['business:dispatchunit:query']">
    <!-- æœç´¢è¡¨å• -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="所属业" prop="companyId">
      <el-form-item label="所属企业" prop="companyId">
        <el-select v-model="searchForm.companyId" placeholder="请选择" @change="search">
          <el-option
              v-for="item in companyList"
platform/.env
ÎļþÒÑɾ³ý
platform/.env.development
ÎļþÒÑɾ³ý
platform/.env.production
ÎļþÒÑɾ³ý
platform/.gitignore
ÎļþÒÑɾ³ý
platform/README.md
ÎļþÒÑɾ³ý
platform/babel.config.js
ÎļþÒÑɾ³ý
platform/package-lock.json
ÎļþÒÑɾ³ý
platform/package.json
ÎļþÒÑɾ³ý
platform/public/avatar/man.png
Binary files differ
platform/public/avatar/woman.png
Binary files differ
platform/public/favicon.ico
Binary files differ
platform/public/index.html
ÎļþÒÑɾ³ý
platform/src/App.vue
ÎļþÒÑɾ³ý
platform/src/api/business/company.js
@@ -17,8 +17,17 @@
    return request.post('/business/company/updateById', data)
}
<<<<<<< HEAD
// æŸ¥è¯¢å…¨éƒ¨æ•°æ®(账号分配企业使用)
export function pageAll (data) {
=======
export function pageAll (data) {
    return request.post('/business/company/list', data)
}
// æŸ¥è¯¢å…¨éƒ¨æ•°æ®(账号分配企业使用)
export function allForFp (data) {
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
    return request.post('/business/company/pageAll', data)
}
platform/src/api/business/dispatchUnit.js
ÎļþÒÑɾ³ý
platform/src/api/business/duWorktype.js
ÎļþÒÑɾ³ý
platform/src/api/business/solutions.js
@@ -36,8 +36,11 @@
export function listForCompany (data) {
    return request.post('/business/companySolution/listForCompany', data)
}
<<<<<<< HEAD
// æ ¹æ®åŽ†å²ç‰ˆæœ¬æŸ¥è¯¢å½“å‰æœ€æ–°å¯ç”¨ç‰ˆæœ¬
export function getNewVersion (id) {
    return request.get(`/business/solutions/getNewVersion?solutionId=${id}`)
}
=======
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
platform/src/api/business/worktype.js
ÎļþÒÑɾ³ý
platform/src/api/system/common.js
ÎļþÒÑɾ³ý
platform/src/api/system/dataPermission.js
ÎļþÒÑɾ³ý
platform/src/api/system/department.js
ÎļþÒÑɾ³ý
platform/src/api/system/dict.js
ÎļþÒÑɾ³ý
platform/src/api/system/dictData.js
ÎļþÒÑɾ³ý
platform/src/api/system/loginLog.js
ÎļþÒÑɾ³ý
platform/src/api/system/menu.js
ÎļþÒÑɾ³ý
platform/src/api/system/monitor.js
ÎļþÒÑɾ³ý
platform/src/api/system/permission.js
ÎļþÒÑɾ³ý
platform/src/api/system/position.js
ÎļþÒÑɾ³ý
platform/src/api/system/role.js
ÎļþÒÑɾ³ý
platform/src/api/system/traceLog.js
ÎļþÒÑɾ³ý
platform/src/api/system/user.js
ÎļþÒÑɾ³ý
platform/src/assets/icons/ext/index.scss
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/department.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/dictionary.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/index.scss
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/listener.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/log-login.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/log-opera.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/log.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/permission.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/position.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/pwd.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/role.svg
ÎļþÒÑɾ³ý
platform/src/assets/icons/system/shield.svg
ÎļþÒÑɾ³ý
platform/src/assets/images/404-tip.png
Binary files differ
platform/src/assets/images/404.png
Binary files differ
platform/src/assets/images/login.jpg
Binary files differ
platform/src/assets/images/man.png
Binary files differ
platform/src/assets/images/not-allow.png
Binary files differ
platform/src/assets/images/woman.png
Binary files differ
platform/src/assets/logo.png
Binary files differ
platform/src/assets/style/element-variables.scss
ÎļþÒÑɾ³ý
platform/src/assets/style/style.scss
ÎļþÒÑɾ³ý
platform/src/assets/style/variables.scss
ÎļþÒÑɾ³ý
platform/src/components/base/BaseOpera.vue
ÎļþÒÑɾ³ý
platform/src/components/base/BasePage.vue
ÎļþÒÑɾ³ý
platform/src/components/base/BaseTable.vue
ÎļþÒÑɾ³ý
platform/src/components/business/OperaDispatchUnitWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/common/ColumnDetail.vue
ÎļþÒÑɾ³ý
platform/src/components/common/DepartmentSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/common/GlobalAlertWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/common/GlobalWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/common/Header.vue
ÎļþÒÑɾ³ý
platform/src/components/common/ImportButton.vue
ÎļþÒÑɾ³ý
platform/src/components/common/ImportWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/common/Light.vue
ÎļþÒÑɾ³ý
platform/src/components/common/Menu.vue
ÎļþÒÑɾ³ý
platform/src/components/common/MenuItems.vue
ÎļþÒÑɾ³ý
platform/src/components/common/MenuSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/common/NotAllow.vue
ÎļþÒÑɾ³ý
platform/src/components/common/Pagination.vue
ÎļþÒÑɾ³ý
platform/src/components/common/PositionSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/common/Profile.vue
ÎļþÒÑɾ³ý
platform/src/components/common/Scrollbar.vue
ÎļþÒÑɾ³ý
platform/src/components/common/SearchFormCollapse.vue
ÎļþÒÑɾ³ý
platform/src/components/common/TreeSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/common/UploadAvatarImage.vue
ÎļþÒÑɾ³ý
platform/src/components/common/UploadAvatarVideo.vue
ÎļþÒÑɾ³ý
platform/src/components/common/UploadImage.vue
ÎļþÒÑɾ³ý
platform/src/components/common/Value.vue
ÎļþÒÑɾ³ý
platform/src/components/system/datapermission/CustomSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/system/datapermission/DataPermModuleSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/system/datapermission/DataPermTypeSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/system/datapermission/OperaDataPermissionWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/department/DepartmentUserWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/department/OperaDepartmentWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/dict/DictDataManagerWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/dict/OperaDictDataWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/dict/OperaDictWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/menu/OperaMenuWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/permission/OperaPermissionWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/position/OperaPositionWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/position/PositionUserWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/role/MenuConfigWindow.vue
@@ -50,8 +50,12 @@
     * @role è§’色对象
     */
    open (role) {
<<<<<<< HEAD
      if (this.userInfo.type === 1) {
        fetchTree1({})
=======
      fetchMenuList({})
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
        .then(records => {
          this.role = role
          this.menus = records
platform/src/components/system/role/OperaRoleWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/role/PermissionConfigWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/role/RoleSelect.vue
ÎļþÒÑɾ³ý
platform/src/components/system/user/OperaUserWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/user/ResetPwdWindow.vue
ÎļþÒÑɾ³ý
platform/src/components/system/user/RoleConfigWindow.vue
ÎļþÒÑɾ³ý
platform/src/directives/index.js
ÎļþÒÑɾ³ý
platform/src/directives/v-permissions.js
ÎļþÒÑɾ³ý
platform/src/directives/v-roles.js
ÎļþÒÑɾ³ý
platform/src/directives/v-trim.js
ÎļþÒÑɾ³ý
platform/src/filters/index.js
ÎļþÒÑɾ³ý
platform/src/layouts/AppLayout.vue
@@ -13,9 +13,15 @@
        <div style="height:10px;"></div>
        <main>
          <transition name="fade">
<<<<<<< HEAD
<!--            <keep-alive>-->
              <router-view></router-view>
<!--            </keep-alive>-->
=======
            <keep-alive>
              <router-view></router-view>
            </keep-alive>
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
          </transition>
        </main>
      </el-main>
platform/src/layouts/TableLayout.vue
ÎļþÒÑɾ³ý
platform/src/main.js
ÎļþÒÑɾ³ý
platform/src/plugins/cache.js
ÎļþÒÑɾ³ý
platform/src/plugins/consts.js
ÎļþÒÑɾ³ý
platform/src/plugins/download.js
ÎļþÒÑɾ³ý
platform/src/plugins/index.js
ÎļþÒÑɾ³ý
platform/src/plugins/message.js
ÎļþÒÑɾ³ý
platform/src/plugins/messagebox.js
ÎļþÒÑɾ³ý
platform/src/router/index.js
ÎļþÒÑɾ³ý
platform/src/store/index.js
ÎļþÒÑɾ³ý
platform/src/utils/form.js
ÎļþÒÑɾ³ý
platform/src/utils/icons.js
ÎļþÒÑɾ³ý
platform/src/utils/request.js
ÎļþÒÑɾ³ý
platform/src/utils/util.js
ÎļþÒÑɾ³ý
platform/src/views/business/dispatchUnit.vue
@@ -2,7 +2,11 @@
  <TableLayout :permissions="['business:dispatchunit:query']">
    <!-- æœç´¢è¡¨å• -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<<<<<<< HEAD
      <el-form-item label="所属业" prop="companyId">
=======
      <el-form-item label="所属企业" prop="companyId">
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
        <el-select v-model="searchForm.companyId" placeholder="请选择" @change="search">
          <el-option
              v-for="item in companyList"
platform/src/views/index.vue
ÎļþÒÑɾ³ý
platform/src/views/login.vue
@@ -1,4 +1,5 @@
<template>
<<<<<<< HEAD
    <div class="wrap">
        <div class="introduce">
            <h2>预选清单查询系统</h2>
@@ -29,6 +30,21 @@
                </template>
            </div>
            <el-button :loading="loading" @click="login">登&nbsp;&nbsp;录</el-button>
=======
  <div class="wrap">
    <div class="introduce">
      <h2>预选清单查询系统</h2>
    </div>
    <div class="login">
      <h1>系统登录&nbsp;/&nbsp;LOGIN IN</h1>
      <div class="info-input">
        <el-input v-model="username" placeholder="请输入用户名" prefix-icon="el-icon-user-solid" maxlength="50" v-trim/>
        <el-input v-model="password" placeholder="请输入密码" type="password" prefix-icon="eva-icon-password" maxlength="30" show-password/>
        <div class="captcha-input">
          <el-input v-model="captcha.value" placeholder="图片验证码" prefix-icon="eva-icon-shield" maxlength="4" @keypress.enter.native="login"/>
          <img v-if="!captcha.loading" :src="captcha.uri" @click="refreshCaptcha">
          <span v-else><i class="el-icon-loading"></i></span>
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
        </div>
    </div>
</template>
platform/src/views/no-permissions.vue
ÎļþÒÑɾ³ý
platform/src/views/not-found.vue
ÎļþÒÑɾ³ý
platform/src/views/system/data-permission.vue
ÎļþÒÑɾ³ý
platform/src/views/system/department.vue
ÎļþÒÑɾ³ý
platform/src/views/system/dict.vue
ÎļþÒÑɾ³ý
platform/src/views/system/loginLog.vue
ÎļþÒÑɾ³ý
platform/src/views/system/menu.vue
ÎļþÒÑɾ³ý
platform/src/views/system/menuCom.vue
ÎļþÒÑɾ³ý
platform/src/views/system/monitor.vue
ÎļþÒÑɾ³ý
platform/src/views/system/permission.vue
ÎļþÒÑɾ³ý
platform/src/views/system/position.vue
ÎļþÒÑɾ³ý
platform/src/views/system/role.vue
@@ -45,8 +45,12 @@
          min-width="270"
          fixed="right"
        >
<<<<<<< HEAD
<!--          v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)"-->
          <template slot-scope="{row}">
=======
          <template v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)" slot-scope="{row}">
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
            <el-button type="text" @click="$refs.operaRoleWindow.open('编辑角色', row)" icon="el-icon-edit" v-permissions="['system:role:update']">编辑</el-button>
            <el-button type="text" @click="$refs.permissionConfigWindow.open(row)" v-permissions="['system:role:createRolePermission']">配置权限</el-button>
            <el-button type="text" @click="$refs.menuConfigWindow.open(row)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">授权菜单</el-button>
platform/src/views/system/traceLog.vue
ÎļþÒÑɾ³ý
platform/src/views/system/user.vue
ÎļþÒÑɾ³ý
platform/vue.config.js
@@ -3,7 +3,11 @@
// const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length)
module.exports = {
  publicPath: './',
<<<<<<< HEAD
  outputDir: 'yyb_web',
=======
  outputDir: 'dest',
>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
  assetsDir: 'static',
  lintOnSave: false,
  devServer: {
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;
@@ -37,7 +39,6 @@
    @RequiresPermissions("business:company:create")
    public ApiResponse create(@RequestBody Company company) {
        companyService.create(company);
        companyService.startSignAuth(company.getId());
        return ApiResponse.success(null);
    }
@@ -92,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/DispatchUnitController.java
@@ -7,6 +7,7 @@
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.dto.DispatchUnitQueryDTO;
import com.doumee.dao.business.dto.SaveDispatchUnitDTO;
import com.doumee.dao.business.model.DispatchUnit;
@@ -119,6 +120,7 @@
    @PostMapping("/findListByDTO")
    @RequiresPermissions("business:dispatchunit:query")
    public ApiResponse<List<DispatchUnit>> findListByDTO (@RequestBody DispatchUnitQueryDTO dispatchUnitQueryDTO) {
        dispatchUnitQueryDTO.setDataType(Constants.TWO);
        return ApiResponse.success(dispatchUnitService.findByDTO(dispatchUnitQueryDTO));
    }
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -137,11 +137,17 @@
    @ApiOperation("测试实际金额")
    @GetMapping("/testFee")
    public ApiResponse testFee(@RequestParam Integer id) {
    public ApiResponse testFee(Integer id) {
        insuranceApplyService.updateApplyCurrentFee(id);
        return ApiResponse.success(null);
    }
    @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/company/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -6,6 +6,7 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Solutions;
import com.doumee.service.business.SolutionsService;
import io.swagger.annotations.Api;
@@ -17,6 +18,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author æ±Ÿè¹„蹄
@@ -85,10 +87,21 @@
    @ApiOperation("列表查询")
    @PostMapping("/list")
    @RequiresPermissions("business:solutions:query")
    public ApiResponse<List<Solutions>> findList () {
        return ApiResponse.success(solutionsService.findListForCompany());
    public ApiResponse<List<Solutions>> findList (Solutions solutions) {
        Integer dateType = Constants.TWO;
        if(!Objects.isNull(solutions)&&!Objects.isNull(solutions.getDataType())){
            dateType = solutions.getDataType();
        }
        return ApiResponse.success(solutionsService.findListForCompany(dateType));
    }
    @ApiOperation("根据历史版本查询当前最新启用版本")
    @GetMapping("/getNewVersion")
    public ApiResponse<Solutions> getNewVersion (@RequestParam Integer solutionId) {
        return ApiResponse.success(solutionsService.getNewVersion(solutionId));
    }
//    @ApiOperation("列表查询")
//    @PostMapping("/page")
//    public ApiResponse<List<Solutions>> findPage (@RequestBody Solutions solutions) {
server/company/src/main/java/com/doumee/api/system/SystemMenuController.java
@@ -47,12 +47,20 @@
        return ApiResponse.success(systemMenuBiz.findTree(loginUserInfo.getId(),loginUserInfo.getType()));
    }
//    @ApiOperation("查询列表树")
//    @PostMapping("/treeList")
//    @RequiresPermissions("system:menu:query")
//    public ApiResponse<List<SystemMenuListVO>> findTree () {
//        LoginUserInfo loginUserInfo = this.getLoginUser();
//        return ApiResponse.success(systemMenuBiz.findTreeByType(loginUserInfo.getType()));
//    }
    @ApiOperation("查询列表树")
    @PostMapping("/treeList")
    @PostMapping("/treeList/{type}")
    @RequiresPermissions("system:menu:query")
    public ApiResponse<List<SystemMenuListVO>> findTree () {
        LoginUserInfo loginUserInfo = this.getLoginUser();
        return ApiResponse.success(systemMenuBiz.findTreeByType(loginUserInfo.getType()));
    public ApiResponse<List<SystemMenuListVO>> treeList (@PathVariable Integer type) {
        return ApiResponse.success(systemMenuBiz.findTreeByType(type));
    }
    @PreventRepeat
server/company/src/main/resources/application.yml
@@ -6,7 +6,7 @@
#  env: production
server:
#  port: 10022
  port: 10025
  port: 10031
spring:
#  application:git
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/CompanyController.java
@@ -116,6 +116,13 @@
        pageWrap.setQueryFlag(Constants.ONE);//查询全部
        return ApiResponse.success(companyService.findList(pageWrap));
    }
    @ApiOperation("查询全部数据")
    @PostMapping("/list")
    @RequiresPermissions("business:company:query")
    public ApiResponse<List<Company>> findList (@RequestBody  Company pageWrap) {
        pageWrap.setQueryFlag(Constants.ZERO);//查询全部权限范围内
        return ApiResponse.success(companyService.findList(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
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/platform/src/main/resources/application.yml
@@ -5,7 +5,7 @@
  env: development
#  env: production
server:
  port: 10023
  port: 10030
spring:
#  application:
server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -2,6 +2,7 @@
import cn.emay.sdk.core.dto.sms.response.SmsResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.system.SystemUserBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -41,6 +42,8 @@
    @Autowired
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private CompanyService companyService;
    @Value("${debug_model}")
@@ -144,7 +147,8 @@
        // ç”Ÿæˆå¯†ç ç›
        String salt = RandomStringUtils.randomAlphabetic(6);
        // ç”Ÿæˆå¯†ç 
        systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
//        systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
        systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt));
        systemUser.setSalt(salt);
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        systemUser.setType(loginUserInfo.getType());
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -750,6 +750,7 @@
        COMPANY_EDIT(10, "保单修改","提交意见:${param1}\n${param2}",0),
        PLATFORM_CHECK_PASS(11, "投保审核通过","",0),
        UPLOAD_AGAIN(26, "再次投保","",0),
        PALTFORM_EDIT_BD(22, "修改保单","修改原因:${param}",0),
        CA_PLATFORM_CHECK_PASS_NO(12, "退回投保","提交意见:${param}",1),
@@ -762,7 +763,6 @@
        CA_COMPANY_CLOSE(19, "关闭订单","",1),
        CA_PALTFORM_REFUSE_APPLY(20, "驳回退回申请","",1),
        CA_PALTFORM_EDIT_PIDAN(21, "修改批单","修改原因:${param}",1),
        PALTFORM_EDIT_BD(22, "修改保单","修改原因:${param}",1),
        CA_JIAJIAN_APPLY_SIGN(23, "加减保申请企业签章","",1),
        CA_CHANGUNIT_APPLY_SIGN(24, "换厂申请企业签章","",1),
        CA_UPLOAD_AGAIN(25, "再次投保","",1),
@@ -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/dto/InsuranceApplyQueryDTO.java
@@ -61,7 +61,7 @@
    private Date createTimeE;
    @ApiModelProperty(value = "状态 0待审核 1平台退回保单(已退回) 2已上传代签申请表待企业签章(待签署)  3已签章待上传保险单(待出单) 4保单出具失败退回(已退回) 5已上传保单(保障中)6企业申请退回中 7平台同意退回(已退回) 8企业关闭  ï¼ˆå·²å…³é—­ï¼‰", example = "1")
    private Integer status;
    private String status;
    @ApiModelProperty(value = "类型 0直保 1委托投保")
    private Integer type;
@@ -71,6 +71,7 @@
    @ApiModelProperty(value = "即将失效订单:0=否;1=是")
    private Integer loseEfficacy;
    @ApiModelProperty(value = "状态 0待审核 1待出单 2保障中  3已过期 4已撤回 5退回申请中 6已关闭", example = "1")
    private Integer statusCollect;
}
server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
@@ -3,6 +3,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
@@ -34,6 +35,9 @@
    @ApiModelProperty(value = "保单主键下数据" , notes = "减保申请/换厂申请")
    private Integer insuranceApplyId;
    @ApiModelProperty(value = "批单日期" , notes = "减保申请/换厂申请")
    private Date validTime ;
    @ApiModelProperty(value = "企业主键")
    private Integer companyId;
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/CompanySolution.java
@@ -67,8 +67,8 @@
    @ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "方案编码(关联solutions)", example = "1")
    @ExcelColumn(name="方案编码(关联solutions)")
    @ApiModelProperty(value = "方案编码(关联solutions) åŸºè¡¨æ•°æ®", example = "1")
    @ExcelColumn(name="方案编码(关联solutions)基表数据")
    private Integer solutionBaseId;
    @ApiModelProperty(value = "是否可加保 0否 1是", example = "1")
@@ -88,4 +88,9 @@
    private Integer solutionId;
    @ApiModelProperty(value = "方案对象", example = "1")
    @TableField(exist = false)
    private Solutions solution;
}
server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
@@ -46,7 +46,6 @@
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
@@ -187,6 +186,9 @@
    @TableField(exist = false)
    private String statusInfo;
    @ApiModelProperty(value = "最后一次加减保/换厂日期")
    @TableField(exist = false)
    private Date lastChangeDate;
    public TaxesInvoicingVO toTaxesInvoicingVO(){
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/model/Solutions.java
@@ -132,9 +132,6 @@
    @ExcelColumn(name="签章关键字,多个用英文逗号隔开")
    private String signKeyword;
    @ApiModelProperty(value = "所属方案基表编码(solution_base_id)", example = "1")
    @ExcelColumn(name="所属方案基表编码(solution_base_id)")
    private Integer solutionBaseId;
    @ApiModelProperty(value = "版本号")
    @ExcelColumn(name="版本号")
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/SolutionsService.java
@@ -90,7 +90,9 @@
    PageData<Solutions> findPageCom(PageWrap<Solutions> pageWrap);
    List<Solutions> findListForCompany();
    List<Solutions> findListForCompany(Integer dataType);
    Solutions getNewVersion(Integer solutionId);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
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,76 +290,123 @@
                        .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)
                  .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId)
                        .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())
                    .eq(ApplyDetail::getMemberId, detail.getMemberId())
                    .le(ApplyDetail::getStartTime,applyStartTime)
                    .ge(ApplyDetail::getEndTime,applyStartTime)
                    .orderByDesc(ApplyDetail::getCreateDate)
                    .last("limit 1"));
            if(oldModel == null  ){
                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,用户【"+detail.getMemberName()+"】原保单信息有误,当前申请不支持减保处理!");
                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,用户【"+detail.getMemberName()+"】原保单信息有误,批单日期未在保单日期内!");
            }
            Date endDate = oldModel.getEndTime();
            //当前日期大于批单日期 éœ€è¦å›žæ»šæ•°æ®å®žé™…数据
            Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(update.getStartTime(),2))>0;
            //换厂后历史记录的费用 fee
            Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(update.getStartTime(),2),DateUtil.getMontageDate(oldModel.getStartTime(),1)) + 1;
            BigDecimal oldFee = this.getApplyPrice(update.getApplyId(),days);
            BigDecimal fee = oldModel.getFee();
            BigDecimal oldCurrentFee = oldModel.getCurrentFee();
            applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
                    .set(ApplyDetail::getEditor,update.getEditor())
                    .set(ApplyDetail::getEditDate,update.getEditDate())
                    .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getStartTime(),2))
                    .set(ApplyDetail::getFee,oldFee)
                    .set(flag,ApplyDetail::getCurrentFee,oldFee)
                    .eq(ApplyDetail::getId,oldModel.getApplyId())
            );
            //修改 å‘˜å·¥æŠ•保明细记录 åŽ†å²æ•°æ®
            memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
                    .set(MemberInsurance::getEndTime,update.getApplyStartTime())
                            .set(MemberInsurance::getFee,oldFee)
                    .eq(MemberInsurance::getRelationId,oldModel.getId())
            );
            //如果实际批单日期 å’Œ åŽŸè®°å½•æ—¥æœŸç›¸ç­‰ åˆ™ç›´æŽ¥ä¿®æ”¹è®°å½•派遣单位与工种信息
            if(applyStartTime.compareTo(oldModel.getStartTime())!=Constants.ZERO){
                //当前日期大于批单日期 éœ€è¦å›žæ»šæ•°æ®å®žé™…数据
                Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(update.getApplyStartTime(),2))>0;
                //换厂后历史记录的费用 fee
                Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(update.getApplyStartTime(),3),DateUtil.getMontageDate(oldModel.getStartTime(),1))+1;
                BigDecimal oldFee = this.getApplyPrice(update.getApplyId(),days);
                BigDecimal fee = oldModel.getFee();
                BigDecimal oldCurrentFee = oldModel.getCurrentFee();
            ApplyDetail applyDetail = new ApplyDetail();
            applyDetail.setApplyId(oldModel.getApplyId());
            applyDetail.setCreateDate(new Date());
            applyDetail.setCreator(update.getEditor());
            applyDetail.setMemberId(oldModel.getMemberId());
            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));
            if(flag){
                applyDetail.setCurrentFee(oldCurrentFee.multiply(oldFee));
                applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
                        .set(ApplyDetail::getEditor,update.getEditor())
                        .set(ApplyDetail::getEditDate,update.getEditDate())
                        .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(),3))
                        .set(ApplyDetail::getFee,oldFee)
                        .set(flag,ApplyDetail::getCurrentFee,oldFee)
                        .eq(ApplyDetail::getId,oldModel.getId())
                );
                //修改 å‘˜å·¥æŠ•保明细记录 åŽ†å²æ•°æ®
                memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
                        .set(MemberInsurance::getEndTime,update.getApplyStartTime())
                        .set(MemberInsurance::getFee,oldFee)
                        .eq(MemberInsurance::getRelationId,oldModel.getId())
                );
                ApplyDetail applyDetail = new ApplyDetail();
                applyDetail.setApplyId(oldModel.getApplyId());
                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{
                    applyDetail.setCurrentFee(BigDecimal.ZERO);
                }
                applyDetail.setSex(oldModel.getSex());
                applyDetail.setMemberName(oldModel.getMemberName());
                applyDetail.setFromId(detail.getId());
                applyDetailJoinMapper.insert(applyDetail);
                MemberInsurance memberInsurance = new MemberInsurance(applyDetail,update.getId());
                memberInsuranceJoinMapper.insert(memberInsurance);
            }else{
                applyDetail.setCurrentFee(BigDecimal.ZERO);
            }
            applyDetail.setSex(oldModel.getSex());
            applyDetail.setMemberName(oldModel.getMemberName());
            applyDetail.setFromId(detail.getId());
            applyDetailJoinMapper.insert(applyDetail);
            MemberInsurance memberInsurance = new MemberInsurance(applyDetail,update.getId());
            memberInsuranceJoinMapper.insert(memberInsurance);
                applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
                        .set(ApplyDetail::getEditor,update.getEditor())
                        .set(ApplyDetail::getEditDate,update.getEditDate())
                        .set(ApplyDetail::getDuId,detail.getDuId())
                        .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
                        .eq(ApplyDetail::getId,oldModel.getId())
                );
                //员工投保明细记录 åŽ†å²æ•°æ®
                memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
                        .set(MemberInsurance::getDuId,detail.getDuId())
                        .set(MemberInsurance::getDuName,detail.getDuName())
                        .set(MemberInsurance::getWorktypeId,detail.getWorktypeId())
                        .set(MemberInsurance::getWorktypeName,detail.getWorkTypeName())
                        .eq(MemberInsurance::getRelationId,oldModel.getId())
                );
            }
            Member member = memberMapper.selectById(detail.getMemberId());
            if(Objects.isNull(member)){
@@ -359,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())
            );
        }
    }
    /**
@@ -369,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)
@@ -390,7 +459,6 @@
        //投保记录 åŠ ä¿æ•°æ®åŠ å…¥æ–°æ•°æ®  å‡ä¿æ•°æ® ä¿®æ”¹è€æ•°æ®
        List<MemberInsurance> memberInsuranceList = new ArrayList<>();
        //加保业务 ä½¿ç”¨çš„加保金额
        ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO_add = new ApplyChangeCyclePriceDTO();
        applyChangeCyclePriceDTO_add.setApplyId(update.getApplyId());
@@ -406,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());
@@ -417,14 +498,18 @@
                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());
                if (DateUtil.daysBetweenDates(DateUtil.getMontageDate(detail.getStartTime(), 2), new Date()) >= 0) {
                if(new Date().compareTo(DateUtil.getMontageDate(detail.getStartTime(), 2))>=0){
                    Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2), detail.getStartTime()) + 1;
                    //如果已产生费用,计算已产生费用
                    add.setCurrentFee(this.getApplyPrice(update.getApplyId(), days));
@@ -437,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 {
                    //减保操作
                    //查询员工是在主单下 æ˜¯å¦å­˜åœ¨ç”Ÿæ•ˆä¸­çš„æ•°æ®
@@ -480,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());
@@ -502,6 +602,9 @@
                    .set(InsuranceApply::getEditDate, update.getEditDate())
                    .eq(InsuranceApply::getId, update.getApplyId())
            );
            update.setFee(totalFee);
        }
    }
@@ -620,7 +723,7 @@
        }
        CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda()
                .eq(CompanySolution::getCompanyId,loginUserInfo.getCompanyId())
                .eq(CompanySolution::getSolutionBaseId,solutions.getId())
                .eq(CompanySolution::getSolutionId,solutions.getId())
                .eq(CompanySolution::getIsdeleted,Constants.ZERO)
                .last(" limit 1 ")
        );
@@ -632,6 +735,16 @@
                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "申请日期未处于保单日期内,无法进行该操作");
        }
        //查询保单下是否存在进行中的加减保/换厂单据
        if(applyChangeMapper.selectCount(new QueryWrapper<ApplyChange>().lambda()
                .eq(ApplyChange::getApplyId,insuranceApply.getId())
                .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.APPROVE.getKey(),Constants.ApplyChangeStatus.CLOSE.getKey())
        )>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "存在进行中的加减保/换厂申请");
        };
        applyChange.setCreateDate(new Date());
        applyChange.setCreator(loginUserInfo.getId());
        applyChange.setEditor(loginUserInfo.getId());
@@ -647,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();
@@ -722,7 +829,14 @@
                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "申请日期未处于保单日期内,无法进行该操作");
        }
        //查询保单下是否存在进行中的加减保/换厂单据
        if(applyChangeMapper.selectCount(new QueryWrapper<ApplyChange>().lambda()
                .eq(ApplyChange::getApplyId,insuranceApply.getId())
                .ne(ApplyChange::getId,applyChange.getId())
                .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.APPROVE.getKey(),Constants.ApplyChangeStatus.CLOSE.getKey())
        )>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "存在进行中的加减保/换厂申请");
        };
        applyChange.setEditDate(new Date());
        applyChange.setEditor(loginUserInfo.getId());
        applyChange.setApplyStartTime(applyChange.getValidTime());
@@ -733,7 +847,6 @@
        BigDecimal fee = this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,BigDecimal.ZERO);
        applyChange.setFee(fee);
        applyChangeMapper.updateById(applyChange);
        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_UPLOAD_AGAIN;
        String info =applyLogType.getInfo();
@@ -844,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() + "】未查询到系统人员信息");
@@ -862,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() + "】保单信息异常,存在多条数据");
@@ -901,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());
@@ -1026,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() + "】未查询到系统人员信息");
@@ -1035,6 +1186,7 @@
                    new MPJLambdaWrapper<ApplyChagneDetail>()
                            .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
                            .eq(ApplyChagneDetail::getMemberId, applyChagneDetail.getMemberId())
                            .eq(ApplyChange::getApplyId, applyChange.getApplyId())
                            .in(ApplyChange::getStatus, Constants.ZERO, Constants.ONE)
            ) > Constants.ZERO) {
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "换厂人员【" + applyChagneDetail.getMemberName() + "】存在申请中的加减保/换厂单据");
@@ -1043,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){
@@ -1060,6 +1213,10 @@
            if (duWorktypeList.stream().filter(d ->  d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
                    .collect(Collectors.toList()).size() <= Constants.ZERO) {
                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "换厂人员【" + applyChagneDetail.getMemberName() + "】员工工种信息未查询到!");
            }
            if(applyChagneDetail.getOldDuId().equals(applyChagneDetail.getDuId())
            && applyChagneDetail.getOldWorktypeId().equals(applyChagneDetail.getWorktypeId())){
                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "换厂人员【" + applyChagneDetail.getMemberName() + "】换厂数据相同!");
            }
            applyChagneDetail.setCreateDate(new Date());
            applyChagneDetail.setCreator(loginUserInfo.getId());
@@ -1201,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" );
@@ -1216,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;
    }
@@ -1280,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);
@@ -1334,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);
    }
@@ -1531,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/CompanyServiceImpl.java
@@ -116,6 +116,8 @@
        //处理关联方案
        dealSolutionsData(company);
    }
    @Override
    @Transactional
    public void exportFiles(Integer id, HttpServletResponse response){
        try {
@@ -228,6 +230,11 @@
            if(s.getSolutionBaseId() == null){
                continue;
            }
            Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,s.getSolutionBaseId())
                    .eq(Solutions::getDataType,Constants.TWO).last("limit 1"));
            if(Objects.isNull(newVersion)){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!");
            }
            sIds.add(s.getSolutionBaseId());
            s.setCompanyId(company.getId());
            s.setIsdeleted(Constants.ZERO);
@@ -236,6 +243,8 @@
            s.setCreateDate(company.getCreateDate());
            s.setCreator(company.getCreator());
            s.setSortnum(num++);
            s.setSolutionBaseId( s.getSolutionBaseId() );
            s.setSolutionId( newVersion.getId() );
            s.setStatus(Constants.ZERO);
            list.add(s);
        }
@@ -256,6 +265,45 @@
        companySolutionJoinMapper.insertBatchSomeColumn(list);
    }
   /* private void dealSolutionsData(Company company) {
        List<Integer> sIds = new ArrayList<>();
        List<CompanySolution> list = new ArrayList<>();
        int num =0;
        for(CompanySolution s :company.getSolutionList()){
            if(s.getSolution() == null || s.getSolution().getBaseId() == null ||s.getSolution().getId()==null){
                continue;
            }
            sIds.add(s.getSolution().getId() );
            s.setCompanyId(company.getId());
            s.setIsdeleted(Constants.ZERO);
            s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd()));
            s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce()));
            s.setCreateDate(company.getCreateDate());
            s.setCreator(company.getCreator());
            s.setSortnum(num++);
            s.setSolutionBaseId( s.getSolution().getId() );
            s.setSolutionId( s.getSolution().getBaseId() );
            s.setStatus(Constants.ZERO);
            list.add(s);
        }
        if(list.size() ==0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!");
        }
        List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda()
                .in(Solutions::getId,sIds)
                .eq(Solutions::getIsdeleted,Constants.ZERO));
        if(solutionsList.size()!= list.size()){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息哦");
        }
        for(Solutions s:solutionsList){
            if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"保险方案【"+s.getName()+"】已被禁用,不能进行该操作");
            }
        }
        companySolutionJoinMapper.insertBatchSomeColumn(list);
    }*/
    private void isValidCreateParam(Company company) {
        if(StringUtils.isBlank(company.getPhone())
            ||StringUtils.isBlank(company.getName())
@@ -628,6 +676,9 @@
            for(Company company :companyList){
                //查询企业签约状态 å®¡æ ¸çŠ¶æ€,0正在申请1通过2驳回
                int status = signService.organizationAuditStatus(company.getEmail());
                if(status == 0){
                    continue;
                }
                if(status == 1){
                    Company update = new Company();
                    update.setId(company.getId());
@@ -681,12 +732,9 @@
                        //更新认证状态
                        companyMapper.updateById(update);
                    }
                }
            }
        }
    }
//    @Override
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);
@@ -185,6 +187,19 @@
        update.setEndTime(actEndTime);
        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)
                .eq(Multifile::getObjType,Constants.MultiFile.BD_DONE_PDF.getKey())
                .eq(Multifile::getObjId,update.getId())
                .set(Multifile::getIsdeleted,Constants.ONE)
                .set(Multifile::getEditDate,update.getEditDate())
                .set(Multifile::getEditor,update.getEditor())
        );
        insuranceApply.getBaoxiandanFile().setIsdeleted(Constants.ZERO);
        insuranceApply.getBaoxiandanFile().setCreator(user.getId());
@@ -443,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);
@@ -468,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());
@@ -484,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);
@@ -680,6 +700,14 @@
        update.setId(model.getId());
        insuranceApplyMapper.updateById(update);
        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
                .eq(Multifile::getIsdeleted,Constants.ZERO)
                .eq(Multifile::getObjType,Constants.MultiFile.BD_APPLY_PDF.getKey())
                .eq(Multifile::getObjId,update.getId())
                .set(Multifile::getIsdeleted,Constants.ONE)
                .set(Multifile::getEditDate,update.getEditDate())
                .set(Multifile::getEditor,update.getEditor())
        );
        insuranceApply.getToubaodanFile().setIsdeleted(Constants.ZERO);
        insuranceApply.getToubaodanFile().setCreator(user.getId());
        insuranceApply.getToubaodanFile().setObjId(update.getId());
@@ -753,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);
@@ -798,6 +828,8 @@
        Constants.InsuranceApplyStatus insuranceApplyStatus = Constants.InsuranceApplyStatus.UPLOAD;
        insuranceApply.setCreateDate(new Date());
        insuranceApply.setCreator(loginUserInfo.getId());
        insuranceApply.setEditor(loginUserInfo.getId());
        insuranceApply.setEditDate(new Date());
        insuranceApply.setIsdeleted(Constants.ZERO);
        insuranceApply.setCompanyId(loginUserInfo.getCompanyId());
        insuranceApply.setCheckInfo(insuranceApplyStatus.getName());
@@ -836,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);
@@ -920,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);
@@ -1027,6 +1063,7 @@
                applyDetail.setIdcardNo(member.getIdcardNo());
                applyDetail.setSex(member.getSex());
                applyDetail.setFee(countCyclePriceVO.getCyclePrice());
                applyDetail.setCurrentFee(BigDecimal.ZERO);
                //验证派遣单位信息是否存在
                if(duSolutionList.stream().filter(d->d.getDispatchUnitId().equals(applyDetail.getDuId())).collect(Collectors.toList()).size()<=Constants.ZERO){
                    throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"【"+applyDetail.getMemberName()+"】员工派遣单位未查询到!");
@@ -1102,7 +1139,7 @@
        queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName);
        queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName);
        queryWrapper.select(" DATEDIFF( t.END_TIME ,now()  ) AS loseEfficacyDays  ");
        queryWrapper.select(" ( select count(1) from apply_detail ad  where ad.apply_id = t.id ) as insureNum");
        queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum");
        if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){
            queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney");
            queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast ");
@@ -1136,19 +1173,19 @@
            queryWrapper.ge(InsuranceApply::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTimeS()));
        }
        if (pageWrap.getModel().getEndTimeE() != null) {
            queryWrapper.le(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE()));
            queryWrapper.lt(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE()));
        }
        if (pageWrap.getModel().getStartTimeS() != null) {
            queryWrapper.ge(InsuranceApply::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTimeS()));
        }
        if (pageWrap.getModel().getStartTimeE() != null) {
            queryWrapper.le(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE()));
            queryWrapper.lt(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE()));
        }
        if (pageWrap.getModel().getCreateTimeS() != null) {
            queryWrapper.ge(InsuranceApply::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateTimeS()));
        }
        if (pageWrap.getModel().getCreateTimeE() != null) {
            queryWrapper.le(InsuranceApply::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateTimeE()));
            queryWrapper.lt(InsuranceApply::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateTimeE()));
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.eq(Solutions::getType, pageWrap.getModel().getType());
@@ -1157,7 +1194,7 @@
            queryWrapper.eq(InsuranceApply::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.eq(InsuranceApply::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.in(InsuranceApply::getStatus, pageWrap.getModel().getStatus().split(","));
        }
        if(CollectionUtils.isNotEmpty(pageWrap.getSorts())){
            for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -1182,7 +1219,7 @@
    public void    initApplyStatus(InsuranceApply apply){
        apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus()));
        if(Constants.equalsInteger(apply.getStatusCollect(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
        if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
            //如果已完成
            if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){
                apply.setStatusCollect(Constants.THREE);//已过期
@@ -1243,7 +1280,7 @@
            queryWrapper.eq(InsuranceApply::getCode, model.getCode());
        }
        if (model.getStatus() != null) {
            queryWrapper.eq(InsuranceApply::getStatus, model.getStatus());
            queryWrapper.in(InsuranceApply::getStatus, model.getStatus().split(","));
        }
        if (CollectionUtils.isNotEmpty(model.getIds())) {
            queryWrapper.in(InsuranceApply::getId, model.getIds());
@@ -1268,7 +1305,8 @@
                .selectAll(InsuranceApply.class)
                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                .selectAs(Company::getName,InsuranceApply::getCompanyName)
                .select(" ( select count(1) from apply_detail ad  where ad.apply_id = t.id ) as insureNum")
                .select(" ( select max(ac.APPLY_START_TIME) from apply_change ac  where ac.apply_id = t.id and ac.status = 2 ) as lastChangeDate")
                .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum")
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                .eq(InsuranceApply::getId,id)
@@ -1291,6 +1329,7 @@
                        .selectAll(ApplyLog.class)
                        .selectAs(SystemUser::getRealname,ApplyLog::getCreatorName)
                        .selectAs(Company::getName,ApplyLog::getCompanyName)
                        .selectAs(SystemUser::getType,ApplyLog::getCreatorType)
                        .leftJoin(SystemUser.class,SystemUser::getId,ApplyLog::getCreator)
                        .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                        .in(ApplyLog::getObjType,Constants.ApplyLogType.getTypeList(Constants.ZERO))
@@ -1397,8 +1436,7 @@
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void applyOpt(InsuranceApplyOptDTO insuranceApplyOptDTO){
        if(Objects.isNull(insuranceApplyOptDTO)
            ||Objects.isNull(insuranceApplyOptDTO.getApplyId())
            ||StringUtils.isBlank(insuranceApplyOptDTO.getOptIllustration())){
            ||Objects.isNull(insuranceApplyOptDTO.getApplyId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -1436,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);
@@ -1500,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());
                    }
@@ -1508,6 +1551,9 @@
                insuranceApplyMapper.updateById(insuranceApply);
            }
        }
//        if(1==1){
//            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
//        }
    }
@@ -1531,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实现
@@ -211,15 +209,25 @@
                .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")
        ;
         queryWrapper.orderByAsc(DispatchUnit::getName);
         queryWrapper.orderByAsc(Member::getName);
//        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
//            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
//                queryWrapper.orderByDesc(sortData.getProperty());
//            } else {
//                queryWrapper.orderByAsc(sortData.getProperty());
//            }
//        }
        PageData<Member> pageData = PageData.from(memberJoinMapper.selectJoinPage(page,Member.class, queryWrapper));
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
        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()));
            }
        }
        PageData<Member> pageData = PageData.from(memberJoinMapper.selectJoinPage(page,Member.class, queryWrapper));
        return pageData;
    }
@@ -247,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)
@@ -262,8 +271,11 @@
                    .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
                    .eq(Member::getIsdeleted, Constants.ZERO)
                    .eq(InsuranceApply::getId,memberQueryDTO.getInsuranceApplyId())
                    .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 " +
                    .le(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getStartTime,memberQueryDTO.getValidTime())
                    .ge(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getEndTime,memberQueryDTO.getValidTime())
                    .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);
@@ -284,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)
        );
@@ -298,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());
@@ -879,7 +913,7 @@
        if (pageWrap.getModel().getInsuranceApplyId() != null) {
            queryWrapper.eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId());
        }
        queryWrapper.orderByAsc(SettleClaims::getCreateDate);
        queryWrapper.orderByDesc(SettleClaims::getCreateDate);
        /*for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -7,10 +7,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.InsuranceMapper;
import com.doumee.dao.business.SolutionWorktypeMapper;
import com.doumee.dao.business.SolutionsMapper;
import com.doumee.dao.business.WorktypeMapper;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.SolutionWorktypeJoinMapper;
import com.doumee.dao.business.join.SolutionsJoinMapper;
import com.doumee.dao.business.model.*;
@@ -26,6 +23,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
@@ -52,8 +50,13 @@
    private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper;
    @Autowired
    private InsuranceMapper insuranceMapper;
    @Autowired
    private CompanySolutionMapper companySolutionMapper;
    @Autowired
    private DuSolutionMapper duSolutionMapper;
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(Solutions solutions) {
        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        initCreateParam(solutions);//工种数据有效性检验,去除空白行数据
@@ -85,7 +88,7 @@
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该保险公司信息不存在,请尝试刷新页面重试~" );
        }
        if( !Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该保险公司已被,请尝试刷新页面重试~" );
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该保险公司已被禁用,请尝试刷新页面重试~" );
        }
        List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
                .eq(Worktype::getInsuranceId,solutions.getInsuranceId())
@@ -154,6 +157,7 @@
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void updateById(Solutions solutions) {
        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        Solutions model = findById(solutions.getId());
@@ -168,6 +172,18 @@
        solutions.setVersion(UUID.randomUUID().toString());
        solutions.setEditDate(new Date());
        solutionsMapper.updateById(solutions);
        Solutions oldVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>()
                .lambda()
                .eq(Solutions::getBaseId,solutions.getId())
                .eq(Solutions::getDataType,Constants.TWO)
                .last("limit 1")
        );
        if(Objects.isNull(oldVersion)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到历史版本数据");
        }
        //如果修改,则产生一个新的历史版本 ~
        Solutions newModel = new Solutions();
@@ -184,6 +200,8 @@
                .lambda()
                .eq(SolutionWorktype::getSolutionId,solutions.getId())
        );
        solutionsMapper.update(null,new UpdateWrapper<Solutions>()
                .lambda()
                .ne(Solutions::getId,newModel.getId())
@@ -194,6 +212,23 @@
        );
        //处理工种信息,新增最新的,同时产生历史版本
        dealWorkType(solutions,newModel,solutions.getWorktypeIdList(),false);
        //更新company_solution ä½¿ç”¨æ–°ç‰ˆæœ¬çš„æ•°æ®
        companySolutionMapper.update(null,
                new UpdateWrapper<CompanySolution>()
                        .lambda()
                        .eq(CompanySolution::getStatus,Constants.ZERO)
                        .set(CompanySolution::getSolutionId,newModel.getId())
                        .eq(CompanySolution::getSolutionBaseId,solutions.getId())
        );
        //更新 du_solution ä½¿ç”¨æ–°ç‰ˆæœ¬çš„æ•°æ®
        duSolutionMapper.update(null,
                 new UpdateWrapper<DuSolution>()
                         .lambda()
                         .eq(DuSolution::getIsdeleted, Constants.ZERO)
                         .eq(DuSolution::getStatus, Constants.ONE)
                         .set(DuSolution::getSolutionId,newModel.getId())
                         .eq(DuSolution::getSolutionId,oldVersion.getId()));
    }
    @Override
@@ -359,9 +394,7 @@
        if (pageWrap.getModel().getOrtherInfo() != null) {
            queryWrapper.eq(Solutions::getOrtherInfo, pageWrap.getModel().getOrtherInfo());
        }
        if (pageWrap.getModel().getSolutionBaseId() != null) {
            queryWrapper.eq(Solutions::getSolutionBaseId, pageWrap.getModel().getSolutionBaseId());
        }
        if (pageWrap.getModel().getVersion() != null) {
            queryWrapper.eq(Solutions::getVersion, pageWrap.getModel().getVersion());
        }
@@ -413,24 +446,52 @@
    @Override
    public List<Solutions> findListForCompany() {
    public List<Solutions> findListForCompany(Integer dataType) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        List<Solutions> solutionsList = solutionsJoinMapper.selectJoinList(Solutions.class,new MPJLambdaWrapper<Solutions>()
                        .selectAll(Solutions.class)
                .leftJoin(CompanySolution.class,CompanySolution::getSolutionBaseId,Solutions::getId)
                .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::getDataType,Constants.TWO)
                .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;
    }
    /**
     * æ ¹æ®åŽ†å²ç‰ˆæœ¬æŸ¥è¯¢å½“å‰æœ€æ–°å¯ç”¨ç‰ˆæœ¬
     * @param solutionId
     * @return
     */
    @Override
    public Solutions getNewVersion(Integer solutionId){
        Solutions solutions = solutionsMapper.selectById(solutionId);
        if(Objects.isNull(solutions)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到历史方案信息");
        }
        if(solutions.getDataType().equals(Constants.TWO)){
            return solutions;
        }
        Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda()
                .eq(Solutions::getIsdeleted,Constants.ZERO)
                .eq(Solutions::getDataType,Constants.TWO)
                .eq(Solutions::getBaseId,solutions.getBaseId())
                .last("limit 1")
        );
        if(Objects.isNull(newVersion)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到最新版本数据");
        }
        return newVersion;
    }
    @Override
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());