瀏覽代碼

产品加工汇总详情报表

paidaxin666 1 年之前
父節點
當前提交
95b50c54c4

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.zuihou.base.service.SuperCacheService;
 import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
 import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
+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;
@@ -13,6 +14,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -65,4 +67,24 @@ public interface ProductLinePerformanceService extends SuperCacheService<TaskNod
      * @param response
      */
     void expectProcedure(HttpServletRequest request, HttpServletResponse response)throws IOException ;
+
+    /**
+     * 产品加工汇总
+     * @return 结果
+     */
+    IPage<ProcedureSumDto> procedureSum(Long page, Long limit, ProductVo vo);
+
+    /**
+     * 产品加工详情
+     * @param params
+     * @return 结果
+     */
+    Map<String,Object> procedureInfo(TaskNode params);
+
+    /**
+     * 产品加工汇总导出
+     * @param request
+     * @param response
+     */
+    void expectprocedureSum(HttpServletRequest request, HttpServletResponse response) throws IOException;
 }

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

@@ -3,9 +3,11 @@ package com.github.zuihou.business.statisticalAnalysis.dao;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.zuihou.base.mapper.SuperMapper;
 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.ProductVo;
 import org.apache.ibatis.annotations.Param;
@@ -46,4 +48,20 @@ public interface ProductLinePerformanceMapper extends SuperMapper<TaskNode> {
      * @param vo
      */
     List<ProductionStatisticalDto> queryProcedure(@Param("vo") ProductVo vo);
+
+    /**
+     * 产品加工汇总
+     * @return 结果
+     * @param pageParam
+     */
+    IPage<ProcedureSumDto> procedureSum(Page<ProcedureSumDto> pageParam,@Param("vo") ProductVo vo);
+
+    /**
+     * 产品加工详情
+     * @param params
+     * @return 结果
+     */
+    List<ProcedureSumDto> procedureInfo(@Param("params") TaskNode params);
+
+    List<ProcedureSumDto> expectprocedureSum();
 }

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

@@ -17,10 +17,7 @@ import com.github.zuihou.common.util.DateUtil;
 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.ProductDto;
-import com.github.zuihou.tenant.dto.ProductInfoDto;
-import com.github.zuihou.tenant.dto.ProductInfoExcelDto;
-import com.github.zuihou.tenant.dto.ProductionStatisticalDto;
+import com.github.zuihou.tenant.dto.*;
 import com.github.zuihou.tenant.vo.ProductVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
@@ -33,9 +30,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -258,4 +253,64 @@ public class ProductLinePerformanceServiceImpl extends SuperCacheServiceImpl<Pro
         Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("设备工时管理", "设备工时管理"), ProductionStatisticalDto.class, list);
         workbook.write(out);
     }
+
+    /**
+     * 产品加工汇总
+     * @return 结果
+     */
+    @Override
+    public IPage<ProcedureSumDto> procedureSum(Long page, Long limit, ProductVo vo) {
+        Page<ProcedureSumDto> pageParam = new Page<>(page,limit);
+        IPage<ProcedureSumDto> list = baseMapper.procedureSum(pageParam,vo);
+        return list;
+    }
+
+    /**
+     * 产品加工详情
+     * @param params
+     * @return 结果
+     */
+    @Override
+    public Map<String, Object> procedureInfo(TaskNode params) {
+        HashMap<String, Object> procedureInfo = new HashMap<>();
+        List<ProcedureSumDto> procedureSumDtos = baseMapper.procedureInfo(params);
+        if (!CollectionUtil.isEmpty(procedureSumDtos)) {
+            procedureInfo.put("bomName", procedureSumDtos.get(0).getBomName());
+            procedureInfo.put("orderNo", procedureSumDtos.get(0).getOrderNo());
+            procedureInfo.put("totalNum", procedureSumDtos.get(0).getTotalNum());
+            List<Map<String, Object>> procedureInfos = procedureSumDtos.stream().map(item -> {
+                HashMap<String, Object> procedures = new HashMap<>();
+                procedures.put("procedureName", item.getProcedureName());
+                procedures.put("awaitNum", item.getAwaitNum());
+                procedures.put("endNum", item.getEndNum());
+                procedures.put("scrapNum", item.getScrapNum());
+                return procedures;
+            }).collect(Collectors.toList());
+            procedureInfo.put("procedureInfos",procedureInfos);
+            return procedureInfo;
+        }
+        return null;
+    }
+
+    /**
+     * 产品加工汇总导出
+     * @param request
+     * @param response
+     */
+    @Override
+    public void expectprocedureSum(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        List<ProcedureSumDto> list = baseMapper.expectprocedureSum();
+        // 设置响应输出的头类型
+        // 设置响应输出的头类型
+        response.setHeader("content-Type", "application/vnd.ms-excel");
+        // 设计导出文件的名称,尽量不要中文
+        String fileName = new String("产品加工汇总.xls".getBytes(), "ISO-8859-1");
+        response.setHeader("Content-Disposition","attachment;filename="+ fileName);
+        //输出流。
+        ServletOutputStream out = response.getOutputStream();
+        // 创建参数对象(用来设定excel得sheet的内容等信息)
+        // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("产品加工汇总", "产品加工汇总"), ProcedureSumDto.class, list);
+        workbook.write(out);
+    }
 }

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

@@ -110,4 +110,61 @@
         </where>
         order by itt.start_time desc
     </select>
