瀏覽代碼

【统计分析】新增设备资源统计表

lxb 2 年之前
父節點
當前提交
d9b93688e5

+ 18 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/statisticalAnalysis/ProductLinePerformanceService.java

@@ -8,7 +8,10 @@ import com.github.zuihou.tenant.dto.ProcedureSumDto;
 import com.github.zuihou.tenant.dto.ProductDto;
 import com.github.zuihou.tenant.dto.ProductInfoDto;
 import com.github.zuihou.tenant.dto.ProductionStatisticalDto;
+import com.github.zuihou.tenant.vo.DeviceResourceDetailVo;
+import com.github.zuihou.tenant.vo.DeviceResourceSumVo;
 import com.github.zuihou.tenant.vo.ProductVo;
+import org.apache.ibatis.annotations.Param;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -87,4 +90,19 @@ public interface ProductLinePerformanceService extends SuperCacheService<TaskNod
      * @param response
      */
     void expectprocedureSum(HttpServletRequest request, HttpServletResponse response) throws IOException;
+
+    /**
+     * 设备资源汇总
+     * @param params
+     * @return
+     */
+    IPage<DeviceResourceSumVo> deviceResourceSum(IPage page, Map<String, Object> params);
+
+    /**
+     * 设备生产明细
+     * @param page
+     * @param params
+     * @return
+     */
+    IPage<DeviceResourceDetailVo> deviceResourceDetail(IPage page, Map<String, Object> params);
 }

+ 7 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/statisticalAnalysis/dao/ProductLinePerformanceMapper.java

@@ -9,11 +9,14 @@ import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
 import com.github.zuihou.database.mybatis.auth.DataScope;
 import com.github.zuihou.tenant.dto.ProcedureSumDto;
 import com.github.zuihou.tenant.dto.ProductionStatisticalDto;
+import com.github.zuihou.tenant.vo.DeviceResourceDetailVo;
+import com.github.zuihou.tenant.vo.DeviceResourceSumVo;
 import com.github.zuihou.tenant.vo.ProductVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -64,4 +67,8 @@ public interface ProductLinePerformanceMapper extends SuperMapper<TaskNode> {
     List<ProcedureSumDto> procedureInfo(@Param("params") TaskNode params);
 
     List<ProcedureSumDto> expectprocedureSum();
+
+    IPage<DeviceResourceSumVo> deviceResourceSum(IPage page,@Param("params") Map<String, Object> params);
+
+    IPage<DeviceResourceDetailVo> deviceResourceDetail(IPage page,@Param("params") Map<String, Object> params);
 }

+ 23 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/statisticalAnalysis/impl/ProductLinePerformanceServiceImpl.java

@@ -18,6 +18,8 @@ import com.github.zuihou.database.mybatis.auth.DataScope;
 import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 import com.github.zuihou.injection.annonation.InjectionResult;
 import com.github.zuihou.tenant.dto.*;
+import com.github.zuihou.tenant.vo.DeviceResourceDetailVo;
+import com.github.zuihou.tenant.vo.DeviceResourceSumVo;
 import com.github.zuihou.tenant.vo.ProductVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
@@ -313,4 +315,25 @@ public class ProductLinePerformanceServiceImpl extends SuperCacheServiceImpl<Pro
         Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("产品加工汇总", "产品加工汇总"), ProcedureSumDto.class, list);
         workbook.write(out);
     }
+
+    @Override
+    public IPage<DeviceResourceSumVo> deviceResourceSum(IPage page,Map<String, Object> params) {
+        if((Objects.isNull(params.get("startDate")) || Objects.isNull(params.get("endDate")))
+                && Objects.isNull(params.get("month")) && Objects.isNull(params.get("years"))){
+            //默认当天
+            params.put("today",DateUtil.dateToString0(new Date(),"yyyy-MM-dd"));
+        }
+        return baseMapper.deviceResourceSum(page,params);
+    }
+
+    @Override
+    public IPage<DeviceResourceDetailVo> deviceResourceDetail(IPage page, Map<String, Object> params) {
+        if((Objects.isNull(params.get("startDate")) || Objects.isNull(params.get("endDate")))
+                && Objects.isNull(params.get("month")) && Objects.isNull(params.get("years"))){
+            //默认当天
+            params.put("today",DateUtil.dateToString0(new Date(),"yyyy-MM-dd"));
+        }
+        return baseMapper.deviceResourceDetail(page,params);
+    }
+
 }

