瀏覽代碼

外部报验功能-每日报表

wangming 1 年之前
父節點
當前提交
efd5948253

+ 37 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxReprotSameDayRealTimeInspectionStatisticsDao.java

@@ -0,0 +1,37 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ZhcxReprotSameDayRealTimeInspectionStatisticsDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.vo.report.SameDayRealTimeInspectionVo;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计 Mapper 接口
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+public interface ZhcxReprotSameDayRealTimeInspectionStatisticsDao extends BaseMapper<ZhcxReprotSameDayRealTimeInspectionStatisticsDo> {
+
+    @Select("SELECT\n" +
+            "      i.ID,\n" +
+            "      i.INSPECTIONSTATUS,\n" +
+            "      i.INSPECTIONCONTENT,\n" +
+            "      i.INSPECTIONLOCATION,\n" +
+            "      d.DISPATCHSTATUS,\n" +
+            "      d.INSPECTIONCONCLUSION\n" +
+            "    FROM\n" +
+            "      ZHCX_OUTSIDE_INSPECTION_ITP i\n" +
+            "    JOIN ZHCX_OUTSIDE_INSPECTION_ITP_SUPERVISION_DISPATCH  d ON d.ITPID = i.ID AND d.DELETED = '0' \n" +
+            "    WHERE\n" +
+            "      i.DELETED = '0'\n" +
+            "      AND i.INSPECTIONSTATUS > 10\n" +
+            "      AND i.RESERVATIONINSPECTIONTIME BETWEEN #{startTime} AND #{endTime}")
+    List<SameDayRealTimeInspectionVo> getInspetion(@Param("startTime") String startTime, @Param("endTime") String endTime);
+
+}

+ 16 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDao.java

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计-检查地点 Mapper 接口
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+public interface ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDao extends BaseMapper<ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo> {
+
+}

+ 16 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxReprotSameDayRealTimeInspectionStatisticsLocationService.java

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.bsentity.domain.ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计-检查地点 服务类
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+public interface ZhcxReprotSameDayRealTimeInspectionStatisticsLocationService extends IService<ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo> {
+
+}

+ 21 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxReprotSameDayRealTimeInspectionStatisticsService.java

@@ -0,0 +1,21 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.bsentity.domain.ZhcxReprotSameDayRealTimeInspectionStatisticsDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计 服务类
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+public interface ZhcxReprotSameDayRealTimeInspectionStatisticsService extends IService<ZhcxReprotSameDayRealTimeInspectionStatisticsDo> {
+
+    /**
+     * 生成统计
+     * 查询前一小时数据,并做数据统计
+     */
+    void genStatistics();
+}

+ 20 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxReprotSameDayRealTimeInspectionStatisticsLocationServiceImpl.java

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.rongwei.bsentity.domain.ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo;
+import com.rongwei.bscommon.sys.dao.ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDao;
+import com.rongwei.bscommon.sys.service.ZhcxReprotSameDayRealTimeInspectionStatisticsLocationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计-检查地点 服务实现类
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+@Service
+public class ZhcxReprotSameDayRealTimeInspectionStatisticsLocationServiceImpl extends ServiceImpl<ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDao, ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo> implements ZhcxReprotSameDayRealTimeInspectionStatisticsLocationService {
+
+}

+ 156 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxReprotSameDayRealTimeInspectionStatisticsServiceImpl.java

