Merge remote-tracking branch 'origin/master_merge' into master_merge
This commit is contained in:
@@ -83,4 +83,11 @@ public class ProductOutTwoController {
|
||||
return new ResponseEntity<>(TableDataInfo.build(productOutTwoService.woodenBoxPoint(whereJson)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/boxOut")
|
||||
@Log("木箱出库")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> boxOut(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(productOutTwoService.boxOut(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.pda.service.VehicleTwoService;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author liuxy
|
||||
@@ -29,8 +31,10 @@ public class VehicleTwoController {
|
||||
@Autowired
|
||||
private VehicleTwoService vehicleTwoService;
|
||||
|
||||
@Resource
|
||||
@Autowired
|
||||
private IbstIvtPackageinfoivtService bstIvtPackageInfoIvtService;
|
||||
@Autowired
|
||||
private IpdmBiSubpackagerelationService subpackagerelationService;
|
||||
|
||||
|
||||
@PostMapping("/vehicleIn")
|
||||
@@ -69,4 +73,11 @@ public class VehicleTwoController {
|
||||
return new ResponseEntity<>(bstIvtPackageInfoIvtService.update(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/toEndSub")
|
||||
@Log("二期子卷包装解绑")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> toEndSub(@RequestBody JSONObject whereJson) {
|
||||
Map result = subpackagerelationService.toEndSubpackagerelation(whereJson.getString("container_name"));
|
||||
return new ResponseEntity<>(result, HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,4 +84,10 @@ public interface ProductOutTwoService {
|
||||
*/
|
||||
List<JSONObject> woodenBoxPoint(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 要出库的木箱明细
|
||||
* @param whereJson 、
|
||||
* @return 、
|
||||
*/
|
||||
JSONObject boxOut(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -13,11 +13,13 @@ import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
|
||||
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxlashboundService;
|
||||
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxlashbound;
|
||||
import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.pda.st.service.impl.ProductionOutServiceImpl;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -46,6 +48,9 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService {
|
||||
@Autowired
|
||||
private IPdmBiOrderbominfoService iPdmBiOrderbominfoService;
|
||||
|
||||
@Autowired
|
||||
private OutBoxManageService outBoxManageService;
|
||||
|
||||
|
||||
@Override
|
||||
public JSONObject ivtQuery(JSONObject whereJson) {
|
||||
@@ -190,4 +195,24 @@ public class ProductOutTwoServiceImpl implements ProductOutTwoService {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject boxOut(JSONObject whereJson) {
|
||||
// 判断当前是否有正在出库的空托盘任务
|
||||
JSONArray resultJSONArray = WQLObject.getWQLObject("sch_base_task")
|
||||
.query("task_type = '010706' and task_status < '" + TaskStatusEnum.FINISHED.getCode() + "' and is_delete = '0'")
|
||||
.getResultJSONArray(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(resultJSONArray)) {
|
||||
throw new BadRequestException("当前正在执行空托盘出库任务,请稍后再出库!");
|
||||
}
|
||||
|
||||
List<JSONObject> data = whereJson.getJSONArray("data").toJavaList(JSONObject.class);
|
||||
outBoxManageService.publicBoxOut(data);
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("message", "下发出库成功!");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,6 +115,13 @@ public interface IpdmBiSubpackagerelationService extends IService<PdmBiSubpackag
|
||||
void createSubTest(JSONObject jo);
|
||||
|
||||
|
||||
/**
|
||||
* 解绑子卷包装
|
||||
* @param code
|
||||
*/
|
||||
Map toEndSubpackagerelation(String code);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.dto.PdmBiSubpackagerelationDto;
|
||||
import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService;
|
||||
import org.nl.b_lms.pdm_manage.enums.SUBEnum;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
@@ -45,6 +46,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxMana
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
@@ -58,6 +60,7 @@ import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -369,6 +372,15 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
throw new BadRequestException("当前木箱"+boxSn+"库存信息查询不到,请确认");
|
||||
}
|
||||
JSONObject boxAttr = boxAttrs.getJSONObject(0);
|
||||
|
||||
int hasTask = taskService.count(new QueryWrapper<SchBaseTask>()
|
||||
.eq("is_delete", "0")
|
||||
.eq("point_code1", boxAttr.getString("struct_code"))
|
||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
if (hasTask>0){
|
||||
throw new BadRequestException("当前空木箱"+boxSn+"存在正在执行的任务,稍后再操作");
|
||||
}
|
||||
|
||||
String task_group_id = null;
|
||||
if (boxAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) {
|
||||
JSONObject 浅Attr = attrTab
|
||||
@@ -380,20 +392,20 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
// 判断浅货位木箱和深货位木箱是否相同规格
|
||||
task_group_id = outBoxManageService.createBoxMove(浅Attr);
|
||||
} else if(!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("木箱出库锁"))) {
|
||||
// 判断是否是空木箱出库锁
|
||||
} else if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("验箱出库锁"))) {
|
||||
int 浅Task = taskService.count(new QueryWrapper<SchBaseTask>()
|
||||
.eq("is_delete", "0")
|
||||
.eq("point_code1", 浅Attr.getString("struct_code"))
|
||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
if (浅Task == 0){
|
||||
task_group_id = outBoxManageService.createBoxMove(浅Attr);
|
||||
}
|
||||
}else {
|
||||
throw new BadRequestException("当前木箱所在货位"+boxAttr.getString("struct_code")+"对应浅货位存在任务"+浅Attr.getString("task_code"));
|
||||
}
|
||||
}
|
||||
}
|
||||
int moveTask = taskService.count(new QueryWrapper<SchBaseTask>()
|
||||
.eq("task_type", "010704")
|
||||
.eq("is_delete", "0")
|
||||
.eq("point_code1", boxAttr.getString("struct_code"))
|
||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
if (moveTask>0){
|
||||
throw new BadRequestException("当前子卷已经装箱入库");
|
||||
}
|
||||
|
||||
// 生成任务
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
jsonTaskParam.put("task_type", "010704");
|
||||
@@ -701,6 +713,27 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map toEndSubpackagerelation(String code) {
|
||||
HashMap result = MapOf.of("status", HttpStatus.OK.value());
|
||||
result.put("message", code+"子卷包装解除成功");
|
||||
if (StringUtils.isEmpty(code)){
|
||||
throw new BadRequestException("子卷编码不能为空");
|
||||
}
|
||||
PdmBiSubpackagerelation containerName = this.getOne(new QueryWrapper<PdmBiSubpackagerelation>().eq("container_name", code));
|
||||
if (containerName==null){
|
||||
throw new BadRequestException("当前子卷"+code+"还未生成子卷包装");
|
||||
}
|
||||
if (SUBEnum.STATUS.code("入库").equals(containerName.getStatus())
|
||||
||SUBEnum.STATUS.code("出库").equals(containerName.getStatus())){
|
||||
throw new BadRequestException("当前子卷"+code+"已完成出入库不允许手动解除");
|
||||
}
|
||||
if (StringUtils.isNotEmpty(containerName.getPackage_box_sn())){
|
||||
result.put("message", code+"子卷包装解除成功,同时确认MES装箱以解绑定");
|
||||
}
|
||||
this.removeById(containerName.getWorkorder_id());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,198 @@
|
||||
package org.nl.b_lms.sch.tasks;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.nl.wms.util.TaskUtil.getRoutePlanCode;
|
||||
|
||||
/**
|
||||
* 二期空木箱出库任务类(异常口)
|
||||
* Created by Lxy on 2024/1/19.
|
||||
*/
|
||||
@Service
|
||||
public class TwoOutBoxExcepTask extends AbstractAcsTask {
|
||||
|
||||
/**
|
||||
* 处理类
|
||||
*/
|
||||
private final String THIS_CLASS = TwoOutBoxExcepTask.class.getName();
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
/*
|
||||
* 下发给ACS时需要特殊处理
|
||||
*/
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONArray arr = taskTab.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' AND point_code2 = 'CK2001' order by create_time").getResultJSONArray(0);
|
||||
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(json.getString("task_id"))
|
||||
.task_code(json.getString("task_code"))
|
||||
.route_plan_code(getRoutePlanCode(json.getString("point_code1")))
|
||||
.task_type(json.getString("acs_task_type"))
|
||||
.start_device_code(json.getString("point_code1"))
|
||||
.next_device_code(json.getString("point_code2"))
|
||||
.vehicle_code(json.getString("vehicle_code2"))
|
||||
.vehicle_code2(json.getString("vehicle_code"))
|
||||
.interaction_json(json.getJSONObject("request_param"))
|
||||
.priority(json.getString("priority"))
|
||||
.class_type(json.getString("task_type"))
|
||||
.dtl_type(String.valueOf(dtl_type))
|
||||
.product_area(IOSEnum.PRODUCT_AREA.code("BLK"))
|
||||
.remark(json.getString("remark"))
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
|
||||
// 更新任务为下发
|
||||
JSONObject paramMap = new JSONObject();
|
||||
paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode());
|
||||
taskTab.update(paramMap, "task_id ='" + json.getString("task_id") + "'");
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
// 仓位表
|
||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||
// 任务表
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
// 载具信息表
|
||||
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
|
||||
JSONObject jsonTask = taskTab.query("task_id = '" + taskObj.getString("task_id") + "'").uniqueResult(0);
|
||||
|
||||
// 更新任务的参数
|
||||
JSONObject map = new JSONObject();
|
||||
|
||||
/*
|
||||
* 1-执行中, 2-完成 ,0-acs取消
|
||||
*/
|
||||
// 执行中
|
||||
if (status.equals(TaskStatusEnum.EXECUTING.getCode())) {
|
||||
|
||||
map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
|
||||
// 完成
|
||||
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
// 更新仓位
|
||||
JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
jsonAttr.put("storagevehicle_code", "");
|
||||
attrTab.update(jsonAttr);
|
||||
|
||||
// 更新载具信息表
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("pcsn", "");
|
||||
extTab.update(param,"pcsn = '"+jsonTask.getString("vehicle_code") +"'");
|
||||
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (taskObj.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务已执行不能取消");
|
||||
}
|
||||
// 更新任务表删除字段
|
||||
map.put("is_delete", IOSEnum.IS_NOTANDYES.code("是"));
|
||||
// 解锁仓位
|
||||
JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||
attrTab.update(jsonAttr);
|
||||
}
|
||||
map.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
map.put("update_optname", SecurityUtils.getCurrentNickName());
|
||||
map.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void findStartPoint() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void findNextPoint() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createTask(JSONObject form) {
|
||||
|
||||
if (StrUtil.isBlank(form.getString("task_type"))) {
|
||||
throw new BadRequestException("业务类型不能为空!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(form.getString("start_device_code"))) {
|
||||
throw new BadRequestException("起点不能为空!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(form.getString("next_device_code"))) {
|
||||
throw new BadRequestException("终点不能为空!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(form.getString("vehicle_code"))) {
|
||||
throw new BadRequestException("木箱号不能为空!");
|
||||
}
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("vehicle_code2", form.getString("vehicle_code2"));
|
||||
json.put("vehicle_type", form.getString("vehicle_type"));
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
json.put("task_group_id", form.getLongValue("task_group_id"));
|
||||
json.put("point_code1", form.getString("start_device_code"));
|
||||
json.put("point_code2", form.getString("next_device_code"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
json.put("handle_class", this.getClass().getName());
|
||||
json.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
json.put("create_name", SecurityUtils.getCurrentUsername());
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("priority", form.getString("priority"));
|
||||
json.put("acs_task_type", "7");
|
||||
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(json);
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void forceFinish(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消"));
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ import org.nl.b_lms.sch.point.dao.StIvtCutpointivt;
|
||||
import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
@@ -111,17 +112,22 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
log.info("起点数据:{}", point1);
|
||||
log.info("终点数据:{}", point2);
|
||||
// 更新分切计划
|
||||
// 下来的分切计划状态:06 -> 09
|
||||
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||
p.setStatus("09");
|
||||
p.setEnd_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||
// 下来的分切计划状态:06 -> 09, 设置重量
|
||||
List<String> downQzzNos = Stream.of(tmpUpQzzNo, tmpDownQzzNo)
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
log.info("即将下卷的上下轴的气胀轴编码数据:{}", downQzzNos);
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, downQzzNos));
|
||||
List<PdmBiSlittingproductionplan> downPlans = slittingproductionplanService.getByQzzNos(downQzzNos);
|
||||
SlitterTaskUtil.setPaperWeightStr(point1.getRemark(), downPlans);
|
||||
downPlans.forEach(downPlan -> {
|
||||
downPlan.setStatus("09");
|
||||
downPlan.setEnd_time(DateUtil.now());
|
||||
TaskUtils.updateOptMessageBySlitterPlan(downPlan);
|
||||
});
|
||||
slittingproductionplanService.updateBatchById(downPlans);
|
||||
// 设置完了就清空
|
||||
point1.setRemark("");
|
||||
// 上去的分切计划状态:04 -> 05
|
||||
PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||
p.setStatus("05");
|
||||
p.setEnd_time("");
|
||||
List<String> upQzzNos = Stream.of(point2.getQzz_no1(), point2.getQzz_no2())
|
||||
@@ -130,6 +136,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
if (upQzzNos.size() > 0) {
|
||||
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.getByQzzNos(upQzzNos);
|
||||
PdmBiSlittingproductionplan pp = plans.get(0);
|
||||
// 需要把重量记录到分切机上
|
||||
point1.setRemark(SlitterTaskUtil.getPaperWeightStr(plans));
|
||||
if (pp.getContainer_name().contains("虚拟")) {
|
||||
// 如果是虚拟卷,需要执行删除标记,并且清空数据
|
||||
// 将分切计划删除,设备禁用
|
||||
@@ -142,7 +150,6 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
});
|
||||
slittingproductionplanService.updateBatchById(plans);
|
||||
// 设备禁用
|
||||
point1.setIs_used("0");
|
||||
point1.setUp_qzzno("");
|
||||
point1.setDown_qzzno("");
|
||||
} else {
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.nl.b_lms.sch.point.dao.StIvtCutpointivt;
|
||||
import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
@@ -112,6 +113,7 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.getByQzzNos(collect);
|
||||
PdmBiSlittingproductionplan pp = plans.get(0);
|
||||
String weightStr = SlitterTaskUtil.getPaperWeightStr(plans);
|
||||
if (pp.getContainer_name().contains("虚拟")) {
|
||||
// 如果是虚拟卷,需要执行删除标记,并且清空数据
|
||||
// 将分切计划删除,设备禁用
|
||||
@@ -124,7 +126,6 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
});
|
||||
slittingproductionplanService.updateBatchById(plans);
|
||||
// 设备禁用
|
||||
point2.setIs_used("0");
|
||||
point2.setUp_qzzno("");
|
||||
point2.setDown_qzzno("");
|
||||
} else {
|
||||
@@ -134,6 +135,7 @@ public class UpShaftTrussTask extends AbstractAcsTask {
|
||||
slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getQzzno, collect));
|
||||
}
|
||||
point2.setRemark(weightStr);
|
||||
cutpointivtService.updateById(point2);
|
||||
point1.setQzz_no1("");
|
||||
point1.setQzz_no2("");
|
||||
|
||||
@@ -514,19 +514,19 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
String area = device.getProduct_area();
|
||||
// 获取当前分切机的下一组分切计划(最多四条分切计划)
|
||||
// hint: 获取到的分切可能是不同组的但具有一定时间顺序
|
||||
List<PdmBiSlittingproductionplan> timePlans = slittingproductionplanService.list(
|
||||
new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.eq(PdmBiSlittingproductionplan::getResource_name, device.getExt_code())
|
||||
.eq(PdmBiSlittingproductionplan::getStatus, "03")
|
||||
.eq(PdmBiSlittingproductionplan::getIs_delete, "0")
|
||||
.orderByAsc(PdmBiSlittingproductionplan::getUpdate_time));
|
||||
log.info("获取下一组分切计划(可能存在脏数据):{}", timePlans);
|
||||
// List<PdmBiSlittingproductionplan> timePlans = slittingproductionplanService.list(
|
||||
// new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
// .eq(PdmBiSlittingproductionplan::getResource_name, actualDeviceCode)
|
||||
// .eq(PdmBiSlittingproductionplan::getStatus, "03")
|
||||
// .eq(PdmBiSlittingproductionplan::getIs_delete, "0")
|
||||
// .orderByAsc(PdmBiSlittingproductionplan::getUpdate_time));
|
||||
// log.info("获取下一组分切计划(可能存在脏数据):{}", timePlans);
|
||||
// 寻找备好轴的对接点位
|
||||
List<BstIvtCutpointivt> cutPointList = slitterMapper.getReadyShaftPoint(device.getExt_code());
|
||||
List<BstIvtCutpointivt> cutPointList = slitterMapper.getReadyShaftPoint(actualDeviceCode);
|
||||
// 任务参数
|
||||
JSONObject taskParam = new JSONObject();
|
||||
taskParam.put("containers", containers);
|
||||
if (timePlans.size() == 0 || cutPointList.size() == 0) {
|
||||
if (cutPointList.size() == 0) {
|
||||
// 如果没有下一组的分切计划,就只做下卷任务(判断下单/下双)
|
||||
// 获取分切对接位没任务的空位置
|
||||
List<BstIvtCutpointivt> emptyPoints = slitterMapper.getEmptyCutPointNotTask(area,
|
||||
@@ -580,19 +580,16 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
}
|
||||
}
|
||||
}
|
||||
PdmBiSlittingproductionplan tmpPlan = timePlans.get(0);
|
||||
// hint: 以第一条为准,过滤和第一条同组同母卷的分切计划
|
||||
List<PdmBiSlittingproductionplan> nextPlans = timePlans.stream()
|
||||
.filter(plan -> plan.getParent_container_name().equals(tmpPlan.getParent_container_name())
|
||||
&& plan.getRestruct_container_name().equals(tmpPlan.getRestruct_container_name())
|
||||
&& plan.getSplit_group().equals(tmpPlan.getSplit_group()))
|
||||
// 找到该分切计划的点位
|
||||
BstIvtCutpointivt newCutPoint = cutPointList.get(0);
|
||||
List<String> qzznos = Stream.of(newCutPoint.getQzz_no1(), newCutPoint.getQzz_no2()).filter(ObjectUtil::isNotEmpty)
|
||||
.collect(Collectors.toList());
|
||||
// hint: 以第一条为准,过滤和第一条同组同母卷的分切计划
|
||||
List<PdmBiSlittingproductionplan> nextPlans = slittingproductionplanService.getByQzzNos(qzznos);
|
||||
log.info("获取下一趟分切计划数据:{}", nextPlans);
|
||||
// 筛选上下轴各一条
|
||||
PdmBiSlittingproductionplan nextUpPlan = nextPlans.stream().filter(p -> "1".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
PdmBiSlittingproductionplan nextDownPlan = nextPlans.stream().filter(p -> "2".equals(p.getUp_or_down())).findFirst().orElse(null);
|
||||
// 找到该分切计划的点位
|
||||
BstIvtCutpointivt newCutPoint = cutPointList.get(0);
|
||||
String binaryExpress = TaskUtils.binaryConvertExpress(currentUpPlan, currentDownPlan, nextUpPlan, nextDownPlan);
|
||||
switch (binaryExpress) {
|
||||
case "00":
|
||||
|
||||
@@ -9,6 +9,8 @@ import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingprodu
|
||||
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -308,4 +310,103 @@ public class SlitterTaskUtil {
|
||||
String[] split = paperStr.replaceAll("\\|[\\u4e00-\\u9fa5]+$", "").split("\\|");
|
||||
return split[split.length - 1];
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置重量
|
||||
* @param plans 分切计划
|
||||
* @return 0,0,0,0
|
||||
*/
|
||||
public static void setPaperWeightStr(String weightStr, List<PdmBiSlittingproductionplan> plans) {
|
||||
// 1. 校验输入格式
|
||||
String[] parts = weightStr.split(",");
|
||||
if (parts.length != 4) {
|
||||
// 没有数据则不修改
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 遍历四个位置
|
||||
for (int index = 0; index < 4; index++) {
|
||||
// 解析重量值(自动四舍五入到两位小数)
|
||||
String strValue = parts[index];
|
||||
BigDecimal value;
|
||||
try {
|
||||
value = new BigDecimal(strValue).setScale(2, RoundingMode.HALF_UP);
|
||||
} catch (NumberFormatException e) {
|
||||
continue; // 跳过无效数值
|
||||
}
|
||||
|
||||
// 3. 根据索引确定位置规则
|
||||
String expectedUp, expectedLeft;
|
||||
switch (index) {
|
||||
case 0: // 上左
|
||||
expectedUp = "1";
|
||||
expectedLeft = "1";
|
||||
break;
|
||||
case 1: // 上右
|
||||
expectedUp = "1";
|
||||
expectedLeft = "2";
|
||||
break;
|
||||
case 2: // 下左
|
||||
expectedUp = "2";
|
||||
expectedLeft = "1";
|
||||
break;
|
||||
case 3: // 下右
|
||||
expectedUp = "2";
|
||||
expectedLeft = "2";
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("非法索引: " + index);
|
||||
}
|
||||
|
||||
// 4. 在集合中查找匹配项并更新
|
||||
for (PdmBiSlittingproductionplan plan : plans) {
|
||||
if (expectedUp.equals(plan.getUp_or_down()) &&
|
||||
expectedLeft.equals(plan.getLeft_or_right())) {
|
||||
plan.setPaper_weight(value.toString());
|
||||
break; // 找到后跳出循环
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取重量
|
||||
* @param plans 分切计划
|
||||
* @return 0,0,0,0
|
||||
*/
|
||||
public static String getPaperWeightStr(List<PdmBiSlittingproductionplan> plans) {
|
||||
String[] weights = new String[4];
|
||||
Arrays.fill(weights, "0");
|
||||
|
||||
for (PdmBiSlittingproductionplan plan : plans) {
|
||||
// 1. 获取重量并四舍五入
|
||||
String weightStr = plan.getPaper_weight();
|
||||
BigDecimal weight;
|
||||
try {
|
||||
weight = new BigDecimal(weightStr);
|
||||
} catch (Exception e) {
|
||||
continue;
|
||||
}
|
||||
BigDecimal rounded = weight.setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
// 2. 根据位置确定数组索引
|
||||
String upDown = plan.getUp_or_down();
|
||||
String leftRight = plan.getLeft_or_right();
|
||||
int index = -1;
|
||||
|
||||
if ("1".equals(upDown)) {
|
||||
index = ("1".equals(leftRight)) ? 0 : 1;
|
||||
} else {
|
||||
index = ("1".equals(leftRight)) ? 2 : 3;
|
||||
}
|
||||
|
||||
// 3. 更新对应位置的重量(格式化为两位小数)
|
||||
if (index >= 0 && index < 4) {
|
||||
weights[index] = rounded.toString();
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 拼接结果字符串
|
||||
return String.join(",", weights);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoMoveBoxTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutBoxExcepTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutBoxTask;
|
||||
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
|
||||
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
|
||||
@@ -210,7 +211,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!"+jsonAttr.getString("storagevehicle_code"));
|
||||
}
|
||||
// 锁定起点
|
||||
jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("木箱出库锁"));
|
||||
jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("验箱出库锁"));
|
||||
attrTab.update(jsonAttr);
|
||||
// 清空缓存
|
||||
notOutRowList.clear();
|
||||
@@ -737,4 +738,132 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
|
||||
return jsonTaskParam.getString("task_group_id");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void publicBoxOut(List<JSONObject> list) {
|
||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
|
||||
// 查询需要出库的仓位信息
|
||||
String struct_code_in = list.stream()
|
||||
.map(row -> row.getString("struct_code"))
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> attrList = attrTab.query("struct_code in ('" + struct_code_in + "') AND sect_code = 'BZC01'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 获取这些仓位的每排仓位
|
||||
String row_num_in = attrList.stream()
|
||||
.map(row -> row.getString("row_num"))
|
||||
.distinct()
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> allList = attrTab.query("row_num IN ('" + row_num_in + "') AND sect_code = 'BZC01' AND is_delete = '0'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 查询木箱对应的托盘号
|
||||
String box_no_in = list.stream()
|
||||
.map(row -> row.getString("box_no"))
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
List<JSONObject> extList = extTab.query("pcsn IN ('" + box_no_in + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 需要移库的木箱仓位
|
||||
ArrayList<JSONObject> moveList = new ArrayList<>();
|
||||
|
||||
// 创建任务
|
||||
for (JSONObject json : attrList) {
|
||||
// 判断是否是深货位
|
||||
if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) {
|
||||
// 查询对应的浅货位
|
||||
JSONObject jsonShallow = allList.stream()
|
||||
.filter(row -> row.getString("row_num").equals(json.getString("row_num")) &&
|
||||
row.getString("col_num").equals(json.getString("col_num")) &&
|
||||
row.getString("layer_num").equals(json.getString("layer_num")) &&
|
||||
row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))
|
||||
)
|
||||
.findFirst().orElse(null);
|
||||
if (ObjectUtil.isEmpty(jsonShallow)) {
|
||||
throw new BadRequestException("仓位【"+json.getString("struct_code")+"】对应的浅货位信息错误!");
|
||||
}
|
||||
|
||||
// 判断浅货位是否有空木箱
|
||||
if (ObjectUtil.isNotEmpty(jsonShallow.getString("storagevehicle_code"))) {
|
||||
// 判断是否是当前需要出库的集合当中
|
||||
int size = (int) attrList.stream()
|
||||
.filter(row -> row.getString("struct_code").equals(jsonShallow.getString("struct_code"))).count();
|
||||
|
||||
// 不在要出库的集合当中
|
||||
if (size == 0) {
|
||||
// 判断是否被锁定
|
||||
if (jsonShallow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
// 加入要移库的集合当中
|
||||
moveList.add(jsonShallow);
|
||||
} else if (!jsonShallow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("木箱出库锁"))
|
||||
&& (!jsonShallow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("移出锁")))
|
||||
) {
|
||||
throw new BadRequestException("仓位【"+jsonShallow.getString("struct_code")+"】被锁定,无法生成移库任务!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 校验木箱是否绑定了托盘
|
||||
JSONObject jsonExt = extList.stream()
|
||||
.filter(row -> row.getString("pcsn").equals(json.getString("storagevehicle_code")))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonExt)) {
|
||||
throw new BadRequestException("此木箱【"+json.getString("storagevehicle_code")+"】没有绑定托盘,请核查");
|
||||
}
|
||||
|
||||
// 创建任务
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
jsonTaskParam.put("task_type", "010704");
|
||||
jsonTaskParam.put("start_device_code", json.getString("struct_code"));
|
||||
jsonTaskParam.put("next_device_code", IOSEnum.EXCEP_OUT.code("异常出库口"));
|
||||
jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("vehicle_code2", jsonExt.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("task_group_id", IdUtil.getStringId());
|
||||
jsonTaskParam.put("priority", json.getString("zdepth"));
|
||||
JSONObject request_param = new JSONObject();
|
||||
request_param.put("containerType", json.getString("storagevehicle_type"));
|
||||
jsonTaskParam.put("request_param", request_param.toString());
|
||||
TwoOutBoxExcepTask twoOutBoxExcepTask = new TwoOutBoxExcepTask();
|
||||
twoOutBoxExcepTask.createTask(jsonTaskParam);
|
||||
|
||||
// 更新仓位锁定状态
|
||||
json.put("lock_type", IOSEnum.LOCK_TYPE.code("木箱出库锁"));
|
||||
attrTab.update(json);
|
||||
}
|
||||
|
||||
// 查询移库木箱对应的托盘
|
||||
String storagevehicle_code_in = moveList.stream()
|
||||
.map(row -> row.getString("storagevehicle_code"))
|
||||
.collect(Collectors.joining("','"));
|
||||
List<JSONObject> extMoveList = extTab.query("pcsn IN ('" + storagevehicle_code_in + "')")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
// 此循环为防止下发一部分后报错无法回滚
|
||||
moveList.forEach(item -> {
|
||||
// 校验木箱和托盘是否绑定
|
||||
JSONObject jsonExtMove = extMoveList.stream()
|
||||
.filter(row -> row.getString("pcsn").equals(item.getString("storagevehicle_code")))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonExtMove)) {
|
||||
throw new BadRequestException("此移库木箱【"+jsonExtMove.getString("storagevehicle_code")+"】没有绑定托盘,请核查");
|
||||
}
|
||||
});
|
||||
|
||||
// 生成移库任务
|
||||
for (JSONObject jsonMove : moveList) {
|
||||
// 调用接口生成木箱移库任务
|
||||
this.createBoxMove(jsonMove);
|
||||
}
|
||||
|
||||
// 下发木箱出库任务
|
||||
new TwoOutBoxExcepTask().immediateNotifyAcs(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 空木箱业务处理 服务类
|
||||
@@ -52,4 +54,10 @@ public interface OutBoxManageService {
|
||||
*/
|
||||
public String createBoxMove(JSONObject jsonObject);
|
||||
|
||||
/**
|
||||
* 根据木箱号出库公共方法(多条数据)
|
||||
* @param list 需要出库的木箱集合
|
||||
*/
|
||||
void publicBoxOut(List<JSONObject> list);
|
||||
|
||||
}
|
||||
|
||||
@@ -25,38 +25,40 @@
|
||||
sys_user.extuser_id as extuserId
|
||||
</sql>
|
||||
<insert id="insertDataPermission">
|
||||
INSERT INTO sys_user_data_permission(user_id, permission_scope_type, permission_id)
|
||||
VALUES (#{dataPermission.user_id}, #{dataPermission.permission_scope_type}, #{dataPermission.permission_id})
|
||||
INSERT INTO sys_user_data_permission(user_id, permission_scope_type, permission_id) VALUES (#{dataPermission.user_id}, #{dataPermission.permission_scope_type}, #{dataPermission.permission_id})
|
||||
</insert>
|
||||
<delete id="deleteDataPermissionById">
|
||||
DELETE
|
||||
FROM sys_user_data_permission
|
||||
WHERE user_id = #{userId}
|
||||
DELETE FROM sys_user_data_permission WHERE user_id = #{userId}
|
||||
</delete>
|
||||
<resultMap id="UserDetail" type="org.nl.system.service.user.dto.SysUserDetail">
|
||||
<id column="userId" property="user_id"/>
|
||||
<result column="username" property="username"/>
|
||||
<result column="personName" property="person_name"/>
|
||||
<result column="gender" property="gender"/>
|
||||
<result column="phone" property="phone"/>
|
||||
<result column="email" property="email"/>
|
||||
<result column="avatarName" property="avatar_name"/>
|
||||
<result column="avatarPath" property="avatar_path"/>
|
||||
<result column="password" property="password"/>
|
||||
<result column="isAdmin" property="is_admin"/>
|
||||
<result column="isUsed" property="is_used"/>
|
||||
<result column="pwdResetUserId" property="pwd_reset_user_id"/>
|
||||
<result column="pwdResetTime" property="pwd_reset_time"/>
|
||||
<result column="create_id" property="create_id"/>
|
||||
<result column="createName" property="create_name"/>
|
||||
<result column="createTime" property="create_time"/>
|
||||
<result column="updateId" property="update_id"/>
|
||||
<result column="updateName" property="update_name"/>
|
||||
<result column="updateTime" property="update_time"/>
|
||||
<result column="extpersonId" property="extperson_id"/>
|
||||
<result column="extuserId" property="extuser_id"/>
|
||||
<collection property="depts" ofType="org.nl.system.service.dept.dao.SysDept" column="user_id" select="selectDept"></collection>
|
||||
<collection property="roles" ofType="org.nl.system.service.role.dao.SysRole" column="user_id" select="selectRole"></collection>
|
||||
<resultMap id="UserDetail" type="org.nl.system.service.user.dto.SysUserDetail" >
|
||||
<id column="userId" property="user_id" />
|
||||
<result column="username" property="username" />
|
||||
<result column="personName" property="person_name" />
|
||||
<result column="gender" property="gender" />
|
||||
<result column="phone" property="phone" />
|
||||
<result column="email" property="email" />
|
||||
<result column="avatarName" property="avatar_name" />
|
||||
<result column="avatarPath" property="avatar_path" />
|
||||
<result column="password" property="password" />
|
||||
<result column="isAdmin" property="is_admin" />
|
||||
<result column="isUsed" property="is_used" />
|
||||
<result column="pwdResetUserId" property="pwd_reset_user_id" />
|
||||
<result column="pwdResetTime" property="pwd_reset_time" />
|
||||
<result column="create_id" property="create_id" />
|
||||
<result column="createName" property="create_name" />
|
||||
<result column="createTime" property="create_time" />
|
||||
<result column="updateId" property="update_id" />
|
||||
<result column="updateName" property="update_name" />
|
||||
<result column="updateTime" property="update_time" />
|
||||
<result column="extpersonId" property="extperson_id" />
|
||||
<result column="extuserId" property="extuser_id" />
|
||||
<collection property="depts" ofType="org.nl.system.service.dept.dao.SysDept">
|
||||
<id property="dept_id" column="dept_id"/>
|
||||
<result column="dept_name" property="name"/>
|
||||
</collection>
|
||||
<collection property="roles" ofType="org.nl.system.service.role.dao.SysRole">
|
||||
<id property="role_id" column="role_id"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
<select id="getUserDetail" resultMap="UserDetail">
|
||||
SELECT
|
||||
@@ -78,30 +80,17 @@
|
||||
and sys_user.is_used = #{query.is_used}
|
||||
</if>
|
||||
<if test="query.start_time != null">
|
||||
and sys_user.create_time >= #{query.startTime}
|
||||
and and sys_user.create_time >= #{query.startTime}
|
||||
</if>
|
||||
<if test="query.end_time != null">
|
||||
and #{query.end_time} >= sys_user.create_time
|
||||
</if>
|
||||
<if test="query.blurry != null">
|
||||
and (email like #{query.blurry} or username like concat('%',#{query.blurry},'%') or person_name like concat('%',#{query.blurry},'%'))
|
||||
and (email like #{query.blurry} or username like #{query.blurry} or person_name like #{query.blurry})
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectDept" resultType="org.nl.system.service.dept.dao.SysDept">
|
||||
select
|
||||
sys_dept.dept_id as deptId,
|
||||
sys_dept.name as name
|
||||
from sys_dept
|
||||
left join sys_user_dept
|
||||
on sys_user_dept.dept_id = sys_dept.dept_id
|
||||
where user_id = #{user_id}
|
||||
</select>
|
||||
<select id="selectRole" resultType="org.nl.system.service.role.dao.SysRole">
|
||||
select role_id as roleId
|
||||
from sys_users_roles
|
||||
where user_id = #{user_id}
|
||||
</select>
|
||||
|
||||
<select id="getDetailForMap" resultType="java.util.Map">
|
||||
SELECT
|
||||
<include refid="Base_Column_List"/>
|
||||
@@ -134,15 +123,11 @@
|
||||
</select>
|
||||
<select id="getUserDataPermissionByPermissionId"
|
||||
resultType="org.nl.system.service.user.dto.UserDataPermissionDto">
|
||||
SELECT *
|
||||
FROM sys_user_data_permission
|
||||
WHERE permission_id = #{permissionId}
|
||||
SELECT * FROM sys_user_data_permission WHERE permission_id = #{permissionId}
|
||||
</select>
|
||||
<select id="getUserDataPermissionByUserId"
|
||||
resultType="org.nl.system.service.user.dto.UserDataPermissionDto">
|
||||
SELECT *
|
||||
FROM sys_user_data_permission
|
||||
WHERE user_id = #{userId}
|
||||
SELECT * FROM sys_user_data_permission WHERE user_id = #{userId}
|
||||
</select>
|
||||
<select id="getUserIdByDeptId" resultType="java.lang.String">
|
||||
SELECT
|
||||
|
||||
@@ -140,6 +140,13 @@ public class LmsToMesController {
|
||||
return new ResponseEntity<>(lmsToMesService.momBoxPackageSubmit(jo), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/momBoxCheckSubmit")
|
||||
@Log("LMS将验箱信息传递给MES")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> momBoxCheckSubmit(@RequestBody JSONObject jo) {
|
||||
return new ResponseEntity<>(lmsToMesService.BoxDataCollectionSubmit2(jo), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/GetInspectionResult")
|
||||
@Log("LMS获取MES称重后子卷信息")
|
||||
@SaIgnore
|
||||
|
||||
@@ -183,5 +183,7 @@ public interface LmsToMesService {
|
||||
|
||||
JSONObject momBoxPackageSubmit(JSONObject jo);
|
||||
|
||||
JSONObject BoxDataCollectionSubmit2(JSONObject jo);
|
||||
|
||||
JSONObject getInspectionResult(JSONObject jo);
|
||||
}
|
||||
|
||||
@@ -38,6 +38,8 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
|
||||
private static String is_connect_mes = "1";
|
||||
|
||||
private static Integer time_out = 120000;
|
||||
|
||||
@Autowired
|
||||
private IBstIvtBoxinfoService bstIvtBoxinfoService;
|
||||
|
||||
@@ -72,6 +74,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("momRollFoilWeighing接口输出参数为:-------------------" + result.toString());
|
||||
@@ -131,6 +134,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("momRollBakeInBound接口输出参数为:-------------------" + result.toString());
|
||||
@@ -194,6 +198,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("momRollBakeOutBound接口输出参数为:-------------------" + result.toString());
|
||||
@@ -234,6 +239,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("momRollSemiFGInboundComplete接口输出参数为:-------------------" + result.toString());
|
||||
@@ -288,6 +294,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(jo))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("airSwellWithPaperTubeAssComplete接口输出参数为:-------------------" + result.toString());
|
||||
@@ -346,6 +353,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(jo))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("airSwellWithPaperTubeAssComplete接口输出参数为:-------------------" + result.toString());
|
||||
@@ -396,6 +404,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(jo))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("airSwellWithPaperTubeAssArrival接口输出参数为:-------------------" + result.toString());
|
||||
@@ -449,8 +458,10 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
String api = "CamstarApi/ChildRollFGInboundComplete";
|
||||
url = url + api;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
String resultMsg = HttpRequest
|
||||
.post(url)
|
||||
.body(String.valueOf(jo))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("childRollFGInboundComplete接口输出参数为:-------------------" + result.toString());
|
||||
@@ -493,6 +504,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("childRollFGOutboundComplete接口输出参数为:-------------------" + result.toString());
|
||||
@@ -540,6 +552,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("LMSUnPackage接口输出参数为:-------------------" + result.toString());
|
||||
@@ -587,6 +600,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("LMSPackakge接口输出参数为:-------------------" + result.toString());
|
||||
@@ -623,6 +637,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("scrapAudit接口输出参数为:-------------------" + result.toString());
|
||||
@@ -659,6 +674,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("proudDayData接口输出参数为:-------------------" + result.toString());
|
||||
@@ -700,6 +716,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("ChildScrapUpdate接口输出参数为:-------------------" + result.toString());
|
||||
@@ -736,6 +753,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("sendSalesIvtMsg接口输出参数为:-------------------" + result.toString());
|
||||
@@ -771,6 +789,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("sendSalesIvtMsgParam接口输出参数为:-------------------" + result.toString());
|
||||
@@ -825,6 +844,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
/*String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("momAutoTransterMoveIn接口输出参数为:-------------------" + result.toString());
|
||||
@@ -868,6 +888,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("momGetPackingInfo接口输出参数为:-------------------" + result.toString());
|
||||
@@ -931,6 +952,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
IpdmBiSubpackagerelationService subpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class);
|
||||
@@ -958,6 +980,69 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject BoxDataCollectionSubmit2(JSONObject param) {
|
||||
|
||||
log.info("BoxDataCollectionSubmit2接口输入参数为:-------------------" + param.toString());
|
||||
|
||||
|
||||
String box_no = param.getString("box_no");
|
||||
String box_weight = param.getString("box_weight");
|
||||
|
||||
if (StrUtil.isEmpty(box_no)) {
|
||||
throw new BadRequestException("木箱号不能为空!");
|
||||
}
|
||||
|
||||
if (StrUtil.isEmpty(box_weight)) {
|
||||
throw new BadRequestException("木箱毛重不能为空!");
|
||||
}
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_URL2").getValue();
|
||||
String api = "CamstarApi/BoxDataCollectionSubmit2";
|
||||
url = url + api;
|
||||
|
||||
String UserName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
|
||||
String Password = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
|
||||
param.put("UserName", UserName);
|
||||
param.put("Password", Password);
|
||||
param.put("BoxContainerName", box_no);
|
||||
param.put("BoxWeight", box_weight);
|
||||
JSONArray rows = new JSONArray();
|
||||
|
||||
JSONObject row1 = new JSONObject();
|
||||
row1.put("DataPointName","保护棉是否填充");
|
||||
row1.put("DataType","7");
|
||||
row1.put("DataValue","true");
|
||||
row1.put("DataCollectionDefId","001c61800000004f");
|
||||
row1.put("DataCollectionDefName","PACKAGE");
|
||||
row1.put("DataCollectionDefName","PACKAGE");
|
||||
rows.add(row1);
|
||||
row1.put("DataPointName","信息核对准确");
|
||||
rows.add(row1);
|
||||
row1.put("DataPointName","木箱是否防护");
|
||||
rows.add(row1);
|
||||
param.put("DataPoints", rows);
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("BoxDataCollectionSubmit2接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
String RTYPE = result.getString("RTYPE");
|
||||
if ("E".equals(RTYPE)) {
|
||||
throw new BadRequestException(result.getString("RTMSG"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("MES提示错误:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public JSONObject getInspectionResult(JSONObject param) {
|
||||
|
||||
log.info("getInspectionResult接口输出参数为:-------------------" + param.toString());
|
||||
@@ -988,6 +1073,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
IpdmBiSubpackagerelationService subpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class);
|
||||
|
||||
@@ -175,7 +175,7 @@ public class RawFoilServiceImpl implements RawFoilService {
|
||||
if (jsonSb.getString("product_area").equals("B1")) {
|
||||
// 2.根据就近原则查对应空卷轴
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "6");
|
||||
map.put("flag", "601");
|
||||
map.put("product_area", jsonSb.getString("product_area"));
|
||||
map.put("point_location", jsonSb.getString("point_location"));
|
||||
// 查找冷却区空轴位状态是空轴的点位
|
||||
|
||||
@@ -333,3 +333,39 @@ IF 输入.flag = "6"
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "601"
|
||||
QUERY
|
||||
SELECT
|
||||
ivt.*
|
||||
FROM
|
||||
ST_IVT_CoolPointIvt ivt
|
||||
WHERE
|
||||
ivt.empty_point_status = '02'
|
||||
AND ivt.point_type = '1'
|
||||
AND
|
||||
ivt.is_used = '1'
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
sch_base_task
|
||||
WHERE
|
||||
( point_code1 = ivt.empty_point_code OR point_code4 = ivt.empty_point_code )
|
||||
AND task_status < '07'
|
||||
AND is_delete = '0'
|
||||
)
|
||||
|
||||
OPTION 输入.product_area <> ""
|
||||
ivt.product_area = 输入.product_area
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.point_location <> ""
|
||||
ivt.point_location = 输入.point_location
|
||||
ENDOPTION
|
||||
|
||||
order by ivt.point_code ASC
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -93,10 +93,10 @@ public class TaskServiceImpl implements TaskService {
|
||||
map.put("finishTypeList", whereJson.getString("finishTypeList"));
|
||||
}
|
||||
if (StrUtil.isNotEmpty(whereJson.getString("begin_time"))) {
|
||||
map.put("begin_time", whereJson.getString("begin_time"));
|
||||
map.put("begin_time", whereJson.getString("begin_time").substring(0, 10)+" 00:00:00");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(whereJson.getString("end_time"))) {
|
||||
map.put("end_time", whereJson.getString("end_time"));
|
||||
map.put("end_time", whereJson.getString("end_time").substring(0, 10)+" 99:99:99");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(whereJson.getString("is_delete"))) {
|
||||
map.put("is_delete", whereJson.getString("is_delete"));
|
||||
|
||||
@@ -52,60 +52,59 @@
|
||||
IF 输入.flag = "1"
|
||||
PAGEQUERY
|
||||
SELECT * FROM (
|
||||
SELECT
|
||||
task.*,
|
||||
md.class_name task_type_name,
|
||||
user.person_name AS create_name1,
|
||||
dict.label task_status_name,
|
||||
case when task.task_type like '0105%' then 'LK' when task.task_type like '0107%' then 'LK' ELSE task.product_area end AS final_product_area
|
||||
FROM
|
||||
sch_base_task task
|
||||
LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code
|
||||
LEFT JOIN sys_user user ON user.username = task.create_name
|
||||
LEFT JOIN sys_dict dict ON dict.`value` = task.task_status AND dict.`code` = 'task_status'
|
||||
WHERE
|
||||
1=1
|
||||
OPTION 输入.is_delete <> ""
|
||||
task.is_delete = 输入.is_delete
|
||||
SELECT
|
||||
task.*,
|
||||
md.class_name task_type_name,
|
||||
user.person_name AS create_name1,
|
||||
dict.label task_status_name,
|
||||
case when task.task_type like '0105%' then 'LK' when task.task_type like '0107%' then 'LK' ELSE task.product_area end AS final_product_area
|
||||
FROM
|
||||
(select
|
||||
tas.*
|
||||
from
|
||||
sch_base_task tas
|
||||
where 1=1
|
||||
OPTION 输入.is_delete <> ""
|
||||
tas.is_delete = 输入.is_delete
|
||||
ENDOPTION
|
||||
OPTION 输入.finished_type <> ""
|
||||
tas.finished_type = 输入.finished_type
|
||||
ENDOPTION
|
||||
OPTION 输入.unFinish <> ""
|
||||
tas.task_status <> '07'
|
||||
ENDOPTION
|
||||
OPTION 输入.task_status <> ""
|
||||
find_in_set( tas.task_status, 输入.task_status)
|
||||
ENDOPTION
|
||||
OPTION 输入.vehicle_code <> ""
|
||||
(tas.vehicle_code like 输入.vehicle_code OR tas.material_code like 输入.vehicle_code OR tas.vehicle_code2 like 输入.vehicle_code)
|
||||
ENDOPTION
|
||||
OPTION 输入.task_code <> ""
|
||||
(tas.task_code like 输入.task_code)
|
||||
ENDOPTION
|
||||
OPTION 输入.point_code1 <> ""
|
||||
(tas.point_code1 like 输入.point_code1)
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
tas.create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
tas.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
) task
|
||||
LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code
|
||||
LEFT JOIN sys_user user ON user.username = task.create_name
|
||||
LEFT JOIN sys_dict dict ON dict.`value` = task.task_status AND dict.`code` = 'task_status'
|
||||
WHERE
|
||||
1=1
|
||||
OPTION 输入.task_type <> ""
|
||||
md.class_id in 输入.task_type
|
||||
ENDOPTION
|
||||
) a
|
||||
WHERE 1=1
|
||||
OPTION 输入.in_area_id <> ""
|
||||
a.final_product_area IN 输入.in_area_id
|
||||
ENDOPTION
|
||||
OPTION 输入.task_type <> ""
|
||||
md.class_id in 输入.task_type
|
||||
ENDOPTION
|
||||
OPTION 输入.finished_type <> ""
|
||||
task.finished_type = 输入.finished_type
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
task.create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
task.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
OPTION 输入.unFinish <> ""
|
||||
task.task_status <> '07'
|
||||
ENDOPTION
|
||||
OPTION 输入.task_status <> ""
|
||||
find_in_set( task.task_status, 输入.task_status)
|
||||
ENDOPTION
|
||||
OPTION 输入.vehicle_code <> ""
|
||||
(task.vehicle_code like 输入.vehicle_code OR task.material_code like 输入.vehicle_code OR task.vehicle_code2 like 输入.vehicle_code)
|
||||
ENDOPTION
|
||||
OPTION 输入.task_code <> ""
|
||||
(task.task_code like 输入.task_code)
|
||||
ENDOPTION
|
||||
OPTION 输入.point_code1 <> ""
|
||||
(task.point_code1 like 输入.point_code1)
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
task.create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
task.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
) a
|
||||
WHERE 1=1
|
||||
OPTION 输入.in_area_id <> ""
|
||||
a.final_product_area IN 输入.in_area_id
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -1381,6 +1381,7 @@
|
||||
box_no = 输入.box_no
|
||||
AND dtl.bill_status < '99'
|
||||
AND mst.is_delete = '0'
|
||||
AND mst.io_type = '0'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -62,6 +62,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
map.put("bill_status", MapUtil.getStr(whereJson, "bill_status"));
|
||||
map.put("bill_type", MapUtil.getStr(whereJson, "bill_type"));
|
||||
map.put("is_upload", MapUtil.getStr(whereJson, "is_upload"));
|
||||
map.put("upload_mes", MapUtil.getStr(whereJson, "upload_mes"));
|
||||
map.put("upload_sap", MapUtil.getStr(whereJson, "upload_sap"));
|
||||
String begin_time = MapUtil.getStr(whereJson, "begin_time");
|
||||
if (StrUtil.isNotEmpty(begin_time)) {
|
||||
map.put("begin_time", begin_time.substring(0,10)+" 00:00:00");
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
输入.stor_id TYPEAS s_string
|
||||
输入.bill_status TYPEAS s_string
|
||||
输入.is_upload TYPEAS s_string
|
||||
输入.upload_mes TYPEAS s_string
|
||||
输入.upload_sap TYPEAS s_string
|
||||
输入.begin_time TYPEAS s_string
|
||||
输入.end_time TYPEAS s_string
|
||||
输入.vbeln TYPEAS s_string
|
||||
@@ -96,6 +98,12 @@
|
||||
OPTION 输入.is_upload <> ""
|
||||
mst.is_upload = 输入.is_upload
|
||||
ENDOPTION
|
||||
OPTION 输入.upload_mes <> ""
|
||||
mst.upload_mes = 输入.upload_mes
|
||||
ENDOPTION
|
||||
OPTION 输入.upload_sap <> ""
|
||||
mst.upload_sap = 输入.upload_sap
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.input_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -59,6 +60,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
||||
}
|
||||
map.put("with", with);
|
||||
map.put("begin_time", begin_time);
|
||||
|
||||
map.put("pcsn", pcsn);
|
||||
map.put("end_time", end_time);
|
||||
if (ObjectUtil.isNotEmpty(customer_name)) {
|
||||
@@ -90,7 +92,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
||||
map.put("bill_type", joiner.toString());
|
||||
}
|
||||
map.put("with", with);
|
||||
map.put("pcsn", pcsn);
|
||||
// 空格查询
|
||||
if (StrUtil.isNotEmpty(pcsn)){
|
||||
// 判断是否有空格
|
||||
boolean matches = pcsn.matches(".*\\s.*");
|
||||
|
||||
if (matches) {
|
||||
String[] s = pcsn.split(" ");
|
||||
String pcsn_in = String.join("','", Arrays.asList(s));
|
||||
|
||||
map.put("pcsn_in", "('"+pcsn_in+"')");
|
||||
map.put("pcsn", "");
|
||||
} else {
|
||||
map.put("pcsn", pcsn);
|
||||
}
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(customer_name)) {
|
||||
map.put("customer_name", "%" + customer_name + "%");
|
||||
}
|
||||
@@ -189,7 +205,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
||||
String customer_name = MapUtil.getStr(map, "customer_name");
|
||||
|
||||
JSONObject mapParam = new JSONObject();
|
||||
mapParam.put("flag", "1");
|
||||
mapParam.put("flag", "11");
|
||||
mapParam.put("stor_id", stor_id);
|
||||
if (ObjectUtil.isNotEmpty(bill_types)) {
|
||||
StringJoiner joiner = new StringJoiner(",", "(", ")");
|
||||
@@ -263,7 +279,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
||||
String pcsn = MapUtil.getStr(map, "pcsn");
|
||||
String customer_name = MapUtil.getStr(map, "customer_name");
|
||||
|
||||
map.put("flag", "2");
|
||||
map.put("flag", "22");
|
||||
map.put("stor_id", stor_id);
|
||||
if (ObjectUtil.isNotEmpty(bill_types)) {
|
||||
StringJoiner joiner = new StringJoiner(",", "(", ")");
|
||||
@@ -273,7 +289,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
||||
map.put("bill_type", joiner.toString());
|
||||
}
|
||||
map.put("with", with);
|
||||
map.put("pcsn", pcsn);
|
||||
// 空格查询
|
||||
if (StrUtil.isNotEmpty(pcsn)){
|
||||
// 判断是否有空格
|
||||
boolean matches = pcsn.matches(".*\\s.*");
|
||||
|
||||
if (matches) {
|
||||
String[] s = pcsn.split(" ");
|
||||
String pcsn_in = String.join("','", Arrays.asList(s));
|
||||
|
||||
map.put("pcsn_in", "('"+pcsn_in+"')");
|
||||
map.put("pcsn", "");
|
||||
} else {
|
||||
map.put("pcsn", pcsn);
|
||||
}
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(customer_name)) {
|
||||
map.put("customer_name", "%" + customer_name + "%");
|
||||
}
|
||||
@@ -379,33 +409,40 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
||||
mp.put("管件描述", json.getString("paper_name"));
|
||||
mp.put("客户编码", json.getString("customer_name"));
|
||||
mp.put("发货客户名称", json.getString("customer_description"));
|
||||
if (ObjectUtil.isEmpty(json.getString("sale_order_name"))) {
|
||||
throw new BadRequestException("子卷" + json.getString("pcsn") + "销售订单为空!");
|
||||
}
|
||||
try {
|
||||
mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-")));
|
||||
mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length()));
|
||||
} catch (Exception e) {
|
||||
mp.put("销售订单", json.getString("sale_order_name"));
|
||||
mp.put("行号", "");
|
||||
}
|
||||
mp.put("销售订单", json.getString("sale_order_name"));
|
||||
mp.put("行号", "");
|
||||
mp.put("原销售订单", json.getString("sale_order_name"));
|
||||
mp.put("原行号", "");
|
||||
|
||||
if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) {
|
||||
try {
|
||||
mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-")));
|
||||
mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length()));
|
||||
} catch (Exception e) {
|
||||
mp.put("销售订单", json.getString("sale_order_name"));
|
||||
mp.put("行号", "");
|
||||
}
|
||||
}
|
||||
// 原销售订单
|
||||
if (ObjectUtil.isEmpty(jsonSub)) {
|
||||
try {
|
||||
mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-")));
|
||||
mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length()));
|
||||
} catch (Exception e) {
|
||||
mp.put("原销售订单", json.getString("sale_order_name"));
|
||||
mp.put("原行号", "");
|
||||
if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) {
|
||||
try {
|
||||
mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-")));
|
||||
mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length()));
|
||||
} catch (Exception e) {
|
||||
mp.put("原销售订单", json.getString("sale_order_name"));
|
||||
mp.put("原行号", "");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-")));
|
||||
mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length()));
|
||||
} catch (Exception e) {
|
||||
mp.put("原销售订单", jsonSub.getString("sale_order_name"));
|
||||
mp.put("原行号", "");
|
||||
if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) {
|
||||
try {
|
||||
mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-")));
|
||||
mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length()));
|
||||
} catch (Exception e) {
|
||||
mp.put("原销售订单", jsonSub.getString("sale_order_name"));
|
||||
mp.put("原行号", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
输入.begin_time TYPEAS s_string
|
||||
输入.end_time TYPEAS s_string
|
||||
输入.customer_name TYPEAS s_string
|
||||
输入.pcsn_in TYPEAS f_string
|
||||
|
||||
|
||||
[临时表]
|
||||
@@ -148,6 +149,109 @@
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "11"
|
||||
QUERY
|
||||
SELECT
|
||||
mst.stor_name,
|
||||
dis.sect_name,
|
||||
mst.bill_type,
|
||||
dtl.vbeln,
|
||||
base.cust_name,
|
||||
mst.estimated_freight,
|
||||
dis.box_no,
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
dis.pcsn,
|
||||
sub.sap_pcsn,
|
||||
sub.net_weight,
|
||||
dis.qty_unit_name,
|
||||
sub.customer_name,
|
||||
sub.customer_description,
|
||||
sub.sale_order_name,
|
||||
mst.input_time,
|
||||
sub.width,
|
||||
sub.thickness,
|
||||
sub.mass_per_unit_area,
|
||||
mst.input_optname,
|
||||
case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type,
|
||||
case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code,
|
||||
case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name,
|
||||
mst.remark,
|
||||
stor.stor_name AS in_stor_name
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
MAX( a.iostorinvdis_id ) AS iostorinvdis_id
|
||||
FROM
|
||||
st_ivt_iostorinvdis a
|
||||
LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id
|
||||
WHERE
|
||||
b.io_type = '1'
|
||||
OPTION 输入.bill_type <> ""
|
||||
b.bill_type IN 输入.bill_type
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
a.pcsn = 输入.pcsn
|
||||
ENDOPTION
|
||||
AND b.bill_status = '99'
|
||||
GROUP BY
|
||||
pcsn
|
||||
) AS c
|
||||
LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id
|
||||
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
|
||||
LEFT JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id
|
||||
LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id
|
||||
LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = mst.out_stor_id
|
||||
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no
|
||||
LEFT JOIN (SELECT
|
||||
container_name,
|
||||
MAX(paper_tube_or_FRP) AS paper_tube_or_FRP,
|
||||
MAX(paper_tube_material) AS paper_tube_material,
|
||||
MAX(paper_tube_description) AS paper_tube_description,
|
||||
MAX(paper_tube_model) AS paper_tube_model,
|
||||
MAX(FRP_material) AS FRP_material,
|
||||
MAX(FRP_description) AS FRP_description,
|
||||
MAX(FRP_model) AS FRP_model
|
||||
FROM
|
||||
pdm_bi_slittingproductionplan plan1
|
||||
WHERE
|
||||
plan1.is_delete = '0'
|
||||
GROUP BY container_name) plan ON plan.container_name = sub.container_name
|
||||
WHERE
|
||||
mst.io_type = '1'
|
||||
AND mst.is_delete = '0'
|
||||
AND mst.bill_status = '99'
|
||||
|
||||
OPTION 输入.stor_id <> ""
|
||||
mst.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.bill_type <> ""
|
||||
mst.bill_type IN 输入.bill_type
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.input_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.end_time <> ""
|
||||
mst.input_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.with <> ""
|
||||
CONCAT(sub.width,'*',sub.thickness) = 输入.with
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.customer_name <> ""
|
||||
(sub.customer_name LIKE 输入.customer_name OR
|
||||
sub.customer_description LIKE 输入.customer_name)
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
@@ -200,6 +304,9 @@
|
||||
OPTION 输入.pcsn <> ""
|
||||
a.pcsn = 输入.pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn_in <> ""
|
||||
a.pcsn IN 输入.pcsn_in
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
b.confirm_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
@@ -316,6 +423,9 @@
|
||||
OPTION 输入.pcsn <> ""
|
||||
a.pcsn = 输入.pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn_in <> ""
|
||||
a.pcsn IN 输入.pcsn_in
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
b.confirm_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
@@ -376,7 +486,7 @@
|
||||
plan1.is_delete = '0'
|
||||
GROUP BY container_name) plan ON plan.container_name = sub.container_name
|
||||
WHERE 1=1
|
||||
limit 0,10000
|
||||
limit 0,50000
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -88,7 +88,8 @@
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
:default-time="['00:00:00', '23:59:59']"
|
||||
@change="crud.toQuery"
|
||||
@input="onInput()"
|
||||
@change="mytoQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -209,8 +210,8 @@ import crudTask from '@/views/wms/sch/task/task'
|
||||
import CRUD, { crud, header, presenter } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import DateRangePicker from '@/components/DateRangePicker/index'
|
||||
import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import crudClassstandard from '@/views/wms/basedata/master/class/classstandard'
|
||||
@@ -219,7 +220,7 @@ export default {
|
||||
name: 'Task',
|
||||
dicts: ['acs_task_type', 'vehicle_type'],
|
||||
components: {
|
||||
pagination, crudOperation, rrOperation, Treeselect, udOperation
|
||||
pagination, crudOperation, rrOperation, Treeselect, DateRangePicker
|
||||
},
|
||||
mixins: [presenter(), header(), crud()],
|
||||
cruds() {
|
||||
@@ -255,6 +256,7 @@ export default {
|
||||
permission: {
|
||||
|
||||
},
|
||||
query_flag: true,
|
||||
rules: {},
|
||||
classes1: []
|
||||
}
|
||||
@@ -267,13 +269,16 @@ export default {
|
||||
crudTask.getFinishType().then(data => {
|
||||
this.finishTypeList = data
|
||||
})
|
||||
// this.crud.query.task_status = ['-1']
|
||||
// this.crud.toQuery()
|
||||
this.crud.query.createTime = [new Date().daysAgo(7), new Date()]
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
if (this.query_flag) {
|
||||
this.crud.query.begin_time = (new Date().daysAgo(7)).strftime('%F', 'zh')
|
||||
this.crud.query.end_time = (new Date()).strftime('%F', 'zh')
|
||||
this.query_flag = false
|
||||
}
|
||||
},
|
||||
initClass1() {
|
||||
const param = {
|
||||
@@ -285,6 +290,19 @@ export default {
|
||||
this.classes1 = data
|
||||
})
|
||||
},
|
||||
onInput() {
|
||||
this.$forceUpdate()
|
||||
},
|
||||
mytoQuery(array1) {
|
||||
if (array1 === null) {
|
||||
this.crud.query.begin_time = ''
|
||||
this.crud.query.end_time = ''
|
||||
} else {
|
||||
this.crud.query.begin_time = array1[0]
|
||||
this.crud.query.end_time = array1[1]
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
buildTree(classes) {
|
||||
classes.forEach(data => {
|
||||
if (data.children) {
|
||||
|
||||
@@ -139,6 +139,40 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否回传MES">
|
||||
<el-select
|
||||
v-model="query.upload_mes"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="是否回传"
|
||||
class="filter-item"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.is_upload"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否回传SAP">
|
||||
<el-select
|
||||
v-model="query.upload_sap"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="是否回传"
|
||||
class="filter-item"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.is_upload"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="单据日期">
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
|
||||
Reference in New Issue
Block a user