预出库扫码修改,处方赋码修改

workplace
anthonywj 11 months ago
parent 26d23af14a
commit 0f1ee49172

@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
import com.glxp.api.entity.basic.BasicSkSickerEntity; import com.glxp.api.entity.basic.BasicSkSickerEntity;
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inout.IoOrderEntity;
@ -13,7 +12,7 @@ import com.glxp.api.req.basic.BasicSkPrescribeDiRequest;
import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.req.basic.GetSickPrescribeRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicSkPrescribeDiResponse; import com.glxp.api.res.basic.BasicSkPrescribeDiResponse;
import com.glxp.api.service.BasicSkPrescribeDiService; import com.glxp.api.service.basic.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.BasicSkPrescribeService; import com.glxp.api.service.basic.BasicSkPrescribeService;
import com.glxp.api.service.basic.BasicSkSickerService; import com.glxp.api.service.basic.BasicSkSickerService;
import com.glxp.api.service.inout.IoAddInoutService; import com.glxp.api.service.inout.IoAddInoutService;
@ -36,8 +35,6 @@ public class BasicSickPrescribeDiController {
@Resource @Resource
BasicSkSickerService basicSkSickerService; BasicSkSickerService basicSkSickerService;
@Resource @Resource
IoAddInoutService addInoutService;
@Resource
IoCheckInoutService checkInoutService; IoCheckInoutService checkInoutService;

@ -1,14 +1,17 @@
package com.glxp.api.dao.inout; package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.dao.thrsys.ThrOrderDetailDao;
import com.glxp.api.entity.inout.IoSplitCodeEntity; import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.thrsys.ThrOrderDetailEntity;
import com.glxp.api.req.inout.IoSplitCodeRequest; import com.glxp.api.req.inout.IoSplitCodeRequest;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@Mapper @Mapper
public interface IoSplitCodeMapper extends BaseMapper<IoSplitCodeEntity> { public interface IoSplitCodeMapper extends BaseMapperPlus<IoSplitCodeMapper, IoSplitCodeEntity, IoSplitCodeEntity> {
List<IoSplitCodeEntity> filterList(IoSplitCodeRequest splitCodeRequest); List<IoSplitCodeEntity> filterList(IoSplitCodeRequest splitCodeRequest);
} }

@ -109,6 +109,12 @@ public class BasicSkPrescribeDiEntity implements Serializable {
@TableField(value = "ggxh") @TableField(value = "ggxh")
private String ggxh; private String ggxh;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/** /**
* *
*/ */
@ -125,6 +131,20 @@ public class BasicSkPrescribeDiEntity implements Serializable {
@TableField(value = "updateTime") @TableField(value = "updateTime")
private Date updateTime; private Date updateTime;
/**
* 1:23
*/
@TableField(value = "tagStatus")
private Integer tagStatus;
/**
*
*/
@TableField(value = "tagMsg")
private String tagMsg;
/** /**
* *
*/ */

@ -128,4 +128,28 @@ public class BasicSkPrescribeEntity {
@TableField(value = "updateTime") @TableField(value = "updateTime")
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime; private LocalDateTime updateTime;
/**
* 1:23
*/
@TableField(value = "trDiStatus")
private Integer trDiStatus;
/**
* 1:23
*/
@TableField(value = "tagStatus")
private Integer tagStatus;
/**
*
*/
@TableField(value = "tagMsg")
private Integer tagMsg;
/**
*
*/
@TableField(value = "workPlaceCode")
private String workPlaceCode;
} }

@ -120,7 +120,11 @@ public class BasicSkPrescribeItemEntity implements Serializable {
*/ */
@TableField(value = "adNum") @TableField(value = "adNum")
private String adNum; private String adNum;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
/** /**
@ -188,6 +190,20 @@ public class IoSplitCodeEntity implements Serializable {
@TableField(value = "remark") @TableField(value = "remark")
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remark; private String remark;
/**
*
*/
@TableField(value = "workPlaceCode")
@ApiModelProperty(value = "工位编码")
private String workPlaceCode;
/**
* 1:2:3
*/
@TableField(value = "status")
@ApiModelProperty(value = "状态")
private Integer status;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
/** /**
@ -131,14 +133,14 @@ public class IoSplitFifoCodeEntity implements Serializable {
*/ */
@TableField(value = "productType") @TableField(value = "productType")
@ApiModelProperty(value = "1:耗材2药品") @ApiModelProperty(value = "1:耗材2药品")
private Byte productType; private Integer productType;
/** /**
* 1:2. * 1:2.
*/ */
@TableField(value = "splitType") @TableField(value = "splitType")
@ApiModelProperty(value = "1:手动扫码拆包2.自动拆包") @ApiModelProperty(value = "1:手动扫码拆包2.自动拆包")
private Byte splitType; private Integer splitType;
/** /**
* *

@ -1,29 +0,0 @@
package com.glxp.api.service;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicSkPrescribeDiMapper;
import com.glxp.api.dao.basic.BasicSkProjectMapper;
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.glxp.api.req.basic.BasicSkPrescribeDiRequest;
import com.glxp.api.req.basic.BasicSkPrescribeRequest;
import com.glxp.api.res.basic.BasicSkPrescribeDiResponse;
import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
* basic_sk_prescribe_item_detail(使)Service
*/
public interface BasicSkPrescribeDiService extends IService<BasicSkPrescribeDiEntity> {
List<BasicSkPrescribeDiResponse> filterList(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest);
List<BasicSkPrescribeDiResponse> findBySkAdNum(String adNum);
BasicSkPrescribeDiEntity findByRelId(String adNum, Long relId);
BasicSkPrescribeDiEntity findByThrCode(String adNum, String thrCode);
}

@ -1,4 +1,4 @@
package com.glxp.api.service.basic.impl; package com.glxp.api.service.basic;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -6,12 +6,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity; import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
import com.glxp.api.req.basic.BasicSkPrescribeDiRequest; import com.glxp.api.req.basic.BasicSkPrescribeDiRequest;
import com.glxp.api.req.basic.BasicSkPrescribeRequest;
import com.glxp.api.res.basic.BasicSkPrescribeDiResponse; import com.glxp.api.res.basic.BasicSkPrescribeDiResponse;
import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.dao.basic.BasicSkPrescribeDiMapper; import com.glxp.api.dao.basic.BasicSkPrescribeDiMapper;
import org.apache.regexp.RE;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections; import java.util.Collections;
@ -21,8 +17,7 @@ import java.util.List;
* basic_sk_prescribe_item_detail()Service * basic_sk_prescribe_item_detail()Service
*/ */
@Service @Service
public class BasicSkPrescribeDiServiceImpl extends ServiceImpl<BasicSkPrescribeDiMapper, BasicSkPrescribeDiEntity> public class BasicSkPrescribeDiService extends ServiceImpl<BasicSkPrescribeDiMapper, BasicSkPrescribeDiEntity> {
implements BasicSkPrescribeDiService {
public List<BasicSkPrescribeDiResponse> filterList(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest) { public List<BasicSkPrescribeDiResponse> filterList(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest) {
if (basicSkPrescribeDiRequest == null) { if (basicSkPrescribeDiRequest == null) {
@ -36,7 +31,7 @@ public class BasicSkPrescribeDiServiceImpl extends ServiceImpl<BasicSkPrescribeD
return data; return data;
} }
@Override
public List<BasicSkPrescribeDiResponse> findBySkAdNum(String adNum) { public List<BasicSkPrescribeDiResponse> findBySkAdNum(String adNum) {
if (StrUtil.isEmpty(adNum)) if (StrUtil.isEmpty(adNum))
return Collections.emptyList(); return Collections.emptyList();
@ -53,13 +48,22 @@ public class BasicSkPrescribeDiServiceImpl extends ServiceImpl<BasicSkPrescribeD
return data; return data;
} }
@Override
public BasicSkPrescribeDiEntity findByThrCode(String adNum, String thrCode) { public BasicSkPrescribeDiEntity findByThrCode(String adNum, String thrCode) {
BasicSkPrescribeDiEntity data = super.baseMapper.selectOne( BasicSkPrescribeDiEntity data = super.baseMapper.selectOne(
new QueryWrapper<BasicSkPrescribeDiEntity>() new QueryWrapper<BasicSkPrescribeDiEntity>()
.eq("adNum", adNum).eq("thrCode", thrCode).last("limit 1")); .eq("adNum", adNum).eq("thrCode", thrCode).last("limit 1"));
return data; return data;
} }
public List<BasicSkPrescribeDiEntity> findByPrescribe(String prescribeCode) {
List<BasicSkPrescribeDiEntity> datas = super.baseMapper.selectList(
new QueryWrapper<BasicSkPrescribeDiEntity>()
.eq("prescribeCode", prescribeCode));
return datas;
}
} }

@ -20,7 +20,6 @@ import com.glxp.api.req.basic.GetSickPrescribeRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicSkPrescribeResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.service.thrsys.ThrProductsService; import com.glxp.api.service.thrsys.ThrProductsService;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -170,7 +169,7 @@ public class BasicSkPrescribeService extends ServiceImpl<BasicSkPrescribeMapper,
basicSkPrescribeDiEntity.setPrescribeCode(skPrescribeItemEntity.getPrescribeCode()); basicSkPrescribeDiEntity.setPrescribeCode(skPrescribeItemEntity.getPrescribeCode());
basicSkPrescribeDiEntity.setSickerCode(skPrescribeItemEntity.getSickerCode()); basicSkPrescribeDiEntity.setSickerCode(skPrescribeItemEntity.getSickerCode());
basicSkPrescribeDiEntity.setCount(IntUtil.value(skPrescribeItemEntity.getCount())); basicSkPrescribeDiEntity.setCount(IntUtil.value(skPrescribeItemEntity.getCount()));
basicSkPrescribeDiEntity.setMeasureCount(basicSkPrescribeDiEntity.getMeasureCount() + ""); basicSkPrescribeDiEntity.setMeasureCount(skPrescribeItemEntity.getMeasureCount() + "");
basicSkPrescribeDiEntity.setMeasureUnit(skPrescribeItemEntity.getMeasureUnit()); basicSkPrescribeDiEntity.setMeasureUnit(skPrescribeItemEntity.getMeasureUnit());
basicSkPrescribeDiEntity.setPId(udiRelevanceResponse.getPayFeeCode()); basicSkPrescribeDiEntity.setPId(udiRelevanceResponse.getPayFeeCode());
basicSkPrescribeDiEntity.setAmount(skPrescribeItemEntity.getAmount()); basicSkPrescribeDiEntity.setAmount(skPrescribeItemEntity.getAmount());
@ -180,22 +179,11 @@ public class BasicSkPrescribeService extends ServiceImpl<BasicSkPrescribeMapper,
basicSkPrescribeDiEntity.setCategory(udiRelevanceResponse.getCplb()); basicSkPrescribeDiEntity.setCategory(udiRelevanceResponse.getCplb());
basicSkPrescribeDiEntity.setGgxh(udiRelevanceResponse.getGgxh()); basicSkPrescribeDiEntity.setGgxh(udiRelevanceResponse.getGgxh());
basicSkPrescribeDiEntity.setAdNum(skPrescribeItemEntity.getAdNum()); basicSkPrescribeDiEntity.setAdNum(skPrescribeItemEntity.getAdNum());
basicSkPrescribeDiEntity.setBatchNo(skPrescribeItemEntity.getBatchNo());
basicSkPrescribeDiEntity.setUpdateTime(new Date()); basicSkPrescribeDiEntity.setUpdateTime(new Date());
basicSkPrescribeDiService.save(basicSkPrescribeDiEntity); basicSkPrescribeDiService.save(basicSkPrescribeDiEntity);
} }
} }
/**
* HIS
*/
public void trSkPrescribeDiByPayFee(BasicSkPrescribeEntity skPrescribeEntity) {
List<BasicSkPrescribeItemEntity> skPrescribeItemEntities = basicSkPrescirbeDetailService.list(new QueryWrapper<BasicSkPrescribeItemEntity>().eq("prescribeCode", skPrescribeEntity.getCode()));
if (CollUtil.isNotEmpty(skPrescribeItemEntities)) {
for (BasicSkPrescribeItemEntity skPrescribeItemEntity : skPrescribeItemEntities) {
}
}
}
} }

