fms接口和bug修复

This commit is contained in:
Administrator 2023-06-07 11:26:18 +08:00
parent 2221b93f3f
commit d52f8bbec5
18 changed files with 267 additions and 98 deletions

View File

@ -1,12 +1,20 @@
package com.zhgd.xmgl.modules.basicdata.controller; package com.zhgd.xmgl.modules.basicdata.controller;
import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.annotation.OperLog; import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.util.Base64;
import com.zhgd.xmgl.util.DateUtil;
import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -14,9 +22,12 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -215,4 +226,12 @@ public class SystemUserController {
return systemUserService.deleteZjwjUser(systemUser); return systemUserService.deleteZjwjUser(systemUser);
} }
@ApiOperation(value = "调外部接口获取FMS监控⼤屏接⼊url", notes = "调外部接口获取FMS监控⼤屏接⼊url", httpMethod = "GET")
@ApiImplicitParam(name = "account", value = "账号", paramType = "query", required = true, dataType = "String")
@GetMapping(value = "/getFmsMonitoringLargeScreenAccessUrl")
public Result<Map<String, Object>> getFmsMonitoringLargeScreenAccessUrl(@RequestParam Map<String, Object> map) {
HashMap<String, Object> rsMap = systemUserService.getFmsMonitoringLargeScreenAccessUrl(map);
return Result.success(rsMap);
}
} }

View File

@ -107,14 +107,6 @@ public class SystemUser implements Serializable {
@ApiModelProperty(value = "clientId") @ApiModelProperty(value = "clientId")
private java.lang.String clientId; private java.lang.String clientId;
@TableField(exist = false)
@ApiModelProperty(value = "角色ID")
private java.lang.Long roleId;
@TableField(exist = false)
@ApiModelProperty(value = "岗位名称")
private java.lang.String jobName;
/** /**
* 三江统一登录的用户id * 三江统一登录的用户id
@ -126,6 +118,17 @@ public class SystemUser implements Serializable {
*/ */
private String sjUnifiedAuthenticationOrgIds; private String sjUnifiedAuthenticationOrgIds;
@ApiModelProperty(value = "fms监控大屏key")
private String fmsMonitoringScreenKey;
@TableField(exist = false)
@ApiModelProperty(value = "角色ID")
private java.lang.Long roleId;
@TableField(exist = false)
@ApiModelProperty(value = "岗位名称")
private java.lang.String jobName;
@TableField(exist = false) @TableField(exist = false)
private String projectSn; private String projectSn;
@ -137,4 +140,5 @@ public class SystemUser implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private java.lang.String roleName; private java.lang.String roleName;
} }

View File

@ -1,13 +1,13 @@
package com.zhgd.xmgl.modules.basicdata.service; package com.zhgd.xmgl.modules.basicdata.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo; import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -63,4 +63,7 @@ public interface ISystemUserService extends IService<SystemUser> {
Result deleteZjwjUser(SystemUser systemUser); Result deleteZjwjUser(SystemUser systemUser);
Result<List<SystemUser>> getZjwjUserList(SystemUser systemUser); Result<List<SystemUser>> getZjwjUserList(SystemUser systemUser);
HashMap<String, Object> getFmsMonitoringLargeScreenAccessUrl(Map<String, Object> map);
} }

View File

