package com.zy.asrs.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.core.common.BaseRes;
|
import com.core.common.Cools;
|
import com.core.common.DateUtils;
|
import com.core.common.SnowflakeIdWorker;
|
import com.core.exception.CoolException;
|
import com.zy.asrs.entity.*;
|
import com.zy.asrs.entity.param.*;
|
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
|
import com.zy.asrs.entity.result.StockVo;
|
import com.zy.asrs.mapper.TagMapper;
|
import com.zy.asrs.service.*;
|
import com.zy.asrs.task.AbstractHandler;
|
import com.zy.asrs.utils.MatUtils;
|
import com.zy.asrs.utils.PostMesDataUtils;
|
import com.zy.common.model.DetlDto;
|
import com.zy.common.model.enums.WorkNoType;
|
import com.zy.common.service.CommonService;
|
import com.zy.common.utils.NodeUtils;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import java.util.*;
|
|
/**
|
* Created by vincent on 2022/4/9
|
*/
|
@Slf4j
|
@Service
|
public class OpenServiceImpl extends AbstractHandler<String> implements OpenService {
|
|
@Autowired
|
private OrderService orderService;
|
@Autowired
|
private OrderDetlService orderDetlService;
|
@Autowired
|
private SnowflakeIdWorker snowflakeIdWorker;
|
@Autowired
|
private DocTypeService docTypeService;
|
@Autowired
|
private MatService matService;
|
@Autowired
|
private LocDetlService locDetlService;
|
@Autowired
|
private PackService packService;
|
@Autowired
|
private TagService tagService;
|
@Autowired
|
private TagMapper tagMapper;
|
@Autowired
|
private WaitPakinService waitPakinService;
|
@Autowired
|
private WrkDetlService wrkDetlService;
|
@Autowired
|
private TestMastService testMastService;
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private CommonService commonService;
|
@Autowired
|
private WrkMastService wrkMastService;
|
|
@Value("${mes.inPath}")
|
private String inpath;
|
@Value("${mes.url}")
|
private String mesUrl;
|
|
@Override
|
@Transactional
|
public void pakinOrderCreate(OpenOrderPakinParam param) {
|
Order order = orderService.selectByNo(param.getOrderNo());
|
if (!Cools.isEmpty(order)) {
|
throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交");
|
}
|
DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE);
|
Date now = new Date();
|
// 单据主档
|
order = new Order(
|
String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空]
|
param.getOrderNo(), // 订单编号
|
DateUtils.convert(now), // 单据日期
|
docType.getDocId(), // 单据类型
|
null, // 项目编号
|
null, //
|
null, // 调拨项目编号
|
null, // 初始票据号
|
null, // 票据号
|
null, // 客户编号
|
null, // 客户
|
null, // 联系方式
|
null, // 操作人员
|
null, // 合计金额
|
null, // 优惠率
|
null, // 优惠金额
|
null, // 销售或采购费用合计
|
null, // 实付金额
|
null, // 付款类型
|
null, // 业务员
|
null, // 结算天数
|
null, // 邮费支付类型
|
null, // 邮费
|
null, // 付款时间
|
null, // 发货时间
|
null, // 物流名称
|
null, // 物流单号
|
1L, // 订单状态
|
1, // 状态
|
9527L, // 添加人员
|
now, // 添加时间
|
9527L, // 修改人员
|
now, // 修改时间
|
null // 备注
|
);
|
if (!orderService.insert(order)) {
|
throw new CoolException("生成单据主档失败,请联系管理员");
|
}
|
// 单据明细档
|
List<DetlDto> list = new ArrayList<>();
|
List<DetlDto> orderDetails = param.getOrderDetails();
|
for (DetlDto detail : orderDetails) {
|
DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
|
if (DetlDto.has(list, dto)) {
|
DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
|
assert detlDto != null;
|
detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
|
} else {
|
list.add(dto);
|
}
|
}
|
for (DetlDto detlDto : list) {
|
Mat mat = matService.selectByMatnr(detlDto.getMatnr());
|
if (Cools.isEmpty(mat)) {
|
throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品");
|
}
|
OrderDetl orderDetl = new OrderDetl();
|
orderDetl.sync(mat);
|
orderDetl.setBatch(detlDto.getBatch());
|
orderDetl.setAnfme(detlDto.getAnfme());
|
orderDetl.setOrderId(order.getId());
|
orderDetl.setOrderNo(order.getOrderNo());
|
orderDetl.setCreateBy(9527L);
|
orderDetl.setCreateTime(now);
|
orderDetl.setUpdateBy(9527L);
|
orderDetl.setUpdateTime(now);
|
orderDetl.setStatus(1);
|
orderDetl.setQty(0.0D);
|
if (!orderDetlService.insert(orderDetl)) {
|
throw new CoolException("生成单据明细失败,请联系管理员");
|
}
|
}
|
}
|
|
@Override
|
@Transactional
|
public List<OpenOrderCompeteResult> pakinOrderComplete(OpenOrderCompleteParam param) {
|
List<OpenOrderCompeteResult> results = new ArrayList<>();
|
if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) {
|
// 指定订单
|
Order order = orderService.selectByNo(param.getOrderNo());
|
if (null != order) {
|
OpenOrderCompeteResult result = new OpenOrderCompeteResult();
|
results.add(result);
|
result.setOrderNo(order.getOrderNo());
|
result.setOrderTime(order.getOrderTime());
|
result.setOrderType(order.getDocType$());
|
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
|
for (OrderDetl orderDetl : orderDetls) {
|
result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
|
}
|
if (order.getSettle() == 4L) {
|
// 修改订单状态 4.完成 ===>> 6.已上报
|
if (!orderService.updateSettle(order.getId(), 6L, null)) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
}
|
} else {
|
// 所有订单
|
List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L));
|
for (Order order : orders) {
|
OpenOrderCompeteResult result = new OpenOrderCompeteResult();
|
results.add(result);
|
result.setOrderNo(order.getOrderNo());
|
result.setOrderTime(order.getOrderTime());
|
result.setOrderType(order.getDocType$());
|
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
|
for (OrderDetl orderDetl : orderDetls) {
|
result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
|
}
|
// 修改订单状态 4.完成 ===>> 6.已上报
|
if (!orderService.updateSettle(order.getId(), 6L, null)) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
}
|
return results;
|
}
|
|
@Override
|
@Transactional
|
public void pakoutOrderCreate(OpenOrderPakoutParam param) {
|
Order order = orderService.selectByNo(param.getOrderNo());
|
// 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据
|
if (!Cools.isEmpty(order)) {
|
if (order.getSettle() > 1L) {
|
throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据");
|
}
|
orderService.remove(order.getId());
|
}
|
DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
|
Date now = new Date();
|
// 单据主档
|
order = new Order(
|
String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空]
|
param.getOrderNo(), // 订单编号
|
DateUtils.convert(now), // 单据日期
|
docType.getDocId(), // 单据类型
|
null, // 项目编号
|
null, //
|
null, // 调拨项目编号
|
null, // 初始票据号
|
null, // 票据号
|
null, // 客户编号
|
null, // 客户
|
null, // 联系方式
|
null, // 操作人员
|
null, // 合计金额
|
null, // 优惠率
|
null, // 优惠金额
|
null, // 销售或采购费用合计
|
null, // 实付金额
|
null, // 付款类型
|
null, // 业务员
|
null, // 结算天数
|
null, // 邮费支付类型
|
null, // 邮费
|
null, // 付款时间
|
null, // 发货时间
|
null, // 物流名称
|
null, // 物流单号
|
1L, // 订单状态
|
1, // 状态
|
9527L, // 添加人员
|
now, // 添加时间
|
9527L, // 修改人员
|
now, // 修改时间
|
null // 备注
|
);
|
if (!orderService.insert(order)) {
|
throw new CoolException("生成单据主档失败,请联系管理员");
|
}
|
// 单据明细档
|
List<DetlDto> list = new ArrayList<>();
|
List<DetlDto> orderDetails = param.getOrderDetails();
|
for (DetlDto detail : orderDetails) {
|
DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
|
if (DetlDto.has(list, dto)) {
|
DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
|
assert detlDto != null;
|
detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
|
} else {
|
list.add(dto);
|
}
|
}
|
for (DetlDto detlDto : list) {
|
Mat mat = matService.selectByMatnr(detlDto.getMatnr());
|
if (Cools.isEmpty(mat)) {
|
throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品");
|
}
|
OrderDetl orderDetl = new OrderDetl();
|
orderDetl.sync(mat);
|
orderDetl.setBatch(detlDto.getBatch());
|
orderDetl.setAnfme(detlDto.getAnfme());
|
orderDetl.setOrderId(order.getId());
|
orderDetl.setOrderNo(order.getOrderNo());
|
orderDetl.setCreateBy(9527L);
|
orderDetl.setCreateTime(now);
|
orderDetl.setUpdateBy(9527L);
|
orderDetl.setUpdateTime(now);
|
orderDetl.setStatus(1);
|
orderDetl.setQty(0.0D);
|
if (!orderDetlService.insert(orderDetl)) {
|
throw new CoolException("生成单据明细失败,请联系管理员");
|
}
|
}
|
}
|
|
@Override
|
public List<OpenOrderCompeteResult> pakoutOrderComplete(OpenOrderCompleteParam param) {
|
List<OpenOrderCompeteResult> results = new ArrayList<>();
|
if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) {
|
// 指定订单
|
Order order = orderService.selectByNo(param.getOrderNo());
|
if (null != order) {
|
OpenOrderCompeteResult result = new OpenOrderCompeteResult();
|
results.add(result);
|
result.setOrderNo(order.getOrderNo());
|
result.setOrderTime(order.getOrderTime());
|
result.setOrderType(order.getDocType$());
|
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
|
for (OrderDetl orderDetl : orderDetls) {
|
result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
|
}
|
if (order.getSettle() == 4L) {
|
// 修改订单状态 4.完成 ===>> 6.已上报
|
if (!orderService.updateSettle(order.getId(), 6L, null)) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
}
|
} else {
|
// 所有订单
|
List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L));
|
for (Order order : orders) {
|
OpenOrderCompeteResult result = new OpenOrderCompeteResult();
|
results.add(result);
|
result.setOrderNo(order.getOrderNo());
|
result.setOrderTime(order.getOrderTime());
|
result.setOrderType(order.getDocType$());
|
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
|
for (OrderDetl orderDetl : orderDetls) {
|
result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
|
}
|
// 修改订单状态 4.完成 ===>> 6.已上报
|
if (!orderService.updateSettle(order.getId(), 6L, null)) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
}
|
return results;
|
}
|
|
@Override
|
@Transactional
|
public List<StockVo> queryStock() {
|
return locDetlService.queryStockTotal();
|
}
|
|
@Override
|
@Transactional
|
public void packageUp(PackParam param) {
|
if (Cools.isEmpty(param.getBarcode())) {
|
throw new CoolException("barcode不能为空");
|
}
|
Mat analyse = MatUtils.analyseMat(param.getBarcode());
|
Pack pack = packService.selectByBarcode(param.getBarcode());
|
if (null != pack) {
|
throw new CoolException(param.getBarcode() + "重复提交");
|
}
|
Date now = new Date();
|
pack = new Pack(
|
param.getBarcode(), // 条码[非空]
|
analyse.getMatnr(), // 商品编号
|
analyse.getBarcode(), // 序列码
|
1L, // 订单状态
|
1, // 状态
|
now, // 添加时间
|
null, // 添加人员
|
now, // 修改时间
|
null, // 修改人员
|
null // 备注
|
);
|
if (!packService.insert(pack)) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
|
Mat mat = matService.selectByMatnr(analyse.getMatnr());
|
if (mat == null) {
|
mat = new Mat();
|
// 分类
|
Long tagId;
|
// 一级分类
|
if (!Cools.isEmpty(param.getGroupCode()) && !Cools.isEmpty(param.getGroupName())) {
|
Tag priTag = tagService.selectByName(param.getGroupCode(), 2);
|
if (priTag == null) {
|
Tag top = tagService.getTop();
|
NodeUtils nodeUtils = new NodeUtils();
|
nodeUtils.executePath(top.getId());
|
priTag = new Tag(
|
null, // 编号
|
param.getGroupCode(), // 名称
|
top.getId(), // 父级
|
top.getName(), // 父级名称
|
nodeUtils.path.toString(), // 关联路径
|
nodeUtils.pathName.toString(), // 关联路径名
|
0, // 类型
|
null, // 负责人
|
null, // 图片
|
null, // 简要描述
|
null, // 数量
|
2, // 等级
|
null, // 排序
|
1, // 状态
|
now, // 添加时间
|
null, // 添加人员
|
now, // 修改时间
|
null, // 修改人员
|
null // 备注
|
);
|
if (tagMapper.insert(priTag) == 0) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
// 二级分类
|
Tag secTag = tagService.selectByName(param.getGroupName(), 3);
|
if (secTag == null) {
|
NodeUtils nodeUtils = new NodeUtils();
|
nodeUtils.executePath(priTag.getId());
|
secTag = new Tag(
|
null, // 编号
|
param.getGroupName(), // 名称
|
priTag.getId(), // 父级
|
priTag.getName(), // 父级名称
|
nodeUtils.path.toString(), // 关联路径
|
nodeUtils.pathName.toString(), // 关联路径名
|
0, // 类型
|
null, // 负责人
|
null, // 图片
|
null, // 简要描述
|
null, // 数量
|
3, // 等级
|
null, // 排序
|
1, // 状态
|
now, // 添加时间
|
null, // 添加人员
|
now, // 修改时间
|
null, // 修改人员
|
null // 备注
|
);
|
if (tagMapper.insert(secTag) == 0) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
tagId = secTag.getId();
|
} else {
|
tagId = tagService.getTop().getId();
|
}
|
mat.setTagId(tagId);
|
mat.setMatnr(analyse.getMatnr());
|
mat.setMaktx(param.getMaterialName());
|
mat.setSpecs(param.getConfigureDesc());
|
mat.setModel(analyse.getModel());
|
mat.setStatus(1);
|
mat.setCreateTime(now);
|
mat.setUpdateTime(now);
|
if (!matService.insert(mat)) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
} else {
|
log.info("打包上线添加新物料[商品编号:{}]", mat.getMatnr());
|
}
|
}
|
}
|
|
@Override
|
@Transactional
|
public void syncMat(MatSyncParam param) {
|
if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) {
|
throw new CoolException("商品数据为空");
|
}
|
|
for(MatSyncParam.MatParam matParam : param.getMatDetails()){
|
if(Cools.isEmpty(matParam.getMatnr())){
|
throw new CoolException("商品编码不能为空");
|
}
|
|
Date now = new Date();
|
Mat mat = matService.selectByMatnr(matParam.getMatnr());
|
if (mat == null) {
|
mat = new Mat();
|
// 分类
|
Long tagId;
|
// 一级分类
|
if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) {
|
Tag priTag = tagService.selectByName(matParam.getGroupCode(), 2);
|
if (priTag == null) {
|
Tag top = tagService.getTop();
|
NodeUtils nodeUtils = new NodeUtils();
|
nodeUtils.executePath(top.getId());
|
priTag = new Tag(
|
null, // 编号
|
matParam.getGroupCode(), // 名称
|
top.getId(), // 父级
|
top.getName(), // 父级名称
|
nodeUtils.path.toString(), // 关联路径
|
nodeUtils.pathName.toString(), // 关联路径名
|
0, // 类型
|
null, // 负责人
|
null, // 图片
|
null, // 简要描述
|
null, // 数量
|
2, // 等级
|
null, // 排序
|
1, // 状态
|
now, // 添加时间
|
null, // 添加人员
|
now, // 修改时间
|
null, // 修改人员
|
null // 备注
|
);
|
if (tagMapper.insert(priTag) == 0) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
// 二级分类
|
Tag secTag = tagService.selectByName(matParam.getGroupName(), 3);
|
if (secTag == null) {
|
NodeUtils nodeUtils = new NodeUtils();
|
nodeUtils.executePath(priTag.getId());
|
secTag = new Tag(
|
null, // 编号
|
matParam.getGroupName(), // 名称
|
priTag.getId(), // 父级
|
priTag.getName(), // 父级名称
|
nodeUtils.path.toString(), // 关联路径
|
nodeUtils.pathName.toString(), // 关联路径名
|
0, // 类型
|
null, // 负责人
|
null, // 图片
|
null, // 简要描述
|
null, // 数量
|
3, // 等级
|
null, // 排序
|
1, // 状态
|
now, // 添加时间
|
null, // 添加人员
|
now, // 修改时间
|
null, // 修改人员
|
null // 备注
|
);
|
if (tagMapper.insert(secTag) == 0) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
}
|
}
|
tagId = secTag.getId();
|
} else {
|
tagId = tagService.getTop().getId();
|
}
|
mat.sync(param);
|
// mat.setMatnr(param.getMatnr());
|
// mat.setMaktx(param.getMaktx());
|
// mat.setSpecs(param.getSpecs());
|
// mat.setModel(param.getModel());
|
|
mat.setTagId(tagId);
|
mat.setStatus(1);
|
mat.setCreateTime(now);
|
mat.setUpdateTime(now);
|
if (!matService.insert(mat)) {
|
throw new CoolException("服务器内部错误,请联系管理员");
|
} else {
|
log.info("同步新物料[商品编号:{}]", mat.getMatnr());
|
}
|
} else {
|
mat.sync(param);
|
if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
|
throw new CoolException("更新已存在商品信息失败,请联系管理员");
|
}
|
}
|
}
|
|
}
|
|
/*...........................赣州新增..............以下.............赣州新增...........................*/
|
@Override
|
@Transactional
|
public void combPACK(CombParam param) {
|
if (Cools.isEmpty(param.getPackNo())){
|
throw new CoolException("缺少参数:packNo");
|
}else if (Cools.isEmpty(param.getPackName())){
|
throw new CoolException("缺少参数:packName");
|
}else if (Cools.isEmpty(param.getRequestTime())){
|
throw new CoolException("缺少参数:requestTime");//此参数填入生产日期一栏 不用可关闭
|
}
|
if (Cools.isEmpty(param.getPackNo())) {
|
throw new CoolException(BaseRes.PARAM);
|
}
|
// // 判断是否有相同Pack码的数据
|
// if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
|
// eq("zpallet", param.getPackNo()).eq("io_status", "N")) > 0) {
|
// throw new CoolException(param.getPackNo() + "数据正在进行入库");
|
// }
|
|
// int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getPackNo()));
|
// int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getPackNo()));
|
// int countPakin = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getPackNo()));
|
// if (countLoc > 0 || countWrk > 0) {
|
// throw new CoolException("工作档/库存条码数据已存在===>>" + param.getPackNo());
|
// }else if (countPakin>0){
|
// throw new CoolException("重复申请" + param.getPackNo());
|
// }
|
|
// 生成入库通知档
|
Mat mat = matService.selectByMatnr(param.getPackNo());
|
Date now = new Date();
|
if (Cools.isEmpty(mat)) {
|
Tag tag = tagService.selectByName("全部", 1);
|
Mat matNew = new Mat();
|
matNew.setTagId(tag.getId());
|
matNew.setMatnr(param.getPackNo());
|
matNew.setMaktx(param.getPackName());
|
matNew.setManuDate(param.getRequestTime());
|
matNew.setDeadWarn(360);//6小时 360分钟
|
matNew.setCreateBy(9999L);//9999表示erp下发
|
matNew.setCreateTime(now);
|
matNew.setUpdateBy(9999L);//9999表示erp下发
|
matNew.setUpdateTime(now);
|
if (!matService.insert(matNew)){
|
throw new CoolException(param.getPackName() + "商品档案自动生成失败");
|
}
|
// mat=matNew;
|
// throw new CoolException(param.getPackName() + "商品档案不存在");
|
}
|
// WaitPakin waitPakin = new WaitPakin();
|
//// waitPakin.sync(mat);
|
// waitPakin.setMatnr(param.getPackName());
|
// waitPakin.setMaktx(param.getPackName());
|
// waitPakin.setZpallet(param.getPackNo()); // Pack码
|
// waitPakin.setIoStatus("N"); // 入出状态
|
// waitPakin.setAnfme(1.0); // 数量
|
// waitPakin.setStatus("Y"); // 状态
|
// waitPakin.setManuDate(param.getRequestTime());
|
// waitPakin.setAppeUser(null);
|
// waitPakin.setAppeTime(new Date());
|
// waitPakin.setModiUser(null);
|
// waitPakin.setModiTime(new Date());
|
// waitPakin.setDeadWarn(mat.getDeadWarn());
|
// if (!waitPakinService.insert(waitPakin)) {
|
// throw new CoolException("保存入库通知档失败");
|
// }
|
}
|
@Override
|
@Transactional
|
public void combPackOut(CombParam param) {
|
if (Cools.isEmpty(param.getPackNo())){
|
throw new CoolException("缺少参数:packNo");
|
}else if (Cools.isEmpty(param.getPackName())){
|
throw new CoolException("缺少参数:packName");
|
}else if (Cools.isEmpty(param.getSettingTimes())){
|
throw new CoolException("缺少参数:settingTimes");
|
}else if (Cools.isEmpty(param.getRequestTime())){
|
throw new CoolException("缺少参数:requestTime");
|
}
|
if (Cools.isEmpty(param.getPackNo())) {
|
throw new CoolException(BaseRes.PARAM);
|
}
|
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
|
// .eq("fire_status", 0)
|
// .eq("loc_sts", "F")
|
.eq("barcode", param.getPackNo()));
|
if (Cools.isEmpty(locMast)){
|
throw new CoolException("未查询到PACK码为:"+param.getPackNo()+"的货物");
|
}else if (!locMast.getLocSts().equals("F")){
|
throw new CoolException("PACK码为:"+param.getPackNo()+"的货物库位状态不是“F”");
|
}else if (locMast.getFireStatus()!=0){
|
throw new CoolException("警告!!!PACK码为:"+param.getPackNo()+"的库位:"+locMast.getLocNo()+"消防状态异常!!!");
|
}else {
|
Date now = new Date();
|
Integer ioType = 101; //入出库类型
|
LocDetl locDetl=locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo()));
|
if (Cools.isEmpty(locDetl)){
|
log.error("库位:"+locMast.getLocNo()+"没有明细");
|
// } else if (Cools.isEmpty(locDetl.getDeadWarn())){
|
// log.error("库位:"+locMast.getLocNo()+"没有静置时间");
|
// } else if (Cools.isEmpty(locMast.getModiTime())){
|
// log.error("库位:"+locMast.getLocNo()+"modiTime为空");
|
} else if (Cools.isEmpty(locMast.getBarcode())){
|
log.error("库位:"+locMast.getLocNo()+"Pack码为空");
|
} else {
|
// 生成工作号
|
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
|
// 生成工作档
|
WrkMast wrkMast = new WrkMast();
|
wrkMast.setWrkNo(workNo);
|
wrkMast.setIoTime(now);
|
wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
|
wrkMast.setIoType(ioType); // 入出库状态
|
wrkMast.setIoPri(13D); // 优先级:13
|
wrkMast.setCrnNo(1);
|
wrkMast.setSourceStaNo(107); // 源站
|
wrkMast.setStaNo(104); // 目标站
|
wrkMast.setSourceLocNo(locMast.getLocNo()); // 源库位
|
wrkMast.setFullPlt("Y"); // 满板:Y
|
wrkMast.setPicking("N"); // 拣料
|
wrkMast.setExitMk("N"); // 退出
|
wrkMast.setEmptyMk("N"); // 空板
|
wrkMast.setLinkMis("N");
|
wrkMast.setBarcode(locMast.getBarcode());
|
wrkMast.setAppeTime(now);
|
wrkMast.setModiTime(now);
|
if (!wrkMastService.insert(wrkMast)) {
|
throw new CoolException("保存工作档失败,出库库位号:"+locMast.getLocNo());
|
}
|
// 生成工作档明细
|
WrkDetl wrkDetl = new WrkDetl();
|
wrkDetl.sync(locDetl);
|
wrkDetl.setWrkNo(workNo);
|
wrkDetl.setIoTime(now);
|
wrkDetl.setAnfme(1.0); // 数量
|
wrkDetl.setAppeTime(now);
|
wrkDetl.setModiTime(now);
|
if (!wrkDetlService.insert(wrkDetl)) {
|
throw new CoolException("保存工作档明细失败");
|
}
|
// 修改库位状态: F.在库 ====>>> R.出库预约
|
if (locMast.getLocSts().equals("F")) {
|
locMast.setLocSts("R");
|
locMast.setModiTime(now);
|
locMast.setPackStatus(6); //6:静置完成
|
CombParam combParam = new CombParam();
|
combParam.setPackNo(locMast.getBarcode());
|
combParam.setLocNo(locMast.getLocNo());
|
combParam.setPackSts(7);
|
combParam.setRequestTime(DateUtils.convert(new Date()));
|
new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
|
|
if (!locMastService.updateById(locMast)) {
|
throw new CoolException("预约库位状态失败,库位号:"+locMast.getLocNo());
|
}
|
} else {
|
throw new CoolException(locMast.getLocNo() + "库位不是在库状态");
|
}
|
}
|
}
|
|
|
}
|
|
@Override
|
@Transactional
|
public TestMast infoReview(Review review) {
|
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()));
|
if (!review.getBarcode().equals(locMast.getBarcode())){
|
throw new CoolException("pack码不同");
|
}
|
Wrapper wrapper = new EntityWrapper<TestMast>()
|
.eq("loc_no", review.getLocNo())
|
.eq("barcode", review.getBarcode())
|
.eq("user_Id", review.getUserId());
|
TestMast testMast = testMastService.selectOne(wrapper);
|
if (null == locMast) {
|
throw new CoolException("产品状态为空");
|
}else if (locMast.getPackStatus()==2){
|
if (!Cools.isEmpty(testMast)){
|
if (testMast.getStatus()==2 || testMast.getStatus()==3){
|
return testMast;
|
}
|
}
|
}else if (locMast.getPackStatus()!=1){
|
throw new CoolException("产品状态不是1待测试");
|
}
|
|
if(null != testMast){
|
if (testMast.getStatus()==1){
|
testMast.setStatus(2);
|
testMast.setModiTime(new Date());
|
if (!testMastService.update(testMast,wrapper)){
|
throw new CoolException("更新测试状态失败");
|
}
|
locMast.setPackStatus(2);
|
if (!locMastService.update(locMast,new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()))){
|
|
|
throw new CoolException("更新产品状态失败");
|
}
|
} else if (Cools.isEmpty(testMast.getStatus())){
|
throw new CoolException("状态异常");
|
}else {
|
throw new CoolException("状态不是 1:申请中");
|
}
|
} else {
|
throw new CoolException("测试申请复核失败");
|
}
|
return testMast;
|
}
|
|
@Override
|
public Boolean testFinish(Review review) {
|
return null;
|
}
|
|
|
// @Override
|
// @Transactional
|
// public Boolean testFinish(Review review) {
|
// Boolean success=true;
|
// Wrapper wrapper = new EntityWrapper<TestMast>()
|
// .eq("loc_no", review.getLocNo())
|
// .eq("barcode", review.getBarcode())
|
// .eq("user_Id", review.getUserId());
|
// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()));
|
// if (null == locMast ||locMast.getPackStatus()!=2){
|
// throw new CoolException("产品状态不是 2:测试中");
|
// }else if (!review.getBarcode().equals(locMast.getBarcode())){
|
// throw new CoolException("pack码不同");
|
// }
|
// TestMast testMast = testMastService.selectOne(wrapper);
|
// if(null != testMast){
|
// if (testMast.getStatus()==3){
|
// Date date = new Date();
|
// locMast.setPackStatus(3);
|
// locMast.setModiTime(date);
|
//// CombParam combParam = new CombParam();
|
//// combParam.setPackNo(locMast.getBarcode());
|
//// combParam.setLocNo(locMast.getLocNo());
|
//// combParam.setPackSts(3);
|
//// combParam.setRequestTime(DateUtils.convert(new Date()));
|
//// new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
|
//
|
// if (!locMastService.update(locMast, new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()))){
|
// throw new CoolException("更改产品状态失败");
|
// }
|
// }else if (Cools.isEmpty(testMast.getStatus())){
|
// throw new CoolException("状态异常");
|
// }else {
|
// throw new CoolException("测试状态不是 3:测试中");
|
// }
|
// } else {
|
// throw new CoolException("状态异常");
|
// }
|
// return success;
|
// }
|
|
@Override
|
@Transactional
|
public Boolean testNG(Review review) {
|
Boolean success=true;
|
Wrapper wrapper = new EntityWrapper<TestMast>()
|
.eq("loc_no", review.getLocNo())
|
.eq("barcode", review.getBarcode())
|
.eq("user_Id", review.getUserId());
|
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()));
|
if (null == locMast ||locMast.getPackStatus()!=2){
|
throw new CoolException("产品状态不是 2:测试中");
|
}else if (!review.getBarcode().equals(locMast.getBarcode())){
|
throw new CoolException("pack码不同");
|
}
|
TestMast testMast = testMastService.selectOne(wrapper);
|
if(null != testMast){
|
if (testMast.getStatus()==3){
|
Date date = new Date();
|
locMast.setPackStatus(4);
|
locMast.setModiTime(date);
|
// CombParam combParam = new CombParam();
|
// combParam.setPackNo(locMast.getBarcode());
|
// combParam.setLocNo(locMast.getLocNo());
|
// combParam.setPackSts(4);
|
// combParam.setRequestTime(DateUtils.convert(new Date()));
|
// new PostMesDataUtils().postMesData("MES系统",mesUrl,inpath,combParam);
|
|
if (!locMastService.update(locMast, new EntityWrapper<LocMast>().eq("loc_no", review.getLocNo()))){
|
throw new CoolException("更改产品状态失败");
|
}
|
}else if (Cools.isEmpty(testMast.getStatus())){
|
throw new CoolException("状态异常");
|
}else {
|
throw new CoolException("状态不是 3:测试中");
|
}
|
} else {
|
throw new CoolException("状态异常");
|
}
|
return success;
|
}
|
/*...........................赣州新增..............以上.............赣州新增...........................*/
|
|
}
|