+ 106 - 0
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/statisticalAnalysis/ProductLinePerformanceMapper.xml

@@ -167,4 +167,110 @@
         left join imcs_t_workpiece itw on ioo.id = itw.order_id
         group by itw.order_no, itw.bom_name
     </select>
+
+    <select id="deviceResourceSum" resultType="com.github.zuihou.tenant.vo.DeviceResourceSumVo">
+        SELECT
+            t.zoneId,
+            t.zoneName,
+            t.resourceName,
+            t.resourceId,
+            t.time,
+            count(1) AS totalNum
+        FROM
+            (
+                SELECT
+                    a.id as zoneId,
+                    a.NAME AS zoneName,
+                    itp.NAME AS resourceName,
+                    itp.ID AS resourceId,
+                    <if test="params.startDate !=null and params.startDate !='' and params.endDate !=null and params.endDate !=''">
+                        DATE_FORMAT(c.end_time, '%Y-%m-%d') AS time
+                    </if>
+                    <if test="params.month !=null and params.month !=''">
+                        DATE_FORMAT(c.end_time, '%Y-%m') AS time
+                    </if>
+                    <if test="params.years !=null and params.years !=''">
+                        DATE_FORMAT(c.end_time, '%Y') AS time
+                    </if>
+                    <if test="params.today !=null and params.today !=''">
+                        DATE_FORMAT(c.end_time, '%Y-%m-%d') AS time
+                    </if>
+                FROM
+                    zuihou_base_yj_0000.imcs_z_zone a,
+                    zuihou_base_yj_0000.imcs_z_zone_productionresource b,
+                    zuihou_base_yj_0000.imcs_tenant_productionresource itp,
+                    zuihou_base_yj_0000.imcs_t_task c
+                WHERE
+                    a.id = b.zone_id
+                  AND b.resource_id = c.resource_id
+                  AND b.resource_id = itp.id
+                  AND c.start_time IS NOT NULL
+                  AND c.end_time IS NOT NULL
+                  AND c.`status` = 3
+                  AND c.procedure_no LIKE 'OP%0'
+                <if test="params.startDate !=null and params.startDate !='' and params.endDate !=null and params.endDate !=''">
+                    AND c.end_time BETWEEN #{params.startDate} and #{params.endDate}
+                </if>
+                <if test="params.month !=null and params.month !=''">
+                    AND DATE_FORMAT(c.end_time, '%Y-%m') = #{params.month}
+                </if>
+                <if test="params.years !=null and params.years !=''">
+                    AND DATE_FORMAT(c.end_time, '%Y') = #{params.years}
+                </if>
+                <if test="params.zoneId !=null and params.zoneId !=''">
+                    AND a.id = #{params.zoneId}
+                </if>
+                <if test="params.resourceName !=null and params.resourceName !=''">
+                    AND itp.NAME like concat('%',#{params.resourceName},'%')
+                </if>
+                <if test="params.today !=null and params.today !=''">
+                    AND DATE_FORMAT(c.end_time, '%Y-%m-%d') = #{params.today}
+                </if>
+            ) t
+        GROUP BY
+            t.zoneId,
+            t.zoneName,
+            t.resourceName,
+            t.time,
+            t.resourceId
+    </select>
+
+    <select id="deviceResourceDetail" resultType="com.github.zuihou.tenant.vo.DeviceResourceDetailVo">
+        SELECT
+            c.order_no,
+            a.NAME AS zoneName,
+            itp.NAME AS resourceName,
+            ibb.name AS bomName,
+            c.procedure_no,
+            c.start_time,
+            c.end_time
+        FROM
+            zuihou_base_yj_0000.imcs_z_zone a,
+            zuihou_base_yj_0000.imcs_z_zone_productionresource b,
+            zuihou_base_yj_0000.imcs_tenant_productionresource itp,
+            zuihou_base_yj_0000.imcs_t_task c,
+            zuihou_base_yj_0000.imcs_b_bom ibb
+        WHERE
+            a.id = b.zone_id
+          AND b.resource_id = c.resource_id
+          AND b.resource_id = itp.id
+          AND c.bom_id = ibb.id
+          AND c.start_time IS NOT NULL
+          AND c.end_time IS NOT NULL
+          AND c.`status` = 3
+          AND c.procedure_no LIKE 'OP%0'
+          AND a.id = #{params.zoneId} AND itp.id = #{params.resourceId}
+          <if test="params.startDate !=null and params.startDate !='' and params.endDate !=null and params.endDate !=''">
+            AND c.end_time BETWEEN #{params.startDate} and #{params.endDate}
+          </if>
+          <if test="params.month !=null and params.month !=''">
+            AND DATE_FORMAT(c.end_time, '%Y-%m') = #{params.month}
+          </if>
+          <if test="params.years !=null and params.years !=''">
+            AND DATE_FORMAT(c.end_time, '%Y') = #{params.years}
+          </if>
+          <if test="params.today !=null and params.today !=''">
+            AND DATE_FORMAT(c.end_time, '%Y-%m-%d') = #{params.today}
+          </if>
+    </select>
 </mapper>

+ 23 - 0
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/statisticalAnalysis/ProductLinePerformanceController.java

@@ -1,6 +1,7 @@
 package com.github.zuihou.business.controller.statisticalAnalysis;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.zuihou.base.R;
 import com.github.zuihou.base.controller.SuperController;
 import com.github.zuihou.base.request.PageParams;
@@ -17,6 +18,8 @@ import com.github.zuihou.tenant.dto.ProcedureSumDto;
 import com.github.zuihou.tenant.dto.ProductDto;
 import com.github.zuihou.tenant.dto.ProductInfoDto;
 import com.github.zuihou.tenant.dto.ProductionStatisticalDto;
+import com.github.zuihou.tenant.vo.DeviceResourceDetailVo;
+import com.github.zuihou.tenant.vo.DeviceResourceSumVo;
 import com.github.zuihou.tenant.vo.ProductVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -173,4 +176,24 @@ public class ProductLinePerformanceController extends SuperController<ProductLin
     public R<Map<String,Object>> procedureInfo(@RequestBody(required = true) TaskNode params) {
         return success(baseService.procedureInfo(params));
     }
+
+    @ApiOperation(value = "设备资源汇总", notes = "设备资源汇总")
+    @PostMapping("/deviceResourceSum/{page}/{limit}")
+    @SysLog("产品流转详汇总")
+    public R<IPage<DeviceResourceSumVo>> deviceResourceSum(@PathVariable Long page,
+                                                           @PathVariable Long limit,
+                                                           @RequestBody Map<String,Object> params) {
+        Page pageInfo = new Page<>(page,limit);
+        return success(baseService.deviceResourceSum(pageInfo,params));
+    }
+
+    @ApiOperation(value = "设备资源生产明细", notes = "设备资源汇总")
+    @PostMapping("/deviceResourceDetail/{page}/{limit}")
+    @SysLog("设备资源生产明细")
+    public R<IPage<DeviceResourceDetailVo>> deviceResourceDetail(@PathVariable Long page,
+                                                                 @PathVariable Long limit,
+                                                                 @RequestBody Map<String,Object> params) {
+        Page pageInfo = new Page<>(page,limit);
+        return success(baseService.deviceResourceDetail(pageInfo,params));
+    }
 }

