看板实现
This commit is contained in:
@@ -0,0 +1,50 @@
|
|||||||
|
package org.nl.wms.board.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
import org.nl.wms.board.service.BoardService;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "看板接口")
|
||||||
|
@RequestMapping("/api/board" +
|
||||||
|
"")
|
||||||
|
@SaIgnore
|
||||||
|
@Lazy
|
||||||
|
public class BoardController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BoardService boardService;
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/point")
|
||||||
|
@Log("点位详情")
|
||||||
|
@ApiOperation("点位详情")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> point(){
|
||||||
|
return new ResponseEntity<>(boardService.point(), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/kc")
|
||||||
|
@Log("库存状态")
|
||||||
|
@ApiOperation("库存状态")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> kc(){
|
||||||
|
return new ResponseEntity<>(boardService.kc(), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package org.nl.wms.board.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
public interface BoardService {
|
||||||
|
JSONObject point();
|
||||||
|
|
||||||
|
JSONObject kc();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package org.nl.wms.board.service.dao.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Detail {
|
||||||
|
private Integer sum1;
|
||||||
|
private Integer use1;
|
||||||
|
private Integer empty1;
|
||||||
|
|
||||||
|
private Integer sum2;
|
||||||
|
private Integer use2;
|
||||||
|
private Integer empty2;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package org.nl.wms.board.service.dao.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class KCDto {
|
||||||
|
private List<KCFX> kcfx;
|
||||||
|
private List<QS> qs;
|
||||||
|
private List<Today> today;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package org.nl.wms.board.service.dao.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class KCFX {
|
||||||
|
private String material_name;
|
||||||
|
private Integer sum;
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package org.nl.wms.board.service.dao.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Point {
|
||||||
|
private String point_code;
|
||||||
|
private String material_name;
|
||||||
|
private String point_status;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package org.nl.wms.board.service.dao.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PointDto {
|
||||||
|
private Detail detail;
|
||||||
|
private List<Point> pointList;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package org.nl.wms.board.service.dao.dto;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class QS {
|
||||||
|
private String direction;
|
||||||
|
private String date;
|
||||||
|
private Integer num;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package org.nl.wms.board.service.dao.dto;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Today {
|
||||||
|
private String time;
|
||||||
|
private String point_code;
|
||||||
|
private String material_name;
|
||||||
|
private String direction;
|
||||||
|
private String number;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package org.nl.wms.board.service.dao.mapper;
|
||||||
|
|
||||||
|
import org.nl.wms.board.service.dao.dto.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface BoardMapper {
|
||||||
|
|
||||||
|
Detail detail();
|
||||||
|
|
||||||
|
List<Point> point();
|
||||||
|
|
||||||
|
List<KCFX> kcfx();
|
||||||
|
|
||||||
|
List<QS> qs();
|
||||||
|
|
||||||
|
List<Today> today();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.nl.wms.board.service.dao.mapper.BoardMapper">
|
||||||
|
|
||||||
|
<select id="point" resultType="org.nl.wms.board.service.dao.dto.Point">
|
||||||
|
SELECT
|
||||||
|
p.point_code,
|
||||||
|
m.material_name,
|
||||||
|
p.point_status
|
||||||
|
FROM
|
||||||
|
sch_base_point p
|
||||||
|
LEFT JOIN sch_base_vehiclematerialgroup v ON p.vehicle_code = v.vehicle_code
|
||||||
|
LEFT JOIN md_base_material m ON v.material_id = m.material_id
|
||||||
|
WHERE
|
||||||
|
p.region_code = 'ZC'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="detail" resultType="org.nl.wms.board.service.dao.dto.Detail">
|
||||||
|
SELECT
|
||||||
|
SUM(CASE WHEN row_num BETWEEN 1 AND 18 THEN 1 ELSE 0 END) AS sum2,
|
||||||
|
SUM(CASE WHEN row_num BETWEEN 1 AND 18 AND point_status = 2 THEN 1 ELSE 0 END) AS use2,
|
||||||
|
SUM(CASE WHEN row_num BETWEEN 1 AND 18 AND point_status = 1 THEN 1 ELSE 0 END) AS empty2,
|
||||||
|
SUM(CASE WHEN row_num BETWEEN 19 AND 30 THEN 1 ELSE 0 END) AS sum1,
|
||||||
|
SUM(CASE WHEN row_num BETWEEN 19 AND 30 AND point_status = 2 THEN 1 ELSE 0 END) AS use1,
|
||||||
|
SUM(CASE WHEN row_num BETWEEN 19 AND 30 AND point_status = 1 THEN 1 ELSE 0 END) AS empty1
|
||||||
|
FROM
|
||||||
|
sch_base_point p
|
||||||
|
where p.region_code='ZC'
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="kcfx" resultType="org.nl.wms.board.service.dao.dto.KCFX">
|
||||||
|
SELECT
|
||||||
|
m.material_name,
|
||||||
|
SUM( v.material_qty ) AS sum
|
||||||
|
FROM
|
||||||
|
sch_base_point p
|
||||||
|
LEFT JOIN sch_base_vehiclematerialgroup v ON p.vehicle_code = v.vehicle_code
|
||||||
|
LEFT JOIN md_base_material m ON v.material_id = m.material_id
|
||||||
|
WHERE
|
||||||
|
p.region_code = 'ZC'
|
||||||
|
AND material_name IS NOT NULL
|
||||||
|
GROUP BY
|
||||||
|
material_name
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="qs" resultType="org.nl.wms.board.service.dao.dto.QS">
|
||||||
|
SELECT
|
||||||
|
CASE WHEN process_action = '固化室出口到暂存区' THEN 0 ELSE 1 END as direction,
|
||||||
|
DATE_FORMAT(record_time, '%m-%d') AS date,
|
||||||
|
COUNT(*) AS num
|
||||||
|
FROM
|
||||||
|
pdm_bd_production_process_tracking
|
||||||
|
WHERE
|
||||||
|
record_time >= CURDATE() - INTERVAL 7 DAY
|
||||||
|
and (process_action='固化室出口到暂存区' or process_action='暂存区人工出库')
|
||||||
|
GROUP BY
|
||||||
|
process_action,
|
||||||
|
date
|
||||||
|
ORDER BY
|
||||||
|
process_action,
|
||||||
|
date
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="today" resultType="org.nl.wms.board.service.dao.dto.Today">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
pt.record_time AS time,
|
||||||
|
pt.process_location AS point_code,
|
||||||
|
m.material_name,
|
||||||
|
CASE
|
||||||
|
|
||||||
|
WHEN process_action = '固化室出口到暂存区' THEN
|
||||||
|
0 ELSE 1
|
||||||
|
END AS direction,
|
||||||
|
v.material_qty AS number
|
||||||
|
FROM
|
||||||
|
pdm_bd_production_process_tracking pt
|
||||||
|
LEFT JOIN sch_base_vehiclematerialgroup v ON pt.buss_move_id = v.buss_move_id
|
||||||
|
LEFT JOIN md_base_material m ON v.material_id = m.material_id
|
||||||
|
WHERE
|
||||||
|
process_action = '固化室出口到暂存区'
|
||||||
|
OR process_action = '暂存区人工出库'
|
||||||
|
) a
|
||||||
|
WHERE
|
||||||
|
DATE( a.time ) = CURDATE()
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package org.nl.wms.board.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.utils.RedisUtils;
|
||||||
|
import org.nl.wms.board.service.BoardService;
|
||||||
|
import org.nl.wms.board.service.dao.dto.*;
|
||||||
|
import org.nl.wms.board.service.dao.mapper.BoardMapper;
|
||||||
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class BoardServiceImpl implements BoardService {
|
||||||
|
@Autowired
|
||||||
|
private BoardMapper boardMapper;
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
|
||||||
|
public JSONObject point() {
|
||||||
|
PointDto pointDto = new PointDto();
|
||||||
|
pointDto.setPointList(boardMapper.point());
|
||||||
|
pointDto.setDetail(boardMapper.detail());
|
||||||
|
return JSONObject.parseObject(JSON.toJSONString(pointDto, SerializerFeature.WriteNullStringAsEmpty));
|
||||||
|
}
|
||||||
|
|
||||||
|
public JSONObject kc() {
|
||||||
|
KCDto kcdto = new KCDto();
|
||||||
|
kcdto.setKcfx(boardMapper.kcfx());
|
||||||
|
kcdto.setQs(boardMapper.qs());
|
||||||
|
kcdto.setToday(boardMapper.today());
|
||||||
|
return JSONObject.parseObject(JSON.toJSONString(kcdto, SerializerFeature.WriteNullStringAsEmpty));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,13 +1,21 @@
|
|||||||
package org.nl.wms.sch.point.service.task;
|
package org.nl.wms.sch.point.service.task;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import cn.hutool.http.HttpResponse;
|
import cn.hutool.http.HttpResponse;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.utils.RedisUtils;
|
import org.nl.common.utils.RedisUtils;
|
||||||
|
import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService;
|
||||||
|
import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking;
|
||||||
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||||
|
import org.nl.wms.util.TaskUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -24,6 +32,11 @@ public class SyncPoint {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService schBasePointService;
|
private ISchBasePointService schBasePointService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
|
@Autowired
|
||||||
|
private IPdmBdProductionProcessTrackingService processTrackingService;
|
||||||
|
|
||||||
|
|
||||||
public void run() throws Exception {
|
public void run() throws Exception {
|
||||||
try {
|
try {
|
||||||
@@ -40,14 +53,32 @@ public class SyncPoint {
|
|||||||
List<SchBasePoint> schBasePointList = schBasePointService.getPointList(schBasePoint);
|
List<SchBasePoint> schBasePointList = schBasePointService.getPointList(schBasePoint);
|
||||||
JSONArray jsonArray = JSONArray.parseArray(result.body());
|
JSONArray jsonArray = JSONArray.parseArray(result.body());
|
||||||
for (int i = 0; i < jsonArray.size(); i++) {
|
for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
JSONObject jsonObject=jsonArray.getJSONObject(i);
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||||
for(SchBasePoint temp:schBasePointList){
|
for (SchBasePoint temp : schBasePointList) {
|
||||||
if (temp.getPoint_code().equals(jsonObject.getString("binNo"))){
|
if (temp.getPoint_code().equals(jsonObject.getString("binNo"))) {
|
||||||
if(jsonObject.getInteger("pred")==0&&"2".equals(temp.getPoint_status())
|
if (jsonObject.getInteger("pred") == 0 && "2".equals(temp.getPoint_status())
|
||||||
||jsonObject.getInteger("pred")==1&&"1".equals(temp.getPoint_status())){
|
|| jsonObject.getInteger("pred") == 1 && "1".equals(temp.getPoint_status())) {
|
||||||
log.info("检测到点位{}当前库存有变动pred={},更新lms库存",jsonObject.getString("binNo"),jsonObject.getInteger("pred"));
|
log.info("检测到点位{}当前库存有变动pred={},更新lms库存", jsonObject.getString("binNo"), jsonObject.getInteger("pred"));
|
||||||
temp.setPoint_status(String.valueOf(jsonObject.getInteger("pred")+1));
|
temp.setPoint_status(String.valueOf(jsonObject.getInteger("pred") + 1));
|
||||||
|
temp.setVehicle_type("");
|
||||||
|
temp.setVehicle_code("");
|
||||||
|
temp.setIng_task_code("");
|
||||||
|
temp.setVehicle_qty(0);
|
||||||
|
temp.setUpdate_time(DateUtil.now());
|
||||||
schBasePointService.update(temp);
|
schBasePointService.update(temp);
|
||||||
|
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getVehicleGroupInfo(
|
||||||
|
temp.getVehicle_code(),
|
||||||
|
temp.getVehicle_type(),
|
||||||
|
GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
|
groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||||
|
vehiclematerialgroupService.update(groupInfo);
|
||||||
|
// 插入生产过程跟踪表
|
||||||
|
PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking();
|
||||||
|
processTracking.setBuss_move_id(groupInfo.getBuss_move_id());
|
||||||
|
processTracking.setProcess_action("暂存区人工出库");
|
||||||
|
processTracking.setProcess_location(temp.getPoint_code());
|
||||||
|
processTracking.setRecord_time(DateUtil.now());
|
||||||
|
processTrackingService.create(processTracking);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user