|
|
@@ -3,6 +3,7 @@ package org.springblade.project.controller;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
@@ -12,6 +13,7 @@ import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.CollectionUtil;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springblade.project.entity.ServiceProject;
|
|
|
import org.springblade.project.entity.ServiceProjectFiles;
|
|
|
import org.springblade.project.entity.ServiceProjectItem;
|
|
|
@@ -27,7 +29,6 @@ import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
-import org.springframework.util.ObjectUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import springfox.documentation.annotations.ApiIgnore;
|
|
|
|
|
|
@@ -230,7 +231,7 @@ public class ProjectController {
|
|
|
ServiceProject serviceProject = serviceProjectService.getById(id);
|
|
|
List<String> status = Arrays.asList(itemStatus.split(","));
|
|
|
LambdaQueryWrapper<ServiceProjectItem> itemServiceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- itemServiceLambdaQueryWrapper.in(ServiceProjectItem::getStatus, status).eq(ServiceProjectItem::getPId, id).eq(ServiceProjectItem::getIsDeleted, 0).eq(ServiceProjectItem::getBranch,"N");
|
|
|
+ itemServiceLambdaQueryWrapper.in(ServiceProjectItem::getStatus, status).eq(ServiceProjectItem::getPId, id).eq(ServiceProjectItem::getIsDeleted, 0).eq(ServiceProjectItem::getBranch, "N");
|
|
|
List<ServiceProjectItem> serviceProjectItems = serviceProjectItemService.list(itemServiceLambdaQueryWrapper);
|
|
|
if (serviceProject.getCorpId() != null) {
|
|
|
R<List<Map<String, Object>>> corpMessage = corpsDescClient.getCorpsMessage(serviceProject.getCorpId().toString());
|
|
|
@@ -342,16 +343,16 @@ public class ProjectController {
|
|
|
return R.data(Collections.EMPTY_LIST);
|
|
|
}*/
|
|
|
// 承做人
|
|
|
- if(StringUtils.isNotBlank(corpName)) {
|
|
|
- List<User> userList = userClient.userInfoByName(corpName,AuthUtil.getTenantId());
|
|
|
+ if (StringUtils.isNotBlank(corpName)) {
|
|
|
+ List<User> userList = userClient.userInfoByName(corpName, AuthUtil.getTenantId());
|
|
|
List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
- itemLambdaQueryWrapper.in(ServiceProjectItem::getUserid,userIds);
|
|
|
+ itemLambdaQueryWrapper.in(ServiceProjectItem::getUserid, userIds);
|
|
|
}
|
|
|
itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getCreateTime)
|
|
|
.eq(deptid != null, ServiceProjectItem::getDeptid, deptid)
|
|
|
- .eq(ServiceProjectItem::getIsDeleted,0)
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0)
|
|
|
.in(ServiceProjectItem::getStatus, listStatus)
|
|
|
- .eq(ServiceProjectItem::getBranch,branch);
|
|
|
+ .eq(ServiceProjectItem::getBranch, branch);
|
|
|
Page<ServiceProjectItem> page = new Page<>(current, size);
|
|
|
IPage<ServiceProjectItem> iPage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(iPage.getRecords())) {
|
|
|
@@ -372,10 +373,9 @@ public class ProjectController {
|
|
|
}
|
|
|
//承做人
|
|
|
|
|
|
- R<User> userR = userClient.userInfoById(e.getUserid());
|
|
|
- if(userR.isSuccess())
|
|
|
- {
|
|
|
- e.setUserName(userR.getData().getRealName());
|
|
|
+ R<User> userR = userClient.userInfoById(e.getUserid());
|
|
|
+ if (userR.isSuccess()) {
|
|
|
+ e.setUserName(userR.getData().getRealName());
|
|
|
}
|
|
|
//毛收入
|
|
|
e.setGrossIncome((e.getServiceCharge().add(e.getMatMoney())).subtract(e.getCostReturn()));
|
|
|
@@ -743,6 +743,7 @@ public class ProjectController {
|
|
|
|
|
|
/**
|
|
|
* 派工
|
|
|
+ *
|
|
|
* @param serviceProject
|
|
|
* @return
|
|
|
*/
|
|
|
@@ -765,35 +766,165 @@ public class ProjectController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 新任务列表
|
|
|
+ *
|
|
|
+ * @param current
|
|
|
+ * @param size
|
|
|
+ * @param pName
|
|
|
+ * @param cornId
|
|
|
+ * @param corpName
|
|
|
+ * @param userName
|
|
|
+ * @param deptid
|
|
|
+ * @param status
|
|
|
+ * @param actualDateStart
|
|
|
+ * @param actualDateEnd
|
|
|
+ * @param beginStartTime
|
|
|
+ * @param beginEndTime
|
|
|
+ * @param projectType
|
|
|
+ * @param branch
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("itemTask/list")
|
|
|
+ public R<?> itemTaskList(@RequestParam(name = "current", defaultValue = "1") Integer current,
|
|
|
+ @RequestParam(name = "size", defaultValue = "10") Integer size,
|
|
|
+ @RequestParam(name = "pname", required = false) String pName,
|
|
|
+ @RequestParam(name = "cornId", required = false) Long cornId,
|
|
|
+ @RequestParam(name = "corpName", required = false) String corpName,
|
|
|
+ @RequestParam(name = "userName", required = false) String userName,
|
|
|
+ @RequestParam(name = "deptid", required = false) Long deptid,
|
|
|
+ @RequestParam(name = "status", required = true) String status,
|
|
|
+ @RequestParam(name = "actualDateStart", required = false) String actualDateStart,
|
|
|
+ @RequestParam(name = "actualDateEnd", required = false) String actualDateEnd,
|
|
|
+ @RequestParam(name = "beginStartTime", required = false) String beginStartTime,
|
|
|
+ @RequestParam(name = "beginEndTime", required = false) String beginEndTime,
|
|
|
+ @RequestParam(name = "projectType", required = false) Integer projectType,
|
|
|
+ @RequestParam(name = "branch", required = false) String branch
|
|
|
+ ) {
|
|
|
+ List<String> listStatus = Arrays.asList(status.split(","));
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ itemLambdaQueryWrapper
|
|
|
+ .eq(projectType != null, ServiceProjectItem::getProjectType, projectType)
|
|
|
+ .eq(StringUtils.isNotBlank(userName), ServiceProjectItem::getUserName, userName)
|
|
|
+ .eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .like(StringUtils.isNotBlank(pName), ServiceProjectItem::getPName, pName)
|
|
|
+ .eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .ge(StringUtils.isNotBlank(beginStartTime), ServiceProjectItem::getBeginTime, beginStartTime)
|
|
|
+ .le(StringUtils.isNotBlank(beginEndTime), ServiceProjectItem::getBeginTime, beginEndTime)
|
|
|
+ .ge(StringUtils.isNotBlank(actualDateStart), ServiceProjectItem::getActualDate, actualDateStart)
|
|
|
+ .le(StringUtils.isNotBlank(actualDateEnd), ServiceProjectItem::getActualDate, actualDateEnd);
|
|
|
+
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ServiceProject> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ //客户名称
|
|
|
+ if (cornId != null) {
|
|
|
+ lambdaQueryWrapper.eq(ServiceProject::getCorpId, cornId);
|
|
|
+ List<ServiceProject> list = serviceProjectService.list(lambdaQueryWrapper);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(corpName)) {
|
|
|
+ List<Long> corpIdList = corpsDescClient.listCorpIdByName(corpName);
|
|
|
+ lambdaQueryWrapper.in(CollectionUtil.isNotEmpty(corpIdList), ServiceProject::getCorpId, corpIdList);
|
|
|
+
|
|
|
+ }
|
|
|
+ if (cornId != null || StringUtils.isNotBlank(corpName)) {
|
|
|
+ List<ServiceProject> list = serviceProjectService.list(lambdaQueryWrapper);
|
|
|
+ if (!CollectionUtils.isEmpty(list)) {
|
|
|
+ itemLambdaQueryWrapper.in(ServiceProjectItem::getPId, list.stream().map(ServiceProject::getId).collect(Collectors.toList()));
|
|
|
+ } else {
|
|
|
+ return R.data(Collections.EMPTY_LIST);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 承做人
|
|
|
+ if (StringUtils.isNotBlank(corpName)) {
|
|
|
+ List<User> userList = userClient.userInfoByName(corpName, AuthUtil.getTenantId());
|
|
|
+ List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ itemLambdaQueryWrapper.in(ServiceProjectItem::getUserid, userIds);
|
|
|
+ }
|
|
|
+ itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getCreateTime)
|
|
|
+ .eq(deptid != null, ServiceProjectItem::getDeptid, deptid)
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0)
|
|
|
+ .in(ServiceProjectItem::getStatus, listStatus)
|
|
|
+ .eq(ServiceProjectItem::getBranch, branch);
|
|
|
+ Page<ServiceProjectItem> page = new Page<>(current, size);
|
|
|
+ IPage<ServiceProjectItem> iPage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
|
|
|
+ if (!CollectionUtils.isEmpty(iPage.getRecords())) {
|
|
|
+ String[] str = new String[]{"录入", "已请核", "审核中", "审核通过", "正在结算", "结算完成", "", "追加", "退费"};
|
|
|
+ iPage.getRecords().forEach(e -> {
|
|
|
+ e.setStrStatus(str[e.getStatus()]);
|
|
|
+ Long corpId = serviceProjectService.getOne(new LambdaQueryWrapper<ServiceProject>()
|
|
|
+ .eq(ServiceProject::getId, e.getPId())).getCorpId();
|
|
|
+ e.setCornId(corpId);
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
+ e.setCornName(corpMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ //任务部门
|
|
|
+ R<Dept> dept = iSysClient.getDept(e.getDeptid());
|
|
|
+ if (dept.isSuccess() && dept.getData() != null) {
|
|
|
+ e.setDeptName(dept.getData().getDeptName());
|
|
|
+ }
|
|
|
+ //承做人
|
|
|
+
|
|
|
+ R<User> userR = userClient.userInfoById(e.getUserid());
|
|
|
+ if (userR.isSuccess()) {
|
|
|
+ e.setUserName(userR.getData().getRealName());
|
|
|
+ }
|
|
|
+ //毛收入
|
|
|
+ e.setGrossIncome((e.getServiceCharge().add(e.getMatMoney())).subtract(e.getCostReturn()));
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ return R.data(iPage);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
+ /**
|
|
|
+ * 统计主营业务-任务、提成统计
|
|
|
+ *
|
|
|
+ * @param current
|
|
|
+ * @param size
|
|
|
+ * @param beginTimeStart
|
|
|
+ * @param beginTimeEnd
|
|
|
+ * @param actualDateStart
|
|
|
+ * @param actualDateEnd
|
|
|
+ * @param corpName
|
|
|
+ * @param status
|
|
|
+ * @param branch
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@GetMapping("statistics/list")
|
|
|
public R<?> statistics(@RequestParam(name = "current", defaultValue = "1") Integer current,
|
|
|
- @RequestParam(name = "size", defaultValue = "10") Integer size,
|
|
|
- @RequestParam(name = "beginTime", required = false) String beginTime,
|
|
|
- @RequestParam(name = "actualDate", required = false) String actualDate,
|
|
|
- @RequestParam(name = "corpName", required = false) String corpName,
|
|
|
- @RequestParam(name = "status", required = true) String status,
|
|
|
- @RequestParam(name = "branch", required = false) String branch
|
|
|
+ @RequestParam(name = "size", defaultValue = "10") Integer size,
|
|
|
+ @RequestParam(name = "beginTimeStart", required = false) String beginTimeStart,
|
|
|
+ @RequestParam(name = "beginTimeEnd", required = false) String beginTimeEnd,
|
|
|
+ @RequestParam(name = "actualDateStart", required = false) String actualDateStart,
|
|
|
+ @RequestParam(name = "actualDateEnd", required = false) String actualDateEnd,
|
|
|
+ @RequestParam(name = "userName", required = false) String userName,
|
|
|
+ @RequestParam(name = "status", required = false) String status,
|
|
|
+ @RequestParam(name = "branch") String branch
|
|
|
) {
|
|
|
- List<String> listStatus = Arrays.asList(status.split(","));
|
|
|
-
|
|
|
LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
itemLambdaQueryWrapper
|
|
|
.eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
|
|
|
- .apply(StringUtils.isNotBlank(beginTime), "date_format(begin_time,'%Y-%m-%d') >= '" + beginTime + "'")
|
|
|
- .apply(StringUtils.isNotBlank(actualDate), "date_format(actual_date,'%Y-%m-%d') <= '" + actualDate + "'");
|
|
|
+ .ge(StringUtils.isNotBlank(beginTimeStart), ServiceProjectItem::getBeginTime, beginTimeStart)
|
|
|
+ .le(StringUtils.isNotBlank(beginTimeEnd), ServiceProjectItem::getBeginTime, beginTimeEnd)
|
|
|
+ .ge(StringUtils.isNotBlank(actualDateStart), ServiceProjectItem::getActualDate, actualDateStart)
|
|
|
+ .le(StringUtils.isNotBlank(actualDateEnd), ServiceProjectItem::getActualDate, actualDateEnd);
|
|
|
|
|
|
// 承做人
|
|
|
- if(StringUtils.isNotBlank(corpName)) {
|
|
|
- List<User> userList = userClient.userInfoByName(corpName,AuthUtil.getTenantId());
|
|
|
- List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
- itemLambdaQueryWrapper.in(ServiceProjectItem::getUserid,userIds);
|
|
|
+ if (StringUtils.isNotBlank(userName)) {
|
|
|
+ List<User> userList = userClient.userInfoByName(userName, AuthUtil.getTenantId());
|
|
|
+ if (ObjectUtils.isNotNull(userList)){
|
|
|
+ itemLambdaQueryWrapper.eq(ObjectUtils.isNotNull(userList),ServiceProjectItem::getUserid, userList.get(0).getId());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getUserid)
|
|
|
- .eq(ServiceProjectItem::getIsDeleted,0)
|
|
|
- .in(ServiceProjectItem::getStatus, listStatus)
|
|
|
- .eq(ServiceProjectItem::getBranch,branch);
|
|
|
+ .eq(ServiceProjectItem::getIsDeleted, 0)
|
|
|
+ .eq(StringUtils.isNotBlank(status), ServiceProjectItem::getStatus, status)
|
|
|
+ .eq(ServiceProjectItem::getBranch, branch);
|
|
|
Page<ServiceProjectItem> page = new Page<>(current, size);
|
|
|
IPage<ServiceProjectItem> iPage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(iPage.getRecords())) {
|
|
|
@@ -815,8 +946,7 @@ public class ProjectController {
|
|
|
//承做人
|
|
|
|
|
|
R<User> userR = userClient.userInfoById(e.getUserid());
|
|
|
- if(userR.isSuccess())
|
|
|
- {
|
|
|
+ if (userR.isSuccess()) {
|
|
|
e.setUserName(userR.getData().getRealName());
|
|
|
}
|
|
|
//毛收入
|