+
+    <!--产品加工汇总-->
+    <select id="procedureSum" resultType="com.github.zuihou.tenant.dto.ProcedureSumDto">
+        select ioo.order_no,
+               itw.bom_name,
+               count(itw.bom_name) as totalNum,
+               count(itw.is_end = '0' or null) as awaitNum,
+               count(itw.is_end = '1' or null) as endNum,
+               count(itw.test_result = '0' or null) as scrapNum
+        from imcs_o_order ioo
+        left join imcs_t_task itt on ioo.id = itt.order_id
+        left join imcs_t_workpiece itw on ioo.id = itw.order_id
+        <where>
+        <if test=" vo.bomName != null and vo.bomName != ''">
+            itw.bom_name like concat('%', #{vo.bomName}, '%')
+        </if>
+        </where>
+        group by itw.order_no, itw.bom_name
+    </select>
+
+    <!--产品加工详情-->
+    <select id="procedureInfo" resultType="com.github.zuihou.tenant.dto.ProcedureSumDto">
+        select * from (
+                          select  ioo.order_no,
+                                  itw.bom_name,
+                                  itt.procedure_name,
+                                  count(itw.bom_name)                     as totalNum,
+                                  count(itt.status = '1' or null)         as awaitNum,
+                                  count(itt.status = '3' and '2' or null) as endNum,
+                                  count(itw.test_result = '0' or null)    as scrapNum,
+                                  itt.procedure_sort
+                          from imcs_o_order ioo
+                                   left join imcs_t_task itt on ioo.id = itt.order_id
+                                   left join imcs_t_workpiece itw on ioo.id = itw.order_id
+                                   left join imcs_b_bom_procedure ibbp on ibbp.bom_id = itw.bom_id
+                          <where>
+                              <if test=" params.orderNo != null and params.orderNo != ''">
+                                  ioo.order_no like concat('%', #{params.orderNo}, '%')
+                              </if>
+                          </where>
+                          group by itw.order_no, itw.bom_name, itt.procedure_name
+                      ) t
+        order by t.procedure_sort;
+    </select>
+
+    <select id="expectprocedureSum" resultType="com.github.zuihou.tenant.dto.ProcedureSumDto">
+        select ioo.order_no,
+        itw.bom_name,
+        count(itw.bom_name) as totalNum,
+        count(itw.is_end = '0' or null) as awaitNum,
+        count(itw.is_end = '1' or null) as endNum,
+        count(itw.test_result = '0' or null) as scrapNum
+        from imcs_o_order ioo
+        left join imcs_t_task itt on ioo.id = itt.order_id
+        left join imcs_t_workpiece itw on ioo.id = itw.order_id
+        group by itw.order_no, itw.bom_name
+    </select>
 </mapper>

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

@@ -13,6 +13,7 @@ import com.github.zuihou.common.util.DateUtil;
 import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 import com.github.zuihou.database.mybatis.conditions.query.QueryWrap;
 import com.github.zuihou.log.annotation.SysLog;
+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;
@@ -151,4 +152,25 @@ public class ProductLinePerformanceController extends SuperController<ProductLin
     public void expectProcedure(HttpServletRequest request, HttpServletResponse response) throws IOException {
         baseService.expectProcedure(request,response);
     }
+
+    @ApiOperation(value = "产品加工汇总", notes = "产品加工汇总")
+    @PostMapping("/procedureSum/{page}/{limit}")
+    public R<IPage<ProcedureSumDto>> procedureSum(@PathVariable Long page,
+                                                  @PathVariable Long limit,
+                                                  @RequestBody(required = false)ProductVo vo) {
+        return success(baseService.procedureSum(page,limit,vo));
+    }
+
+    @ApiOperation(value = "产品加工汇总导出", notes = "产品加工汇总导出管理")
+    @GetMapping("/expectprocedureSum")
+    @SysLog("产品加工汇总导出")
+    public void expectprocedureSum(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        baseService.expectprocedureSum(request,response);
+    }
+
+    @ApiOperation(value = "产品加工详情", notes = "产品加工详情")
+    @PostMapping("/procedureInfo")
+    public R<Map<String,Object>> procedureInfo(@RequestBody(required = true) TaskNode params) {
+        return success(baseService.procedureInfo(params));
+    }
 }

+ 54 - 0
imcs-admin-boot/imcs-tenant-entity/src/main/java/com/github/zuihou/tenant/dto/ProcedureSumDto.java

@@ -0,0 +1,54 @@
+package com.github.zuihou.tenant.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotEmpty;
+
+import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;
+
+/**
+ * @author zx
+ * @date 2023-05-08 13:46
+ */
+
+@Data
+@ApiModel(value = "procedureSumDto", description = "产品加工汇总")
+public class ProcedureSumDto {
+
+    @ApiModelProperty(value = "产品名称")
+    @Excel(name = "产品名称" , width = 20)
+    private String bomName;
+
+    @ApiModelProperty(value = "订单编号")
+    @NotEmpty(message = "订单编号不能为空")
+    @Length(max = 128, message = "订单编号长度不能超过128")
+    @TableField(value = "order_no", condition = LIKE)
+    @Excel(name = "批次" , width = 20)
+    private String orderNo;
+
+    @ApiModelProperty(value = "总数量")
+    @Excel(name = "总数量" , width = 20)
+    private Integer totalNum;
+
+    @ApiModelProperty(value = "工序名称")
+    @Length(max = 128, message = "工序名称长度不能超过128")
+    @TableField(value = "name", condition = LIKE)
+    private String procedureName;
+
+    @ApiModelProperty(value = "待加工数量")
+    @Excel(name = "待加工数量" , width = 20)
+    private Integer awaitNum;
+
+    @ApiModelProperty(value = "已完成数量")
+    @Excel(name = "已完成数量" , width = 20)
+    private Integer endNum;
+
+    @ApiModelProperty(value = "报废数量")
+    @Excel(name = "报废数量" , width = 20)
+    private Integer scrapNum;
+}