@@ -0,0 +1,156 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.rongwei.bscommon.sys.service.ZhcxReprotSameDayRealTimeInspectionStatisticsLocationService;
+import com.rongwei.bsentity.domain.ZhcxReprotSameDayRealTimeInspectionStatisticsDo;
+import com.rongwei.bscommon.sys.dao.ZhcxReprotSameDayRealTimeInspectionStatisticsDao;
+import com.rongwei.bscommon.sys.service.ZhcxReprotSameDayRealTimeInspectionStatisticsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bsentity.domain.ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo;
+import com.rongwei.bsentity.vo.report.SameDayRealTimeInspectionVo;
+import com.rongwei.commonservice.service.dao.CommonSqlDao;
+import com.rongwei.rwadmincommon.system.dao.CommonDao;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计 服务实现类
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+@Service
+public class ZhcxReprotSameDayRealTimeInspectionStatisticsServiceImpl extends ServiceImpl<ZhcxReprotSameDayRealTimeInspectionStatisticsDao, ZhcxReprotSameDayRealTimeInspectionStatisticsDo> implements ZhcxReprotSameDayRealTimeInspectionStatisticsService {
+
+    @Autowired
+    private ZhcxReprotSameDayRealTimeInspectionStatisticsDao dao;
+
+    @Autowired
+    private ZhcxReprotSameDayRealTimeInspectionStatisticsLocationService locationService;
+
+    /**
+     * 生成统计
+     * 查询前一小时数据,并做数据统计
+     */
+    @Override
+    public void genStatistics() {
+
+        Calendar calendar = Calendar.getInstance();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        //前一小时开始时间
+        calendar.add(Calendar.HOUR_OF_DAY, -1);;
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        String startTime = dateFormat.format(calendar.getTime());
+
+        //统计时间
+        Date statisticsTime = calendar.getTime();
+
+        //前一小时结束时间
+        calendar.add(Calendar.HOUR_OF_DAY, 1);
+        calendar.add(Calendar.MILLISECOND, -1);
+        String endTime = dateFormat.format(calendar.getTime());
+
+        //前一小时报验单
+        List<SameDayRealTimeInspectionVo> inspetionList = dao.getInspetion(startTime, endTime);
+
+        //数据处理
+        analysisDataData(inspetionList, statisticsTime);
+    }
+
+    /**
+     * 数据处理
+     *
+     * @param inspetionList
+     * @param statisticsTime
+     */
+    private void analysisDataData(List<SameDayRealTimeInspectionVo> inspetionList, Date statisticsTime) {
+
+        if(ObjectUtil.isEmpty(inspetionList)) {
+            return ;
+        }
+
+        ZhcxReprotSameDayRealTimeInspectionStatisticsDo mainEntity = ZhcxReprotSameDayRealTimeInspectionStatisticsDo.builder()
+                .statistictime(statisticsTime)
+                .statisticday(DateUtil.format(statisticsTime, "yyyy-MM-dd"))
+                .appliedqty(0)
+                .executedqty(0)
+                .tobeexecutedqty(0)
+                .receivedqty(0)
+                .conditionreceivedqty(0)
+                .rejectionqty(0)
+                .cancelqty(0)
+                .build();
+        mainEntity.setId(SecurityUtil.getUUID());
+
+        Map<String, ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo> map = new HashMap<>();
+
+        for(SameDayRealTimeInspectionVo row : inspetionList) {
+
+            ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo locationDo = map.get(row.getInspectioncontent());
+
+            if(ObjectUtil.isNull(locationDo)) {
+                locationDo = ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo.builder()
+                        .statistictime(statisticsTime)
+                        .statisticday(DateUtil.format(statisticsTime, "yyyy-MM-dd"))
+                        .appliedqty(0)
+                        .executedqty(0)
+                        .id(SecurityUtil.getUUID())
+                        .tobeexecutedqty(0)
+                        .receivedqty(0)
+                        .conditionreceivedqty(0)
+                        .rejectionqty(0)
+                        .cancelqty(0)
+                        .statisticsid(mainEntity.getId())
+                        .inspectioncontent(row.getInspectioncontent())
+                        .build();
+            }
+
+            //报验完成
+            if("30".equals(row.getInspectionstatus())) {
+                //接收
+                if("10".equals(row.getInspectionconclusion())) {
+                    mainEntity.setReceivedqty(mainEntity.getReceivedqty() + 1);
+                    locationDo.setReceivedqty(locationDo.getReceivedqty() + 1);
+                }
+                //拒收
+                else if("20".equals(row.getInspectionconclusion())) {
+                    mainEntity.setRejectionqty(mainEntity.getRejectionqty() + 1);
+                    locationDo.setRejectionqty(locationDo.getRejectionqty() + 1);
+                }
+                //有条件接收
+                else if("30".equals(row.getInspectionconclusion())) {
+                    mainEntity.setConditionreceivedqty(mainEntity.getConditionreceivedqty() + 1);
+                    locationDo.setConditionreceivedqty(locationDo.getConditionreceivedqty() + 1);
+                }
+            }
+            //待报验
+            else if("20".equals(row.getInspectionstatus())) {
+                mainEntity.setTobeexecutedqty(mainEntity.getTobeexecutedqty() + 1);
+                locationDo.setTobeexecutedqty(locationDo.getTobeexecutedqty() + 1);
+            }
+            //取消
+            else if("40".equals(row.getInspectionstatus())) {
+                mainEntity.setCancelqty(mainEntity.getCancelqty() + 1);
+                locationDo.setCancelqty(locationDo.getCancelqty() + 1);
+            }
+
+            map.put(row.getInspectioncontent(), locationDo);
+        }
+
+        save(mainEntity);
+        locationService.saveBatch(map.values());
+    }
+
+}

+ 92 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxReprotSameDayRealTimeInspectionStatisticsDo.java