@ -3,8 +3,6 @@ package com.glxp.api.service.inout;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.glxp.api.entity.basic.*; import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inv.InvProductEntity; import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.res.basic.BasicSkPrescribeDiResponse;
import com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.*; import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductDetailService; import com.glxp.api.service.inv.impl.InvProductDetailService;

@ -20,8 +20,8 @@ import com.glxp.api.res.basic.BasicSkPrescribeDiResponse;
import com.glxp.api.res.inout.IoOrderCheckResultResponse; import com.glxp.api.res.inout.IoOrderCheckResultResponse;
import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.service.inv.InvPreinProductDetailService;

@ -1,17 +1,40 @@
package com.glxp.api.service.inout; package com.glxp.api.service.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inout.IoSplitCodeMapper; import com.glxp.api.dao.inout.IoSplitCodeMapper;
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.inout.IoSplitCodeEntity; import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.req.inout.IoSplitCodeRequest; import com.glxp.api.req.inout.IoSplitCodeRequest;
import com.glxp.api.service.basic.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.BasicSkPrescribeService;
import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@Service @Service
public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCodeEntity> { public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCodeEntity> {
@Resource
BasicSkPrescribeDiService basicSkPrescribeDiService;
@Resource
IoSplitCodeMapper splitCodeMapper;
@Resource
IoSplitFifoCodeService splitFifoCodeService;
@Resource
BasicSkPrescribeService basicSkPrescribeService;
public List<IoSplitCodeEntity> filterList(IoSplitCodeRequest splitCodeRequest) { public List<IoSplitCodeEntity> filterList(IoSplitCodeRequest splitCodeRequest) {
if (splitCodeRequest == null) { if (splitCodeRequest == null) {
return Collections.emptyList(); return Collections.emptyList();
@ -23,4 +46,148 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
return super.baseMapper.filterList(splitCodeRequest); return super.baseMapper.filterList(splitCodeRequest);
} }
public List<IoSplitCodeEntity> findSplitCodes(Long relId, String batchNo, String workPlaceCode) {
List<IoSplitCodeEntity> ioSplitCodeEntities = splitCodeMapper.selectList(new LambdaQueryWrapper<IoSplitCodeEntity>()
.eq(IoSplitCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitCodeEntity::getBatchNo, batchNo)
.eq(StrUtil.isNotEmpty(workPlaceCode), IoSplitCodeEntity::getWorkPlaceCode, workPlaceCode)
.in(IoSplitCodeEntity::getStatus, 1, 2).orderByAsc(IoSplitCodeEntity::getInBactchNo));
return ioSplitCodeEntities;
}
/**
*
*/
public void prescribeTagCode(BasicSkPrescribeEntity basicSkPrescribeEntity) {
List<BasicSkPrescribeDiEntity> basicSkPrescribeDiEntities = basicSkPrescribeDiService.findByPrescribe(basicSkPrescribeEntity.getAdNum());
//处方赋码状态 1未赋码2部分赋码3全部赋码
for (BasicSkPrescribeDiEntity basicSkPrescribeDiEntity : basicSkPrescribeDiEntities) {
//1.按照先进先出原则查询拆零表获取拆零表ID
List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode());
//2.如果拆零表为空,则自动从预出库队列中获拉取数据
if (CollUtil.isEmpty(ioSplitCodeEntities)) {
addFifoCode(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), IntUtil.value(basicSkPrescribeDiEntity.getMeasureCount()));
}
ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode());
//3.如果拆零表不为空,则开始扣除数量
int count = 0;
int unCount = 0; //剩余未扣减数量
unCount = IntUtil.value(basicSkPrescribeDiEntity.getMeasureCount());
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
break;
} else if (count == 0) {
ioSplitCodeEntity.setRemainCount(0);
} else {
ioSplitCodeEntity.setRemainCount(0);
unCount = -count;
}
}
if (unCount > 0) {
//4.拆零表数量不足,则从预出库队列中获取数据
Integer fifoCount = addFifoCode(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), unCount);
if (fifoCount == 0) {
//预出库队列数量不足
basicSkPrescribeDiEntity.setTagStatus(2);
basicSkPrescribeDiEntity.setTagMsg("预出库队列码数量不足,赋码失败!");
} else {
//再次执行赋码
ioSplitCodeEntities = findSplitCodes(basicSkPrescribeDiEntity.getRelId(), basicSkPrescribeDiEntity.getBatchNo(), basicSkPrescribeEntity.getWorkPlaceCode());
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
break;
} else if (count == 0) {
ioSplitCodeEntity.setRemainCount(0);
} else {
ioSplitCodeEntity.setRemainCount(0);
unCount = -count;
}
}
if (unCount > 0) {
basicSkPrescribeDiEntity.setTagStatus(2);
basicSkPrescribeDiEntity.setTagMsg("预出库队列码数量不足,赋码失败!");
} else {
basicSkPrescribeDiEntity.setTagStatus(3);
basicSkPrescribeDiEntity.setTagMsg("赋码完成!");
}
}
}
basicSkPrescribeDiService.updateById(basicSkPrescribeDiEntity);
}
basicSkPrescribeEntity.setTagStatus(checkStatus(basicSkPrescribeDiEntities));
basicSkPrescribeService.updateById(basicSkPrescribeEntity);
}
/**
*
*/
public Integer addFifoCode(Long relId, String batchNo, Integer needCount) {
List<IoSplitFifoCodeEntity> splitFifoCodeEntities = splitFifoCodeService
.list(new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getRelId, relId)
.eq(StrUtil.isNotEmpty(batchNo), IoSplitFifoCodeEntity::getBatchNo, batchNo)
.orderByAsc(IoSplitFifoCodeEntity::getInBactchNo)
);
Integer count = 0;
List<IoSplitCodeEntity> addSplitCodeEntities = new ArrayList<>();
List<Integer> removeIds = new ArrayList<>();
for (IoSplitFifoCodeEntity splitFifoCodeEntity : splitFifoCodeEntities) {
count = IntUtil.value(splitFifoCodeEntity.getTotalCount()) + count;
IoSplitCodeEntity splitCodeEntity = new IoSplitCodeEntity();
BeanUtils.copyProperties(splitFifoCodeEntity, splitCodeEntity);
splitCodeEntity.setStatus(1);
splitCodeEntity.setId(null);
addSplitCodeEntities.add(splitCodeEntity);
removeIds.add(splitFifoCodeEntity.getId());
if (count >= needCount) {
break;
}
}
if (removeIds.size() > 0) {
splitFifoCodeService.removeByIds(removeIds);
}
if (addSplitCodeEntities.size() > 0) {
splitCodeMapper.insertBatch(addSplitCodeEntities);
}
return count;
}
public int checkStatus(List<BasicSkPrescribeDiEntity> list) {
boolean hasTwo = false;
boolean hasOne = false;
for (BasicSkPrescribeDiEntity di : list) {
int tagStatus = di.getTagStatus();
if (tagStatus == 2) {
hasTwo = true;
} else if (tagStatus == 1) {
hasOne = true;
} else if (tagStatus != 3) {
throw new IllegalArgumentException("Invalid tagStatus value: " + tagStatus);
}
}
if (hasTwo) {
return 2;
} else if (hasOne) {
return 1;
} else {
return 3;
}
}
} }

