看板实现
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;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.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.stereotype.Component;
|
||||
|
||||
@@ -24,6 +32,11 @@ public class SyncPoint {
|
||||
@Autowired
|
||||
private ISchBasePointService schBasePointService;
|
||||
|
||||
@Autowired
|
||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||
@Autowired
|
||||
private IPdmBdProductionProcessTrackingService processTrackingService;
|
||||
|
||||
|
||||
public void run() throws Exception {
|
||||
try {
|
||||
@@ -40,14 +53,32 @@ public class SyncPoint {
|
||||
List<SchBasePoint> schBasePointList = schBasePointService.getPointList(schBasePoint);
|
||||
JSONArray jsonArray = JSONArray.parseArray(result.body());
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject=jsonArray.getJSONObject(i);
|
||||
for(SchBasePoint temp:schBasePointList){
|
||||
if (temp.getPoint_code().equals(jsonObject.getString("binNo"))){
|
||||
if(jsonObject.getInteger("pred")==0&&"2".equals(temp.getPoint_status())
|
||||
||jsonObject.getInteger("pred")==1&&"1".equals(temp.getPoint_status())){
|
||||
log.info("检测到点位{}当前库存有变动pred={},更新lms库存",jsonObject.getString("binNo"),jsonObject.getInteger("pred"));
|
||||
temp.setPoint_status(String.valueOf(jsonObject.getInteger("pred")+1));
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
for (SchBasePoint temp : schBasePointList) {
|
||||
if (temp.getPoint_code().equals(jsonObject.getString("binNo"))) {
|
||||
if (jsonObject.getInteger("pred") == 0 && "2".equals(temp.getPoint_status())
|
||||
|| jsonObject.getInteger("pred") == 1 && "1".equals(temp.getPoint_status())) {
|
||||
log.info("检测到点位{}当前库存有变动pred={},更新lms库存", jsonObject.getString("binNo"), jsonObject.getInteger("pred"));
|
||||
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);
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user