@@ -0,0 +1,92 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("ZHCX_REPROT_SAME_DAY_REAL_TIME_INSPECTION_STATISTICS")
+public class ZhcxReprotSameDayRealTimeInspectionStatisticsDo extends BaseDo {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableField("ID")
+    private String id;
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+    /**
+     * 扩展预留
+     */
+    @TableField("ROPTION")
+    private String roption;
+    /**
+     * 统计时间(小时)
+     */
+    @TableField("STATISTICTIME")
+    private Date statistictime;
+    /**
+     * 统计日期(天,-隔开)
+     */
+    @TableField("STATISTICDAY")
+    private String statisticday;
+    /**
+     * 已申请
+     */
+    @TableField("APPLIEDQTY")
+    private Integer appliedqty;
+    /**
+     * 已执行
+     */
+    @TableField("EXECUTEDQTY")
+    private Integer executedqty;
+    /**
+     * 未执行
+     */
+    @TableField("TOBEEXECUTEDQTY")
+    private Integer tobeexecutedqty;
+    /**
+     * 接收
+     */
+    @TableField("RECEIVEDQTY")
+    private Integer receivedqty;
+    /**
+     * 有条件接收
+     */
+    @TableField("CONDITIONRECEIVEDQTY")
+    private Integer conditionreceivedqty;
+    /**
+     * 拒收
+     */
+    @TableField("REJECTIONQTY")
+    private Integer rejectionqty;
+    /**
+     * 取消
+     */
+    @TableField("CANCELQTY")
+    private Integer cancelqty;
+
+
+}

+ 103 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo.java

@@ -0,0 +1,103 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 报表管理-当日全项目实时报验统计-检查地点
+ * </p>
+ *
+ * @author wm
+ * @since 2024-01-29
+ */
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("ZHCX_REPROT_SAME_DAY_REAL_TIME_INSPECTION_STATISTICS_LOCATION")
+public class ZhcxReprotSameDayRealTimeInspectionStatisticsLocationDo extends BaseDo {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableField("ID")
+    private String id;
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+    /**
+     * 扩展预留
+     */
+    @TableField("ROPTION")
+    private String roption;
+    /**
+     * 统计id
+     */
+    @TableField("STATISTICSID")
+    private String statisticsid;
+    /**
+     * 统计时间(小时)
+     */
+    @TableField("STATISTICTIME")
+    private Date statistictime;
+    /**
+     * 统计日期(天,-隔开)
+     */
+    @TableField("STATISTICDAY")
+    private String statisticday;
+    /**
+     * 已申请
+     */
+    @TableField("APPLIEDQTY")
+    private Integer appliedqty;
+    /**
+     * 已执行
+     */
+    @TableField("EXECUTEDQTY")
+    private Integer executedqty;
+    /**
+     * 未执行
+     */
+    @TableField("TOBEEXECUTEDQTY")
+    private Integer tobeexecutedqty;
+    /**
+     * 接收
+     */
+    @TableField("RECEIVEDQTY")
+    private Integer receivedqty;
+    /**
+     * 有条件接收
+     */
+    @TableField("CONDITIONRECEIVEDQTY")
+    private Integer conditionreceivedqty;
+    /**
+     * 拒收
+     */
+    @TableField("REJECTIONQTY")
+    private Integer rejectionqty;
+    /**
+     * 取消
+     */
+    @TableField("CANCELQTY")
+    private Integer cancelqty;
+
+    /**
+     * 报验内容
+     */
+    @TableField("INSPECTIONCONTENT")
+    private String inspectioncontent;
+
+
+}

+ 23 - 0
business-entity/src/main/java/com/rongwei/bsentity/vo/report/SameDayRealTimeInspectionVo.java

@@ -0,0 +1,23 @@
+package com.rongwei.bsentity.vo.report;
+
+import lombok.*;
+
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class SameDayRealTimeInspectionVo {
+
+    private String id;
+
+    private String inspectionstatus;
+
+    private String inspectioncontent;
+
+    private String inspectionlocation;
+
+    private String dispatchstatus;
+
+    private String inspectionconclusion;
+}

+ 16 - 0
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxOutsideInspectionItpController.java

@@ -2,6 +2,7 @@ package com.rongwei.bsserver.controller;
 
 
 import com.rongwei.bscommon.sys.service.ZhcxOutsideInspectionItpService;
+import com.rongwei.bscommon.sys.service.ZhcxReprotSameDayRealTimeInspectionStatisticsService;
 import com.rongwei.bsentity.dto.ReInspectionRequest;
 import com.rongwei.rwcommon.base.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,9 @@ public class ZhcxOutsideInspectionItpController {
     @Autowired
     private ZhcxOutsideInspectionItpService service;
 
+    @Autowired
+    private ZhcxReprotSameDayRealTimeInspectionStatisticsService reprotSameDayRealTimeInspectionStatisticsService;
+
     @RequestMapping("/splitOrder")
     public R copyNodesSave(@RequestBody Map<String, String> map){
         service.splitOrder(map.get("id"));
@@ -38,5 +42,17 @@ public class ZhcxOutsideInspectionItpController {
         service.reInspection(res.getId(), res.getMasterSlaveUpdate());
         return R.ok();
     }
+
+    /**
+     * 生成前一个小时报验单数据
+     *
+     * @return
+     */
+    @PostMapping("/genLastHourInspection")
+    public R genLastHourInspection(){
+        reprotSameDayRealTimeInspectionStatisticsService.genStatistics();
+        return R.ok();
+    }
+
 }