jiangping
2023-08-21 2604ababe531bbfdb714576d171af887a7b4a67c
库存余量实时统计接口
已修改6个文件
69 ■■■■ 文件已修改
server/src/main/java/doumeemes/api/ext/StatisticsController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/business/dto/statistics/StockDataModel.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/ext/WStockExtMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/StatisticsService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/mappers/WStockExtMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/ext/StatisticsController.java
@@ -87,6 +87,11 @@
    public ApiResponse<List<ProcedureProcessModel>> getProcedureProcessList (@PathVariable Integer companyId, @PathVariable Integer departId   ) {
        return ApiResponse.success(statisticsService.getProcedureProcessList(companyId,departId));
    }
    @ApiOperation("成品计划-实时仓库余量统计")
    @GetMapping("/getStockList/{companyId}/{departId}")
    public ApiResponse<List<StockDataModel>> getStockList (@PathVariable Integer companyId, @PathVariable Integer departId   ) {
        return ApiResponse.success(statisticsService.getStockList(companyId,departId));
    }
}
server/src/main/java/doumeemes/dao/business/dto/statistics/StockDataModel.java
@@ -9,25 +9,20 @@
@Data
@ApiModel("大屏数据看板-库存实时余量统计返回数据")
/**
 * 执行中计划数:统计范围为:成品计划;状态为【执行中】;
 * 延期计划数:统计范围为:成品计划;状态为【执行中】且当前时间大于计划结束时间;
 * 今日生产人数:根据今日投料/产出记录表数据,统计今日的生产人数(去重);统计范围为工单状态为【已创建、已备料、生产中、已检验、已完工检、已报工】;
 * 今日生产设备:根据今日投料/产出记录表关联的工单数据,统计今日的生产设备数(去重);统计范围为工单状态为【已创建、已备料、生产中、已检验、已完工检、已报工】;
 * 今日不良品率:根据今日产出记录表数据,统计今日产出不良数/今日产出总数量*100%;统计范围为工单状态为【已报工】;
 * 展示仓库的实时余量情况(拉取全部数据);按照【物料+仓库+批次号】汇总方式;(即PC端库存查询默认列表数据);
 * 不滚动,支持上下滚动查看其他数据;
 */
public class StockDataModel {
    @ApiModelProperty(value = "执行中计划数", example = "1")
    private Integer ingNum;
    @ApiModelProperty(value = "延期计划数", example = "1")
    private Integer delayNum;
    @ApiModelProperty(value = "今日生产人数", example = "1")
    private Integer prouserNum;
    @ApiModelProperty(value = "今日生产设备数", example = "1")
    private Integer deviceNum;
    @ApiModelProperty(value = "今日不良品率", example = "1")
    private BigDecimal unqualifiedRate;
    @ApiModelProperty(value = "今日不良品数", example = "1",hidden = true)
    private BigDecimal unqualifiedNum;
    @ApiModelProperty(value = "今日报工数", example = "1",hidden = true)
    private BigDecimal doneNUm;
    @ApiModelProperty(value = "物料名称", example = "1")
    private String materialName;
    @ApiModelProperty(value = "工序名称", example = "1")
    private String procedureName;
    @ApiModelProperty(value = "仓库名称", example = "1")
    private String warehouseName;
    @ApiModelProperty(value = "货架名称", example = "1")
    private String location;
    @ApiModelProperty(value = "数量", example = "1")
    private BigDecimal num;
    @ApiModelProperty(value = "单位")
    private String unitName;
}
server/src/main/java/doumeemes/dao/ext/WStockExtMapper.java
@@ -1,5 +1,6 @@
package doumeemes.dao.ext;
import doumeemes.dao.business.dto.statistics.StockDataModel;
import doumeemes.dao.business.model.WStock;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import doumeemes.dao.ext.beanDto.QueryWStockDto;
@@ -32,4 +33,6 @@
    List<WStockExtListVO> selectAdminListForH5(QueryWStockDto dto);
    List<WStockExtListVO> choiceStockPageByTransfer(QueryWStockHeadNewDTO dto);
    List<StockDataModel> getStatisticsStockList(QueryWStockExtDTO param);
}
server/src/main/java/doumeemes/service/ext/StatisticsService.java
@@ -37,4 +37,5 @@
    List<WorkPlansPageModel> getWorkPlansList(Integer companyId, Integer departId);
    List<ProcedureProcessModel> getProcedureProcessList(Integer companyId, Integer departId);
    List<StockDataModel> getStockList(Integer companyId, Integer departId)
}
server/src/main/java/doumeemes/service/ext/impl/StatisticsServiceImpl.java
@@ -49,6 +49,8 @@
    @Autowired
    private PlansExtMapper plansExtMapper;
    @Autowired
    private WStockExtMapper stockExtMapper;
    @Autowired
    private WorkorderRecordExtMapper workorderRecordExtMapper;
    @Autowired
    private DepartmentExtService departmentExtService;
@@ -135,6 +137,19 @@
        return  result;
    }
    @Override
    public   List<StockDataModel> getStockList(Integer companyId, Integer departId){
        DepartmentExtListVO department =   departmentExtService.getModelById(companyId,departId);
        if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,企业或者部门信息不合法,如有疑问,请联系系统管理员");
        }
        QueryWStockExtDTO param = new QueryWStockExtDTO();
        param.setRootDepartId(department.getRootId());
        param.setWmodelDepartId(departId);
        //查询统计结果
        List<StockDataModel> result = stockExtMapper.getStatisticsStockList(param);
        return  result;
    }
    @Override
    public List<Unqualified7DayModel> getUnqualified7DayData(Integer companyId, Integer departId, Integer procedureId) {
        DepartmentExtListVO department =   departmentExtService.getModelById(companyId,departId);
        if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){
server/src/main/resources/mappers/WStockExtMapper.xml
@@ -77,6 +77,18 @@
      <result column="WMODEL_ADDR" jdbcType="VARCHAR" property="addr"/>
    </association>
  </resultMap>
  <select id="getStatisticsStockList" parameterType="doumeemes.dao.ext.dto.QueryWStockExtDTO" resultType="doumeemes.dao.business.dto.statistics.StockDataModel">
    select sum(a.NUM) as num,c.`NAME` as materialName,d.name as warehouseName,f.UNION_NAME as location,u.name as unitName
    from w_stock a
    left join material_distribute b on a.MATERIAL_ID=b.ID
    left join material c on b.MATERIAL_ID=c.ID
    left join warehouse d on a.WAREHOUSE_ID=d.ID
    left join warehouse_location f on a.LOCATION_ID=f.ID
    left join unit u on a.UNIT_ID=u.id
    where a.DELETED = 0 AND a.ROOT_DEPART_ID = #{rootDepartId} AND d.DEPART_ID=#{wmodelDepartId}
    GROUP BY a.MATERIAL_ID,a.WAREHOUSE_ID,a.BATCH
    ORDER BY num DESC
  </select>
  <select id="selectAllList" parameterType="doumeemes.dao.ext.dto.QueryWStockExtDTO" resultMap="WStockExtListVO">
    SELECT a.*
    FROM w_stock a