src/main/java/com/ruoyi/consumables/controller/ConsumablesInventoryController.java
@@ -82,13 +82,13 @@ consumablesInventoryService.exportConsumablesInventory(response, consumablesInventoryDto); } @GetMapping("ConsumablesInventoryPage") @GetMapping("/ConsumablesInventoryPage") @ApiOperation("库存报表查询") public R ConsumablesInventoryPage(Page page, ConsumablesInventoryDto consumablesInventoryDto) { return R.ok(consumablesInventoryService.consumablesInventoryPage(consumablesInventoryDto,page)); } @GetMapping("ConsumablesInAndOutRecord") @GetMapping("/ConsumablesInAndOutRecord") @ApiOperation("统计各个产品的入库和出库记录") public R ConsumablesInAndOutRecord(ConsumablesInventoryDto consumablesInventoryDto, Page page) { return R.ok(consumablesInventoryService.consumablesInAndOutRecord(consumablesInventoryDto,page)); src/main/java/com/ruoyi/consumables/dto/ConsumablesInRecordDto.java
@@ -31,7 +31,7 @@ private String createBy; //现存量 private String currentconsumables; private String currentStock; //现净重 private BigDecimal currentWeight; src/main/java/com/ruoyi/consumables/dto/ConsumablesInventoryDto.java
@@ -36,9 +36,9 @@ @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate endMonth; private BigDecimal totalconsumablesIn; private BigDecimal totalconsumablesOut; private BigDecimal currentconsumables; private BigDecimal totalStockIn; private BigDecimal totalStockOut; private BigDecimal currentStock; private BigDecimal unLockedQuantity; @@ -68,4 +68,7 @@ @ApiModelProperty("磅单文件路径") private String weighbridgeDocPath; @ApiModelProperty("现净重(吨)") private BigDecimal currentWeight; } src/main/java/com/ruoyi/consumables/service/impl/ConsumablesUnInventoryServiceImpl.java
@@ -36,8 +36,8 @@ public class ConsumablesUnInventoryServiceImpl extends ServiceImpl<ConsumablesUnInventoryMapper, ConsumablesUnInventory> implements ConsumablesUnInventoryService { private ConsumablesUnInventoryMapper consumablesUnInventoryMapper; private ConsumablesOutRecordService ConsumablesOutRecordService; private ConsumablesInRecordService ConsumablesInRecordService; private ConsumablesOutRecordService consumablesOutRecordService; private ConsumablesInRecordService consumablesInRecordService; @Override public IPage<ConsumablesUnInventoryDto> pageConsumablesUnInventory(Page page, ConsumablesUnInventoryDto consumablesUnInventoryDto) { @@ -54,7 +54,7 @@ consumablesInRecordDto.setStockInNum(consumablesUnInventoryDto.getQualitity()); consumablesInRecordDto.setProductModelId(consumablesUnInventoryDto.getProductModelId()); consumablesInRecordDto.setType("1"); ConsumablesInRecordService.add(consumablesInRecordDto); consumablesInRecordService.add(consumablesInRecordDto); //再进行新增库存数量库存 //先查询库存表中的产品是否存在,不存在新增,存在更新 ConsumablesUnInventory oldConsumablesUnInventory = consumablesUnInventoryMapper.selectOne(new QueryWrapper<ConsumablesUnInventory>().lambda().eq(ConsumablesUnInventory::getProductModelId, consumablesUnInventoryDto.getProductModelId())); @@ -82,7 +82,7 @@ consumablesOutRecordDto.setStockOutNum(consumablesUnInventoryDto.getQualitity()); consumablesOutRecordDto.setProductModelId(consumablesUnInventoryDto.getProductModelId()); consumablesOutRecordDto.setType("1"); ConsumablesOutRecordService.add(consumablesOutRecordDto); consumablesOutRecordService.add(consumablesOutRecordDto); ConsumablesUnInventory oldConsumablesInventory = consumablesUnInventoryMapper.selectOne(new QueryWrapper<ConsumablesUnInventory>().lambda().eq(ConsumablesUnInventory::getProductModelId, consumablesUnInventoryDto.getProductModelId())); if (ObjectUtils.isEmpty(oldConsumablesInventory)) { throw new RuntimeException("产品库存不存在"); src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
@@ -34,27 +34,25 @@ * 类别(0:原材料检验;1:过程检验;2:出厂检验) */ @NotBlank(message = "类别不能为空!!!") @Excel(name = "类别",readConverterExp = "0=原材料检验,1=过程检验,2=出厂检验") private Integer inspectType; /** * 状态(0:待处理;1:已处理) */ @NotBlank(message = "状态不能为空!!") @Excel(name = "状态",readConverterExp = "0=待处理,1=已处理") private Integer inspectState; /** * 检测日期 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "检测日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "检测日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 1) private Date checkTime; /** * 检验员 */ @Excel(name = "检验员") @Excel(name = "检验员", sort = 4) private String checkName; /** @@ -65,50 +63,49 @@ /** * 产品名称 */ @Excel(name = "产品名称") @Excel(name = "产品名称", sort = 5) private String productName; /** * 规格型号 */ @Excel(name = "规格型号") @Excel(name = "规格型号", sort = 6) private String model; /** * 单位 */ @Excel(name = "单位") @Excel(name = "单位", sort = 7) private String unit; /** * 数量 */ @Excel(name = "数量") private BigDecimal quantity; /** * 不合格现象 */ @Excel(name = "不合格现象") @Excel(name = "不合格现象", sort = 8) private String defectivePhenomena; /** * 处理结果 */ @Excel(name = "处理结果") @Excel(name = "处理结果", sort = 9) private String dealResult; /** * 处理人 */ @Excel(name = "处理人") @Excel(name = "处理人", sort = 10) private String dealName; /** * 处理日期 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "处理日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "处理日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 11) private Date dealTime; @@ -141,8 +138,10 @@ private Boolean method; @ApiModelProperty("批号") @Excel(name = "批号", sort = 2) private String batchNo; @ApiModelProperty("检测类型") @Excel(name = "检测类型",readConverterExp = "0=入厂检,1=车间验,2=出厂检", sort = 3) private Integer checkType; } src/main/java/com/ruoyi/quality/service/impl/RawMaterialServiceImpl.java
@@ -150,7 +150,7 @@ if (rawMaterial.getCheckResult().equals(RawMaterialCheckResult.RawMaterialCheckResultUnqualified.getCode())) { QualityUnqualified qualityUnqualified = new QualityUnqualified(); qualityUnqualified.setInspectId(rawMaterial.getId());//检验id qualityUnqualified.setInspectType(rawMaterial.getCheckType());//检验类型 qualityUnqualified.setCheckType(rawMaterial.getCheckType());//检验类型 qualityUnqualified.setInspectState(0);//待处理 qualityUnqualified.setCheckName(rawMaterial.getCheckUserName());//检验员名称 qualityUnqualified.setCheckTime(rawMaterial.getCheckTime());//检验日期 src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
@@ -1,6 +1,5 @@ package com.ruoyi.stock.dto; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.stock.pojo.StockInventory; import io.swagger.annotations.ApiModelProperty; @@ -71,6 +70,8 @@ private String weighbridgeDocPath; @ApiModelProperty("产品类型") @TableField(exist = false) private Integer productType; @ApiModelProperty("现净重(吨)") private BigDecimal currentWeight; } src/main/resources/mapper/consumables/ConsumablesInventoryMapper.xml
@@ -85,7 +85,7 @@ select product_model_id, sum(net_weight) as total_net_weight from Consumables_in_record from consumables_in_record group by product_model_id ) sir on si.product_model_id = sir.product_model_id -- 出库净重 @@ -93,7 +93,7 @@ select product_model_id, sum(net_weight) as total_net_weight from Consumables_out_record from consumables_out_record group by product_model_id ) sor on si.product_model_id = sor.product_model_id @@ -126,7 +126,7 @@ select product_model_id, sum(net_weight) as total_net_weight from Consumables_in_record from consumables_in_record group by product_model_id ) sir on si.product_model_id = sir.product_model_id -- 出库净重 @@ -134,7 +134,7 @@ select product_model_id, sum(net_weight) as total_net_weight from Consumables_out_record from consumables_out_record group by product_model_id ) sor on si.product_model_id = sor.product_model_id where 1 = 1 @@ -146,7 +146,7 @@ <select id="consumablesInventoryPage" resultType="com.ruoyi.consumables.dto.ConsumablesInRecordDto"> select sir.*, si.qualitity as current_consumables, si.qualitity as current_stock, pm.model, pm.unit, p.product_name, @@ -155,7 +155,7 @@ -- 当前净重 = 入库净重 - 出库净重 IFNULL(inWeight.total_in_weight,0) - IFNULL(outWeight.total_out_weight,0) as current_weight from Consumables_in_record sir from consumables_in_record sir left join consumables_inventory si on sir.product_model_id = si.product_model_id @@ -174,7 +174,7 @@ select product_model_id, sum(net_weight) as total_in_weight from Consumables_in_record from consumables_in_record group by product_model_id ) inWeight on sir.product_model_id = inWeight.product_model_id @@ -184,7 +184,7 @@ select product_model_id, sum(net_weight) as total_out_weight from Consumables_out_record from consumables_out_record group by product_model_id ) outWeight on sir.product_model_id = outWeight.product_model_id @@ -208,9 +208,10 @@ pm.model, pm.unit, p.product_name, MAX(current_inventory) as current_consumables, SUM(CASE WHEN record_type = 'in' THEN amount ELSE 0 END) as total_Consumables_in, SUM(CASE WHEN record_type = 'out' THEN amount ELSE 0 END) as total_Consumables_out MAX(current_inventory) as current_stock, SUM(CASE WHEN record_type = 'in' THEN amount ELSE 0 END) as total_stock_in, SUM(CASE WHEN record_type = 'out' THEN amount ELSE 0 END) as total_stock_out, (COALESCE(in_weight.total_net_weight, 0) - COALESCE(out_weight.total_net_weight, 0)) AS current_weight FROM ( SELECT product_model_id, @@ -225,16 +226,16 @@ SELECT product_model_id, 0 as current_inventory, SUM(Consumables_in_num) as amount, SUM(stock_in_num) as amount, 'in' as record_type FROM Consumables_in_record FROM consumables_in_record <where> type = 0 <if test="ew.startMonth != null"> and Consumables_in_record.create_time >= #{ew.startMonth} and consumables_in_record.create_time >= #{ew.startMonth} </if> <if test="ew.endMonth != null"> and Consumables_in_record.create_time <= #{ew.endMonth} and consumables_in_record.create_time <= #{ew.endMonth} </if> </where> GROUP BY product_model_id @@ -244,20 +245,54 @@ SELECT product_model_id, 0 as current_inventory, SUM(Consumables_out_num) as amount, SUM(stock_out_num) as amount, 'out' as record_type FROM Consumables_out_record FROM consumables_out_record <where> type = 0 <if test="ew.startMonth != null"> and Consumables_out_record.create_time >= #{ew.startMonth} and consumables_out_record.create_time >= #{ew.startMonth} </if> <if test="ew.endMonth != null"> and Consumables_out_record.create_time <= #{ew.endMonth} and consumables_out_record.create_time <= #{ew.endMonth} </if> </where> GROUP BY product_model_id ) combined_data -- 左连接入库净重合计 LEFT JOIN ( SELECT product_model_id, SUM(net_weight) AS total_net_weight FROM consumables_in_record <where> type = 0 <if test="ew.startMonth != null"> and create_time >= #{ew.startMonth} </if> <if test="ew.endMonth != null"> and create_time <= #{ew.endMonth} </if> </where> GROUP BY product_model_id ) in_weight ON combined_data.product_model_id = in_weight.product_model_id -- 左连接出库净重合计 LEFT JOIN ( SELECT product_model_id, SUM(net_weight) AS total_net_weight FROM consumables_out_record <where> type = 0 <if test="ew.startMonth != null"> and create_time >= #{ew.startMonth} </if> <if test="ew.endMonth != null"> and create_time <= #{ew.endMonth} </if> </where> GROUP BY product_model_id ) out_weight ON combined_data.product_model_id = out_weight.product_model_id LEFT JOIN product_model pm ON pm.id = combined_data.product_model_id LEFT JOIN product p ON p.id = pm.product_id <where> @@ -300,7 +335,7 @@ <select id="selectDailyConsumablesInCounts" resultType="java.util.Map"> SELECT DATE(sir.create_time) AS date, SUM(sir.Consumables_in_num) AS count SUM(sir.stock_in_num) AS count FROM consumables_in_record sir JOIN product_model pm ON sir.product_model_id = pm.id JOIN product p ON pm.product_id = p.id @@ -313,7 +348,7 @@ <select id="selectDailyConsumablesOutCounts" resultType="java.util.Map"> SELECT DATE(sor.create_time) AS date, SUM(sor.Consumables_out_num) AS count SUM(sor.stock_out_num) AS count FROM consumables_out_record sor JOIN product_model pm ON sor.product_model_id = pm.id JOIN product p ON pm.product_id = p.id src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -103,7 +103,7 @@ <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockInventoryExportData"> select si.qualitity, -- 当前净重 = 入库净重 - 出库净重 (COALESCE(sir.total_net_weight, 0) - COALESCE(sor.total_net_weight, 0)) AS net_weight,- (COALESCE(sir.total_net_weight, 0) - COALESCE(sor.total_net_weight, 0)) AS net_weight, pm.model, pm.unit, p.product_name, @@ -197,7 +197,8 @@ p.product_name, MAX(current_inventory) as current_stock, SUM(CASE WHEN record_type = 'in' THEN amount ELSE 0 END) as total_stock_in, SUM(CASE WHEN record_type = 'out' THEN amount ELSE 0 END) as total_stock_out SUM(CASE WHEN record_type = 'out' THEN amount ELSE 0 END) as total_stock_out, (COALESCE(in_weight.total_net_weight, 0) - COALESCE(out_weight.total_net_weight, 0)) AS current_weight FROM ( SELECT product_model_id, @@ -245,6 +246,42 @@ </where> GROUP BY product_model_id ) combined_data -- 左连接入库净重合计 LEFT JOIN ( SELECT product_model_id, SUM(net_weight) AS total_net_weight FROM stock_in_record <where> type = 0 <if test="ew.startMonth != null"> and create_time >= #{ew.startMonth} </if> <if test="ew.endMonth != null"> and create_time <= #{ew.endMonth} </if> </where> GROUP BY product_model_id ) in_weight ON combined_data.product_model_id = in_weight.product_model_id -- 左连接出库净重合计 LEFT JOIN ( SELECT product_model_id, SUM(net_weight) AS total_net_weight FROM stock_out_record <where> type = 0 <if test="ew.startMonth != null"> and create_time >= #{ew.startMonth} </if> <if test="ew.endMonth != null"> and create_time <= #{ew.endMonth} </if> </where> GROUP BY product_model_id ) out_weight ON combined_data.product_model_id = out_weight.product_model_id LEFT JOIN product_model pm ON pm.id = combined_data.product_model_id LEFT JOIN product p ON p.id = pm.product_id <where> @@ -258,7 +295,9 @@ GROUP BY pm.model, pm.unit, p.product_name p.product_name, in_weight.total_net_weight, out_weight.total_net_weight </select> <select id="selectTotal" resultType="java.math.BigDecimal"> select ifnull(sum(qualitity), 0)