@ -3,25 +3,6 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.basic.BasicSkPrescribeDiMapper"> <mapper namespace="com.glxp.api.dao.basic.BasicSkPrescribeDiMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.basic.BasicSkPrescribeDiEntity">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="pId" column="pId" jdbcType="BIGINT"/>
<result property="sickerCode" column="sickerCode" jdbcType="VARCHAR"/>
<result property="prescribeCode" column="prescribeCode" jdbcType="VARCHAR"/>
<result property="relId" column="relId" jdbcType="BIGINT"/>
<result property="thrName" column="thrName" jdbcType="VARCHAR"/>
<result property="thrCode" column="thrCode" jdbcType="VARCHAR"/>
<result property="measureCount" column="measureCount" jdbcType="VARCHAR"/>
<result property="measureUnit" column="measureUnit" jdbcType="VARCHAR"/>
<result property="category" column="category" jdbcType="VARCHAR"/>
<result property="frequency" column="frequency" jdbcType="VARCHAR"/>
<result property="count" column="count" jdbcType="INTEGER"/>
<result property="price" column="price" jdbcType="DECIMAL"/>
<result property="ggxh" column="ggxh" jdbcType="VARCHAR"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
</resultMap>
<select id="filterList" parameterType="com.glxp.api.req.basic.BasicSkPrescribeDiRequest" <select id="filterList" parameterType="com.glxp.api.req.basic.BasicSkPrescribeDiRequest"
resultType="com.glxp.api.res.basic.BasicSkPrescribeDiResponse"> resultType="com.glxp.api.res.basic.BasicSkPrescribeDiResponse">
SELECT bspid.*, bp.nameCode diCode, bp.zczbhhzbapzbh, bp.manufactory SELECT bspid.*, bp.nameCode diCode, bp.zczbhhzbapzbh, bp.manufactory

