|
|
|
@ -13,12 +13,14 @@ import com.glxp.api.constant.Constant;
|
|
|
|
|
import com.glxp.api.constant.ConstantStatus;
|
|
|
|
|
import com.glxp.api.constant.ConstantType;
|
|
|
|
|
import com.glxp.api.dao.basic.UdiRelevanceDao;
|
|
|
|
|
import com.glxp.api.dao.inout.IoCodeTempDao;
|
|
|
|
|
import com.glxp.api.dao.thrsys.ThrInvOrderDetailMapper;
|
|
|
|
|
import com.glxp.api.dao.thrsys.ThrInvOrderMapper;
|
|
|
|
|
import com.glxp.api.entity.basic.BasicProductsEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.BasicSkProjectDetailEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.UdiEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.UdiRelevanceEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoCodeTempEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoOrderEntity;
|
|
|
|
|
import com.glxp.api.entity.system.SystemParamConfigEntity;
|
|
|
|
@ -88,6 +90,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
|
|
|
|
|
IoAddInoutService ioAddInoutService;
|
|
|
|
|
@Resource
|
|
|
|
|
UdiRelevanceService udiRelevanceService;
|
|
|
|
|
@Resource
|
|
|
|
|
IoCodeTempDao ioCodeTempDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 设置要输出的日期格式
|
|
|
|
@ -208,6 +212,26 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
|
|
|
|
|
|
|
|
|
|
thrInvOrderDetails.add(thrInvOrderDetail);
|
|
|
|
|
} else {
|
|
|
|
|
String mainAction = item.getMainAction();
|
|
|
|
|
String thrCode = item.getThrCode();
|
|
|
|
|
Integer count;
|
|
|
|
|
if (ConstantType.TYPE_PUT.equals(mainAction)) {
|
|
|
|
|
count = Integer.valueOf(item.getInCount());
|
|
|
|
|
} else {
|
|
|
|
|
count = Integer.valueOf(item.getOutCount());
|
|
|
|
|
}
|
|
|
|
|
BeanUtils.copyProperties(item, thrInvOrderDetail);
|
|
|
|
|
thrInvOrderDetail.setOrderIdFk(billNo);
|
|
|
|
|
thrInvOrderDetail.setNameCode(nameCode);
|
|
|
|
|
thrInvOrderDetail.setUdiCode(udiCode);
|
|
|
|
|
thrInvOrderDetail.setThrCode(thrCode);
|
|
|
|
|
thrInvOrderDetail.setReCount(String.valueOf(count));
|
|
|
|
|
thrInvOrderDetail.setBatchNo(udiEntity.getBatchNo());
|
|
|
|
|
thrInvOrderDetail.setProductionDate(udiEntity.getProduceDate());
|
|
|
|
|
thrInvOrderDetail.setExpireDate(udiEntity.getExpireDate());
|
|
|
|
|
thrInvOrderDetail.setSerialNo(udiEntity.getSerialNo());
|
|
|
|
|
|
|
|
|
|
thrInvOrderDetails.add(thrInvOrderDetail);
|
|
|
|
|
exmsg.append(udiCode + ",");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -216,7 +240,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
|
|
|
|
|
exmsg.deleteCharAt(exmsg.length() - 1);
|
|
|
|
|
exmsg.insert(0, "以下UDI码未匹配成功:");
|
|
|
|
|
thrInvOrder.setExMsg(String.valueOf(exmsg));
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
thrInvOrder.setExMsg("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -337,8 +361,6 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
|
|
|
|
|
ioOrderService.insertOrder(ioOrderEntity);
|
|
|
|
|
thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
|
|
|
|
|
thrInvOrder.setUpdateTime(new Date());
|
|
|
|
|
thrInvOrder.setCreateTime(new Date());
|
|
|
|
|
thrInvOrder.setCreateUser(userId + "");
|
|
|
|
|
thrInvOrder.setUpdateUser(userId + "");
|
|
|
|
|
thrInvOrderMapper.updateByPrimaryKey(thrInvOrder);
|
|
|
|
|
ioOrderDetailBizService.batchInsertBizs(newOrderDetailBiz);
|
|
|
|
@ -351,9 +373,59 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
|
|
|
|
|
@Override
|
|
|
|
|
public boolean generateGhOrder(GenerateOrderRequest generateOrderRequest) {
|
|
|
|
|
String billNo = generateOrderRequest.getBillNo();
|
|
|
|
|
// TODO: 2024/3/5
|
|
|
|
|
//通过单号获取单据信息
|
|
|
|
|
QueryWrapper<ThrInvOrder> qw = new QueryWrapper<>();
|
|
|
|
|
qw.eq("billNo", billNo);
|
|
|
|
|
ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw);
|
|
|
|
|
if (Objects.isNull(thrInvOrder)) return false;
|
|
|
|
|
|
|
|
|
|
//通过单号获取单据明细信息
|
|
|
|
|
QueryWrapper<ThrInvOrderDetail> qwd = new QueryWrapper<>();
|
|
|
|
|
qwd.eq("orderIdFk", billNo);
|
|
|
|
|
List<ThrInvOrderDetail> thrInvOrderDetails = thrInvOrderDetailMapper.selectList(qwd);
|
|
|
|
|
if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false;
|
|
|
|
|
|
|
|
|
|
//校验单据的relId有null不生成单据
|
|
|
|
|
if (!inspectionDocuments(thrInvOrderDetails)) return false;
|
|
|
|
|
|
|
|
|
|
//新单号
|
|
|
|
|
String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd"));
|
|
|
|
|
IoOrderEntity ioOrderEntity = new IoOrderEntity();
|
|
|
|
|
ioOrderEntity.setBillNo(newBillNo);
|
|
|
|
|
ioOrderEntity.setMainAction(thrInvOrder.getMainAction());
|
|
|
|
|
ioOrderEntity.setFromCorp(generateOrderRequest.getFromCorp());
|
|
|
|
|
ioOrderEntity.setInvCode(thrInvOrder.getInvCode());
|
|
|
|
|
ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode());
|
|
|
|
|
ioOrderEntity.setAction(generateOrderRequest.getAction());
|
|
|
|
|
|
|
|
|
|
ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
|
|
|
|
|
ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
|
|
|
|
|
ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
|
|
|
|
|
ioOrderEntity.setCorpOrderId(billNo);//单据号
|
|
|
|
|
ioOrderEntity.setUpdateTime(new Date());
|
|
|
|
|
ioOrderEntity.setCreateTime(new Date());
|
|
|
|
|
Long userId = customerService.getUserId();
|
|
|
|
|
ioOrderEntity.setCreateUser(userId + "");
|
|
|
|
|
ioOrderEntity.setUpdateUser(userId + "");
|
|
|
|
|
ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_NORMAL);//正常单据处理
|
|
|
|
|
|
|
|
|
|
List<IoCodeTempEntity> newIoCodeTemps = new ArrayList<>(thrInvOrderDetails.size());
|
|
|
|
|
if (!copyIoCodeTemps(thrInvOrderDetails, newIoCodeTemps, newBillNo,generateOrderRequest)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ioOrderService.insertOrder(ioOrderEntity);
|
|
|
|
|
thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
|
|
|
|
|
thrInvOrder.setUpdateTime(new Date());
|
|
|
|
|
thrInvOrder.setUpdateUser(userId + "");
|
|
|
|
|
thrInvOrderMapper.updateByPrimaryKey(thrInvOrder);
|
|
|
|
|
ioCodeTempDao.insertBatch(newIoCodeTemps);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ioAddInoutService.dealProcess(ioOrderEntity);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean refreshOrder(RefreshOrderRequest refreshOrderRequest) {
|
|
|
|
|
String billNo = refreshOrderRequest.getBillNo();
|
|
|
|
@ -500,7 +572,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
|
|
|
|
|
exmsg.deleteCharAt(exmsg.length() - 1);
|
|
|
|
|
exmsg.insert(0, "以下UDI码未匹配成功:");
|
|
|
|
|
thrInvOrder.setExMsg(String.valueOf(exmsg));
|
|
|
|
|
}else {
|
|
|
|
|
} else {
|
|
|
|
|
thrInvOrder.setExMsg("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -553,6 +625,32 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param thrInvOrderDetails
|
|
|
|
|
* @param newIoCodeTemps
|
|
|
|
|
* @param newBillNo
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private boolean copyIoCodeTemps(List<ThrInvOrderDetail> thrInvOrderDetails, List<IoCodeTempEntity> newIoCodeTemps, String newBillNo,GenerateOrderRequest generateOrderRequest) {
|
|
|
|
|
|
|
|
|
|
thrInvOrderDetails.forEach( item -> {
|
|
|
|
|
IoCodeTempEntity ioCodeTempEntity = new IoCodeTempEntity();
|
|
|
|
|
ioCodeTempEntity.setId(null);
|
|
|
|
|
ioCodeTempEntity.setCode(item.getUdiCode());
|
|
|
|
|
ioCodeTempEntity.setOrderId(newBillNo);
|
|
|
|
|
ioCodeTempEntity.setAction(generateOrderRequest.getAction());
|
|
|
|
|
BeanUtils.copyProperties(item,ioCodeTempEntity);
|
|
|
|
|
|
|
|
|
|
ioCodeTempEntity.setUpdateTime(new Date());
|
|
|
|
|
ioCodeTempEntity.setCreateTime(new Date());
|
|
|
|
|
|
|
|
|
|
newIoCodeTemps.add(ioCodeTempEntity);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 实体参数包装
|
|
|
|
|
*
|
|
|
|
|