@ -2,6 +2,11 @@ package com.zhgd.xmgl.modules.basicdata.service.impl;
import cn.hutool.core.date.*; import cn.hutool.core.date.*;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -88,6 +93,16 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
private ProjectExternalSystemServiceMapper projectExternalSystemServiceMapper; private ProjectExternalSystemServiceMapper projectExternalSystemServiceMapper;
@Value("${mqtt-scope}") @Value("${mqtt-scope}")
private String scope; private String scope;
/**
* 地址host
*/
@Value("${fmsMonitoringScreenRequestHost:}")
private String fmsMonitoringScreenRequestHost;
/**
* 监控地址
*/
@Value("${fmsMonitoringScreenPageUrl:}")
private String fmsMonitoringScreenPageUrl;
@Override @Override
public Map<String, Object> getToken(Map<String, Object> map) { public Map<String, Object> getToken(Map<String, Object> map) {
@ -933,4 +948,62 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
List<SystemUser> list = systemUserMapper.getZjwjUserList(systemUser); List<SystemUser> list = systemUserMapper.getZjwjUserList(systemUser);
return Result.success(list); return Result.success(list);
} }
@Override
public HashMap<String, Object> getFmsMonitoringLargeScreenAccessUrl(Map<String, Object> map) {
//生成签名
/*
1.拼接签名字符串由date与请求行拼接而成以换行间隔示例date: Thu, 22 Jun 2017 17:15:21 GMT\nGET /requests HTTP/1.1
2.对拼接的签名字符串进行HMAC-SHA256签名签名需要用到的key由FMS提供
3.对HMAC-SHA256的结果进行base64编码得到signature值
签名注意事项
请求参数需要分别进行url编码(UTF-8)
*/
String account = MapUtils.getString(map, "account");
if (StringUtils.isBlank(account)) {
throw new OpenAlertException("account不能为空");
}
if (StringUtils.isBlank(fmsMonitoringScreenRequestHost)) {
throw new OpenAlertException("fmsMonitoringScreenHost未配置");
}
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getAccount, account));
if (systemUser == null) {
throw new OpenAlertException("查询不到此用户");
}
String key = systemUser.getFmsMonitoringScreenKey();
Date now = new Date();
String gmtTime = com.zhgd.xmgl.util.DateUtil.getGMTTime(now);
String algorithm = "hmac-sha256";
String request_url = "/api-gateway/v2/system/getAccessToken";
String request_line = "GET " + request_url + " HTTP/1.1";
String content = "date: " + gmtTime + "\n" + request_line;
HMac mac = new HMac(HmacAlgorithm.HmacSHA256, key.getBytes());
String signature = com.zhgd.xmgl.util.Base64.encodeBase64(mac.digest(content));
//获取access_token
//hmac username="{用户名}", algorithm="hmac-sha256", headers="date request-line", signature="{签名}"
String authorization = "hmac username=\"" + account + "\", algorithm=\"" + algorithm + "\", headers=\"date request-line\", signature=\"" + signature + "\"";
String accessUrl = fmsMonitoringScreenRequestHost + "/api-gateway/v2/system/getAccessToken";
log.info("accessUrl:{},authorization:{},date:{}", accessUrl, authorization, gmtTime);
String rs = HttpRequest.get(accessUrl)
.header("authorization", authorization)
.header("date", gmtTime)
.execute().body();
log.info("rs(获取access_token):{}", rs);
JSONObject tokenJsonObject = com.alibaba.fastjson.JSON.parseObject(rs);
if (!tokenJsonObject.getBoolean("success")) {
throw new OpenAlertException(MessageUtil.get("thirdErr"));
}
JSONObject dataJSONObject = tokenJsonObject.getJSONObject("data");
String token = dataJSONObject.getString("token");
//返回url
String url = fmsMonitoringScreenPageUrl + token;
HashMap<String, Object> rsMap = new HashMap<>();
rsMap.put("url", url);
return rsMap;
}
} }

View File

@ -57,11 +57,11 @@ public class GtMaterialContractPaymentRecord implements Serializable {
@ApiModelProperty(value = "付款人") @ApiModelProperty(value = "付款人")
private java.lang.String payer; private java.lang.String payer;
/** /**
* 付款状态 * 付款状态1已付款2未付款
*/ */
@Excel(name = "付款状态", width = 15) @Excel(name = "付款状态1已付款2未付款", width = 15)
@ApiModelProperty(value = "付款状态") @ApiModelProperty(value = "付款状态1已付款2未付款")
private java.lang.String paymentStatus; private Integer paymentStatus;
/** /**
* 实际付款金额 * 实际付款金额
*/ */
@ -128,4 +128,6 @@ public class GtMaterialContractPaymentRecord implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private java.util.Date updateTime; private java.util.Date updateTime;
@ApiModelProperty(value = "不能修改")
private Boolean unmodifiable;
} }

