From 6497e0daf1d0afc3da65a11d389c740e79427a78 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期三, 24 七月 2024 14:08:11 +0800 Subject: [PATCH] 2024-07-24 朱宝民 整点报历史记录查询、管理卡创建 --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportCtrl.java | 45 +++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ManagerCard.java | 33 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java | 19 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml | 124 ++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 31 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java | 72 ++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 55 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/qo/ReportQO.java | 40 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOnHour.java | 75 ++++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml | 54 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java | 13 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportSv.java | 72 ++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java | 35 ++ pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 2 14 files changed, 657 insertions(+), 13 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java index edcde57..1eaa921 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java @@ -2,8 +2,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportHistory; -import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast; +import com.dy.pipIrrGlobal.voRm.VoOnHour; import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -53,4 +56,18 @@ * @return update count */ int updateByPrimaryKey(RmOnHourReportHistory record); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ュ巻鍙茶褰曟暟閲� + * @param params + * @return + */ + Long getOnHourReportsCount_history(Map<?, ?> params); + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ュ巻鍙茶褰� + * @param params + * @return + */ + List<VoOnHour> getOnHourReports_history(Map<?, ?> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java new file mode 100644 index 0000000..6df948a --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java @@ -0,0 +1,35 @@ +package com.dy.pipIrrGlobal.daoSe; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoSe.SeManagerCard; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @author ZhuBaoMin + * @date 2024-07-24 10:36 + * @LastEditTime 2024-07-24 10:36 + * @Description + */ + +@Mapper +public interface SeManagerCardMapper extends BaseMapper<SeManagerCard> { + int deleteByPrimaryKey(Long id); + + int insert(SeManagerCard record); + + int insertSelective(SeManagerCard record); + + SeManagerCard selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SeManagerCard record); + + int updateByPrimaryKey(SeManagerCard record); + + /** + * 鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈢鐞嗗崱缂栧彿 + * @param areaCode + * @return + */ + String getManagerCardNumOfMax(@Param("areaCode") String areaCode); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java new file mode 100644 index 0000000..6bf4d99 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java @@ -0,0 +1,72 @@ +package com.dy.pipIrrGlobal.pojoSe; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import org.hibernate.validator.constraints.Length; + +import java.util.Date; + +/** + * @author ZhuBaoMin + * @date 2024-07-24 10:36 + * @LastEditTime 2024-07-24 10:36 + * @Description + */ +/** + * 绠$悊鍛樻按鍗¤〃 + */ + +@TableName(value = "se_manager_card", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class SeManagerCard implements BaseEntity { + public static final long serialVersionUID = 202407241040001L; + + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + private Long id; + + /** + * 鍗$墖鍦板潃 + */ + @NotBlank(message = "鍗$墖鍦板潃涓嶈兘涓虹┖") + private String cardAddr; + + /** + * 鍗$墖缂栧彿 + */ + @NotBlank(message = "鍗$墖缂栧彿涓嶈兘涓虹┖") + private String cardNum; + + /** + * 鍗$墖绫诲瀷;2-绠$悊绉戯紝4-寮�鍏抽榾鍗★紝5娓呯┖鍗� + */ + @NotNull(message = "鍗$墖绫诲瀷涓嶈兘涓虹┖") + private Byte cardType; + + /** + * 寮�鍗℃椂闂� + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 澶囨敞淇℃伅 + */ + @Length(max = 200) + private String remarks; +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOnHour.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOnHour.java new file mode 100644 index 0000000..26dece0 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoOnHour.java @@ -0,0 +1,75 @@ +package com.dy.pipIrrGlobal.voRm; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-07-23 17:12 + * @LastEditTime 2024-07-23 17:12 + * @Description 鏁寸偣鎶ユ暟鎹鍥惧璞� + */ + +@Data +public class VoOnHour { + private static final long serialVersionUID = 202407231713001L; + + /** + * 鍙栨按鍙D + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private Long intakeId; + + /** + * 鍙栨按鍙g紪鍙� + */ + private String intakeNum; + + /** + * 闃�鎺у櫒鍦板潃 + */ + private String rtuAddr; + + /** + * 鏁版嵁鎺ユ敹鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String receiveTime; + + /** + * 鐬椂娴侀噺 + */ + private Double instantAmount; + + /** + * 绱娴侀噺 + */ + private Double totalAmount; + + /** + * 鎹熷け娴侀噺锛屼粠褰撴棩0鏃跺埌褰撳墠鐨勬紡鎹熺疮璁℃祦閲� + */ + private Double lossAmount; + + /** + * 姘村帇 + */ + private Double waterPress; + + /** + * 钃勭數姹犵數鍘� + */ + private Double batteryVolt; + + /** + * 淇″彿寮哄害 + */ + private Integer signalValue; + + /** + * 姘翠环 + */ + private Double waterPrice; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml index 7cabb1f..82bc8e4 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml @@ -136,6 +136,8 @@ projectNo: 10 #鎺у埗鍣ㄧ被鍨� controllerType: 57 + #榛樿琛屾斂鍖哄垝缂栫爜锛堝ぉ娲�-澶╂触甯�-姝︽竻鍖�-浜花宸ヤ笟鍥�-澶х鑺傛按锛� + divisionCode: 120114403100 #閫氳鍗忚 diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml index a06bd6d..dab83eb 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml @@ -194,4 +194,58 @@ water_price = #{waterPrice,jdbcType=FLOAT} where id = #{id,jdbcType=BIGINT} </update> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ュ巻鍙茶褰曟暟閲�--> + <select id="getOnHourReportsCount_history" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + FROM rm_on_hour_report_history oh + INNER JOIN pr_intake inta ON inta.id = oh.intake_id + <where> + <if test = "intakeName != null and intakeName !=''"> + AND inta.name LIKE CONCAT('%',#{intakeName},'%') + </if> + <if test = "rtuAddr != null and rtuAddr !=''"> + AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%') + </if> + <if test = "timeStart != null and timeStop != null"> + AND oh.dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ュ巻鍙茶褰�--> + <select id="getOnHourReports_history" resultType="com.dy.pipIrrGlobal.voRm.VoOnHour"> + SELECT + oh.intake_id AS intakeId, + inta.`name` AS intakeNum, + oh.rtu_addr AS rtuAddr, + oh.dt AS receiveTime, + oh.instant_amount AS instantAmount, + oh.total_amount AS totalAmount, + oh.loss_amount AS lossAmount, + oh.water_press AS waterPress, + oh.battery_volt AS batteryVolt, + oh.signal_value AS signalValue, + oh.water_price AS waterPrice + FROM rm_on_hour_report_history oh + INNER JOIN pr_intake inta ON inta.id = oh.intake_id + <where> + <if test = "intakeNum != null and intakeNum !=''"> + AND inta.name LIKE CONCAT('%',#{intakeNum},'%') + </if> + <if test = "rtuAddr != null and rtuAddr !=''"> + AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%') + </if> + <if test = "timeStart != null and timeStop != null"> + AND oh.dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where> + ORDER BY oh.dt DESC + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml new file mode 100644 index 0000000..dc41740 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dy.pipIrrGlobal.daoSe.SeManagerCardMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeManagerCard"> + <!--@mbg.generated--> + <!--@Table se_manager_card--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="card_addr" jdbcType="VARCHAR" property="cardAddr" /> + <result column="card_num" jdbcType="VARCHAR" property="cardNum" /> + <result column="card_type" jdbcType="TINYINT" property="cardType" /> + <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> + <result column="remarks" jdbcType="VARCHAR" property="remarks" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, card_addr, card_num, card_type, create_time, remarks + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from se_manager_card + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete from se_manager_card + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard"> + <!--@mbg.generated--> + insert into se_manager_card (id, card_addr, card_num, + card_type, create_time, remarks + ) + values (#{id,jdbcType=BIGINT}, #{cardAddr,jdbcType=VARCHAR}, #{cardNum,jdbcType=VARCHAR}, + #{cardType,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR} + ) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard"> + <!--@mbg.generated--> + insert into se_manager_card + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="cardAddr != null"> + card_addr, + </if> + <if test="cardNum != null"> + card_num, + </if> + <if test="cardType != null"> + card_type, + </if> + <if test="createTime != null"> + create_time, + </if> + <if test="remarks != null"> + remarks, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="cardAddr != null"> + #{cardAddr,jdbcType=VARCHAR}, + </if> + <if test="cardNum != null"> + #{cardNum,jdbcType=VARCHAR}, + </if> + <if test="cardType != null"> + #{cardType,jdbcType=TINYINT}, + </if> + <if test="createTime != null"> + #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="remarks != null"> + #{remarks,jdbcType=VARCHAR}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard"> + <!--@mbg.generated--> + update se_manager_card + <set> + <if test="cardAddr != null"> + card_addr = #{cardAddr,jdbcType=VARCHAR}, + </if> + <if test="cardNum != null"> + card_num = #{cardNum,jdbcType=VARCHAR}, + </if> + <if test="cardType != null"> + card_type = #{cardType,jdbcType=TINYINT}, + </if> + <if test="createTime != null"> + create_time = #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="remarks != null"> + remarks = #{remarks,jdbcType=VARCHAR}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard"> + <!--@mbg.generated--> + update se_manager_card + set card_addr = #{cardAddr,jdbcType=VARCHAR}, + card_num = #{cardNum,jdbcType=VARCHAR}, + card_type = #{cardType,jdbcType=TINYINT}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + remarks = #{remarks,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + </update> + + <!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈢鐞嗗崱缂栧彿--> + <select id="getManagerCardNumOfMax" resultType="java.lang.String"> + SELECT card_num + FROM se_manager_card + WHERE card_num LIKE CONCAT(#{areaCode},'%') + ORDER BY card_num desc + LIMIT 0,1 + </select> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportCtrl.java new file mode 100644 index 0000000..e3cdcda --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportCtrl.java @@ -0,0 +1,45 @@ +package com.dy.pipIrrRemote.report; + +import com.dy.common.aop.SsoAop; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.voRm.VoOnHour; +import com.dy.pipIrrRemote.report.qo.ReportQO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author ZhuBaoMin + * @date 2024-07-23 16:01 + * @LastEditTime 2024-07-23 16:01 + * @Description 鍚勭被鏁版嵁鎶ユ帶鍒剁被 + */ + +@Slf4j +@RestController +@RequestMapping(path = "report") +@RequiredArgsConstructor +public class ReportCtrl { + private final ReportSv reportSv; + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ュ巻鍙茶褰� + * @param qo + * @return + */ + @GetMapping(path = "/on_hour_report_history") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoOnHour>>> getOnHourReportHistory(ReportQO qo){ + try { + return BaseResponseUtils.buildSuccess(reportSv.getOnHourReportsHistory(qo)); + } catch (Exception e) { + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportSv.java new file mode 100644 index 0000000..ed17765 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/ReportSv.java @@ -0,0 +1,72 @@ +package com.dy.pipIrrRemote.report; + +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoRm.*; +import com.dy.pipIrrGlobal.voRm.VoOnHour; +import com.dy.pipIrrRemote.report.qo.ReportQO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @author ZhuBaoMin + * @date 2024-07-23 16:02 + * @LastEditTime 2024-07-23 16:02 + * @Description 鍚勭被鏁版嵁鎶ユ湇鍔$被 + */ + +@Slf4j +@Service +@RequiredArgsConstructor +public class ReportSv { + // 闃�鎺у櫒鏁寸偣鎶AO + private final RmOnHourReportHistoryMapper rmOnHourReportHistoryMapper; + private final RmOnHourReportLastMapper rmOnHourReportLastMapper; + + // 闃�鎺у櫒寮�鍏抽榾鎶AO + private final RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper; + private final RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper; + + // 闃�鎺у櫒瀹氭椂鎶AO + private final RmTimingReportHistoryMapper rmTimingReportHistoryMapper; + private final RmTimingReportLastMapper rmTimingReportLastMapper; + + // 宸ヤ綔鎶AO + private final RmWorkReportHistoryMapper rmWorkReportHistoryMapper; + private final RmWorkReportLastMapper rmWorkReportLastMapper; + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鏁寸偣鎶ュ巻鍙茶褰� + * @param qo + * @return + */ + public QueryResultVo<List<VoOnHour>> getOnHourReportsHistory(ReportQO qo) { + String timeStart = qo.getTimeStart(); + String timeStop = qo.getTimeStop(); + if(timeStart != null) { + timeStart = timeStart + " 00:00:00"; + qo.setTimeStart(timeStart); + } + if(timeStop != null) { + timeStop = timeStop + " 23:59:59"; + qo.setTimeStop(timeStop); + } + + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); + Long itemTotal = rmOnHourReportHistoryMapper.getOnHourReportsCount_history(params); + + QueryResultVo<List<VoOnHour>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmOnHourReportHistoryMapper.getOnHourReports_history(params); + return rsVo ; + } + + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/qo/ReportQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/qo/ReportQO.java new file mode 100644 index 0000000..92b88f6 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/report/qo/ReportQO.java @@ -0,0 +1,40 @@ +package com.dy.pipIrrRemote.report.qo; + +import com.dy.common.webUtil.QueryConditionVo; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-07-23 16:31 + * @LastEditTime 2024-07-23 16:31 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ReportQO extends QueryConditionVo { + + /** + * 鍙栨按鍙g紪鍙� + */ + private String intakeNum; + + /** + * 闃�鎺у櫒鍦板潃 + */ + private String rtuAddr; + + /** + * 鏌ヨ寮�濮嬫棩鏈� + */ + private String timeStart; + + /** + * 鏌ヨ缁撴潫鏃ユ湡 + */ + private String timeStop; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java index 5cb744f..c0d55cf 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java @@ -10,6 +10,7 @@ import com.dy.pipIrrGlobal.pojoBa.BaClient; import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; +import com.dy.pipIrrGlobal.pojoSe.SeManagerCard; import com.dy.pipIrrGlobal.util.AmountToChinese; import com.dy.pipIrrGlobal.voSe.VoActiveCard; import com.dy.pipIrrGlobal.voSe.VoOperate; @@ -31,6 +32,7 @@ import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; @@ -55,6 +57,8 @@ private final CardOperateSv cardOperateSv; private final ClientCardSv clientCardSv; + @Value("${project.divisionCode}") + private String divisionCode; /** * 寮�鍗� * @param po 寮�鍗′紶鍏ュ璞� @@ -748,6 +752,57 @@ } /** + * 鍒涘缓绠$悊鍗� + * @param po + * @param bindingResult + * @return + */ + @PostMapping(path = "create_manager_card", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> createManagerCard(@RequestBody @Valid ManagerCard po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + /** + * 鏍规嵁琛屾斂鍖哄垝涓诧紙divisionCode锛夊湪绠$悊鍗¤〃涓拡瀵瑰崱鐗囩紪鍙凤紙cardNum锛夎繘琛屾ā绯婃煡璇� + * 濡傛灉椤哄簭鍙峰凡缁忚揪鍒版渶澶у�硷紝鎻愮ず鐢ㄦ埛鑱旂郴绯荤粺绠$悊鍛� + * 濡傛灉椤哄簭鍙锋湭杈惧埌鏈�澶у�硷紝鍒欏姞1 + * cardNum涓烘柊鐨勫崱鍙� + */ + String cardNum = Optional.ofNullable(cardOperateSv.getManagerCardNumOfMax(divisionCode)).orElse(""); + if(cardNum != null && cardNum.trim().length() > 0) { + Integer number = Integer.parseInt(cardNum.substring(12)); + number = number + 1; + if(number > 65535) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage()); + } + cardNum = cardNum.substring(0, 12) + String.format("%05d", number); + } else { + cardNum = divisionCode + "00001"; + } + + SeManagerCard seManagerCard = new SeManagerCard(); + seManagerCard.setCardAddr(po.getCardAddr()); + seManagerCard.setCardNum(cardNum); + seManagerCard.setCardType(po.getCardType()); + seManagerCard.setCreateTime(new Date()); + seManagerCard.setRemarks(po.getRemarks()); + Long managerCardId = cardOperateSv.addManagerCard(seManagerCard); + if(managerCardId == 0) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.CREATE_MANAGER_CARD_ERROR.getMessage()); + } + + return BaseResponseUtils.buildSuccess(cardNum); + + //Map map = new HashMap(); + //map.put("cardNum", cardNum); + //return BaseResponseUtils.buildSuccess(map) ; + } + + + /** * 鑾峰彇鍏呭�艰褰� * @param vo * @return diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java index 84cc589..5ff8607 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java @@ -7,12 +7,10 @@ import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper; -import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; -import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; -import com.dy.pipIrrGlobal.daoSe.SeClientMapper; -import com.dy.pipIrrGlobal.daoSe.SeGeneralMapper; +import com.dy.pipIrrGlobal.daoSe.*; import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; +import com.dy.pipIrrGlobal.pojoSe.SeManagerCard; import com.dy.pipIrrGlobal.voSe.*; import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge; import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; @@ -56,6 +54,9 @@ @Autowired private BaSettingsMapper baSettingsMapper; + @Autowired + private SeManagerCardMapper seManagerCardMapper; + /** * 娣诲姞寮�鍗¤褰� @@ -88,16 +89,36 @@ public Long getAreaCodeById(Long clientId) { return seClientMapper.getAreaCodeById(clientId); } + /** * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙凤紝寮�鍗′娇鐢� * @param areaCode * @return */ - String getCardNumOfMax(String areaCode) { + public String getCardNumOfMax(String areaCode) { return seClientCardMapper.getCardNumOfMax(areaCode); } /** + * 鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈢鐞嗗崱缂栧彿锛屽垱寤虹鐞嗗崱浣跨敤 + * @param areaCode + * @return + */ + public String getManagerCardNumOfMax(String areaCode) { + return seManagerCardMapper.getManagerCardNumOfMax(areaCode); + } + + /** + * 鍒涘缓绠$悊鍗� + * @param po + * @return + */ + public Long addManagerCard(SeManagerCard po) { + seManagerCardMapper.insert(po); + return po.getId(); + } + + /** * 鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID锛屽紑鍗′娇鐢� * @param clientNum * @return diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ManagerCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ManagerCard.java new file mode 100644 index 0000000..0b28e12 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ManagerCard.java @@ -0,0 +1,33 @@ +package com.dy.pipIrrSell.cardOperate.dto; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-07-24 11:25 + * @LastEditTime 2024-07-24 11:25 + * @Description 绠$悊鍗′紶杈撳璞� + */ + +@Data +public class ManagerCard { + public static final long serialVersionUID = 202407241125001L; + + /** + * 姘村崱鍦板潃锛屼粎淇濆瓨锛屾棤涓氬姟 + */ + @NotBlank(message = "姘村崱鍦板潃涓嶈兘涓虹┖") + private String cardAddr; + + /** + * 鍗$墖绫诲瀷锛�2-绠$悊绉戯紝4-寮�鍏抽榾鍗★紝5-娓呯┖鍗� + */ + private Byte cardType; + + + /** + * 澶囨敞淇℃伅 + */ + private String remarks; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java index 23112df..7dc0cf8 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java @@ -28,13 +28,12 @@ No_ActiveCards(10009, "娌℃湁绗﹀悎鏉′欢鐨勫紑鍗℃暟鎹�"), No_RECHARGES(10010, "娌℃湁绗﹀悎鏉′欢鐨勫厖鍊兼暟鎹�"), No_ReissueCards(10011, "娌℃湁绗﹀悎鏉′欢鐨勮ˉ鍗℃暟鎹�"), - No_CANCELS(10010, "娌℃湁绗﹀悎鏉′欢鐨勬敞閿�鏁版嵁"), - PARAMS_ERROR(10010, "鎿嶄綔绫诲瀷鍙傛暟閿欒"), - - THE_CARD_NOT_EXIST(10012, "娌℃湁绗﹀悎鏉′欢鐨勬按鍗�"), - THE_CARD_NOT_SUPPORT_THIS_OPERATION(10013, "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"), - - THE_FEE_CANNOT_BE_REFUNDED(10014, "鍘熷崱鎸傚け鏃跺凡閫�娆撅紝琛ュ崱鏃朵笉鑳借ˉ璐圭敤"), + No_CANCELS(10012, "娌℃湁绗﹀悎鏉′欢鐨勬敞閿�鏁版嵁"), + PARAMS_ERROR(10013, "鎿嶄綔绫诲瀷鍙傛暟閿欒"), + CREATE_MANAGER_CARD_ERROR(10014, "鍒涘缓绠$悊鍗″け璐�"), + THE_CARD_NOT_EXIST(10015, "娌℃湁绗﹀悎鏉′欢鐨勬按鍗�"), + THE_CARD_NOT_SUPPORT_THIS_OPERATION(10016, "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"), + THE_FEE_CANNOT_BE_REFUNDED(10017, "鍘熷崱鎸傚け鏃跺凡閫�娆撅紝琛ュ崱鏃朵笉鑳借ˉ璐圭敤"), /** * 鍏呭�� -- Gitblit v1.8.0