From 3eca8e4741b06c6049fedccd5c0dea4e01b7aa5c Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期一, 14 八月 2023 15:19:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/src/main/java/doumeemes/dao/system/vo/SystemMenuListVO.java | 2 server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java | 3 server/src/main/java/doumeemes/dao/ext/dto/QueryWorkorderRecordExtDTO.java | 5 server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java | 3 server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java | 33 ++++++++ server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java | 51 ++++++++++++ server/src/main/resources/mappers/WorkorderRecordExtMapper.xml | 18 ++++ server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java | 2 server/src/main/java/doumeemes/dao/system/model/SystemMenu.java | 4 + server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java | 8 ++ server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java | 49 ++++++++++++ server/src/main/java/doumeemes/dao/business/model/Workorder.java | 8 + server/src/main/java/doumeemes/dao/business/model/SalaryParam.java | 7 + server/src/main/java/doumeemes/dao/ext/vo/WorkorderRecordExtListVO.java | 7 + 14 files changed, 191 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java b/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java index c18ad2f..305e561 100644 --- a/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java +++ b/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java @@ -14,7 +14,9 @@ import doumeemes.dao.business.model.WorkorderRecord; import doumeemes.dao.ext.bean.EndCheckApBean; import doumeemes.dao.ext.beanDto.QueryWStockDto; +import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO; import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; +import doumeemes.dao.ext.vo.SalaryStatisticsListVO; import doumeemes.dao.ext.vo.WStockExtListForWorkorderVO; import doumeemes.dao.ext.vo.WStockExtListVO; import doumeemes.dao.ext.vo.WorkorderRecordExtListVO; @@ -140,6 +142,12 @@ public ApiResponse<PageData<WorkorderRecordExtListVO>> findPage (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap) { return ApiResponse.success(workorderRecordExtService.findPage(pageWrap)); } + @ApiOperation("宸ヨ祫鎶ヨ〃缁熻鍒嗛〉鏌ヨ") + @PostMapping("/salaryStatistic") + @RequiresPermissions("ext:workorderrecordext:query") + public ApiResponse<PageData<SalaryStatisticsListVO>> salaryStatistic (@RequestBody PageWrap<QuerySalaryStatisticDTO> pageWrap) { + return ApiResponse.success(workorderRecordExtService.salaryStatistic(pageWrap)); + } @ApiOperation("鏌ヨ鍏ㄩ儴") @PostMapping("/all") diff --git a/server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java b/server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java index 55925d2..32f8fa9 100644 --- a/server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java +++ b/server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java @@ -114,6 +114,7 @@ for (SystemMenu menu : menus) { if(Constants.equalsInteger(menu.getType(),Constants.PlatType.companyH5) && StringUtils.isNotBlank(menu.getIcon())){ menu.setIcon(rPath+menu.getIcon()); + menu.setResourcePath(rPath); } if (menu.getParentId() == null) { SystemMenuListVO rootMenu = new SystemMenuListVO(); @@ -126,6 +127,7 @@ for (SystemMenuListVO child : rootMenus) { if(Constants.equalsInteger(child.getType(),Constants.PlatType.companyH5) && StringUtils.isNotBlank(child.getIcon())){ child.setIcon(rPath+child.getIcon()); + child.setResourcePath(rPath); } this.fillChildren(child, menus); } diff --git a/server/src/main/java/doumeemes/dao/business/model/SalaryParam.java b/server/src/main/java/doumeemes/dao/business/model/SalaryParam.java index 1a79df2..122e5cb 100644 --- a/server/src/main/java/doumeemes/dao/business/model/SalaryParam.java +++ b/server/src/main/java/doumeemes/dao/business/model/SalaryParam.java @@ -71,9 +71,12 @@ @NotEmpty(message = "鐗╂枡缂栫爜涓嶈兘涓虹┖") private Integer materialId; - @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝厓)") + @ApiModelProperty(value = "宸ヨ祫缁撴灉锛堝厓)", example = "1") + @ExcelColumn(name="宸ヨ祫缁撴灉锛堝厓)") + private Integer salary; + @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝厓)", example = "1") @ExcelColumn(name="宸ヨ祫鍗曚环锛堝厓)") - private BigDecimal salary; + private Integer salaryPrice; @ApiModelProperty(value = "鏍囧噯鏁伴噺") @ExcelColumn(name="鏍囧噯鏁伴噺") diff --git a/server/src/main/java/doumeemes/dao/business/model/Workorder.java b/server/src/main/java/doumeemes/dao/business/model/Workorder.java index 7967078..a9f914a 100644 --- a/server/src/main/java/doumeemes/dao/business/model/Workorder.java +++ b/server/src/main/java/doumeemes/dao/business/model/Workorder.java @@ -230,10 +230,12 @@ @ExcelColumn(name="鎶ュ伐鏃堕暱锛堢锛�") private Integer duration; - @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝垎)", example = "1") - @ExcelColumn(name="宸ヨ祫鍗曚环锛堝垎)") + @ApiModelProperty(value = "宸ヨ祫缁撴灉锛堝厓)", example = "1") + @ExcelColumn(name="宸ヨ祫缁撴灉锛堝厓)") private Integer salary; - + @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝厓)", example = "1") + @ExcelColumn(name="宸ヨ祫鍗曚环锛堝厓)") + private Integer salaryPrice; @ApiModelProperty(value = "鏍囧噯鏁伴噺", example = "1") @ExcelColumn(name="鏍囧噯鏁伴噺") private Integer salaryNum; diff --git a/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java b/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java index 1916a9a..a892a10 100644 --- a/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java +++ b/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java @@ -2,6 +2,8 @@ import doumeemes.dao.business.model.WorkorderRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO; +import doumeemes.dao.ext.vo.SalaryStatisticsListVO; import doumeemes.dao.ext.vo.WOutboundRecordExtListVO; import doumeemes.dao.ext.vo.WStockExtListForWorkorderVO; import doumeemes.dao.ext.vo.WorkorderRecordExtListVO; @@ -18,6 +20,7 @@ * @date 2022/04/20 10:56 */ List<WorkorderRecordExtListVO> selectListNew(QueryWorkorderRecordExtDTO dto); + List<SalaryStatisticsListVO> salaryStatistic(QuerySalaryStatisticDTO dto); List<WStockExtListForWorkorderVO> choiceWorkorderRecordUseStockList(QueryWorkorderRecordExtDTO dto); diff --git a/server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java b/server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java new file mode 100644 index 0000000..ef5771d --- /dev/null +++ b/server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java @@ -0,0 +1,33 @@ +package doumeemes.dao.ext.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import doumeemes.dao.business.dto.MaterialListDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author 姹熻箘韫� + * @date 2022/04/20 10:56 + */ +@Data +@ApiModel("宸ヨ祫鎶ヨ〃缁熻鍒嗛〉鏌ヨ璇锋眰鍙傛暟") +public class QuerySalaryStatisticDTO { + @ApiModelProperty(value = "鐢熶骇浜哄憳缂栫爜", example = "1") + private Integer userId; + @ApiModelProperty(value = "鏍圭粍缁囩紪鐮�", example = "1",hidden = true) + private Integer rootDepartId; + @ApiModelProperty(value = "寮�濮嬫椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date stateDate; + @ApiModelProperty(value = "缁撴潫鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date endDate; + + @ApiModelProperty(value = "鏁版嵁鏉冮檺閮ㄩ棬缂栫爜闆嗗悎" ,hidden = true) + private List<Integer> departIds; + +} diff --git a/server/src/main/java/doumeemes/dao/ext/dto/QueryWorkorderRecordExtDTO.java b/server/src/main/java/doumeemes/dao/ext/dto/QueryWorkorderRecordExtDTO.java index 686a2e3..fd16f61 100644 --- a/server/src/main/java/doumeemes/dao/ext/dto/QueryWorkorderRecordExtDTO.java +++ b/server/src/main/java/doumeemes/dao/ext/dto/QueryWorkorderRecordExtDTO.java @@ -644,9 +644,10 @@ @ApiModelProperty(value = "鎶ュ伐鏃堕暱锛堢锛�", example = "1") private Integer duration; - @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝垎)", example = "1") + @ApiModelProperty(value = "宸ヨ祫缁撴灉锛堝厓)", example = "1") private Integer salary; - + @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝厓)", example = "1") + private Integer salaryPrice; @ApiModelProperty(value = "鏍囧噯鏁伴噺", example = "1") private Integer salaryNum; diff --git a/server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java b/server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java new file mode 100644 index 0000000..c7bc2ed --- /dev/null +++ b/server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java @@ -0,0 +1,49 @@ +package doumeemes.dao.ext.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import doumeemes.core.annotation.excel.ExcelColumn; +import doumeemes.dao.business.model.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author 姹熻箘韫� + * @date 2022/04/20 10:56 + */ +@Data +@ApiModel("宸ヨ祫鎶ヨ〃缁熻鍒嗛〉鏁版嵁") +public class SalaryStatisticsListVO implements Serializable{ + + @ApiModelProperty(value = "鐢熶骇浜哄憳缂栫爜", example = "1") + @ExcelColumn(name="鐢熶骇浜哄憳缂栫爜") + private Integer userId; + @ApiModelProperty(value = "鐢熶骇浜哄憳濮撳悕") + @ExcelColumn(name="鐢熶骇浜哄憳濮撳悕") + private String userName; + @ApiModelProperty(value = "鎵�灞為儴闂ㄧ紪鐮�", example = "1") + @ExcelColumn(name="鎵�灞為儴闂ㄧ紪鐮�") + private Integer departId; + + @ApiModelProperty(value = "鎵�灞為儴闂ㄥ悕绉�") + @ExcelColumn(name="鎵�灞為儴闂ㄥ悕绉�") + private String departName; + + @ApiModelProperty(value = "璁′欢宸ヨ祫锛堝垎锛�", example = "1") + @ExcelColumn(name="璁′欢宸ヨ祫锛堝垎锛�") + private BigDecimal jijianSalary; + @ApiModelProperty(value = "璁℃椂宸ヨ祫锛堝垎锛�", example = "1") + @ExcelColumn(name="璁℃椂宸ヨ祫锛堝垎锛�") + private BigDecimal jishiSalary; + @ApiModelProperty(value = "灏忚宸ヨ祫锛堝垎锛�", example = "1") + @ExcelColumn(name="灏忚宸ヨ祫锛堝垎锛�") + private BigDecimal totalSalary; + @ApiModelProperty(value = "鎶ュ伐鎬诲崟鏁�,涓嶅寘鍚伐璧勪负0鐨�", example = "1") + @ExcelColumn(name="鎶ュ伐鎬诲崟鏁�") + private Integer num; + +} diff --git a/server/src/main/java/doumeemes/dao/ext/vo/WorkorderRecordExtListVO.java b/server/src/main/java/doumeemes/dao/ext/vo/WorkorderRecordExtListVO.java index 8036ce9..0a1061e 100644 --- a/server/src/main/java/doumeemes/dao/ext/vo/WorkorderRecordExtListVO.java +++ b/server/src/main/java/doumeemes/dao/ext/vo/WorkorderRecordExtListVO.java @@ -230,9 +230,12 @@ @ExcelColumn(name="鎶ュ伐鏃堕暱锛堢锛�") private Integer duration; - @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝垎)", example = "1") - @ExcelColumn(name="宸ヨ祫鍗曚环锛堝垎)") + @ApiModelProperty(value = "宸ヨ祫缁撴灉锛堝厓)", example = "1") + @ExcelColumn(name="宸ヨ祫缁撴灉锛堝厓)") private Integer salary; + @ApiModelProperty(value = "宸ヨ祫鍗曚环锛堝厓)", example = "1") + @ExcelColumn(name="宸ヨ祫鍗曚环锛堝厓)") + private Integer salaryPrice; @ApiModelProperty(value = "鏍囧噯鏁伴噺", example = "1") @ExcelColumn(name="鏍囧噯鏁伴噺") diff --git a/server/src/main/java/doumeemes/dao/system/model/SystemMenu.java b/server/src/main/java/doumeemes/dao/system/model/SystemMenu.java index c09fa83..4b732fb 100644 --- a/server/src/main/java/doumeemes/dao/system/model/SystemMenu.java +++ b/server/src/main/java/doumeemes/dao/system/model/SystemMenu.java @@ -75,4 +75,8 @@ @ApiModelProperty(value = "绫诲瀷 0骞冲彴 1浼佷笟PC绔� 2浼佷笟鎵嬫満绔�", example = "1") private Integer type; + + @ApiModelProperty(value = "鏂囦欢璁块棶鍓嶇紑") + @TableField(exist = false) + private String resourcePath; } diff --git a/server/src/main/java/doumeemes/dao/system/vo/SystemMenuListVO.java b/server/src/main/java/doumeemes/dao/system/vo/SystemMenuListVO.java index 6d2c85d..36f401d 100644 --- a/server/src/main/java/doumeemes/dao/system/vo/SystemMenuListVO.java +++ b/server/src/main/java/doumeemes/dao/system/vo/SystemMenuListVO.java @@ -27,4 +27,6 @@ @ApiModelProperty(value = "鏇存柊浜轰俊鎭�") private SystemUser updateUserInfo; + @ApiModelProperty(value = "鏂囦欢璁块棶鍓嶇紑") + private String resourcePath; } diff --git a/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java b/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java index 6992d45..c1f4d46 100644 --- a/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java +++ b/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java @@ -6,7 +6,9 @@ import doumeemes.dao.business.model.Workorder; import doumeemes.dao.business.model.WorkorderRecord; import doumeemes.dao.ext.bean.EndCheckApBean; +import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO; import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; +import doumeemes.dao.ext.vo.SalaryStatisticsListVO; import doumeemes.dao.ext.vo.WorkorderRecordExtListVO; import javax.servlet.http.HttpServletResponse; @@ -45,4 +47,5 @@ void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap ,HttpServletResponse response); + PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> pageWrap); } 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 0cdce35..e121285 100644 --- a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java +++ b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java @@ -141,6 +141,42 @@ } return PageData.from(new PageInfo<>(result)); } + @Override + public PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> 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(); + 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); + } + } + return PageData.from(new PageInfo<>(result)); + } private void initProUser(LoginUserInfo user, WorkorderRecordExtListVO data, List<DepartmentExtListVO> allDepartList) { if(data.getCreateUser() ==null){ @@ -157,6 +193,21 @@ data.setProcedureName(comp.getName()+"-"+dName); } } + private void initProUser(LoginUserInfo user, SalaryStatisticsListVO data, List<DepartmentExtListVO> allDepartList) { + if(data.getUserId() ==null){ + return; + } + CompanyUser query=new CompanyUser(); + query.setUserId(data.getUserId()); + query.setRootDepartId(user.getRootDepartment().getId()); + query.setDeleted(Constants.ZERO); + CompanyUser comp= companyUserExtMapper.selectOne(new QueryWrapper<>(query).last(" limit 1")); + if(comp!=null){ + DepartmentExtListVO d = departmentExtService.getModelById(user.getCompany().getId(),comp.getDepartmentId(),allDepartList); + String dName =d==null?"":StringUtils.defaultString(d.getName(),""); + data.setUserName(comp.getName()+"-"+dName); + } + } @Override public List<WorkorderRecordExtListVO> findAll(QueryWorkorderRecordExtDTO pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); diff --git a/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml b/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml index 1d8fd97..8989776 100644 --- a/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml +++ b/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml @@ -431,6 +431,22 @@ </where> limit 1 </select> + <select id="salaryStatistic" parameterType="doumeemes.dao.ext.dto.QuerySalaryStatisticDTO" resultType="doumeemes.dao.ext.vo.SalaryStatisticsListVO"> + select `CREATE_USER` ,sum(CASE WHEN salary_type=0 THEN salary ELSE 0 END ) as jijiaSalry + ,sum(CASE WHEN salary_type=0 THEN 0 ELSE salary END ) as jishiSalary + ,count(id) as num + ,sum(salary) as totalSalary + from `workorder_record` + where `DELETED` =0 and `SALARY` >0 + <if test="rootDepartId != null"> + AND `ROOT_DEPART_ID` = #{rootDepartId} + </if> + <if test="userId != null"> + AND `CREATE_USER` = #{userId} + </if> + group by `CREATE_USER` + + </select> <select id="selectListNew" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultMap="WorkorderRecordExtListVO"> SELECT `a`.`ID`, @@ -1427,6 +1443,7 @@ RELOBJ_TYPE, `DURATION`, `SALARY`, + `SALARY_PRICE`, `SALARY_NUM`, `SALARY_TIMES`, `SALARY_UNQUALIFIED`, @@ -1471,6 +1488,7 @@ #{item.relobjType}, #{item.duration}, #{item.salary}, + #{item.salaryPrice}, #{item.salaryNum}, #{item.salaryTimes}, #{item.salaryUnqualified}, -- Gitblit v1.9.3