rev:半成品拼盘
This commit is contained in:
@@ -33,11 +33,11 @@ public enum AcsTaskEnum {
|
||||
TASK_PLOTTER_CALL_MATERIAL("14","刻字机-叫料请求"),
|
||||
TASK_WARP_MAC("7","包装机-叫料出库"),
|
||||
TASK_WARP_EMPTY("8","包装机-送空框"),
|
||||
TASK_STRUCT_IN("9","入库-生产入库"),
|
||||
TASK_STRUCT_OUT("10","出库-生产出库"),
|
||||
TASK_STRUCT_CHECK("14","盘点任务"),
|
||||
TASK_STRUCT_SHUT("15","拼盘任务出"),
|
||||
TASK_STRUCT_SHUT_IN("16","拼盘任务入"),
|
||||
TASK_STRUCT_IN("9","入库-半成品-生产入库"),
|
||||
TASK_STRUCT_OUT("10","出库-半成品-生产出库"),
|
||||
TASK_STRUCT_CHECK("14","半成品-盘点"),
|
||||
TASK_STRUCT_SHUT("15","半成品-拼盘任务出"),
|
||||
TASK_STRUCT_SHUT_IN("16","半成品-拼盘任务入"),
|
||||
TASK_STRUCT_CP_IN("11","入库-成品-生产入库"),
|
||||
TASK_STRUCT_CP_OUT("12","出库-成品-生产出库"),
|
||||
TASK_STRUCT_CP_CHECK("13","成品-盘点"),
|
||||
|
||||
@@ -491,7 +491,7 @@ public class ClassstandardServiceImpl implements ClassstandardService {
|
||||
|
||||
@Override
|
||||
public Set<String> getAllChildIdSet(String class_idStr) {
|
||||
JSONArray arr = WQLObject.getWQLObject("md_pb_classstandard").query("class_id IN " + class_idStr).getResultJSONArray(0);
|
||||
JSONArray arr = WQLObject.getWQLObject("md_pb_classstandard").query("class_id IN " + "('"+class_idStr+"')").getResultJSONArray(0);
|
||||
Set<String> set = new HashSet<>();
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
set.addAll(this.getChildIdSet(arr.getJSONObject(i).getString("class_id")));
|
||||
|
||||
@@ -68,6 +68,13 @@ public class StIvtShutframeinvBcpController {
|
||||
return new ResponseEntity<>(shutframeinvBcpService.getBillDtl(jo), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getBillDtlView")
|
||||
@Log("查询拼盘详情")
|
||||
@ApiOperation("查询拼盘详情")
|
||||
public ResponseEntity<Object> getBillDtlView(@RequestBody JSONObject jo) {
|
||||
return new ResponseEntity<>(shutframeinvBcpService.getBillDtlView(jo), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/issueTask")
|
||||
@Log("任务下发")
|
||||
@ApiOperation("任务下发")
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package org.nl.wms.storage_manage.semimanage.service.check.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -22,13 +25,18 @@ import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.nl.wms.storage_manage.CHECKEnum;
|
||||
import org.nl.wms.storage_manage.semimanage.MLEnum;
|
||||
import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckdtlBcpService;
|
||||
@@ -41,6 +49,7 @@ import org.nl.wms.storage_manage.semimanage.service.check.dto.CheckQuery;
|
||||
import org.nl.wms.storage_manage.semimanage.service.moveOrLess.IStIvtMoreorlessmstBcpService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
@@ -75,6 +84,8 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
private SchBasePointMapper pointMapper;
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
@Override
|
||||
public Object pageQuery(CheckQuery query, PageQuery page) {
|
||||
@@ -88,6 +99,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void create(JSONObject form) {
|
||||
JSONArray rows = form.getJSONArray("tableData");
|
||||
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空");
|
||||
@@ -107,6 +119,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void update(JSONObject form) {
|
||||
Assert.notNull(new Object[]{form, form.get("check_id")}, "请求参数不能为空");
|
||||
StIvtCheckmstBcp mst = form.toJavaObject(StIvtCheckmstBcp.class);
|
||||
@@ -119,6 +132,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void saveCheck(JSONObject whereJson) {
|
||||
JSONObject form = whereJson.getJSONObject("row");
|
||||
JSONArray rows = whereJson.getJSONArray("rows");
|
||||
@@ -168,6 +182,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void confirm(JSONObject whereJson) {
|
||||
|
||||
JSONObject form = whereJson.getJSONObject("row");
|
||||
@@ -236,6 +251,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void process0(JSONObject whereJson) {
|
||||
JSONObject form = whereJson.getJSONObject("form");
|
||||
JSONObject row = whereJson.getJSONObject("row");
|
||||
@@ -270,6 +286,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void issueTask(JSONObject form) {
|
||||
Assert.notNull(new Object[]{form, form.get("checkdtl_id")}, "请求参数不能为空");
|
||||
|
||||
@@ -287,16 +304,26 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
|
||||
StIvtStructattr struct = structattrService.getOne(new QueryWrapper<StIvtStructattr>().eq("struct_id", dtl.getStruct_id()));
|
||||
|
||||
String task_group_id = IdUtil.getStringId();
|
||||
PointEvent event = PointEvent.builder()
|
||||
.type(AcsTaskEnum.TASK_STRUCT_SHUT.getCode())
|
||||
.acs_task_type("7")
|
||||
.type(AcsTaskEnum.TASK_STRUCT_CHECK.getCode())
|
||||
.point_code1(struct.getStruct_code())
|
||||
.point_code2((String) maps.get(0).get("point_code"))
|
||||
.vehicle_code(dtl.getStoragevehicle_code())
|
||||
.task_group_id(task_group_id)
|
||||
.product_area(mst.getWorkshop_id())
|
||||
.build();
|
||||
|
||||
BussEventMulticaster.Publish(event);
|
||||
|
||||
// 下发任务
|
||||
List<SchBaseTask> taskList = taskService.list(
|
||||
new QueryWrapper<SchBaseTask>().lambda()
|
||||
.eq(SchBaseTask::getTask_group_id, task_group_id)
|
||||
);
|
||||
|
||||
taskList.forEach(this::sendTask);
|
||||
|
||||
checkdtlBcpService.update(new UpdateWrapper<StIvtCheckdtlBcp>()
|
||||
.set("is_down", "1")
|
||||
.set("checkpoint_id", (String) maps.get(0).get("point_code"))
|
||||
@@ -309,6 +336,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void taskOperate(JSONObject form) {
|
||||
String task_id = form.getString("task_id");
|
||||
String status = form.getString("status");
|
||||
@@ -351,6 +379,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void process1(JSONObject whereJson) {
|
||||
JSONObject form = whereJson.getJSONObject("form");
|
||||
JSONObject row = whereJson.getJSONObject("row");
|
||||
@@ -419,6 +448,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void delete(Long[] ids) {
|
||||
for (Long id : ids) {
|
||||
StIvtCheckmstBcp dao = this.getOne(new QueryWrapper<StIvtCheckmstBcp>().eq("check_id", id));
|
||||
@@ -434,6 +464,23 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl<StIvtCheckmstBcpMap
|
||||
}
|
||||
}
|
||||
|
||||
private void sendTask(SchBaseTask taskDao) {
|
||||
JSONArray param = new JSONArray();
|
||||
param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao)));
|
||||
// 1.下发任务
|
||||
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||
Map<String, Object> result = bean.issueTaskToAcs3(param);
|
||||
|
||||
// 反馈失败报错
|
||||
if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) {
|
||||
throw new BadRequestException("下发失败:"+MapUtil.getStr(result, "message"));
|
||||
}
|
||||
|
||||
// 2.更新任务状态
|
||||
taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode());
|
||||
taskService.updateById(taskDao);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private StIvtCheckmstBcp packageMstForm(StIvtCheckmstBcp checkmstYl, JSONObject whereJson) {
|
||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||
|
||||
@@ -135,6 +135,14 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
||||
mst.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
mst.setCreate_time(DateUtil.now());
|
||||
this.save(mst);
|
||||
|
||||
// 更新载具扩展属性
|
||||
iMdPbStoragevehicleextService.update(
|
||||
new UpdateWrapper<MdPbStoragevehicleext>().lambda()
|
||||
.set(MdPbStoragevehicleext::getMaterial_id, mst.getMaterial_id())
|
||||
.set(MdPbStoragevehicleext::getStorage_qty, mst.getPlan_qty())
|
||||
.eq(MdPbStoragevehicleext::getStoragevehicle_code, mst.getStoragevehicle_code())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ public interface IStIvtShutframeinvBcpService extends IService<StIvtShutframeinv
|
||||
|
||||
List<Map> getBillDtl(JSONObject jo);
|
||||
|
||||
List<Map> getBillDtlView(JSONObject jo);
|
||||
|
||||
void confirm(JSONObject jo);
|
||||
|
||||
void issueTask(JSONObject jo);
|
||||
@@ -43,4 +45,6 @@ public interface IStIvtShutframeinvBcpService extends IService<StIvtShutframeinv
|
||||
void taskOperate2(JSONObject jo);
|
||||
|
||||
void confirmOne(JSONObject jo);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class StIvtShutframedtlBcpServiceImpl extends ServiceImpl<StIvtShutframed
|
||||
public int create(JSONArray rows, String shutframeinv_id) {
|
||||
// 根据数量排序 默认由大到小
|
||||
List<Object> list = rows.stream()
|
||||
.sorted(Comparator.comparing(row -> ((JSONObject) row).getString("canuse_qty")).reversed()).collect(Collectors.toList());
|
||||
.sorted(Comparator.comparing(row -> ((JSONObject) row).getDoubleValue("canuse_qty")).reversed()).collect(Collectors.toList());
|
||||
rows = JSONArray.parseArray(JSON.toJSONString(list));
|
||||
|
||||
StIvtStructattr first_struct = null;
|
||||
@@ -58,11 +58,13 @@ public class StIvtShutframedtlBcpServiceImpl extends ServiceImpl<StIvtShutframed
|
||||
// 先删除在插入
|
||||
this.remove(new QueryWrapper<StIvtShutframedtlBcp>().eq("shutframeinv_id", shutframeinv_id));
|
||||
LinkedList<String> struct_list = new LinkedList<>();
|
||||
double qty = 0;
|
||||
for (int i = 0; i < rows.size(); i++) {
|
||||
JSONObject row = rows.getJSONObject(i);
|
||||
if (ObjectUtil.isEmpty(struct_list)) {
|
||||
struct_list.addFirst(row.getString("struct_code"));
|
||||
first_struct = structattrService.getOne(new QueryWrapper<StIvtStructattr>().eq("struct_code", row.getString("struct_code")));
|
||||
qty = row.getDoubleValue("canuse_qty");
|
||||
continue;
|
||||
} else {
|
||||
if (!struct_list.contains(row.getString("struct_code"))) {
|
||||
@@ -93,7 +95,7 @@ public class StIvtShutframedtlBcpServiceImpl extends ServiceImpl<StIvtShutframed
|
||||
dtl.setPcsn(row.getString("pcsn"));
|
||||
dtl.setQty_unit_id(row.getString("qty_unit_id"));
|
||||
dtl.setQty_unit_name(row.getString("qty_unit_name"));
|
||||
dtl.setQty(row.getBigDecimal("canuse_qty"));
|
||||
dtl.setQty(BigDecimal.valueOf(qty));
|
||||
dtl.setFact_qty(row.getBigDecimal("canuse_qty"));
|
||||
dtl.setUnit_weight(row.getBigDecimal("unit_weight"));
|
||||
dtl.setTurnin_sect_id(first_struct.getSect_id());
|
||||
|
||||
@@ -29,6 +29,8 @@ import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
|
||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr;
|
||||
@@ -87,6 +89,8 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务
|
||||
|
||||
|
||||
@Override
|
||||
@@ -398,6 +402,21 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
|
||||
.eq(StIvtStructattr::getStruct_id, dtl.getTurnin_struct_id())
|
||||
);
|
||||
|
||||
// 更新扩展属性 -- 空载具
|
||||
iMdPbStoragevehicleextService.update(
|
||||
new UpdateWrapper<MdPbStoragevehicleext>().lambda()
|
||||
.set(MdPbStoragevehicleext::getMaterial_id, "")
|
||||
.set(MdPbStoragevehicleext::getStorage_qty, BigDecimal.valueOf(0))
|
||||
.eq(MdPbStoragevehicleext::getStoragevehicle_code, dtl.getStoragevehicle_code())
|
||||
);
|
||||
|
||||
// 更新扩展属性 -- 有料
|
||||
iMdPbStoragevehicleextService.update(
|
||||
new UpdateWrapper<MdPbStoragevehicleext>().lambda()
|
||||
.set(MdPbStoragevehicleext::getStorage_qty, in_ivt.getCanuse_qty())
|
||||
.eq(MdPbStoragevehicleext::getStoragevehicle_code, dtl.getStoragevehicle_code_in())
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
StIvtShutframeinvBcp mst = this.getById(form.getString("shutframeinv_id"));
|
||||
@@ -417,14 +436,36 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl<StIvtShutframei
|
||||
return ivt_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map> getBillDtlView(JSONObject jo) {
|
||||
return bcpMapper.getBillDtlView(MapOf.of("shutframeinv_id", jo.getString("shutframeinv_id")));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void delete(Long[] ids) {
|
||||
for (Long id : ids) {
|
||||
StIvtShutframeinvBcp dao = this.getOne(new QueryWrapper<StIvtShutframeinvBcp>().eq("shutframeinv_id", id));
|
||||
dao.setIs_delete(true);
|
||||
|
||||
this.updateById(dao);
|
||||
|
||||
List<StIvtShutframedtlBcp> list = shutframedtlBcpService.list(
|
||||
new QueryWrapper<StIvtShutframedtlBcp>().lambda()
|
||||
.eq(StIvtShutframedtlBcp::getShutframeinv_id, dao.getShutframeinv_id())
|
||||
);
|
||||
|
||||
// 解锁货位
|
||||
iStIvtStructattrService.update(
|
||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(StIvtStructattr::getStruct_id, list.get(0).getTurnin_struct_id())
|
||||
);
|
||||
|
||||
iStIvtStructattrService.update(
|
||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(StIvtStructattr::getStruct_id, list.get(0).getTurnout_struct_id())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@ public interface StIvtStructivtBcpMapper extends BaseMapper<StIvtStructivtBcp> {
|
||||
|
||||
List<Map> getStructIvtInfo(@Param("map") Map map);
|
||||
|
||||
List<Map> getBillDtlView(@Param("map") Map map);
|
||||
|
||||
List<Map> packageQuery(@Param("query") StructIvtBcpQuery query);
|
||||
|
||||
}
|
||||
|
||||
@@ -112,6 +112,25 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getBillDtlView" resultType="java.util.Map">
|
||||
SELECT
|
||||
ivt.*,
|
||||
mb.material_code,
|
||||
mb.material_name,
|
||||
mb.material_spec,
|
||||
mu.unit_name AS qty_unit_name
|
||||
FROM
|
||||
st_ivt_shutframedtl_bcp ivt
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id
|
||||
LEFT JOIN md_pb_measureunit mu ON mu.measure_unit_id = ivt.qty_unit_id
|
||||
<where>
|
||||
1 = 1
|
||||
<if test="map.shutframeinv_id != null and map.shutframeinv_id != ''">
|
||||
and #{map.shutframeinv_id} = ivt.shutframeinv_id
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="packageQuery" resultType="java.util.Map">
|
||||
SELECT
|
||||
ivt.*,
|
||||
|
||||
Reference in New Issue
Block a user