+ 34 - 0
imcs-admin-boot/imcs-tenant-entity/src/main/java/com/github/zuihou/tenant/vo/DeviceResourceDetailVo.java

@@ -0,0 +1,34 @@
+package com.github.zuihou.tenant.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class DeviceResourceDetailVo {
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "产线名称")
+    private String zoneName;
+
+    @ApiModelProperty(value = "分配设备")
+    private String resourceName;
+
+    @ApiModelProperty(value = "产品名称")
+    private String bomName;
+
+    @ApiModelProperty(value = "产品名称")
+    private String procedureNo;
+
+    @ApiModelProperty(value = "开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date endTime;
+}

+ 27 - 0
imcs-admin-boot/imcs-tenant-entity/src/main/java/com/github/zuihou/tenant/vo/DeviceResourceSumVo.java

@@ -0,0 +1,27 @@
+package com.github.zuihou.tenant.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class DeviceResourceSumVo {
+
+    @ApiModelProperty(value = "产线ID")
+    private Long zoneId;
+
+    @ApiModelProperty(value = "产线名称")
+    private String zoneName;
+
+    @ApiModelProperty(value = "分配设备名称")
+    private String resourceName;
+
+    @ApiModelProperty(value = "分配设备ID")
+    private Long resourceId;
+
+    @ApiModelProperty(value = "日期")
+    private String time;
+
+    @ApiModelProperty(value = "总数量")
+    private String totalNum;
+
+}