@ -4080,3 +4080,46 @@ CALL Pro_Temp_ColumnWork('io_order', 'productType',
CALL Pro_Temp_ColumnWork('basic_sk_prescribe', 'clinicNumber', CALL Pro_Temp_ColumnWork('basic_sk_prescribe', 'clinicNumber',
'varchar(124) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''就诊卡号''', 'varchar(124) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''就诊卡号''',
1); 1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe', 'tagStatus',
' tinyint NULL DEFAULT NULL COMMENT ''处方赋码状态 1:未赋码2赋码中3已赋码''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe', 'trDiStatus',
' tinyint NULL DEFAULT NULL COMMENT ''处方下载转换状态 1:未转换2部分转换3已转换''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe', 'tagMsg',
'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''处方赋码错误信息''',
1);
CALL Pro_Temp_ColumnWork('io_split_code', 'status',
' tinyint NULL DEFAULT NULL COMMENT '' 1:未拆零2:拆零中3已拆零''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe_item_detail', 'tagMsg',
'varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''处方赋码错误信息''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe_item_detail', 'batchNo',
'varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''批次号''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe_item', 'batchNo',
'varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''批次号''',
1);
CALL Pro_Temp_ColumnWork('io_split_code', 'workPlaceCode',
'varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''工位''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe', 'workPlaceCode',
'varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''工位''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe_item_detail', 'tagStatus',
' tinyint NULL DEFAULT NULL COMMENT ''处方赋码状态 1:未赋码2部分赋码3已赋码''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_prescribe_item_detail', 'tagMsg',
'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''处方赋码错误信息''',
1);

Loading…
Cancel
Save