迦南新需求更新(手持、驱动同步产品信息)
This commit is contained in:
@@ -67,7 +67,7 @@ public class TokenFilter extends GenericFilterBean {
|
||||
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
|
||||
String token = resolveToken(httpServletRequest);
|
||||
// 对于 Token 为空的不需要去查 Redis
|
||||
if (StrUtil.isNotBlank(token)) {
|
||||
if (StrUtil.isNotBlank(token)&&!"/api/pda/handlogin".equals(httpServletRequest.getServletPath())) {
|
||||
OnlineUserDto onlineUserDto = null;
|
||||
boolean cleanUserCache = false;
|
||||
try {
|
||||
|
||||
@@ -153,6 +153,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");// 空载具作业记录表
|
||||
WQLObject regionTab = WQLObject.getWQLObject("ST_IVT_regionIO"); // 区域出入库表
|
||||
WQLObject veQtyTab = WQLObject.getWQLObject("PDM_BI_vehicleQty"); // 托盘对应数量表
|
||||
WQLObject ivtTab = WQLObject.getWQLObject("st_ivt_structivt"); // 仓位库存表
|
||||
|
||||
|
||||
/*
|
||||
@@ -165,6 +166,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
* 6.一楼空盘入库 (有载具号)
|
||||
* 7.油漆线->输送线
|
||||
* 8.豪凯自动线下料入库
|
||||
* 9.同步混料区产品信息
|
||||
*/
|
||||
JSONObject resuft = new JSONObject();
|
||||
try {
|
||||
@@ -409,6 +411,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
} else {
|
||||
throw new BadRequestException(jsonObject.getString("message"));
|
||||
}
|
||||
} else if (StrUtil.equals(type, "9")) {
|
||||
//todo
|
||||
String device_code=whereJson.getString("device_code");
|
||||
JSONObject param = new JSONObject();
|
||||
JSONObject jsonIvt = ivtTab.query("struct_code = '" + device_code + "'").uniqueResult(0);
|
||||
jsonIvt.put("weight",whereJson.getString("weight"));
|
||||
jsonIvt.put("product_code",whereJson.getString("product_code"));
|
||||
jsonIvt.put("batch_code",whereJson.getString("batch_code"));
|
||||
jsonIvt.put("product_specifications",whereJson.getString("product_specifications"));
|
||||
jsonIvt.put("time",whereJson.getString("time"));
|
||||
ivtTab.update(jsonIvt);
|
||||
resuft.put("status", "200");
|
||||
resuft.put("message", "");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
resuft.put("status", ((BadRequestException) e).getStatus());
|
||||
|
||||
@@ -28,76 +28,96 @@ public class EmptyAndQtyServiceImpl implements EmptyAndQtyService {
|
||||
public JSONObject confirm(JSONObject whereJSON) {
|
||||
// 返回值
|
||||
JSONObject resultJSON = new JSONObject();
|
||||
|
||||
// 参数校验
|
||||
String pointId = whereJSON.getString("point_id");
|
||||
if (StrUtil.isEmpty(pointId)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "点位不能为空");
|
||||
return resultJSON;
|
||||
}
|
||||
String pointStatus = whereJSON.getString("point_status");
|
||||
if (StrUtil.isEmpty(pointStatus)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "点位状态不能为空");
|
||||
return resultJSON;
|
||||
}
|
||||
String qualityScode = whereJSON.getString("quality_scode");
|
||||
if (StrUtil.equals(pointStatus, "03") && StrUtil.isEmpty(qualityScode)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "质量不能为空");
|
||||
return resultJSON;
|
||||
}
|
||||
|
||||
// 查询点位
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
JSONObject point = pointTable
|
||||
.query("point_id = " + pointId)
|
||||
.uniqueResult(0);
|
||||
|
||||
// 判断点位是否有为完成的指令
|
||||
String pointCode = point.getString("point_code");
|
||||
JSONObject task = WQLObject
|
||||
.getWQLObject("sch_base_task")
|
||||
.query("(start_point_code = '" + pointCode + "' OR next_point_code = '" + pointCode + "') AND is_delete = '0' AND task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(task)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "当前点位存在未完成的指令");
|
||||
return resultJSON;
|
||||
}
|
||||
|
||||
// 修改点位
|
||||
point.put("point_status", pointStatus);
|
||||
pointTable.update(point);
|
||||
|
||||
if (StrUtil.equals(pointStatus, "03") && StrUtil.equals(point.getString("point_type"), "01")) {
|
||||
// 如果是有料桶且是仓位(待检区),则需要修改库存表
|
||||
WQLObject structTable = WQLObject.getWQLObject("st_ivt_structivt");
|
||||
JSONObject struct = structTable
|
||||
.query("struct_id = " + pointId)
|
||||
.uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isEmpty(struct)) {
|
||||
// 当前库存为空,则添加库存
|
||||
struct = new JSONObject();
|
||||
struct.put("stockrecord_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||
struct.put("struct_id", pointId);
|
||||
struct.put("struct_code", point.get("point_code"));
|
||||
struct.put("struct_name", point.get("point_name"));
|
||||
struct.put("region_id", point.get("region_id"));
|
||||
struct.put("quality_scode", qualityScode);
|
||||
structTable.insert(struct);
|
||||
} else {
|
||||
// 当前存在库存,则更新库存
|
||||
struct.put("quality_scode", qualityScode);
|
||||
structTable.update(struct);
|
||||
String point_id=whereJSON.getString("point_id");
|
||||
int type=whereJSON.getIntValue("type");
|
||||
String quality_scode=whereJSON.getString("quality_scode");
|
||||
WQLObject ivtTab = WQLObject.getWQLObject("st_ivt_structivt");
|
||||
JSONObject ivt_json = ivtTab.query("struct_id ='" + point_id + "'").uniqueResult(0);
|
||||
if(ObjectUtil.isNotEmpty(ivt_json)) {
|
||||
if (type == 1) {
|
||||
ivt_json.put("quality_scode", quality_scode);
|
||||
} else if (type == 2) {
|
||||
ivt_json.put("quality_scode", null);
|
||||
}
|
||||
ivtTab.update(ivt_json);
|
||||
}
|
||||
|
||||
// 返回
|
||||
resultJSON.put("code", "1");
|
||||
resultJSON.put("desc", "绑定成功");
|
||||
resultJSON.put("desc", "更新成功");
|
||||
return resultJSON;
|
||||
// // 返回值
|
||||
// JSONObject resultJSON = new JSONObject();
|
||||
//
|
||||
// // 参数校验
|
||||
// String pointId = whereJSON.getString("point_id");
|
||||
// if (StrUtil.isEmpty(pointId)) {
|
||||
// resultJSON.put("code", "0");
|
||||
// resultJSON.put("desc", "点位不能为空");
|
||||
// return resultJSON;
|
||||
// }
|
||||
// String pointStatus = whereJSON.getString("point_status");
|
||||
// if (StrUtil.isEmpty(pointStatus)) {
|
||||
// resultJSON.put("code", "0");
|
||||
// resultJSON.put("desc", "点位状态不能为空");
|
||||
// return resultJSON;
|
||||
// }
|
||||
// String qualityScode = whereJSON.getString("quality_scode");
|
||||
// if (StrUtil.equals(pointStatus, "03") && StrUtil.isEmpty(qualityScode)) {
|
||||
// resultJSON.put("code", "0");
|
||||
// resultJSON.put("desc", "质量不能为空");
|
||||
// return resultJSON;
|
||||
// }
|
||||
//
|
||||
// // 查询点位
|
||||
// WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
// JSONObject point = pointTable
|
||||
// .query("point_id = " + pointId)
|
||||
// .uniqueResult(0);
|
||||
//
|
||||
// // 判断点位是否有为完成的指令
|
||||
// String pointCode = point.getString("point_code");
|
||||
// JSONObject task = WQLObject
|
||||
// .getWQLObject("sch_base_task")
|
||||
// .query("(start_point_code = '" + pointCode + "' OR next_point_code = '" + pointCode + "') AND is_delete = '0' AND task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'")
|
||||
// .uniqueResult(0);
|
||||
// if (ObjectUtil.isNotEmpty(task)) {
|
||||
// resultJSON.put("code", "0");
|
||||
// resultJSON.put("desc", "当前点位存在未完成的指令");
|
||||
// return resultJSON;
|
||||
// }
|
||||
//
|
||||
// // 修改点位
|
||||
// point.put("point_status", pointStatus);
|
||||
// pointTable.update(point);
|
||||
//
|
||||
// if (StrUtil.equals(pointStatus, "03") && StrUtil.equals(point.getString("point_type"), "01")) {
|
||||
// // 如果是有料桶且是仓位(待检区),则需要修改库存表
|
||||
// WQLObject structTable = WQLObject.getWQLObject("st_ivt_structivt");
|
||||
// JSONObject struct = structTable
|
||||
// .query("struct_id = " + pointId)
|
||||
// .uniqueResult(0);
|
||||
//
|
||||
// if (ObjectUtil.isEmpty(struct)) {
|
||||
// // 当前库存为空,则添加库存
|
||||
// struct = new JSONObject();
|
||||
// struct.put("stockrecord_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||
// struct.put("struct_id", pointId);
|
||||
// struct.put("struct_code", point.get("point_code"));
|
||||
// struct.put("struct_name", point.get("point_name"));
|
||||
// struct.put("region_id", point.get("region_id"));
|
||||
// struct.put("quality_scode", qualityScode);
|
||||
// structTable.insert(struct);
|
||||
// } else {
|
||||
// // 当前存在库存,则更新库存
|
||||
// struct.put("quality_scode", qualityScode);
|
||||
// structTable.update(struct);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 返回
|
||||
// resultJSON.put("code", "1");
|
||||
// resultJSON.put("desc", "绑定成功");
|
||||
// return resultJSON;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,11 +28,18 @@ public class SendMaterialController {
|
||||
*
|
||||
* @return 双层数组,外层区域,内层点位
|
||||
*/
|
||||
@PostMapping("/queryRegion")
|
||||
@Log("查询区域点位")
|
||||
@ApiOperation("查询区域点位")
|
||||
public ResponseEntity<JSONObject> queryRegion() {
|
||||
return new ResponseEntity<>(sendMaterialService.queryRegion(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/queryPoint")
|
||||
@Log("查询区域点位")
|
||||
@ApiOperation("查询区域点位")
|
||||
public ResponseEntity<JSONObject> queryPoint() {
|
||||
return new ResponseEntity<>(sendMaterialService.queryPoint(), HttpStatus.OK);
|
||||
public ResponseEntity<Object> queryPoint(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(sendMaterialService.queryPoint(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/confirm")
|
||||
|
||||
@@ -9,7 +9,13 @@ public interface SendMaterialService {
|
||||
*
|
||||
* @return 双层数组,外层区域,内层点位
|
||||
*/
|
||||
JSONObject queryPoint();
|
||||
JSONObject queryRegion();
|
||||
|
||||
/**
|
||||
* 查询区域点位
|
||||
* @return json
|
||||
*/
|
||||
JSONObject queryPoint(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 送料确定
|
||||
|
||||
@@ -27,7 +27,7 @@ public class SendMaterialServiceImpl implements SendMaterialService {
|
||||
private final SendMaterialTask sendMaterialTask;
|
||||
|
||||
@Override
|
||||
public JSONObject queryPoint() {
|
||||
public JSONObject queryRegion() {
|
||||
// 返回值
|
||||
JSONObject resultJSON = new JSONObject();
|
||||
|
||||
@@ -56,83 +56,45 @@ public class SendMaterialServiceImpl implements SendMaterialService {
|
||||
return resultJSON;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject queryPoint(JSONObject whereJson) {
|
||||
// 返回值
|
||||
JSONObject resultJSON = new JSONObject();
|
||||
|
||||
// 查询所有区域
|
||||
JSONArray result = WQL
|
||||
.getWO("PDA_SENDMATERIAL_01")
|
||||
.addParam("flag", "3")
|
||||
.addParam("region_id", whereJson.getString("region_id"))
|
||||
.process()
|
||||
.getResultJSONArray(0);
|
||||
|
||||
resultJSON.put("pointArr", result);
|
||||
resultJSON.put("code", "1");
|
||||
resultJSON.put("desc", "查询成功");
|
||||
return resultJSON;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public JSONObject confirm(JSONObject param) {
|
||||
// 返回值
|
||||
JSONObject resultJSON = new JSONObject();
|
||||
|
||||
// 参数校验
|
||||
String startRegionId = param.getString("start_region_id");
|
||||
if (StrUtil.isEmpty(startRegionId)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "起点区域不能为空");
|
||||
return resultJSON;
|
||||
}
|
||||
String startPointCode = param.getString("start_point_code");
|
||||
if (StrUtil.isEmpty(startPointCode)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "起点不能为空");
|
||||
return resultJSON;
|
||||
}
|
||||
String nextRegionId = param.getString("next_region_id");
|
||||
if (StrUtil.isEmpty(nextRegionId)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "终点区域不能为空");
|
||||
return resultJSON;
|
||||
}
|
||||
String nextPointCode = param.getString("next_point_code");
|
||||
if (StrUtil.isEmpty(nextPointCode)) {
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", "终点不能为空");
|
||||
return resultJSON;
|
||||
}
|
||||
|
||||
WQLObject regionIOTable = WQLObject.getWQLObject("st_ivt_regionio");
|
||||
long id = IdUtil.getSnowflake(1, 1).nextId();
|
||||
try {
|
||||
// 创建搬运记录
|
||||
RegionioDto dto = new RegionioDto();
|
||||
Long currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getNickName();
|
||||
String now = DateUtil.now();
|
||||
dto.setIostorinv_id(id);
|
||||
dto.setBill_code(CodeUtil.getNewCode("IN_STORE_CODE"));
|
||||
dto.setIo_type("0");
|
||||
dto.setBill_status("10");
|
||||
dto.setStart_region_id(startRegionId);
|
||||
dto.setStart_point_code(startPointCode);
|
||||
dto.setEnd_region_id(nextRegionId);
|
||||
dto.setEnd_point_code(nextPointCode);
|
||||
dto.setCreate_mode("02");
|
||||
dto.setCreate_id(currentUserId);
|
||||
dto.setCreate_name(nickName);
|
||||
dto.setUpdate_optid(currentUserId);
|
||||
dto.setUpdate_optname(nickName);
|
||||
dto.setUpdate_time(now);
|
||||
dto.setCreate_time(now);
|
||||
regionIOTable.insert(JSONObject.parseObject(JSON.toJSONString(dto)));
|
||||
|
||||
// 创建任务并自动下发
|
||||
String taskId = sendMaterialTask.createTask(param);
|
||||
|
||||
// 创建并下发成功后更新搬运记录
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("task_id", taskId);
|
||||
json.put("bill_status", "20");
|
||||
regionIOTable.update(json, "iostorinv_id = " + id);
|
||||
} catch (Exception e) {
|
||||
// 手动回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
|
||||
resultJSON.put("code", "0");
|
||||
resultJSON.put("desc", e.getMessage());
|
||||
return resultJSON;
|
||||
String point_id=param.getString("point_id");
|
||||
int type=param.getIntValue("type");
|
||||
String quality_scode=param.getString("quality_scode");
|
||||
WQLObject ivtTab = WQLObject.getWQLObject("st_ivt_structivt");
|
||||
JSONObject ivt_json = ivtTab.query("struct_id ='" + point_id + "'").uniqueResult(0);
|
||||
if (type==1) {
|
||||
ivt_json.put("quality_scode",quality_scode);
|
||||
}else if (type==2){
|
||||
ivt_json.put("quality_scode",null);
|
||||
}
|
||||
ivtTab.update(ivt_json);
|
||||
|
||||
// 返回
|
||||
resultJSON.put("code", "1");
|
||||
resultJSON.put("desc", "搬运任务已生成");
|
||||
resultJSON.put("desc", "更新成功");
|
||||
return resultJSON;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,4 +68,33 @@
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
P.point_id,
|
||||
P.point_code,
|
||||
P.point_name,
|
||||
P.point_status,
|
||||
S.quality_scode,
|
||||
S.product_code,
|
||||
S.batch_code,
|
||||
S.product_specifications,
|
||||
S.weight,
|
||||
S.time
|
||||
FROM
|
||||
sch_base_point p
|
||||
LEFT JOIN
|
||||
st_ivt_StructIvt s
|
||||
ON
|
||||
p.point_code = s.struct_code
|
||||
WHERE
|
||||
p.is_used = '1'
|
||||
OPTION 输入.region_id <> ""
|
||||
p.region_id = 输入.region_id
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -0,0 +1,49 @@
|
||||
package org.nl.wms.sch.service.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class VehicleDto implements Serializable {
|
||||
|
||||
/** 组盘标识 */
|
||||
private String group_id;
|
||||
/** 载具编码 */
|
||||
private String vehicle_code;
|
||||
/** 重量 */
|
||||
private String weight;
|
||||
/** 产品名称 */
|
||||
private String product_code;
|
||||
/** 批次号 */
|
||||
private String batch_code;
|
||||
/** 产品规格 */
|
||||
private String product_specifications;
|
||||
/** 时间 */
|
||||
private String time;
|
||||
/** 是否合格 */
|
||||
private String qualityScode;
|
||||
/** 是否删除 */
|
||||
private Integer is_delete;
|
||||
|
||||
/** 创建人 */
|
||||
private String create_name;
|
||||
|
||||
/** 创建时间 */
|
||||
private String create_time;
|
||||
|
||||
/** 修改人 */
|
||||
private Long update_optid;
|
||||
|
||||
/** 修改人 */
|
||||
private String update_optname;
|
||||
|
||||
/** 修改时间 */
|
||||
private String update_time;
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
ENV = 'development'
|
||||
|
||||
# 接口地址
|
||||
VUE_APP_BASE_API = 'http://localhost:8010'
|
||||
VUE_APP_WS_API = 'ws://localhost:8010'
|
||||
VUE_APP_BASE_API = 'http://127.0.0.1:8011'
|
||||
VUE_APP_WS_API = 'ws://127.0.0.1:8011'
|
||||
|
||||
# 是否启用 babel-plugin-dynamic-import-node插件
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
||||
@@ -25,7 +25,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '永裕家居LMS系统',
|
||||
title: '迦南LMS系统',
|
||||
logo: Logo
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user