APP
This commit is contained in:
parent
6ac961b286
commit
c5ec741499
|
|
@ -810,7 +810,7 @@ public class DateTimeHelper {
|
|||
* @author cwchen
|
||||
* @date 2024/3/16 15:11
|
||||
*/
|
||||
public static Long convertDateStringToTimestamp(String dateString, String format) throws Exception {
|
||||
public static Long convertDateStringToTimestamp(String dateString, String format){
|
||||
Date date = null;
|
||||
try {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(format);
|
||||
|
|
|
|||
|
|
@ -52,4 +52,16 @@ public class AppController {
|
|||
public AjaxResult proProgress(ParamDto dto){
|
||||
return service.proProgress(dto);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "告警")
|
||||
@GetMapping("alarmLists")
|
||||
public AjaxResult alarmLists(ParamDto dto){
|
||||
return service.alarmLists(dto);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "工程管理")
|
||||
@GetMapping("proManagement")
|
||||
public AjaxResult proManagement(ParamDto dto){
|
||||
return service.proManagement(dto);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.securitycontrol.entity.background.vo.VehicleVo;
|
|||
import com.securitycontrol.entity.system.base.vo.ProVo;
|
||||
import com.securitycontrol.entity.system.vo.ResourceFileVo;
|
||||
import org.apache.ibatis.annotations.MapKey;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -78,12 +79,50 @@ public interface IAppMapper {
|
|||
|
||||
/**
|
||||
* 项目进度
|
||||
*
|
||||
* @param dto
|
||||
* @return List<Map<String, Object>>
|
||||
* @return List<Map < String, Object>>
|
||||
* @description
|
||||
* @author cwchen
|
||||
* @date 2024/3/28 20:22
|
||||
*/
|
||||
@MapKey("bidCode")
|
||||
List<Map<String, Object>> getProBasicInfo(ParamDto dto);
|
||||
|
||||
/**
|
||||
* 告警
|
||||
*
|
||||
* @param dto
|
||||
* @return List<Map < Object>>
|
||||
* @description
|
||||
* @author cwchen
|
||||
* @date 2024/3/29 10:25
|
||||
*/
|
||||
@MapKey("id")
|
||||
List<Map<String, Object>> alarmLists(ParamDto dto);
|
||||
|
||||
|
||||
/**
|
||||
* 工程工序计划
|
||||
*
|
||||
* @param dto
|
||||
* @return List<Map < Object>>
|
||||
* @description
|
||||
* @author cwchen
|
||||
* @date 2024/3/29 11:29
|
||||
*/
|
||||
@MapKey("bidCode")
|
||||
List<Map<String, Object>> getProGxPlan(ParamDto dto);
|
||||
|
||||
/**
|
||||
* 获取工序或杆塔名称
|
||||
* @param proType
|
||||
* @param bidCode
|
||||
* @param gxId
|
||||
* @return String
|
||||
* @description
|
||||
* @author cwchen
|
||||
* @date 2024/3/29 14:20
|
||||
*/
|
||||
String getGtOrGxName(@Param("proType") String proType, @Param("bidCode")String bidCode, @Param("gxId")String gxId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ public interface IAppService {
|
|||
|
||||
/**
|
||||
* 项目进度
|
||||
*
|
||||
* @param dto
|
||||
* @return AjaxResult
|
||||
* @description
|
||||
|
|
@ -63,4 +64,25 @@ public interface IAppService {
|
|||
* @date 2024/3/28 20:19
|
||||
*/
|
||||
AjaxResult proProgress(ParamDto dto);
|
||||
|
||||
/**
|
||||
* 告警
|
||||
*
|
||||
* @param dto
|
||||
* @return AjaxResult
|
||||
* @description
|
||||
* @author cwchen
|
||||
* @date 2024/3/29 10:24
|
||||
*/
|
||||
AjaxResult alarmLists(ParamDto dto);
|
||||
|
||||
/**
|
||||
* 工程管理
|
||||
* @param dto
|
||||
* @return AjaxResult
|
||||
* @description
|
||||
* @author cwchen
|
||||
* @date 2024/3/29 10:46
|
||||
*/
|
||||
AjaxResult proManagement(ParamDto dto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,22 +92,22 @@ public class AppServiceImpl implements IAppService {
|
|||
list = mapper.getPersonnelList(dto);
|
||||
for (HumanManageVo vo : list) {
|
||||
String decryptIdNumber = AesCbcUtils.decrypt(vo.getIdNumber());
|
||||
if(decryptIdNumber != null){
|
||||
if (decryptIdNumber != null) {
|
||||
vo.setIdNumber(decryptIdNumber);
|
||||
vo.setSex(getGenderByIdCard(decryptIdNumber));
|
||||
}else{
|
||||
} else {
|
||||
vo.setSex(getGenderByIdCard(vo.getIdNumber()));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("人员管理",e);
|
||||
log.error("人员管理", e);
|
||||
}
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
public static String getGenderByIdCard(String idCard) {
|
||||
if (StringUtils.isNotEmpty(idCard)) {
|
||||
if(idCard.length() == Constant.ID_CARD || idCard.length() == Constant.ID_CARD2){
|
||||
if (idCard.length() == Constant.ID_CARD || idCard.length() == Constant.ID_CARD2) {
|
||||
idCard = idCard.length() == 15 ? idCard.substring(0, 6) + "19" + idCard.substring(6) : idCard;
|
||||
char genderCode = idCard.charAt(16);
|
||||
return (genderCode % 2) == 0 ? "女" : "男";
|
||||
|
|
@ -122,7 +122,7 @@ public class AppServiceImpl implements IAppService {
|
|||
try {
|
||||
list = mapper.getCarList(dto);
|
||||
} catch (Exception e) {
|
||||
log.error("人员管理",e);
|
||||
log.error("人员管理", e);
|
||||
}
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
|
@ -132,7 +132,7 @@ public class AppServiceImpl implements IAppService {
|
|||
Map<String, Object> dataMap = new HashMap<>(16);
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
try {
|
||||
list= mapper.getProBasicInfo(dto);
|
||||
list = mapper.getProBasicInfo(dto);
|
||||
Map<String, List<Map<String, Object>>> map = list.stream().collect(Collectors.groupingBy(item -> {
|
||||
return String.valueOf(item.get("bidCode"));
|
||||
}));
|
||||
|
|
@ -148,27 +148,82 @@ public class AppServiceImpl implements IAppService {
|
|||
value = value.add(bigDecimal.multiply(bigDecimal2).divide(multipleValue, 3, BigDecimal.ROUND_HALF_UP));
|
||||
}
|
||||
}
|
||||
// 计划开始时间、计划结束时间、实际进度
|
||||
// 计划开始时间、计划结束时间、实际进度、计划工期
|
||||
String planStartTime = String.valueOf(v.get(0).get("planStartTime"));
|
||||
String planEndTime = String.valueOf(v.get(0).get("planStartTime"));
|
||||
String planEndTime = String.valueOf(v.get(0).get("planEndTime"));
|
||||
String nowDate = DateTimeHelper.getNowDate();
|
||||
dataMap.put("planStartTime",planStartTime);
|
||||
dataMap.put("planEndTime",planEndTime);
|
||||
dataMap.put("value", value.doubleValue());
|
||||
|
||||
// 计划进度、计划工期
|
||||
Long dayDifference = DateTimeHelper.getDayDifference(planStartTime, planEndTime);
|
||||
Long residueDay = DateTimeHelper.getDayDifference(planStartTime, nowDate);
|
||||
BigDecimal dayDifferenceBd = BigDecimal.valueOf(dayDifference);
|
||||
BigDecimal residueDayBd = BigDecimal.valueOf(residueDay);
|
||||
// dayDifference
|
||||
value2 = value2.add(residueDayBd.divide(dayDifferenceBd, 3, BigDecimal.ROUND_HALF_UP));
|
||||
dataMap.put("value2",value2.doubleValue());
|
||||
dataMap.put("planStartTime", planStartTime);
|
||||
dataMap.put("planEndTime", planEndTime);
|
||||
dataMap.put("value", value.doubleValue());
|
||||
dataMap.put("durationDay", dayDifference);
|
||||
|
||||
Long planStartTimeTamp = DateTimeHelper.convertDateStringToTimestamp(planStartTime, "yyyy-MM-dd");
|
||||
Long planEndTimeTamp = DateTimeHelper.convertDateStringToTimestamp(planEndTime, "yyyy-MM-dd");
|
||||
Long nowDateTamp = DateTimeHelper.convertDateStringToTimestamp(nowDate, "yyyy-MM-dd");
|
||||
// 计划进度
|
||||
if (nowDateTamp < planStartTimeTamp) {
|
||||
dataMap.put("value2", new Double(0));
|
||||
} else if (nowDateTamp > planEndTimeTamp) {
|
||||
dataMap.put("value2", new Double(100));
|
||||
} else {
|
||||
// 工程已施工天数
|
||||
Long residueDay = DateTimeHelper.getDayDifference(planStartTime, nowDate);
|
||||
// 剩余工期
|
||||
Long residueDay2 = DateTimeHelper.getDayDifference(nowDate, planEndTime);
|
||||
BigDecimal dayDifferenceBd = BigDecimal.valueOf(dayDifference);
|
||||
BigDecimal residueDayBd = BigDecimal.valueOf(residueDay);
|
||||
value2 = value2.add(residueDayBd.divide(dayDifferenceBd, 3, BigDecimal.ROUND_HALF_UP).multiply(multipleValue));
|
||||
dataMap.put("value2", value2.doubleValue());
|
||||
dataMap.put("residueDay", residueDay2);
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
log.error("项目进度");
|
||||
}
|
||||
return AjaxResult.success(dataMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult alarmLists(ParamDto dto) {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
try {
|
||||
list = mapper.alarmLists(dto);
|
||||
} catch (Exception e) {
|
||||
log.error("告警", e);
|
||||
}
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult proManagement(ParamDto dto) {
|
||||
Map<String, Object> dataMap = new HashMap<>(16);
|
||||
ProVo vo = new ProVo();
|
||||
JSONObject item = new JSONObject();
|
||||
List<Map<String, Object>> proGxPlanList = new ArrayList<>();
|
||||
try {
|
||||
// 工程详情
|
||||
vo = mapper.getProBrief(dto);
|
||||
AjaxResult ajaxResult = proProgress(dto);
|
||||
String jsonString = JSON.toJSONString(ajaxResult.get("data"));
|
||||
item = JSON.parseObject(jsonString);
|
||||
// 施工进度
|
||||
proGxPlanList = mapper.getProGxPlan(dto);
|
||||
if(CollectionUtils.isNotEmpty(proGxPlanList)){
|
||||
proGxPlanList.forEach(mapData->{
|
||||
String proType = String.valueOf(mapData.get("proType"));
|
||||
String bidCode = String.valueOf(mapData.get("bidCode"));
|
||||
String gxId = String.valueOf(mapData.get("gxId"));
|
||||
String name = mapper.getGtOrGxName(proType, bidCode, gxId);
|
||||
mapData.put("name",name);
|
||||
});
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("工程管理", e);
|
||||
}
|
||||
dataMap.put("vo",vo);
|
||||
dataMap.put("item",item);
|
||||
dataMap.put("proGxPlanList",proGxPlanList);
|
||||
return AjaxResult.success(dataMap);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,4 +78,48 @@
|
|||
)a ON tgp.plan_id = a.planId
|
||||
WHERE tp.del_flag = 0 AND tp.bid_code = #{bidCode}
|
||||
</select>
|
||||
<!--告警-->
|
||||
<select id="alarmLists" resultType="java.util.Map">
|
||||
SELECT tw.warn_id AS id,
|
||||
DATE_FORMAT(tw.warn_time, '%Y-%m-%d %H:%i:%s') AS warnTime,
|
||||
tw.warn_content AS warnContent,
|
||||
IF(status = '1','已处理','未处理') AS status
|
||||
FROM tb_warn tw
|
||||
WHERE tw.bid_code = #{bidCode} AND tw.warn_time BETWEEN CONCAT(CURRENT_DATE,' 00:00:00') AND CONCAT(CURRENT_DATE,' 23:59:59')
|
||||
ORDER BY warn_time DESC,status ASC
|
||||
</select>
|
||||
<!--工程工序计划-->
|
||||
<select id="getProGxPlan" resultType="java.util.Map">
|
||||
SELECT tp.bid_code AS bidCode,
|
||||
tgp.gx_weight AS gxWeight,
|
||||
a.gxProgress,
|
||||
tp.pro_type AS proType,
|
||||
tgp.gx_id AS gxId,
|
||||
tgp.plan_start_time AS planStartTime,
|
||||
tgp.plan_end_time AS planEndTime,
|
||||
tgp.start_time AS startTime,
|
||||
tgp.end_time AS endTime
|
||||
FROM tb_gx_plan tgp
|
||||
LEFT JOIN tb_project tp ON tp.bid_code = tgp.bid_code AND tp.del_flag = 0
|
||||
LEFT JOIN (
|
||||
SELECT tpp.plan_id AS planId,
|
||||
tpp.gx_progress AS gxProgress
|
||||
FROM tb_project_progress tpp
|
||||
INNER JOIN (SELECT MAX( create_time ) AS create_time FROM tb_project_progress GROUP BY plan_id) tpp2 ON tpp.create_time = tpp2.create_time
|
||||
)a ON tgp.plan_id = a.planId
|
||||
WHERE tp.bid_code = #{bidCode} AND tgp.del_flag = 0
|
||||
</select>
|
||||
<!--获取工序或杆塔名称-->
|
||||
<select id="getGtOrGxName" resultType="java.lang.String">
|
||||
<if test="proType=='线路'">
|
||||
SELECT gt_name FROM t_pro_gt tpg WHERE bid_code =#{bidCode} AND gt_id = #{gxId}
|
||||
</if>
|
||||
<if test="proType=='变电'">
|
||||
SELECT sd2.dict_code AS id,
|
||||
sd2.dict_name AS name
|
||||
FROM sys_dict sd
|
||||
LEFT JOIN sys_dict sd2 ON sd.dict_code = sd2.p_code AND sd2.del_flag = 0
|
||||
WHERE sd.dict_code = '400' AND sd2.dict_code = #{gxId} AND sd.del_flag = 0
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue