From 7fdf35a2364c8482c5056a1c932e1501518f943b Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期一, 14 八月 2023 18:17:48 +0800
Subject: [PATCH] Merge branch 'master' of ssh://139.186.142.91:29418/productDev/dmMes
---
server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java | 22 ++++-
server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java | 11 +-
server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java | 7 -
server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java | 8 ++
server/src/main/java/doumeemes/service/system/impl/SystemPermissionServiceImpl.java | 6 +
server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java | 2
log/eva.log | 0
server/src/main/java/doumeemes/core/annotation/excel/ExcelExporter.java | 6 +
server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java | 88 ++++++++++++++++-----
server/src/main/resources/mappers/WorkorderRecordExtMapper.xml | 44 ++++++++++
10 files changed, 154 insertions(+), 40 deletions(-)
diff --git a/log/eva.log b/log/eva.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/log/eva.log
diff --git a/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java b/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
index 305e561..1c7d59d 100644
--- a/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
+++ b/server/src/main/java/doumeemes/api/ext/WorkorderRecordExtController.java
@@ -15,11 +15,9 @@
import doumeemes.dao.ext.bean.EndCheckApBean;
import doumeemes.dao.ext.beanDto.QueryWStockDto;
import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO;
+import doumeemes.dao.ext.dto.QueryUserSalaryListDTO;
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;
+import doumeemes.dao.ext.vo.*;
import doumeemes.service.business.WorkorderRecordService;
import doumeemes.service.ext.WorkorderExtService;
import doumeemes.service.ext.WorkorderRecordExtService;
@@ -142,6 +140,12 @@
public ApiResponse<PageData<WorkorderRecordExtListVO>> findPage (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap) {
return ApiResponse.success(workorderRecordExtService.findPage(pageWrap));
}
+ @ApiOperation("鍛樺伐缁╂晥鍒嗛〉鏌ヨ")
+ @PostMapping("/userSalary")
+ @RequiresPermissions("ext:workorderrecordext:query")
+ public ApiResponse<PageData<UserSalaryListVO>> userSalaryPage (@RequestBody PageWrap<QueryUserSalaryListDTO> pageWrap) {
+ return ApiResponse.success(workorderRecordExtService.userSalaryPage(pageWrap));
+ }
@ApiOperation("宸ヨ祫鎶ヨ〃缁熻鍒嗛〉鏌ヨ")
@PostMapping("/salaryStatistic")
@RequiresPermissions("ext:workorderrecordext:query")
@@ -171,6 +175,16 @@
public void exportExcel (@RequestBody PageWrap<QueryWorkorderRecordExtDTO> pageWrap, HttpServletResponse response) {
workorderRecordExtService.exportExcel(pageWrap,response);
}
+ @ApiOperation("瀵煎嚭鍛樺伐缁╂晥鏄庣粏")
+ @PostMapping("/exportUserSalary")
+ public void exportUserSalary (@RequestBody PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response) {
+ workorderRecordExtService.exportUserSalary(pageWrap,response);
+ }
+ @ApiOperation("瀵煎嚭宸ヨ祫鎶ヨ〃")
+ @PostMapping("/exportSalaryStatistics")
+ public void exportSalaryStatistics (@RequestBody PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response) {
+ workorderRecordExtService.exportSalaryStatistics(pageWrap,response);
+ }
@ApiOperation("鏍规嵁ID鏌ヨ")
@GetMapping("/{id}")
diff --git a/server/src/main/java/doumeemes/core/annotation/excel/ExcelExporter.java b/server/src/main/java/doumeemes/core/annotation/excel/ExcelExporter.java
index ea33fb8..010996c 100644
--- a/server/src/main/java/doumeemes/core/annotation/excel/ExcelExporter.java
+++ b/server/src/main/java/doumeemes/core/annotation/excel/ExcelExporter.java
@@ -2,6 +2,8 @@
import doumeemes.core.constants.ResponseStatus;
import doumeemes.core.exception.BusinessException;
+import doumeemes.dao.ext.vo.UserBaseInfoVO;
+import doumeemes.dao.ext.vo.UserSalaryListVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.commons.lang3.BooleanUtils;
@@ -170,6 +172,10 @@
return new ArrayList<>(sortedFields.values());
}
+ public static void main(String[] args) {
+ ExcelExporter m = new ExcelExporter();
+ ExcelExporter.build(UserSalaryListVO.class).getColumns();
+ }
/**
* 閰嶇疆鏁版嵁鍗曞厓鏍�
*/
diff --git a/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java b/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java
index a892a10..6697c0b 100644
--- a/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java
+++ b/server/src/main/java/doumeemes/dao/ext/WorkorderRecordExtMapper.java
@@ -3,10 +3,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;
+import doumeemes.dao.ext.dto.QueryUserSalaryListDTO;
+import doumeemes.dao.ext.vo.*;
import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO;
import io.lettuce.core.dynamic.annotation.Param;
@@ -38,4 +36,5 @@
List<WorkorderRecordExtListVO> checkIsWork(@Param("ids")String ids);
+ List<UserSalaryListVO> userSalaryPage(QueryUserSalaryListDTO model);
}
diff --git a/server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java b/server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java
index ef5771d..63e0adb 100644
--- a/server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java
+++ b/server/src/main/java/doumeemes/dao/ext/dto/QuerySalaryStatisticDTO.java
@@ -22,7 +22,7 @@
private Integer rootDepartId;
@ApiModelProperty(value = "寮�濮嬫椂闂�")
@JsonFormat(pattern = "yyyy-MM-dd")
- private Date stateDate;
+ private Date startDate;
@ApiModelProperty(value = "缁撴潫鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endDate;
diff --git a/server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java b/server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java
index c7bc2ed..792ddfb 100644
--- a/server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java
+++ b/server/src/main/java/doumeemes/dao/ext/vo/SalaryStatisticsListVO.java
@@ -18,21 +18,22 @@
@Data
@ApiModel("宸ヨ祫鎶ヨ〃缁熻鍒嗛〉鏁版嵁")
public class SalaryStatisticsListVO implements Serializable{
-
@ApiModelProperty(value = "鐢熶骇浜哄憳缂栫爜", example = "1")
@ExcelColumn(name="鐢熶骇浜哄憳缂栫爜")
private Integer userId;
- @ApiModelProperty(value = "鐢熶骇浜哄憳濮撳悕")
+ @ApiModelProperty(value = "鐢熸垚浜哄憳淇℃伅")
+ private UserBaseInfoVO userInfo;
+
+ @ApiModelProperty(value = "鐢熶骇浜哄憳濮撳悕",hidden = true)
@ExcelColumn(name="鐢熶骇浜哄憳濮撳悕")
private String userName;
- @ApiModelProperty(value = "鎵�灞為儴闂ㄧ紪鐮�", example = "1")
+ @ApiModelProperty(value = "鎵�灞為儴闂ㄧ紪鐮�", example = "1",hidden = true)
@ExcelColumn(name="鎵�灞為儴闂ㄧ紪鐮�")
private Integer departId;
- @ApiModelProperty(value = "鎵�灞為儴闂ㄥ悕绉�")
+ @ApiModelProperty(value = "鎵�灞為儴闂ㄥ悕绉�",hidden = true)
@ExcelColumn(name="鎵�灞為儴闂ㄥ悕绉�")
private String departName;
-
@ApiModelProperty(value = "璁′欢宸ヨ祫锛堝垎锛�", example = "1")
@ExcelColumn(name="璁′欢宸ヨ祫锛堝垎锛�")
private BigDecimal jijianSalary;
diff --git a/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java b/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java
index c1f4d46..5fe02b9 100644
--- a/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java
+++ b/server/src/main/java/doumeemes/service/ext/WorkorderRecordExtService.java
@@ -7,8 +7,10 @@
import doumeemes.dao.business.model.WorkorderRecord;
import doumeemes.dao.ext.bean.EndCheckApBean;
import doumeemes.dao.ext.dto.QuerySalaryStatisticDTO;
+import doumeemes.dao.ext.dto.QueryUserSalaryListDTO;
import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO;
import doumeemes.dao.ext.vo.SalaryStatisticsListVO;
+import doumeemes.dao.ext.vo.UserSalaryListVO;
import doumeemes.dao.ext.vo.WorkorderRecordExtListVO;
import javax.servlet.http.HttpServletResponse;
@@ -48,4 +50,10 @@
void exportExcel(PageWrap<QueryWorkorderRecordExtDTO> pageWrap ,HttpServletResponse response);
PageData<SalaryStatisticsListVO> salaryStatistic(PageWrap<QuerySalaryStatisticDTO> pageWrap);
+
+ PageData<UserSalaryListVO> userSalaryPage(PageWrap<QueryUserSalaryListDTO> pageWrap);
+
+ void exportUserSalary(PageWrap<QueryUserSalaryListDTO> pageWrap, HttpServletResponse response);
+
+ void exportSalaryStatistics(PageWrap<QuerySalaryStatisticDTO> pageWrap, HttpServletResponse response);
}
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..c200c20 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,40 @@
}
//鍙兘鏌ョ湅褰撳墠鏍圭粍缁囩殑鏁版嵁
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));
+ }
+ }
+ 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))>1){
+ model.setRate(Constants.formatBigdecimal4Float(model.getQualifiedNum()).divide(model.getNum()).multiply(new BigDecimal(100)));
+ }
}
}
return PageData.from(new PageInfo<>(result));
@@ -193,20 +203,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) {
@@ -1655,6 +1673,30 @@
@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());
+ }
+ }
+ 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");
diff --git a/server/src/main/java/doumeemes/service/system/impl/SystemPermissionServiceImpl.java b/server/src/main/java/doumeemes/service/system/impl/SystemPermissionServiceImpl.java
index 883b780..538a8ca 100644
--- a/server/src/main/java/doumeemes/service/system/impl/SystemPermissionServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/system/impl/SystemPermissionServiceImpl.java
@@ -116,7 +116,11 @@
if(Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){
pageWrap.getModel().setType(Constants.USERTYPE.COM);
}else{
- pageWrap.getModel().setType(Constants.USERTYPE.PLAT);
+ if(pageWrap.getModel().getType()!=null){
+ //璧版煡璇�
+ }else{
+ pageWrap.getModel().setType(Constants.USERTYPE.PLAT);
+ }
}
PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
return PageData.from(new PageInfo<>(systemPermissionMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause())));
diff --git a/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml b/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
index 8989776..c8fb3d7 100644
--- a/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
+++ b/server/src/main/resources/mappers/WorkorderRecordExtMapper.xml
@@ -431,8 +431,42 @@
</where>
limit 1
</select>
+ <select id="userSalaryPage" parameterType="doumeemes.dao.ext.dto.QueryUserSalaryListDTO" resultType="doumeemes.dao.ext.vo.UserSalaryListVO">
+ select a.WORKORDER_ID,b.`CODE` as workorderCode,c.`NAME` as materialName,c.code as materialCode
+ ,d.name as unitName,a.PROCEDURE_ID,f.`NAME` as procedureName,a.CREATE_USER as userId
+ ,sum(a.QUALIFIED_NUM) as qualifiedNum
+ ,sum(a.UNQUALIFIED_NUM) as unQualifiedNum
+ ,sum(a.num) as NUM
+ from `workorder_record` a
+ left join workorder b on a.WORKORDER_ID=b.id
+ left join material_distribute m on b.MATERIAL_ID = m.ID
+ left join material c on m.MATERIAL_ID = c.ID
+ left join unit d on a.UNIT_ID = d.ID
+ left join procedures f on a.PROCEDURE_ID =f.ID
+ where a.DELETED = 0
+ <if test="rootDepartId != null">
+ AND a.`ROOT_DEPART_ID` = #{rootDepartId}
+ </if>
+ <if test="procedureId != null">
+ AND a.`PROCEDURE_ID` = #{procedureId}
+ </if>
+ <if test="materialName != null and materialName !=''">
+ AND (c.`name` like concat('%', #{materialName},'%') or c.`code` like concat('%', #{materialName},'%'))
+ </if>
+ <if test="startDate != null">
+ AND a.`CREATE_TIME` >= #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND #{endDate} >= a.`CREATE_TIME`
+ </if>
+ <if test="userId != null">
+ AND a.`CREATE_USER` = #{userId}
+ </if>
+ group by a.`WORKORDER_ID`
+ order by a.CREATE_TIME desc
+ </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
+ select `CREATE_USER` as userId ,sum(CASE WHEN salary_type=0 THEN salary ELSE 0 END ) as jijianSalary
,sum(CASE WHEN salary_type=0 THEN 0 ELSE salary END ) as jishiSalary
,count(id) as num
,sum(salary) as totalSalary
@@ -444,8 +478,14 @@
<if test="userId != null">
AND `CREATE_USER` = #{userId}
</if>
+ <if test="startDate != null">
+ AND a.`CREATE_TIME` >= #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND #{endDate} >= a.`CREATE_TIME`
+ </if>
group by `CREATE_USER`
-
+ <!-- order by `CREATE_TIME` desc-->
</select>
<select id="selectListNew" parameterType="doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO" resultMap="WorkorderRecordExtListVO">
SELECT
--
Gitblit v1.9.3