增加 库存查询

master
wangh 4 years ago
parent 172a329e74
commit 98556d1f94

@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPObject;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.system.domain.BoxOutputByType;
import com.ruoyi.system.domain.BoxPlanCompletion;
import com.ruoyi.system.domain.BoxStock;
import com.ruoyi.system.domain.EchartsDTO;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.service.IBroadDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -15,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -58,7 +56,7 @@ public class BoxBroadController {
return JSONObject.toJSONString(new EchartsDTO(xAxisInfo,seriesInfo));
}
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
// 按类型查询产量
@PostMapping("/selectOutputByType")
@ResponseBody
@ -69,11 +67,16 @@ public class BoxBroadController {
List<String> xAxisInfo = new ArrayList<String>();
List<BoxOutputByType> info = service.selectOutputByType();
Map<String,List<BoxOutputByType>> orderInfoMap = info.stream().collect(Collectors.groupingBy(BoxOutputByType:: getPlan_type));
// Map<String,List<BoxOutputByType>> orderInfoMap = info.stream().collect(Collectors.groupingBy(BoxOutputByType:: getPlan_type));
//
// for (String key : orderInfoMap.keySet()) {
// xAxisInfo.add(key);
// seriesInfo.add(Convert.toLong(orderInfoMap.get(key).stream().mapToDouble(BoxOutputByType:: getActual_production).sum()));
// }
for (String key : orderInfoMap.keySet()) {
xAxisInfo.add(key);
seriesInfo.add(Convert.toLong(orderInfoMap.get(key).stream().mapToDouble(BoxOutputByType:: getActual_production).sum()));
for (BoxOutputByType byType:info ) {
xAxisInfo.add(byType.getPlan_type());
seriesInfo.add(Long.valueOf(byType.getActual_production()));
}
echarts.setSeriesInfo(seriesInfo);
@ -86,7 +89,39 @@ public class BoxBroadController {
}
@PostMapping("/getProductPlanInfo")
@ResponseBody
public String getProductPlanInfo(){
List<List<Object>> planInfoList = new ArrayList<List<Object>>();
List<OrderInfo> planInfo = service.getUHullPlanInfo();
planInfo.forEach(x->{
planInfoList.add(
new ArrayList<Object>() {
{
this.add(x.getOrderType());
this.add(x.getPlannedProduction());
this.add(x.getActualProduction());
this.add(x.getPlannedProduction()-x.getActualProduction());
if(x.getPlannedProduction() == 0 || x.getActualProduction() ==0){
this.add("0%");
}else {
this.add(((double)x.getActualProduction()/(double)x.getPlannedProduction()*100)+"%");
}
if (x.getEndTime() != null) {
this.add(dateFormat.format(x.getEndTime()));
} else {
this.add("-");
}
}
});
});
String jsonInfo = JSONArray.toJSONString(planInfoList);
System.out.println("MES生产计划信息查询"+jsonInfo);
return jsonInfo;
}
}

@ -351,7 +351,7 @@
const planWorkOrderTable = new AutoScrollTable(document.getElementById("plan-work-order"), planWorkOrderColumns, {width: ['30%', null, null, null, '17%']})
const planTable = new AutoScrollTable(document.getElementById("plan-table"), [], {
width: ['15%', '5%', null, null, null, null, null, null, null, null, null, null, null, null, null, null, "5%", "5%", "5%"],
// caption: "生产计划统计",
caption: "生产计划统计",
})
const inventoryInfoDataMerger = new DataMerger({
@ -376,12 +376,12 @@
})
}
const rowName1 = '箱体壳'
const rowName2 = '内胆库'
const rowName1 = '内胆积存库'
const rowName2 = '围板积存库'
var url='/broad/box'
$(() => {
//生产计划工单
// autoUpdate('/broad/box/order ', INTERVAL, data => {
// autoUpdate(url+"/getProductPlanInfo ', INTERVAL, data => {
// planWorkOrderTable.loadData(data.map(value => [value[0], value[1], value[2], value[3], value[5]]), Object.keys(planWorkOrderColumns))
// })

@ -5,6 +5,7 @@ import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.BoxOutputByType;
import com.ruoyi.system.domain.BoxPlanCompletion;
import com.ruoyi.system.domain.BoxStock;
import com.ruoyi.system.domain.OrderInfo;
import org.springframework.stereotype.Repository;
import javax.swing.*;
@ -21,4 +22,6 @@ public interface BroadDataMapper {
List<BoxStock> selectStock(String id);
List<BoxOutputByType> selectOutputByType();
List<OrderInfo> getUHullPlanInfo();
}

@ -1,9 +1,6 @@
package com.ruoyi.system.service;
import com.ruoyi.system.domain.BoxOutputByType;
import com.ruoyi.system.domain.BoxPlanCompletion;
import com.ruoyi.system.domain.BoxStock;
import com.ruoyi.system.domain.SysOperLog;
import com.ruoyi.system.domain.*;
import java.util.List;
@ -19,4 +16,6 @@ public interface IBroadDataService {
List<BoxStock> selectStock(String id);
List<BoxOutputByType> selectOutputByType();
List<OrderInfo> getUHullPlanInfo();
}

@ -8,10 +8,7 @@ import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.CacheUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.BoxOutputByType;
import com.ruoyi.system.domain.BoxPlanCompletion;
import com.ruoyi.system.domain.BoxStock;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.mapper.BroadDataMapper;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.service.IBroadDataService;
@ -49,4 +46,9 @@ public class BroadDataServiceImpl implements IBroadDataService
public List<BoxOutputByType> selectOutputByType() {
return mapper.selectOutputByType();
}
@Override
public List<OrderInfo> getUHullPlanInfo() {
return mapper.getUHullPlanInfo();
}
}

@ -26,30 +26,76 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectStock" resultType="com.ruoyi.system.domain.BoxStock">
select substr(MATERIAL_NAME, instr(MATERIAL_NAME, ',', 1, 1) +
1,instr(MATERIAL_NAME, ',', 1, 2) - 1 - instr(MATERIAL_NAME, ',', 1, 1)) as
order_type
, Sum(Store_Qty) as stock
, ls.STORE_DESC
select material_name
, substr(MATERIAL_NAME,
case
when instr(MATERIAL_NAME, '/', 1, 1) = 0 then instr(MATERIAL_NAME, ',', 1, 1) + 1
else instr(MATERIAL_NAME, '/', 1, 1) + 1
end,
case
when instr(MATERIAL_NAME, ',', 1, 2) = 0 then Length(MATERIAL_NAME)+1
else instr(MATERIAL_NAME, ',', 1, 2)
end
-
case
when instr(MATERIAL_NAME, '/', 1, 1) = 0 then instr(MATERIAL_NAME, ',', 1, 1) + 1
else instr(MATERIAL_NAME, '/', 1, 1) + 1
end) as order_type
, Sum(Store_Qty) as stock
, Store_Code
from IMOS_LO_STORE_DETIAL losd
left join IMOS_LO_STORE ls on ls.STORE_CODE = losd.STORE_CODE
where ls.Store_Code =#{id}
where Store_Code =#{id}
and Material_Code is not null
and Store_Qty > 0
group by material_name, ls.STORE_DESC
and Store_Qty &gt; 0
group by material_name, Store_Code
order by material_name
</select>
<select id="selectOutputByType" resultType="com.ruoyi.system.domain.BoxOutputByType">
select substr(MATERIAL_NAME, instr(MATERIAL_NAME, ',', 1, 1) + 1,
instr(MATERIAL_NAME, ',', 1, 2) - 1 - instr(MATERIAL_NAME, ',', 1, 1)) as plan_type,
SUM(ACTUAL_QTY) as actual_production
select substr(MATERIAL_NAME,
case
when instr(MATERIAL_NAME, '/', 1, 1) = 0 then instr(MATERIAL_NAME, ',', 1, 1) + 1
else instr(MATERIAL_NAME, '/', 1, 1) + 1
end,
case
when instr(MATERIAL_NAME, ',', 1, 2) = 0 then Length(MATERIAL_NAME) + 1
else instr(MATERIAL_NAME, ',', 1, 2)
end
-
case
when instr(MATERIAL_NAME, '/', 1, 1) = 0 then instr(MATERIAL_NAME, ',', 1, 1) + 1
else instr(MATERIAL_NAME, '/', 1, 1) + 1
end) as plan_type,
SUM(ACTUAL_QTY) as actual_production
from IMOS_PR_PLAN
where to_char(plan_date, 'yyyy-MM-dd') = to_char(sysdate, 'yyyy-MM-dd')
and PROCESS_CODE = 1002
group by MATERIAL_NAME
group by MATERIAL_NAME;
</select>
<resultMap type="com.ruoyi.system.domain.OrderInfo" id="OrderInfoResult">
<result property="orderType" column="order_type" />
<result property="materialType" column="material_type" />
<result property="plannedProduction" column="planned_production" />
<result property="actualProduction" column="actual_production" />
<result property="recordTime" column="record_Time" />
<result property="endTime" column="end_time" />
<result property="planDate" column="plan_date"/>
</resultMap>
<select id="getUHullPlanInfo" resultMap="OrderInfoResult">
select sysdate as end_Time,
case when instr(Material_Name, ',',instr(Material_Name, 'SC', 1, 1), 1)=0
then substr(Material_Name, instr(Material_Name, 'SC', 1, 1))
else substr(Material_Name, instr(Material_Name, 'SC', 1, 1),
instr(Material_Name, ',',instr(Material_Name, 'SC', 1, 1), 1)-instr(Material_Name, 'SC', 1, 1)) end as material_type,
PLAN_NO as order_type,
SUM(PLAN_QTY) as planned_production,
SUM(ACTUAL_QTY) as actual_production
from IMOS_PR_PLAN t
where process_code = '1002'
and detial_type_code = '1002'
and delete_flag = '0'
and to_char(plan_date, 'yyyy-MM-dd') = to_char(sysdate, 'yyyy-MM-dd')
group by PLAN_NO, MATERIAL_NAME
</select>
</mapper>
Loading…
Cancel
Save