From 2837bdd57f72e386bbf9a725e7b3a13e5eb9e930 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 21 八月 2023 09:19:57 +0800 Subject: [PATCH] 修复bug --- server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 76 insertions(+), 23 deletions(-) diff --git a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java index e121285..d155676 100644 --- a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java +++ b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java @@ -149,30 +149,43 @@ } //鍙兘鏌ョ湅褰撳墠鏍圭粍缁囩殑鏁版嵁 pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); - pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); - - //鏁版嵁鏉冮檺 - List<Integer> dataPermission = user.getDepartPermissionList(); - if(dataPermission!=null){ -// pageWrap.getModel().setUserId(user.getId()); -// pageWrap.getModel().setDepartIds(dataPermission); - /*if(dataPermission.size() == 0){ - //鍙兘鐪嬭嚜宸辩殑(鐢熶骇浜哄憳淇℃伅锛� - // pageWrap.getModel().setProUserId(user.getId()); - //闇�姹傚彉鏇� 鏌ョ湅鏁版嵁鏉冮檺鑼冨洿鍐呯殑鏁版嵁锛堣蛋鍒涘缓浜烘垨鑰呯敓浜т汉鍛樹负鎴戞暟鎹潈闄愯寖鍥村唴锛夛紱 - pageWrap.getModel().setCreateUser(user.getId()); - }else{ - //鍚﹀垯璧版暟鎹潈闄� - pageWrap.getModel().setDepartIds(dataPermission); - }*/ - } List<SalaryStatisticsListVO> result = workorderRecordExtMapper.salaryStatistic(pageWrap.getModel()); if(result!=null){ List<DepartmentExtListVO> allDepartList = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_DEPART_LIST_KEY+user.getCompany().getId(),ArrayList.class); for(SalaryStatisticsListVO model : result){ //鏌ヨ鐢熶骇浜哄憳濮撳悕 - initProUser(user,model,allDepartList); +// model.setUserName(initProUser(user,model.getUserId(),allDepartList)); + model.setUserInfo(initProUser(user,model.getUserId(),allDepartList)); + model.setJijianSalary(model.getJijianSalary().divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)); + model.setJishiSalary(model.getJishiSalary().divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)); + model.setTotalSalary(model.getTotalSalary().divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)); + } + } + return PageData.from(new PageInfo<>(result)); + } + @Override + public PageData<UserSalaryListVO> userSalaryPage(PageWrap<QueryUserSalaryListDTO> pageWrap) { + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎮ㄦ棤鏉冮檺杩涜璇ユ搷浣滐紒"); + } + //鍙兘鏌ョ湅褰撳墠鏍圭粍缁囩殑鏁版嵁 + pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); + pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); + PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); + + //鏁版嵁鏉冮檺 +// List<Integer> dataPermission = user.getDepartPermissionList(); + List<UserSalaryListVO> result = workorderRecordExtMapper.userSalaryPage(pageWrap.getModel()); + if(result!=null){ + List<DepartmentExtListVO> allDepartList = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.COM_DEPART_LIST_KEY+user.getCompany().getId(),ArrayList.class); + for(UserSalaryListVO model : result){ + //鏌ヨ鐢熶骇浜哄憳濮撳悕 + model.setUserInfo(initProUser(user,model.getUserId(),allDepartList)); + if(Constants.formatBigdecimal4Float(model.getNum()).compareTo(new BigDecimal(0))>0){ + model.setRate(Constants.formatBigdecimal4Float(model.getQualifiedNum()).divide(model.getNum(),4).multiply(new BigDecimal(100))); + } } } return PageData.from(new PageInfo<>(result)); @@ -193,20 +206,28 @@ data.setProcedureName(comp.getName()+"-"+dName); } } - private void initProUser(LoginUserInfo user, SalaryStatisticsListVO data, List<DepartmentExtListVO> allDepartList) { - if(data.getUserId() ==null){ - return; + private UserBaseInfoVO initProUser(LoginUserInfo user, Integer userId, List<DepartmentExtListVO> allDepartList) { + if(userId ==null){ + return null; } + CompanyUser query=new CompanyUser(); - query.setUserId(data.getUserId()); + query.setUserId(userId); query.setRootDepartId(user.getRootDepartment().getId()); query.setDeleted(Constants.ZERO); CompanyUser comp= companyUserExtMapper.selectOne(new QueryWrapper<>(query).last(" limit 1")); if(comp!=null){ + UserBaseInfoVO userinfo = new UserBaseInfoVO(); DepartmentExtListVO d = departmentExtService.getModelById(user.getCompany().getId(),comp.getDepartmentId(),allDepartList); String dName =d==null?"":StringUtils.defaultString(d.getName(),""); - data.setUserName(comp.getName()+"-"+dName); + userinfo.setNameAndDepart (comp.getName()+"-"+dName); + userinfo.setDepartId(d.getId()); + userinfo.setUserId(userId); + userinfo.setUserName(comp.getName()); + userinfo.setDepartName(d.getName()); + return userinfo; } + return null; } @Override public List<WorkorderRecordExtListVO> findAll(QueryWorkorderRecordExtDTO pageWrap) { @@ -474,6 +495,7 @@ } if(!Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.create) && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.material) + && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.producing) && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.check) && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.done)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠姸鎬佸凡娴佽浆锛屼笉鑳借繘琛岃鎿嶄綔锛�"); @@ -511,6 +533,7 @@ } if(!Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.create) && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.material) + && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.producing) && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.check) && !Constants.equalsInteger(model.getWorkorderStatus(),Constants.WORKORDER_STATUS.done)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠姸鎬佸凡娴佽浆锛屼笉鑳借繘琛岃鎿嶄綔锛�"); @@ -814,9 +837,11 @@ if(!Constants.equalsInteger(tModel.getDoneType(),Constants.ZERO)){ //濡傛灉涓嶈壇锛岀疮璁″伐鍗曠殑涓嶈壇浜у嚭 mp.setUnqualifiedNum(Constants.formatIntegerNum(mp.getUnqualifiedNum())+(Constants.formatBigdecimal(tModel.getNum()).intValue())); +// mp.setUnqualifiedNum(mp.getUnqualifiedNum().add(tModel.getNum())); }else{ //濡傛灉鏄悎鏍硷紝绱宸ュ崟鐨勫悎鏍兼暟閲� mp.setQualifiedNum(Constants.formatIntegerNum(mp.getQualifiedNum())+(Constants.formatBigdecimal(tModel.getNum()).intValue())); +// mp.setUnqualifiedNum(mp.getQualifiedNum().add(tModel.getNum())); } //妫�鏌ョ绛愭槸鍚﹁浣滀负浜у嚭绡瓙锛屽鏋滄槸锛屽垯闇�瑕佸垽鏂绡瓙鏄惁鎶曟枡浣欓涓�0 Appliances curUpdateModel = getApplianceFromList(tModel.getAppliancesId(),updateApplianceList); @@ -1561,6 +1586,7 @@ } if(!Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.create) && !Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.material) + && !Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.producing) && !Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.check) && !Constants.equalsInteger(mp.getStatus(),Constants.WORKORDER_STATUS.done)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璇ュ伐鍗曠姸鎬佸凡娴佽浆锛屼笉鑳借繘琛岃鎿嶄綔锛�"); @@ -1655,6 +1681,33 @@ @Override + public void exportUserSalary(PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response) { + List<UserSalaryListVO> result=this.userSalaryPage(pageWrap).getRecords(); + for(UserSalaryListVO model : result) { + if(model.getUserInfo()!=null){ + model.setUserName(model.getUserInfo().getUserName()); + model.setDepartName(model.getUserInfo().getDepartName()); + model.setNum(Constants.formatBigdecimalFloat(model.getNum(),2)); + model.setQualifiedNum(Constants.formatBigdecimalFloat(model.getQualifiedNum(),2)); + model.setUnQualifiedNum(Constants.formatBigdecimalFloat(model.getUnQualifiedNum(),2)); + model.setRate(Constants.formatBigdecimalFloat(model.getRate(),2)); + } + } + ExcelExporter.build(UserSalaryListVO.class).export(result, "鍛樺伐缁╂晥鏄庣粏"+System.currentTimeMillis(), response); + } + @Override + public void exportSalaryStatistics(PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response){ + List<SalaryStatisticsListVO> result=this.salaryStatistic(pageWrap).getRecords(); + for(SalaryStatisticsListVO model : result) { + if(model.getUserInfo()!=null){ + model.setUserName(model.getUserInfo().getUserName()); + model.setDepartName(model.getUserInfo().getDepartName()); + } + } + ExcelExporter.build(SalaryStatisticsListVO.class).export(result, "宸ヨ祫鎶ヨ〃"+System.currentTimeMillis(), response); + + } + @Override public void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap, HttpServletResponse response) { List<WorkorderRecordExtListVO> result=this.findPage(pageWrap).getRecords(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); -- Gitblit v1.9.3