|
|
|
@ -444,6 +444,84 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 单据回填
|
|
|
|
|
* @param ioCollectOrderList
|
|
|
|
|
* @param addr
|
|
|
|
|
*/
|
|
|
|
|
public void importPrescribe(List<IoCollectOrder> ioCollectOrderList,String addr) {
|
|
|
|
|
//下载处方
|
|
|
|
|
if (CollUtil.isNotEmpty(ioCollectOrderList)){
|
|
|
|
|
for (IoCollectOrder collectOrder : ioCollectOrderList) {
|
|
|
|
|
if (collectOrderMapper.exists(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, collectOrder.getBillNo()))) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByBusType(addr);
|
|
|
|
|
if (sysWorkplaceDocumentEntity == null){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if(collectOrder.getWorkPlaceCode() == null){
|
|
|
|
|
//自动分配工位
|
|
|
|
|
final Long[] defaultWorkplace = {null};
|
|
|
|
|
List<SysWorkplaceResponse> sysWorkplaces = sysWorkplaceService.getAllByBusType(addr);
|
|
|
|
|
if (CollUtil.isNotEmpty(sysWorkplaces)) {
|
|
|
|
|
if (sysWorkplaces.size() == 1) {
|
|
|
|
|
defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId();
|
|
|
|
|
} else {
|
|
|
|
|
List<SysWorkplaceResponse> addWorkplace = new ArrayList<>();
|
|
|
|
|
for (SysWorkplaceResponse sysWorkplace : sysWorkplaces) {
|
|
|
|
|
//获取是否有正在处理的工位
|
|
|
|
|
List<IoCollectOrder> collectOrderList1 = collectOrderMapper.selectList(new LambdaQueryWrapper<IoCollectOrder>()
|
|
|
|
|
.eq(IoCollectOrder::getWorkPlaceCode, sysWorkplace.getWorkplaceId()).in(IoCollectOrder::getTagStatus, -1, 1, 2));
|
|
|
|
|
sysWorkplace.setOrderCount(collectOrderList1.size());
|
|
|
|
|
if (IntUtil.value(sysWorkplace.getOrderCount()) > 0) {
|
|
|
|
|
addWorkplace.add(sysWorkplace);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (addWorkplace.size() > 0) {
|
|
|
|
|
Optional<SysWorkplaceResponse> minCountObject = addWorkplace.stream()
|
|
|
|
|
.min((o1, o2) -> Integer.compare(o1.getOrderCount(), o2.getOrderCount()));
|
|
|
|
|
minCountObject.ifPresent(sysWorkplace -> defaultWorkplace[0] = sysWorkplace.getWorkplaceId());
|
|
|
|
|
} else {
|
|
|
|
|
defaultWorkplace[0] = sysWorkplaces.get(0).getWorkplaceId();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
collectOrder.setWorkPlaceCode(defaultWorkplace[0]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
collectOrder.setBusType(sysWorkplaceDocumentEntity.getDocumentTypeCode());
|
|
|
|
|
collectOrder.setOrderCirType(sysWorkplaceDocumentEntity.getOrderCirType());
|
|
|
|
|
if (collectOrder.getWorkPlaceCode() != null) {
|
|
|
|
|
collectOrder.setTagStatus(1);
|
|
|
|
|
}
|
|
|
|
|
this.save(collectOrder);
|
|
|
|
|
List<IoCollectOrderBiz> bizList = collectOrder.getBizList();
|
|
|
|
|
if (CollUtil.isNotEmpty(bizList)){
|
|
|
|
|
for(IoCollectOrderBiz collectOrderBiz : bizList){
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(collectOrderBiz.getRelId() + "");
|
|
|
|
|
if (udiRelevanceResponse != null) {
|
|
|
|
|
collectOrderBiz.setYbbm(udiRelevanceResponse.getYbbm());
|
|
|
|
|
collectOrderBiz.setPayFeeCode(udiRelevanceResponse.getPayFeeCode());
|
|
|
|
|
collectOrderBiz.setNameCode(udiRelevanceResponse.getNameCode());
|
|
|
|
|
if (IntUtil.value(udiRelevanceResponse.getProductsType()) == 2) {
|
|
|
|
|
collectOrderBiz.setGgxh(udiRelevanceResponse.getBzgg());
|
|
|
|
|
collectOrderBiz.setMeasureUnit(udiRelevanceResponse.getPrepnUnit());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
collectOrderBizService.saveBatch(bizList);
|
|
|
|
|
}
|
|
|
|
|
if (IntUtil.value(sysWorkplaceDocumentEntity.getAutoTag()) == 1 && IntUtil.value(collectOrder.getTagStatus()) == 1) {
|
|
|
|
|
splitFifoCodeService.lockInventoryByOrder(collectOrder.getBillNo(), 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void removeCode(DeleteTageCodeRequest deleteTageCodeRequest) {
|
|
|
|
|
Integer delType = deleteTageCodeRequest.getDelType();
|
|
|
|
|