rev : 出入库下发任务
This commit is contained in:
@@ -34,6 +34,8 @@ public enum AcsTaskEnum {
|
||||
TASK_WARP_EMPTY("8","包装机-送空框"),
|
||||
TASK_STRUCT_IN("9","入库-生产入库"),
|
||||
TASK_STRUCT_OUT("10","出库-生产出库"),
|
||||
TASK_STRUCT_CP_IN("9","入库-成品-生产入库"),
|
||||
TASK_STRUCT_CP_OUT("10","出库-成品-生产出库"),
|
||||
TASK_STRUCT_CHECK("11","盘点任务"),
|
||||
TASK_STRUCT_SHUT("12","拼盘任务"),
|
||||
|
||||
|
||||
@@ -141,4 +141,14 @@ public interface IStIvtIostorinvCpOutService extends IService<StIvtIostorinvCp>
|
||||
* }
|
||||
*/
|
||||
void manualDiv(JSONObject whereJson);
|
||||
|
||||
|
||||
/**
|
||||
* 任务操作
|
||||
* @param whereJson
|
||||
* {
|
||||
* ""
|
||||
* }
|
||||
*/
|
||||
void taskOperate(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -154,4 +154,13 @@ public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
||||
*/
|
||||
void confirm(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 任务操作
|
||||
* @param whereJson
|
||||
* {
|
||||
* ""
|
||||
* }
|
||||
*/
|
||||
void taskOperate(JSONObject whereJson);
|
||||
|
||||
}
|
||||
|
||||
@@ -50,4 +50,10 @@ public interface IStIvtIostorinvdisCpService extends IService<StIvtIostorinvdisC
|
||||
* @param dtlDao /
|
||||
*/
|
||||
void onductDataOutDis(List<StIvtStructivtCp> list, StIvtIostorinvdtlCp dtlDao);
|
||||
|
||||
/**
|
||||
* 分配完成方法
|
||||
* @param json /
|
||||
*/
|
||||
void confirm(JSONObject json);
|
||||
}
|
||||
|
||||
@@ -45,4 +45,5 @@ public interface IStIvtIostorinvdtlCpService extends IService<StIvtIostorinvdtlC
|
||||
* @return
|
||||
*/
|
||||
List getDisDtl(Map<String, Object> map);
|
||||
|
||||
}
|
||||
|
||||
@@ -7,11 +7,13 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.publish.event.PointEvent;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
@@ -378,9 +380,11 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
||||
);
|
||||
|
||||
PointEvent event = PointEvent.builder()
|
||||
.type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode())
|
||||
.type(AcsTaskEnum.TASK_STRUCT_CP_OUT.getCode())
|
||||
.point_code1(disDao.getStruct_code())
|
||||
.point_code2(pointDao.getPoint_code())
|
||||
.vehicle_code(disDao.getStoragevehicle_code())
|
||||
.product_area("A1") // 暂时写死
|
||||
.callback((Consumer<String>) disDao::setTask_id)
|
||||
.build();
|
||||
BussEventMulticaster.Publish(event);
|
||||
@@ -533,6 +537,37 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
|
||||
updateMst(mstDao.getIostorinv_id());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void taskOperate(JSONObject form) {
|
||||
String task_id = form.getString("task_id");
|
||||
String status = form.getString("status");
|
||||
|
||||
StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne(new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id));
|
||||
|
||||
// 更新任务状态为完成
|
||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
iostorinvdisCpService.update(
|
||||
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
|
||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))
|
||||
);
|
||||
// 调用分配完成
|
||||
JSONObject mst_jo = new JSONObject();
|
||||
mst_jo.put("iostorinvdtl_id", disDao.getIostorinvdtl_id());
|
||||
mst_jo.put("iostorinv_id", disDao.getIostorinv_id());
|
||||
mst_jo.put("is_out", true);
|
||||
iostorinvdisCpService.confirm(mst_jo);
|
||||
|
||||
} else {
|
||||
iostorinvdisCpService.update(
|
||||
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
|
||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||
|
||||
@@ -14,6 +14,7 @@ import io.jsonwebtoken.lang.Assert;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.publish.event.PointEvent;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
@@ -52,6 +53,7 @@ import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivt
|
||||
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
|
||||
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -563,9 +565,11 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
);
|
||||
|
||||
PointEvent event = PointEvent.builder()
|
||||
.type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode())
|
||||
.type(AcsTaskEnum.TASK_STRUCT_CP_IN.getCode())
|
||||
.point_code2(disDao.getStruct_code())
|
||||
.point_code1(pointDao.getPoint_code())
|
||||
.vehicle_code(disDao.getStoragevehicle_code())
|
||||
.product_area("A1") // 暂时写死
|
||||
.callback((Consumer<String>) disDao::setTask_id)
|
||||
.build();
|
||||
BussEventMulticaster.Publish(event);
|
||||
@@ -657,6 +661,38 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void taskOperate(JSONObject form) {
|
||||
String task_id = form.getString("task_id");
|
||||
String status = form.getString("status");
|
||||
|
||||
StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne(new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id));
|
||||
|
||||
// 更新任务状态为完成
|
||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
iostorinvdisCpService.update(
|
||||
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
|
||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))
|
||||
);
|
||||
// 调用分配完成
|
||||
JSONObject mst_jo = new JSONObject();
|
||||
mst_jo.put("iostorinvdtl_id", disDao.getIostorinvdtl_id());
|
||||
mst_jo.put("iostorinv_id", disDao.getIostorinv_id());
|
||||
mst_jo.put("is_out", false);
|
||||
iostorinvdisCpService.confirm(mst_jo);
|
||||
|
||||
} else {
|
||||
iostorinvdisCpService.update(
|
||||
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
|
||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -19,7 +20,11 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrServ
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||
import org.nl.wms.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.IVTEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisCpMapper;
|
||||
@@ -56,6 +61,15 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
|
||||
@Autowired
|
||||
protected IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService; // 成品出入库明细表服务
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvCpService iStIvtIostorinvCpService; // 成品出入库服务
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvCpOutService iStIvtIostorinvCpOutService; // 成品出库服务
|
||||
|
||||
@Override
|
||||
public void batchInsert(Collection<StIvtIostorinvdisCp> list) {
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
@@ -168,4 +182,50 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void confirm(JSONObject json) {
|
||||
|
||||
// 判断此明细下的所有分配明细是否为完成
|
||||
List<StIvtIostorinvdisCp> disDaoList = this.list(
|
||||
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||
.eq(StIvtIostorinvdisCp::getIostorinvdtl_id, json.getString("iostorinvdtl_id"))
|
||||
);
|
||||
|
||||
boolean is_confirm_dis = disDaoList.stream()
|
||||
.allMatch(row -> row.getWork_status().equals(IOSEnum.WORK_STATUS.code("完成")));
|
||||
|
||||
if (is_confirm_dis) {
|
||||
// 更新明细为完成
|
||||
iostorinvdtlCpService.update(
|
||||
new UpdateWrapper<StIvtIostorinvdtlCp>().lambda()
|
||||
.set(StIvtIostorinvdtlCp::getBill_status,IOSEnum.BILL_STATUS.code("完成"))
|
||||
.eq(StIvtIostorinvdtlCp::getIostorinvdtl_id,json.getString("iostorinvdtl_id"))
|
||||
);
|
||||
|
||||
// 判断明细是否为完成
|
||||
List<StIvtIostorinvdtlCp> dtlDaoList = iostorinvdtlCpService.list(
|
||||
new QueryWrapper<StIvtIostorinvdtlCp>().lambda()
|
||||
.eq(StIvtIostorinvdtlCp::getIostorinv_id, json.getString("iostorinv_id"))
|
||||
);
|
||||
|
||||
boolean is_confirm_dtl = dtlDaoList.stream()
|
||||
.allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成")));
|
||||
|
||||
if (is_confirm_dtl) {
|
||||
// 调用主表确认
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("iostorinv_id", json.getString("iostorinv_id"));
|
||||
if (json.getBoolean("is_out")) {
|
||||
iStIvtIostorinvCpOutService.confirm(param);
|
||||
} else {
|
||||
iStIvtIostorinvCpService.confirm(param);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
|
||||
@@ -13,6 +14,7 @@ import org.nl.wms.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.IVTEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -5,6 +5,8 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||
import org.nl.wms.storage_manage.rawmanage.service.check.IStIvtCheckmstYlService;
|
||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService;
|
||||
@@ -32,6 +34,14 @@ public enum TASKEnum implements FunctionStrategy<String, JSONObject> {
|
||||
IStIvtShutframeinvBcpService bean = SpringContextHolder.getBean(IStIvtShutframeinvBcpService.class);
|
||||
bean.confirm(form);
|
||||
}),
|
||||
CP_IN_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_IN.getCode().equals(type), form -> {
|
||||
IStIvtIostorinvCpService bean = SpringContextHolder.getBean(IStIvtIostorinvCpService.class);
|
||||
bean.taskOperate(form);
|
||||
}),
|
||||
CP_OUT_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_OUT.getCode().equals(type), form -> {
|
||||
IStIvtIostorinvCpOutService bean = SpringContextHolder.getBean(IStIvtIostorinvCpOutService.class);
|
||||
bean.taskOperate(form);
|
||||
}),
|
||||
;
|
||||
|
||||
private final Predicate<String> predicate;
|
||||
|
||||
Reference in New Issue
Block a user