rev:优化生箔、烘箱、分切上料功能

This commit is contained in:
2025-06-24 19:34:47 +08:00
parent adb9359604
commit 3cf1175358
33 changed files with 1540 additions and 452 deletions

View File

@@ -37,8 +37,8 @@ public class SlittingproductionplanController {
@Log("新增分切计划")
//@SaCheckPermission("@el.check('slittingproductionplan:add')")
public ResponseEntity<Object> create(@Validated @RequestBody PdmBiSlittingproductionplan dto) {
biSlittingproductionplanService.create(dto);
public ResponseEntity<Object> create(@RequestBody JSONObject whereJson) {
biSlittingproductionplanService.create(whereJson);
return new ResponseEntity<>(HttpStatus.CREATED);
}

View File

@@ -28,9 +28,9 @@ public interface IPdmBiSlittingproductionplanService extends IService<PdmBiSlitt
/**
* 创建
* @param entity /
* @param whereJson /
*/
void create(PdmBiSlittingproductionplan entity);
void create(JSONObject whereJson);
/**
* 编辑

View File

@@ -178,8 +178,14 @@ public class PdmBiSlittingproductionplan implements Serializable {
private String box_code;
/** 木箱描述 */
private String box_description;
/** 批号 */
/** SAP 批号 */
private String pscn;
/** 备注 */
private String remark;
/** 客户编码 */
private String costomer_code;
/** 客户名称 */
private String costomer_name;
/** 产品厚度 */
private String thickness;
}

View File

@@ -252,7 +252,6 @@
<if test="dto.is_parent_ok != null and dto.is_parent_ok != ''">
AND plan.is_parent_ok = #{dto.is_parent_ok}
</if>
<if test="dto.is_child_tz_ok != null and dto.is_child_tz_ok != ''">
AND plan.is_child_tz_ok = #{dto.is_child_tz_ok}
</if>

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -21,6 +22,7 @@ import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto;
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
@@ -33,10 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -53,6 +52,8 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl<PdmBiSli
@Autowired
private LmsToMesService lmsToMesService;
@Autowired
private IPdmBiSlittingproductionplanService pdmBiSlittingproductionplanService;
@Override
public Map<String, Object> queryAll(Map whereJson, PageQuery page) {
@@ -81,29 +82,100 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl<PdmBiSli
}
@Override
public void create(PdmBiSlittingproductionplan dto) {
public void create(JSONObject whereJson) {
String order_type = whereJson.getString("order_type");
String product_name = whereJson.getString("product_name");
String description = whereJson.getString("description");
String parent_container_name = whereJson.getString("parent_container_name");
String restruct_container_name = whereJson.getString("restruct_container_name");
String ware_house = whereJson.getString("ware_house");
String resource_name = whereJson.getString("resource_name");
String split_group = whereJson.getString("split_group");
String manufacture_date = whereJson.getString("manufacture_date");
String customer_code = whereJson.getString("customer_code");
String customer_name = whereJson.getString("customer_name");
JSONArray tableData = whereJson.getJSONArray("tableData");
List<JSONObject> rows = tableData.stream()
.map(row -> JSONObject.parseObject(JSON.toJSONString(row)))
.collect(Collectors.toList());
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId());
dto.setUpdate_optid(currentUserId);
dto.setUpdate_optname(nickName);
dto.setUpdate_time(now);
dto.setIs_call("0");
dto.setStatus("01");
dto.setIs_delete("0");
dto.setIs_paper_ok("0");
dto.setIs_child_tz_ok("0");
dto.setIs_child_ps_ok("0");
dto.setIs_parent_ok("0");
if ("1".equals(dto.getOrder_type())) {
dto.setMaterial_type("FG1");
} else {
dto.setMaterial_type("FG2");
List<PdmBiSlittingproductionplan> list = new ArrayList<>();
for (int i = 0; i < rows.size(); i++) {
PdmBiSlittingproductionplan pdmBiSlittingproductionplan = pdmBiSlittingproductionplanMapper.selectOne(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
.eq(ObjectUtil.isNotEmpty(rows.get(i).getString("container_name")), PdmBiSlittingproductionplan::getContainer_name, rows.get(i).getString("container_name")));
if (ObjectUtil.isNotEmpty(pdmBiSlittingproductionplan)) {
throw new BadRequestException("当前子卷号:" + rows.get(i).getString("container_name") + "已存在分切工单,不允许重复创建!");
}
PdmBiSlittingproductionplan dto = new PdmBiSlittingproductionplan();
dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId());
dto.setUpdate_optid(currentUserId);
dto.setOrder_type(order_type);
dto.setProduct_name(product_name);
dto.setDescription(description);
dto.setParent_container_name(parent_container_name);
dto.setRestruct_container_name(restruct_container_name);
if (resource_name.contains("A")) {
dto.setQzz_generation("4");
} else if (resource_name.contains("B")) {
dto.setQzz_generation("5");
}
dto.setWare_house(ware_house);
dto.setResource_name(resource_name);
dto.setSplit_group(split_group);
dto.setManufacture_date(manufacture_date);
dto.setCostomer_code(customer_code);
dto.setCostomer_name(customer_name);
dto.setContainer_name(rows.get(i).getString("container_name"));
dto.setPaper_tube_or_frp(rows.get(i).getString("paper_tube_or_frp"));
if ("1".equals(rows.get(i).getString("paper_tube_or_frp"))) {
dto.setPaper_tube_material(rows.get(i).getString("paper_tube_material"));
dto.setPaper_tube_description(rows.get(i).getString("paper_tube_description"));
dto.setPaper_tube_model(rows.get(i).getString("paper_tube_model"));
// 解析描述数组
String[] tubeArray = rows.get(i).getString("paper_tube_description").split("\\|");
// 定义尺寸与长度
String qzz_size = Character.toString(tubeArray[2].charAt(0));
dto.setQzz_size(qzz_size);
} else if ("2".equals(rows.get(i).getString("paper_tube_or_frp"))) {
dto.setFRP_material(rows.get(i).getString("frp_material"));
dto.setFRP_description(rows.get(i).getString("frp_description"));
dto.setFRP_model(rows.get(i).getString("frp_model"));
String[] tubeArray = rows.get(i).getString("frp_description").split("\\|");
// 定义尺寸与长度
String qzz_size = Character.toString(tubeArray[2].charAt(0));
dto.setQzz_size(qzz_size);
}
dto.setSplit_breadth(rows.get(i).getBigDecimal("split_breadth"));
dto.setSplit_height(rows.get(i).getBigDecimal("split_height"));
dto.setSplit_weight(rows.get(i).getBigDecimal("split_weight"));
dto.setBox_code(rows.get(i).getString("box_code"));
dto.setBox_description(rows.get(i).getString("box_description"));
dto.setUp_or_down(rows.get(i).getString("up_or_down"));
dto.setLeft_or_right(rows.get(i).getString("left_or_right"));
dto.setUpdate_optname(nickName);
dto.setUpdate_time(now);
dto.setPscn("N" + TaskUtils.getDateTime("yyMMdd") + CodeUtil.getNewCode("SAP_CODE"));
dto.setMfg_order_name("FQ" + TaskUtils.getDateTime("yyMMddHHmmss") + CodeUtil.getNewCode("SBGD_CODE"));
dto.setIs_call("0");
dto.setStart_time(DateUtil.now());
dto.setSale_order_name(IdUtil.getSnowflake(1, 1).nextId() + "");
dto.setStatus("01");
dto.setIs_delete("0");
dto.setIs_paper_ok("0");
dto.setIs_child_tz_ok("0");
dto.setIs_child_ps_ok("0");
dto.setIs_parent_ok("0");
if ("1".equals(dto.getOrder_type())) {
dto.setMaterial_type("FG1");
} else {
dto.setMaterial_type("FG2");
}
list.add(dto);
}
pdmBiSlittingproductionplanMapper.insert(dto);
pdmBiSlittingproductionplanService.saveBatch(list);
}
@Override

View File

@@ -1,5 +1,6 @@
package org.nl.b_lms.sch.point.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.nl.b_lms.sch.point.dao.StIvtCutpointivt;
@@ -9,6 +10,7 @@ import cn.hutool.core.date.DateUtil;
import org.nl.common.utils.SecurityUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.wms.pdm.rawfoilworkorder.service.dao.SbPointIvt;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;

View File

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.logging.annotation.Log;
import org.nl.modules.wql.core.content.HttpContext;
import org.nl.wms.pda.mps.service.BakingService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -24,7 +25,7 @@ public class BakingController {
@PostMapping("/ovenInAndOut")
@Log("烘箱出入")
public ResponseEntity<Object> queryRawFoil(@RequestBody JSONObject whereJson) {
public ResponseEntity<Object> ovenInAndOut(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(bakingService.ovenInAndOut(whereJson), HttpStatus.OK);
}
@@ -49,6 +50,16 @@ public class BakingController {
return new ResponseEntity<>(bakingService.reBake(whereJson), HttpStatus.OK);
}
@PostMapping("/queryHotPoints")
@Log("烘烤区域母卷详情")
public ResponseEntity<Object> queryHotPoints(@RequestBody JSONObject whereJson) {
HttpContext ctx = new HttpContext("11");
ctx.setPage((String) (whereJson.get("page")));
ctx.setRows((String) (whereJson.get("size")));
return new ResponseEntity<>(bakingService.queryHotPoints(whereJson, ctx), HttpStatus.OK);
}
@PostMapping("/inCoolOrOven")
@Log("质检不合格")

View File

@@ -63,13 +63,6 @@ public class RawFoilController {
return new ResponseEntity<>(rawFoilService.confirmBlanking(whereJson), HttpStatus.OK);
}
@PostMapping("/start")
@Log("开始生箔工单")
public ResponseEntity<Object> start(@RequestBody JSONObject whereJson) {
rawFoilService.start(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/scrollDowm")
@Log("下卷")

View File

@@ -1,6 +1,7 @@
package org.nl.wms.pda.mps.service;
import com.alibaba.fastjson.JSONObject;
import org.nl.modules.wql.core.content.HttpContext;
public interface BakingService {
@@ -32,4 +33,6 @@ public interface BakingService {
* @return JSONObject
*/
JSONObject inCoolOrOven(JSONObject whereJson);
JSONObject queryHotPoints(JSONObject whereJson, HttpContext ctx);
}

View File

@@ -55,13 +55,5 @@ public interface RawFoilService {
*/
JSONObject scrollDowm(JSONObject whereJson);
/**
* 开始工单
*
* @param whereJson /
* @return JSONObject
*/
JSONObject start(JSONObject whereJson);
JSONObject query(JSONObject whereJson, HttpContext ctx);
}

View File

@@ -17,7 +17,9 @@ import org.nl.modules.common.utils.RedisUtils;
import org.nl.common.utils.CodeUtil;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.core.content.HttpContext;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl;
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
@@ -549,6 +551,7 @@ public class BakingServiceImpl implements BakingService {
param.put("point_code1", point_code1);
param.put("point_code2", endPointCode);
param.put("container_name", container_name);
param.put("request_param", "2");//1-不合格入冷却 2-合格入冷却
param.put("product_area", jsonPoint.getString("product_area"));
@@ -927,6 +930,7 @@ public class BakingServiceImpl implements BakingService {
param.put("point_code2", endPointCode);
param.put("container_name", container_name);
param.put("product_area", jsonPoint.getString("product_area"));
param.put("request_param", "1");//1-不合格入冷却 2-合格入冷却
InCoolIvtTask inCoolIvtTask = new InCoolIvtTask();
@@ -972,4 +976,33 @@ public class BakingServiceImpl implements BakingService {
result.put("message", "操作成功!");
return result;
}
@Override
public JSONObject queryHotPoints(JSONObject whereJson, HttpContext ctx) {
//获取人员对应的区域
UserAreaServiceImpl userAreaService = new UserAreaServiceImpl();
String in_area_id = userAreaService.getInArea();
HashMap map = new HashMap();
map.put("flag", "3");
map.put("point_code", whereJson.get("point_code"));
map.put("product_area", whereJson.get("product_area"));
map.put("container_name", whereJson.getString("container_name"));
if (ObjectUtil.isNotEmpty(in_area_id)) {
map.put("in_area_id", in_area_id);
}
JSONObject json = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).pageQuery(ctx, "container_name");
JSONArray rows = json.getJSONArray("content");
JSONArray new_rows = new JSONArray();
for (int i = 0; i < rows.size(); i++) {
JSONObject row = rows.getJSONObject(i);
String temperature = (String) redisUtils.hget(row.getString("point_code"), "temperature");
String last_time = (String) redisUtils.hget(row.getString("point_code"), "last_time");
row.put("temperature", temperature);
row.put("last_time", last_time);
new_rows.add(row);
}
json.put("content", new_rows);
return json;
}
}

View File

@@ -299,52 +299,6 @@ public class RawFoilServiceImpl implements RawFoilService {
return jo;
}
@Override
public JSONObject start(JSONObject whereJson) {
JSONObject raw_jo = whereJson.getJSONObject("raw_jo");
if (ObjectUtil.isEmpty(raw_jo)) {
throw new BadRequestException("生箔工单不能为空!");
}
RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper<RawfoilWorkOrder>()
.eq(ObjectUtil.isNotEmpty(raw_jo.getString("workorder_id")), RawfoilWorkOrder::getWorkorder_id, raw_jo.getString("workorder_id")));
if (!StrUtil.equals(rawfoilWorkOrder.getStatus(), "00")) {
throw new BadRequestException("工单状态不为初始化");
}
SbPointIvt sbPointIvt = sbPointIvtMapper.selectOne(new LambdaQueryWrapper<SbPointIvt>()
.eq(ObjectUtil.isNotEmpty(rawfoilWorkOrder.getResource_name()), SbPointIvt::getExt_code, rawfoilWorkOrder.getResource_name()));
if (ObjectUtil.isEmpty(sbPointIvt)) {
throw new BadRequestException("点位:" + rawfoilWorkOrder.getResource_name() + "生箔设备不存在");
}
//查询该生箔工单是否存在未完成的任务
String container_name = raw_jo.getString("container_name");
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("material_code = '" + container_name + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
throw new BadRequestException("该生箔工单存在未完成的任务,请先完成任务!");
}
if (StrUtil.equals("01", sbPointIvt.getFull_point_status()) && StrUtil.equals("02", sbPointIvt.getEmpty_point_status())) {
//更新点位状态
sbPointIvt.setFull_point_status("02");
sbPointIvt.setEmpty_point_status("01");
sbPointIvtMapper.updateById(sbPointIvt);
rawfoilWorkOrder.setStatus("30");
rawfoilWorkOrder.setFinish_type("02");
rawfoilWorkOrder.setUpdate_time(DateUtil.now());
rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder);
} else {
throw new BadRequestException("当前生箔机:" + sbPointIvt.getExt_code() + "不为满轴位为空且空轴位有轴的状态!");
}
JSONObject jo = new JSONObject();
jo.put("message", "操作成功!");
return jo;
}
@Override
public JSONObject query(JSONObject whereJson, HttpContext ctx) {
PageHelper.startPage(Integer.parseInt(ctx.getPage()), Integer.parseInt(ctx.getRows()));

View File

@@ -2,8 +2,10 @@ package org.nl.wms.pdm.ivt.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -46,6 +48,14 @@ public class CutPointIvtServiceImpl implements CutPointIvtService {
if (whereJson.get("point_code") != null) {
map.put("point_code", "%" + whereJson.get("point_code") + "%");
}
String search = MapUtil.getStr(whereJson, "search");
if (!StrUtil.isEmpty(search)) {
//处理转义字符
if (search.contains("\\")) {
search = search.replace("\\", "\\\\\\");
}
map.put("search", "%" + search + "%");
}
map.put("full_point_status", whereJson.get("full_point_status"));
map.put("empty_point_status", whereJson.get("empty_point_status"));
map.put("product_area", whereJson.get("product_area"));

View File

@@ -64,6 +64,14 @@ public class RawfoilWorkOrderController {
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/start")
@Log("开始生箔工单")
public ResponseEntity<Object> start(@RequestBody JSONObject whereJson) {
rawfoilworkorderService.start(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("强制确认")
@PostMapping("/compelEnd")

View File

@@ -60,6 +60,14 @@ public interface RawfoilWorkOrderService extends IService<RawfoilWorkOrder> {
*/
void deleteAll(Long[] ids);
/**
* 开始工单
*
* @param whereJson /
* @return JSONObject
*/
JSONObject start(JSONObject whereJson);
/**
* 强制确认
*

View File

@@ -178,7 +178,7 @@ public class RawfoilWorkOrder implements Serializable {
/**
* 母卷状态
* 0-未烘烤1-已烘
* 0-未烘烤1-质检合格 2-需复
*/
private String roll_status;

View File

@@ -45,9 +45,17 @@
SELECT ivt.point_code,
ivt.container_name,
ivt.full_point_code,
ivt.full_point_status,
CASE ivt.full_point_status
WHEN '01' THEN '空位'
WHEN '02' THEN '有卷'
ELSE ''
END AS full_point_status,
ivt.empty_point_code,
ivt.empty_point_status,
CASE ivt.empty_point_status
WHEN '01' THEN '空位'
WHEN '02' THEN '有轴'
ELSE ''
END AS empty_point_status,
CASE der.origin
WHEN '1' THEN '生箔机'
WHEN '2' THEN '烘箱'
@@ -56,7 +64,10 @@
END AS origin,
CASE der.roll_status
WHEN '0' THEN '未烘烤'
WHEN '1' THEN '已烘烤'
WHEN '1' THEN '待质检'
WHEN '2' THEN '正在烘烤'
WHEN '3' THEN '质检合格'
WHEN '4' THEN '需复烤'
ELSE ''
END AS roll_status
FROM ST_IVT_CoolPointIvt ivt

View File

@@ -24,7 +24,7 @@
</where>
order by der.realstart_time,der.container_name
</select>
<select id="queryRawFoil" resultType="org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder"
<select id="queryRawFoil" resultType="org.nl.wms.pdm.rawfoilworkorder.service.dto.RawfoilWorkOrderDto"
parameterType="com.alibaba.fastjson.JSONObject">
SELECT
der.*,
@@ -52,7 +52,6 @@
CASE der.status
WHEN '00' THEN '初始化'
WHEN '10' THEN '配送中'
WHEN '20' THEN '准备就绪'
WHEN '30' THEN '开始生产'
WHEN '40' THEN '结束'
END AS status_name,
@@ -76,7 +75,7 @@
der.is_delete = '0'
AND der.status != '40'
<if test="map.getString('point_code') != null and map.getString('point_code') != ''">
AND der.resource_name = #{map.point_code}
AND ivt.point_code = #{map.point_code}
</if>
<if test="map.getString('container_name') != null and map.getString('container_name') != ''">

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -19,7 +20,9 @@ import org.nl.b_lms.sch.point.dao.mapper.StIvtSbpointivtMapper;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.TaskUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
//import org.nl.wms.basedata.master.materialbase.service.dao.Materialbase;
@@ -30,7 +33,9 @@ import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl;
import org.nl.wms.pda.st.service.impl.PrintServiceImpl;
import org.nl.wms.pdm.rawfoilworkorder.service.RawfoilWorkOrderService;
import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder;
import org.nl.wms.pdm.rawfoilworkorder.service.dao.SbPointIvt;
import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.RawfoilWorkOrderMapper;
import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.SbPointIvtMapper;
import org.nl.wms.pdm.rawfoilworkorder.service.dto.RawfoilWorkOrderDto;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,6 +67,8 @@ public class RawfoilWorkOrderServiceImpl extends ServiceImpl<RawfoilWorkOrderMap
@Autowired
SchBaseTaskMapper schBaseTaskMapper;
@Autowired
SbPointIvtMapper sbPointIvtMapper;
@Override
public Map<String, Object> queryAll(Map whereJson, PageQuery page) {
@@ -139,6 +146,8 @@ public class RawfoilWorkOrderServiceImpl extends ServiceImpl<RawfoilWorkOrderMap
dto.setUpdate_optname(nickName);
dto.setUpdate_time(now);
dto.setCreate_time(now);
dto.setPscn("N" + TaskUtils.getDateTime("yyMMdd")+ CodeUtil.getNewCode("SAP_CODE"));
dto.setMfg_order_name("SB"+TaskUtils.getDateTime("yyMMddHHmmss")+ CodeUtil.getNewCode("SBGD_CODE"));
dto.setOrder_type("2");
dto.setAgvno("0");
dto.setIs_delete("0");
@@ -196,6 +205,44 @@ public class RawfoilWorkOrderServiceImpl extends ServiceImpl<RawfoilWorkOrderMap
}
}
@Override
public JSONObject start(JSONObject whereJson) {
RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper<RawfoilWorkOrder>()
.eq(ObjectUtil.isNotEmpty(whereJson.getString("workorder_id")), RawfoilWorkOrder::getWorkorder_id, whereJson.getString("workorder_id")));
if (rawfoilWorkOrder== null) {
throw new BadRequestException("查询不到该工单!");
}
if (!StrUtil.equals(rawfoilWorkOrder.getStatus(), "00")) {
throw new BadRequestException("工单状态不为初始化");
}
SbPointIvt sbPointIvt = sbPointIvtMapper.selectOne(new LambdaQueryWrapper<SbPointIvt>()
.eq(ObjectUtil.isNotEmpty(rawfoilWorkOrder.getResource_name()), SbPointIvt::getExt_code, rawfoilWorkOrder.getResource_name()));
if (ObjectUtil.isEmpty(sbPointIvt)) {
throw new BadRequestException("点位:" + rawfoilWorkOrder.getResource_name() + "生箔设备不存在");
}
//查询该生箔工单是否存在未完成的任务
String container_name = whereJson.getString("container_name");
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("material_code = '" + container_name + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
throw new BadRequestException("该生箔工单存在未完成的任务,请先完成任务!");
}
if (StrUtil.equals("01", sbPointIvt.getFull_point_status()) && StrUtil.equals("02", sbPointIvt.getEmpty_point_status())) {
rawfoilWorkOrder.setStatus("30");
rawfoilWorkOrder.setFinish_type("02");
rawfoilWorkOrder.setUpdate_time(DateUtil.now());
rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder);
} else {
throw new BadRequestException("当前生箔机:" + sbPointIvt.getExt_code() + "不为满轴位为空且空轴位有轴的状态!,请先维护生箔机点位状态再来操作");
}
JSONObject jo = new JSONObject();
jo.put("message", "操作成功!");
return jo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void compelEnd(JSONObject whereJson) {

View File

@@ -47,6 +47,7 @@ public class SbPointIvtServiceImpl extends ServiceImpl<SbPointIvtMapper, SbPoint
wrapper.like(ObjectUtil.isNotEmpty(whereJson.get("point_code")), SbPointIvt::getPoint_code, whereJson.get("point_code"));
wrapper.eq(ObjectUtil.isNotEmpty(whereJson.get("product_area")), SbPointIvt::getProduct_area, whereJson.get("product_area"));
wrapper.eq(ObjectUtil.isNotEmpty(whereJson.get("is_used")), SbPointIvt::getIs_used, whereJson.get("is_used"));
wrapper.like(ObjectUtil.isNotEmpty(whereJson.get("search")), SbPointIvt::getPoint_code, whereJson.get("search"));
// wrapper.in(ObjectUtil.isNotEmpty(in_area_id), SbPointIvt::getProduct_area, in_area_id);
IPage<SbPointIvt> pages = new Page<>(page.getOffset() + 1, page.getPageSize());
IPage<SbPointIvt> sbPointIvtList = sbPointIvtMapper.selectPage(pages, wrapper);

View File

@@ -20,6 +20,7 @@
输入.product_area TYPEAS s_string
输入.is_used TYPEAS s_string
输入.in_area_id TYPEAS f_string
输入.search TYPEAS s_string
[临时表]
@@ -57,6 +58,9 @@
OPTION 输入.full_point_status <> ""
full_point_status = 输入.full_point_status
ENDOPTION
OPTION 输入.search <> ""
point_code LIKE 输入.search
ENDOPTION
OPTION 输入.empty_point_status <> ""
empty_point_status = 输入.empty_point_status
ENDOPTION
@@ -68,4 +72,4 @@
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
ENDIF

View File

@@ -27,6 +27,7 @@
输入.start_point_code TYPEAS s_string
输入.next_point_code TYPEAS s_string
输入.point_location TYPEAS s_string
输入.container_name TYPEAS s_string
输入.in_area_id TYPEAS f_string
@@ -135,4 +136,32 @@
ENDSELECT
ENDPAGEQUERY
ENDIF
ENDIF
IF 输入.flag = "3"
PAGEQUERY
SELECT
hot.*
der.origin
der.roll_status
FROM
PDM_BI_RawFoilWorkOrder der
LEFT JOIN st_ivt_hotpointivt hot ON hot.container_name = der.container_name
LEFT JOIN sch_base_point a ON a.material_code = der.container_name
WHERE
der.is_delete = '0'
AND hot.is_delete = '0'
AND hot.product_area in 输入.in_area_id
OPTION 输入.point_code <> ""
hot.point_code = 输入.point_code
or a.point_code = 输入.point_code
ENDOPTION
OPTION 输入.product_area <> ""
product_area = 输入.product_area
ENDOPTION
OPTION 输入.container_name <> ""
container_name >= 输入.container_name
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -279,7 +279,7 @@ public class CoolCutTask extends AbstractAcsTask {
//更新母卷状态
HashMap<String, String> map = new HashMap<>();
map.put("origin", "3");
map.put("roll_status", "1");
map.put("roll_status", "3");
map.put("update_optid", currentUserId + "");
map.put("update_optname", currentUsername);
map.put("update_time", DateUtil.now());

View File

@@ -117,8 +117,14 @@ public class InCoolIvtTask extends AbstractAcsTask {
//更新生箔工单母卷信息
JSONObject raw_jo = pdm_bi_rawfoilworkorder.query("container_name = '" + jsonTask.getString("material_code") + "'").uniqueResult(0);
raw_jo.put("origin", "2");
raw_jo.put("roll_status", "1");
String requestParam = jsonTask.getString("request_param");
if ("1".equals(requestParam)) {
raw_jo.put("origin", "2");
raw_jo.put("roll_status", "2");
}else if ("2".equals(requestParam)){
raw_jo.put("origin", "2");
raw_jo.put("roll_status", "1");
}
pdm_bi_rawfoilworkorder.update(raw_jo);
// 更新冷却库存状态
@@ -203,6 +209,7 @@ public class InCoolIvtTask extends AbstractAcsTask {
json.put("product_area", form.getString("product_area"));
json.put("sort_seq", "1");
json.put("handle_class", THIS_CLASS);
json.put("request_param", form.getString("request_param"));
json.put("create_id", currentUserId);
json.put("create_name", currentUsername);
json.put("create_time", DateUtil.now());