rev:优化生箔、烘箱、分切上料功能
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@ public interface IPdmBiSlittingproductionplanService extends IService<PdmBiSlitt
|
||||
|
||||
/**
|
||||
* 创建
|
||||
* @param entity /
|
||||
* @param whereJson /
|
||||
*/
|
||||
void create(PdmBiSlittingproductionplan entity);
|
||||
void create(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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("质检不合格")
|
||||
|
||||
|
||||
@@ -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("下卷")
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -60,6 +60,14 @@ public interface RawfoilWorkOrderService extends IService<RawfoilWorkOrder> {
|
||||
*/
|
||||
void deleteAll(Long[] ids);
|
||||
|
||||
/**
|
||||
* 开始工单
|
||||
*
|
||||
* @param whereJson /
|
||||
* @return JSONObject
|
||||
*/
|
||||
JSONObject start(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 强制确认
|
||||
*
|
||||
|
||||
@@ -178,7 +178,7 @@ public class RawfoilWorkOrder implements Serializable {
|
||||
|
||||
/**
|
||||
* 母卷状态
|
||||
* 0-未烘烤;1-已烘烤
|
||||
* 0-未烘烤;1-质检合格 2-需复烤
|
||||
*/
|
||||
private String roll_status;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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') != ''">
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user