View File

@ -139,9 +139,12 @@ public class GtMaterialInOutWarehouse implements Serializable {
@ApiModelProperty(value = "出库审批单") @ApiModelProperty(value = "出库审批单")
private java.lang.String outboundApprovalForm; private java.lang.String outboundApprovalForm;
@ApiModelProperty(value = "部门班组id") @ApiModelProperty(value = "部门班组id")
private Long gtMaterialDepartmentTeamId; private Long gtMaterialDepartmentTeamId;
@ApiModelProperty(value = "部门班组类型1部门2班组")
private Integer gtMaterialDepartmentTeamType;
@ApiModelProperty(value = "作业单位id") @ApiModelProperty(value = "作业单位id")
private Long gtMaterialOperatingUnitId; private Long gtMaterialOperatingUnitId;
@ -179,8 +182,8 @@ public class GtMaterialInOutWarehouse implements Serializable {
@ApiModelProperty(value = "作业单位名称") @ApiModelProperty(value = "作业单位名称")
@TableField(exist = false) @TableField(exist = false)
private java.lang.String unitName; private java.lang.String unitName;
@ApiModelProperty(value = "班组名称") @ApiModelProperty(value = "部门或班组名称")
@TableField(exist = false) @TableField(exist = false)
private java.lang.String team; private java.lang.String departmentTeamName;
} }

View File

@ -94,4 +94,7 @@ public class GtMaterialPurchaseDemandPlanning implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private java.util.Date updateTime; private java.util.Date updateTime;
@ApiModelProperty(value = "物料单位1斤、2克、3千克、4吨")
private Integer materialUnit;
} }

View File

@ -43,11 +43,11 @@ public class GtMaterialTender implements Serializable {
@ApiModelProperty(value = "招标单位") @ApiModelProperty(value = "招标单位")
private java.lang.String tenderUnit; private java.lang.String tenderUnit;
/** /**
* 采购方式 * 采购方式1询价2竞争性谈判3直接委托4单一来源5其他合法采购方式
*/ */
@Excel(name = "采购方式", width = 15) @Excel(name = "采购方式1询价、2竞争性谈判、3直接委托、4单一来源、5其他合法采购方式", width = 15)
@ApiModelProperty(value = "采购方式") @ApiModelProperty(value = "采购方式1询价、2竞争性谈判、3直接委托、4单一来源、5其他合法采购方式")
private java.lang.String purchasingMethod; private Integer purchasingMethod;
/** /**
* 招标类型 * 招标类型
*/ */

View File

@ -2,16 +2,19 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.gt.mapper.GtMaterialInOutWarehouseMapper"> <mapper namespace="com.zhgd.xmgl.modules.gt.mapper.GtMaterialInOutWarehouseMapper">
<select id="queryPageList" resultType="com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse"> <select id="queryPageList" resultType="com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse">
SELECT SELECT DISTINCT io.*,
DISTINCT io.*,
mv.vendor_name, mv.vendor_name,
dt.team, CASE WHEN io.gt_material_department_team_type = 1 THEN di.department_name WHEN
ou.unit_name io.gt_material_department_team_type = 2 THEN ti.team_name END
FROM as department_team_name,
`gt_material_in_out_warehouse` io ei.enterprise_name as unit_name
FROM `gt_material_in_out_warehouse` io
LEFT JOIN gt_material_vendor mv ON io.gt_material_vendor_id = mv.id LEFT JOIN gt_material_vendor mv ON io.gt_material_vendor_id = mv.id
LEFT JOIN gt_material_department_team dt ON io.gt_material_department_team_id = dt.id LEFT JOIN enterprise_info ei ON io.gt_material_operating_unit_id = ei.id
LEFT JOIN gt_material_operating_unit ou ON io.gt_material_operating_unit_id = ou.id LEFT JOIN department_info di
ON io.gt_material_department_team_id = di.id and io.gt_material_department_team_type = 1
LEFT JOIN team_info ti
ON io.gt_material_department_team_id = ti.id and io.gt_material_department_team_type = 2
LEFT JOIN gt_material_point_check_into_warehouse_detail d ON d.gt_material_in_out_warehouse_id = io.id LEFT JOIN gt_material_point_check_into_warehouse_detail d ON d.gt_material_in_out_warehouse_id = io.id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>

View File

@ -2,6 +2,10 @@ package com.zhgd.xmgl.modules.project.controller;
import cn.hutool.core.img.ImgUtil; import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -16,10 +20,8 @@ import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectConfig; import com.zhgd.xmgl.modules.project.entity.ProjectConfig;
import com.zhgd.xmgl.modules.project.service.IProjectConfigService; import com.zhgd.xmgl.modules.project.service.IProjectConfigService;
import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.project.service.IProjectService;
import com.zhgd.xmgl.util.ExcelUtils; import com.zhgd.xmgl.util.Base64;
import com.zhgd.xmgl.util.ImageUtils; import com.zhgd.xmgl.util.*;
import com.zhgd.xmgl.util.MessageUtil;
import com.zhgd.xmgl.util.RundeSafeyHatUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@ -29,19 +31,14 @@ import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.awt.*; import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.*;
/** /**
* @program: wisdomSite * @program: wisdomSite

View File

@ -23,6 +23,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.simpleframework.xml.core.Validate; import org.simpleframework.xml.core.Validate;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -189,13 +190,21 @@ public class ProjectController {
@PostMapping(value = "/edit") @PostMapping(value = "/edit")
public Result<Project> edit(@RequestBody Project project) { public Result<Project> edit(@RequestBody Project project) {
Result<Project> result = new Result<Project>(); Result<Project> result = new Result<Project>();
LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, project.getProjectSn()); String projectSn = project.getProjectSn();
LambdaQueryWrapper<Project> queryWrapper = null;
if (StringUtils.isNotBlank(projectSn)) {
queryWrapper = new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, projectSn);
} else if (project.getProjectId() != null) {
queryWrapper = new LambdaQueryWrapper<Project>().eq(Project::getProjectId, project.getProjectId());
} else {
throw new RuntimeException("请求参数异常");
}
Project projectEntity = projectService.getOne(queryWrapper); Project projectEntity = projectService.getOne(queryWrapper);
if (projectEntity == null) { if (projectEntity == null) {
result.error500(MessageUtil.get("notFindErr")); result.error500(MessageUtil.get("notFindErr"));
} else { } else {
boolean ok = projectService.update(project, queryWrapper); boolean ok = projectService.update(project, queryWrapper);
redisRepository.del("projectInfoBySn:" + project.getProjectSn()); redisRepository.del("projectInfoBySn:" + projectSn);
if (ok) { if (ok) {
result.successMsg(MessageUtil.get("editSucess")); result.successMsg(MessageUtil.get("editSucess"));
} }

View File

@ -652,15 +652,15 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
Date finishDate = progressTask.getFinishDate(); Date finishDate = progressTask.getFinishDate();
Date actualStartDate = progressTask.getActualStartDate(); Date actualStartDate = progressTask.getActualStartDate();
Date actualFinishDate = progressTask.getActualFinishDate(); Date actualFinishDate = progressTask.getActualFinishDate();
long datePeriod = finishDate.getTime() - startDate.getTime(); long datePeriod = DateUtil.betweenDay(startDate, finishDate, true);
int status; int status;
//状态 1提前 2正常 3延迟 //状态 1提前 2正常 3延迟
if (actualStartDate != null && actualFinishDate != null && actualFinishDate.getTime() - actualStartDate.getTime() < datePeriod) { if (actualStartDate != null && actualFinishDate != null && DateUtil.betweenDay(actualStartDate, actualFinishDate, true) < datePeriod) {
//1提前 //1提前
status = 1; status = 1;
} else if ((actualStartDate == null && actualFinishDate == null) || } else if ((actualStartDate == null && actualFinishDate == null) ||
(actualStartDate != null && actualFinishDate != null && actualFinishDate.getTime() - actualStartDate.getTime() == datePeriod) || (actualStartDate != null && actualFinishDate != null && DateUtil.betweenDay(actualStartDate, actualFinishDate, true) == datePeriod) ||
(actualStartDate != null && actualFinishDate == null && System.currentTimeMillis() - actualStartDate.getTime() <= datePeriod)) { (actualStartDate != null && actualFinishDate == null && DateUtil.betweenDay(new Date(), actualStartDate, true) <= datePeriod)) {
//2正常 //2正常
status = 2; status = 2;
} else { } else {

View File

@ -7,6 +7,7 @@ import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse;
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo; import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
import com.zhgd.xmgl.modules.worker.service.IDepartmentInfoService; import com.zhgd.xmgl.modules.worker.service.IDepartmentInfoService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -37,7 +38,7 @@ import java.util.Map;
public class DepartmentInfoController { public class DepartmentInfoController {
@Autowired @Autowired
private IDepartmentInfoService departmentInfoService; private IDepartmentInfoService departmentInfoService;
/** /**
* 分页列表查询 * 分页列表查询
* @param departmentInfo * @param departmentInfo
@ -60,8 +61,8 @@ public class DepartmentInfoController {
result.setResult(pageList); result.setResult(pageList);
return result; return result;
} }
/** /**
* 添加 * 添加
* @param departmentInfo * @param departmentInfo
* @return * @return
@ -73,8 +74,8 @@ public class DepartmentInfoController {
departmentInfoService.saveDepartmentInfo(departmentInfo); departmentInfoService.saveDepartmentInfo(departmentInfo);
return Result.ok(); return Result.ok();
} }
/** /**
* 编辑 * 编辑
* @param departmentInfo * @param departmentInfo
* @return * @return
@ -86,8 +87,8 @@ public class DepartmentInfoController {
departmentInfoService.editDepartmentInfo(departmentInfo); departmentInfoService.editDepartmentInfo(departmentInfo);
return Result.ok(); return Result.ok();
} }
/** /**
* 通过id删除 * 通过id删除
* @param * @param
* @return * @return
@ -114,14 +115,25 @@ public class DepartmentInfoController {
return Result.success(departmentInfoService.getDepartmentInfoList(map)); return Result.success(departmentInfoService.getDepartmentInfoList(map));
} }
@ApiOperation(value = " 列表查询项目下所有劳务人员部门信息", notes = "列表查询项目下所有劳务人员部门信息", httpMethod="POST") @ApiOperation(value = " 列表查询项目下所有劳务人员部门信息", notes = "列表查询项目下所有劳务人员部门信息", httpMethod = "POST")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
}) })
@PostMapping(value = "/selectDepartmentDetailsList") @PostMapping(value = "/selectDepartmentDetailsList")
public Result<List<EntityMap>> selectDepartmentDetailsList(@RequestBody Map<String,Object> map) { public Result<List<EntityMap>> selectDepartmentDetailsList(@RequestBody Map<String, Object> map) {
return Result.success(departmentInfoService.selectDepartmentDetailsList(map)); return Result.success(departmentInfoService.selectDepartmentDetailsList(map));
} }
@ApiOperation(value = "列表查询项目下所有部门和班组信息", notes = "列表查询项目下所有部门和班组信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
@ApiImplicitParam(name = "enterpriseId", value = "所属企业", paramType = "query", required = false, dataType = "String"),
@ApiImplicitParam(name = "departmentTeamName", value = "部门或班组名称", paramType = "query", required = false, dataType = "String"),
})
@GetMapping(value = "/queryDepartmentAndTeamList")
public Result<List<GtMaterialInOutWarehouse>> queryDepartmentAndTeamList(@RequestParam Map<String, Object> map) {
return Result.success(departmentInfoService.queryDepartmentAndTeamList(map));
}
} }

View File

@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse;
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo; import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -27,12 +28,14 @@ public interface DepartmentInfoMapper extends BaseMapper<DepartmentInfo> {
List<DepartmentInfo> selectDepartmentInfoList(Map<String, Object> map); List<DepartmentInfo> selectDepartmentInfoList(Map<String, Object> map);
List<EntityMap> selectDepartmentInfoBySnList(@Param("projectSn")String projectSn); List<EntityMap> selectDepartmentInfoBySnList(@Param("projectSn") String projectSn);
@MapKey("enterpriseDepartmentName") @MapKey("enterpriseDepartmentName")
Map<String, Object> getDepartmentInfoMapBySn(@Param("projectSn")String projectSn); Map<String, Object> getDepartmentInfoMapBySn(@Param("projectSn") String projectSn);
List<EntityMap> selectDepartmentDetailsList(Map<String, Object> map); List<EntityMap> selectDepartmentDetailsList(Map<String, Object> map);
EntityMap getDepartmentInfo(@Param("departmentId")Long departmentId); EntityMap getDepartmentInfo(@Param("departmentId") Long departmentId);
List<GtMaterialInOutWarehouse> queryDepartmentAndTeamList(Map<String, Object> map);
} }

View File

@ -61,4 +61,20 @@
from department_info a from department_info a
where a.id=#{departmentId} where a.id=#{departmentId}
</select> </select>
<select id="queryDepartmentAndTeamList" resultType="com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse">
select t.* from (
select di.id as gtMaterialDepartmentTeamId,di.department_name as department_team_name,1 as
gt_material_department_team_type from department_info di
<where>
di.project_sn=#{projectSn} and di.enterprise_id=#{enterpriseId}
</where>
union all
select ti.id as gtMaterialDepartmentTeamId,ti.team_name as department_team_name,2 as
gt_material_department_team_type from team_info ti
<where>
ti.project_sn=#{projectSn} and ti.enterprise_id=#{enterpriseId}
</where>
)t
</select>
</mapper> </mapper>

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.worker.service; package com.zhgd.xmgl.modules.worker.service;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse;
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo; import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -19,7 +20,7 @@ public interface IDepartmentInfoService extends IService<DepartmentInfo> {
void batchDeleteDepartmentInfo(String projectSn); void batchDeleteDepartmentInfo(String projectSn);
Map<String,Object> getDepartmentInfoList(Map<String, Object> map); Map<String, Object> getDepartmentInfoList(Map<String, Object> map);
DepartmentInfo saveDepartmentInfo(DepartmentInfo departmentInfo); DepartmentInfo saveDepartmentInfo(DepartmentInfo departmentInfo);
@ -28,4 +29,6 @@ public interface IDepartmentInfoService extends IService<DepartmentInfo> {
List<Map<String, Object>> selectEnterpriseDepartmentList(Map<String, Object> map); List<Map<String, Object>> selectEnterpriseDepartmentList(Map<String, Object> map);
List<EntityMap> selectDepartmentDetailsList(Map<String, Object> map); List<EntityMap> selectDepartmentDetailsList(Map<String, Object> map);
List<GtMaterialInOutWarehouse> queryDepartmentAndTeamList(Map<String, Object> map);
} }

View File

@ -1,9 +1,11 @@
package com.zhgd.xmgl.modules.worker.service.impl; package com.zhgd.xmgl.modules.worker.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.async.AsyncWorker; import com.zhgd.xmgl.async.AsyncWorker;
import com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse;
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo; import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper;
@ -12,8 +14,6 @@ import com.zhgd.xmgl.modules.worker.service.IDepartmentInfoService;
import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.MessageUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap; import java.util.HashMap;
@ -23,7 +23,7 @@ import java.util.Map;
/** /**
* @Description: 劳务人员部门 * @Description: 劳务人员部门
* @author pds * @author pds
* @date 2020-08-13 * @date 2020-08-13
* @version V1.0 * @version V1.0
*/ */
@Service @Service
@ -39,14 +39,14 @@ public class DepartmentInfoServiceImpl extends ServiceImpl<DepartmentInfoMapper,
@Override @Override
public void removeDepartmentInfo(String id) { public void removeDepartmentInfo(String id) {
DepartmentInfo departmentInfo = departmentInfoMapper.selectById(id); DepartmentInfo departmentInfo = departmentInfoMapper.selectById(id);
if(departmentInfo==null){ if (departmentInfo == null) {
throw new OpenAlertException(MessageUtil.get("notFindErr")); throw new OpenAlertException(MessageUtil.get("notFindErr"));
} }
QueryWrapper<WorkerInfo> queryWrapper=new QueryWrapper<>(); QueryWrapper<WorkerInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(WorkerInfo::getProjectSn,departmentInfo.getProjectSn()) queryWrapper.lambda().eq(WorkerInfo::getProjectSn, departmentInfo.getProjectSn())
.eq(WorkerInfo::getDepartmentId,departmentInfo.getId()); .eq(WorkerInfo::getDepartmentId, departmentInfo.getId());
int count=workerInfoMapper.selectCount(queryWrapper); int count = workerInfoMapper.selectCount(queryWrapper);
if(count>0){ if (count > 0) {
throw new OpenAlertException(MessageUtil.get("notDeleteDepartmentErr")); throw new OpenAlertException(MessageUtil.get("notDeleteDepartmentErr"));
} }
departmentInfoMapper.deleteById(id); departmentInfoMapper.deleteById(id);
@ -54,53 +54,53 @@ public class DepartmentInfoServiceImpl extends ServiceImpl<DepartmentInfoMapper,
@Override @Override
public void batchDeleteDepartmentInfo(String projectSn) { public void batchDeleteDepartmentInfo(String projectSn) {
QueryWrapper<DepartmentInfo> queryWrapper=new QueryWrapper<>(); QueryWrapper<DepartmentInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DepartmentInfo::getProjectSn,projectSn); queryWrapper.lambda().eq(DepartmentInfo::getProjectSn, projectSn);
departmentInfoMapper.delete(queryWrapper); departmentInfoMapper.delete(queryWrapper);
} }
@Override @Override
public Map<String,Object> getDepartmentInfoList(Map<String, Object> map) { public Map<String, Object> getDepartmentInfoList(Map<String, Object> map) {
Map<String,Object> data=new HashMap<>(); Map<String, Object> data = new HashMap<>();
List<DepartmentInfo> list=departmentInfoMapper.getDepartmentInfoList(map); List<DepartmentInfo> list = departmentInfoMapper.getDepartmentInfoList(map);
data.put("list",list); data.put("list", list);
int totalWorkerNum=0; int totalWorkerNum = 0;
for (DepartmentInfo departmentInfo:list){ for (DepartmentInfo departmentInfo : list) {
totalWorkerNum=totalWorkerNum+departmentInfo.getWorkerNum(); totalWorkerNum = totalWorkerNum + departmentInfo.getWorkerNum();
} }
data.put("totalWorkerNum",totalWorkerNum); data.put("totalWorkerNum", totalWorkerNum);
data.put("totalDepartmentNum",list.size()); data.put("totalDepartmentNum", list.size());
return data; return data;
} }
@Override @Override
public DepartmentInfo saveDepartmentInfo(DepartmentInfo departmentInfo) { public DepartmentInfo saveDepartmentInfo(DepartmentInfo departmentInfo) {
QueryWrapper<DepartmentInfo> queryWrapper=new QueryWrapper<>(); QueryWrapper<DepartmentInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DepartmentInfo::getProjectSn,departmentInfo.getProjectSn()) queryWrapper.lambda().eq(DepartmentInfo::getProjectSn, departmentInfo.getProjectSn())
.eq(DepartmentInfo::getDepartmentName,departmentInfo.getDepartmentName()); .eq(DepartmentInfo::getDepartmentName, departmentInfo.getDepartmentName());
int count=departmentInfoMapper.selectCount(queryWrapper); int count = departmentInfoMapper.selectCount(queryWrapper);
if(count>0){ if (count > 0) {
throw new OpenAlertException(MessageUtil.get("existsDepartmentErr")); throw new OpenAlertException(MessageUtil.get("existsDepartmentErr"));
} }
departmentInfoMapper.insert(departmentInfo); departmentInfoMapper.insert(departmentInfo);
//上传外部平台 //上传外部平台
asyncWorker.sendAddOrUpdateTeam(null,departmentInfo,2); asyncWorker.sendAddOrUpdateTeam(null, departmentInfo, 2);
return departmentInfo; return departmentInfo;
} }
@Override @Override
public DepartmentInfo editDepartmentInfo(DepartmentInfo departmentInfo) { public DepartmentInfo editDepartmentInfo(DepartmentInfo departmentInfo) {
QueryWrapper<DepartmentInfo> queryWrapper=new QueryWrapper<>(); QueryWrapper<DepartmentInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DepartmentInfo::getProjectSn,departmentInfo.getProjectSn()) queryWrapper.lambda().eq(DepartmentInfo::getProjectSn, departmentInfo.getProjectSn())
.eq(DepartmentInfo::getDepartmentName,departmentInfo.getDepartmentName()) .eq(DepartmentInfo::getDepartmentName, departmentInfo.getDepartmentName())
.ne(DepartmentInfo::getId,departmentInfo.getId()); .ne(DepartmentInfo::getId, departmentInfo.getId());
int count=departmentInfoMapper.selectCount(queryWrapper); int count = departmentInfoMapper.selectCount(queryWrapper);
if(count>0){ if (count > 0) {
throw new OpenAlertException(MessageUtil.get("existsDepartmentErr")); throw new OpenAlertException(MessageUtil.get("existsDepartmentErr"));
} }
departmentInfoMapper.updateById(departmentInfo); departmentInfoMapper.updateById(departmentInfo);
//上传外部平台 //上传外部平台
asyncWorker.sendAddOrUpdateTeam(null,departmentInfo,2); asyncWorker.sendAddOrUpdateTeam(null, departmentInfo, 2);
return departmentInfo; return departmentInfo;
} }
@ -108,8 +108,15 @@ public class DepartmentInfoServiceImpl extends ServiceImpl<DepartmentInfoMapper,
public List<Map<String, Object>> selectEnterpriseDepartmentList(Map<String, Object> map) { public List<Map<String, Object>> selectEnterpriseDepartmentList(Map<String, Object> map) {
return departmentInfoMapper.selectEnterpriseDepartmentList(map); return departmentInfoMapper.selectEnterpriseDepartmentList(map);
} }
@Override @Override
public List<EntityMap> selectDepartmentDetailsList(Map<String, Object> map) { public List<EntityMap> selectDepartmentDetailsList(Map<String, Object> map) {
return departmentInfoMapper.selectDepartmentDetailsList(map); return departmentInfoMapper.selectDepartmentDetailsList(map);
} }
@Override
public List<GtMaterialInOutWarehouse> queryDepartmentAndTeamList(Map<String, Object> map) {
List<GtMaterialInOutWarehouse> departmentAndTeamList = departmentInfoMapper.queryDepartmentAndTeamList(map);
return departmentAndTeamList;
}
} }

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.util;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.DayOfWeek; import java.time.DayOfWeek;
@ -488,4 +489,15 @@ public class DateUtil extends cn.hutool.core.date.DateUtil {
//log.info(dealDateFormat("2021-08-25T04:22:20+0000")); //log.info(dealDateFormat("2021-08-25T04:22:20+0000"));
System.out.println(getOtherDayAllDayList(10)); System.out.println(getOtherDayAllDayList(10));
} }
/**
* 转成GMT时间
*
* @param date
*/
public static String getGMTTime(Date date) {
DateFormat dateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH);
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
return dateFormat.format(date);
}
} }