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

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.glxp.api.common.res.BaseResponse;
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.inout.IoOrderDetailCodeEntity;
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.res.PageSimpleResponse;
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.BasicSkSickerService;
import com.glxp.api.service.inout.IoAddInoutService;
@ -36,8 +35,6 @@ public class BasicSickPrescribeDiController {
@Resource
BasicSkSickerService basicSkSickerService;
@Resource
IoAddInoutService addInoutService;
@Resource
IoCheckInoutService checkInoutService;

@ -1,14 +1,17 @@
package com.glxp.api.dao.inout;
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.thrsys.ThrOrderDetailEntity;
import com.glxp.api.req.inout.IoSplitCodeRequest;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoSplitCodeMapper extends BaseMapper<IoSplitCodeEntity> {
public interface IoSplitCodeMapper extends BaseMapperPlus<IoSplitCodeMapper, IoSplitCodeEntity, IoSplitCodeEntity> {
List<IoSplitCodeEntity> filterList(IoSplitCodeRequest splitCodeRequest);
}

@ -109,6 +109,12 @@ public class BasicSkPrescribeDiEntity implements Serializable {
@TableField(value = "ggxh")
private String ggxh;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@ -125,6 +131,20 @@ public class BasicSkPrescribeDiEntity implements Serializable {
@TableField(value = "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")
@ApiModelProperty(value = "更新时间")
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")
private String adNum;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
@TableField(exist = false)
private static final long serialVersionUID = 1L;

@ -6,188 +6,204 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*/
@ApiModel(value="com-glxp-api-entity-inout-IoSplitCode")
@ApiModel(value = "com-glxp-api-entity-inout-IoSplitCode")
@Data
@TableName(value = "io_split_code")
public class IoSplitCodeEntity implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="")
@ApiModelProperty(value = "")
private Integer id;
/**
* UDI
*/
@TableField(value = "code")
@ApiModelProperty(value="UDI码")
@ApiModelProperty(value = "UDI码")
private String code;
/**
* GS1UDI
*/
@TableField(value = "errUdiCode")
@ApiModelProperty(value="缺少GS1标识UDI码")
@ApiModelProperty(value = "缺少GS1标识UDI码")
private String errUdiCode;
/**
*
*/
@TableField(value = "orderId")
@ApiModelProperty(value="所属出库单号")
@ApiModelProperty(value = "所属出库单号")
private String orderId;
/**
*
*/
@TableField(value = "`action`")
@ApiModelProperty(value="单据类型")
@ApiModelProperty(value = "单据类型")
private String action;
/**
*
*/
@TableField(value = "relId")
@ApiModelProperty(value="物资字典主键")
@ApiModelProperty(value = "物资字典主键")
private Long relId;
/**
*
*/
@TableField(value = "nameCode")
@ApiModelProperty(value="最小销售产品标识")
@ApiModelProperty(value = "最小销售产品标识")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
@ApiModelProperty(value="批次号")
@ApiModelProperty(value = "批次号")
private String batchNo;
/**
*
*/
@TableField(value = "produceDate")
@ApiModelProperty(value="生产日期")
@ApiModelProperty(value = "生产日期")
private String produceDate;
/**
*
*/
@TableField(value = "expireDate")
@ApiModelProperty(value="失效日期")
@ApiModelProperty(value = "失效日期")
private String expireDate;
/**
*
*/
@TableField(value = "serialNo")
@ApiModelProperty(value="序列号")
@ApiModelProperty(value = "序列号")
private String serialNo;
/**
* ID
*/
@TableField(value = "supId")
@ApiModelProperty(value="供应商ID")
@ApiModelProperty(value = "供应商ID")
private Long supId;
/**
*
*/
@TableField(value = "deptCode")
@ApiModelProperty(value="部门编码")
@ApiModelProperty(value = "部门编码")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
@ApiModelProperty(value="仓库编码")
@ApiModelProperty(value = "仓库编码")
private String invCode;
/**
*
*/
@TableField(value = "warehouseCode")
@ApiModelProperty(value="货位编码")
@ApiModelProperty(value = "货位编码")
private String warehouseCode;
/**
* 1:2
*/
@TableField(value = "productType")
@ApiModelProperty(value="1:耗材2药品")
@ApiModelProperty(value = "1:耗材2药品")
private Integer productType;
/**
* 1:2.
*/
@TableField(value = "splitType")
@ApiModelProperty(value="1:手动扫码拆包2.自动拆包")
@ApiModelProperty(value = "1:手动扫码拆包2.自动拆包")
private Integer splitType;
/**
*
*/
@TableField(value = "scanCount")
@ApiModelProperty(value="扫码数量")
@ApiModelProperty(value = "扫码数量")
private Integer scanCount;
/**
*
*/
@TableField(value = "totalCount")
@ApiModelProperty(value="总数量")
@ApiModelProperty(value = "总数量")
private Integer totalCount;
/**
*
*/
@TableField(value = "remainCount")
@ApiModelProperty(value="剩余数量")
@ApiModelProperty(value = "剩余数量")
private Integer remainCount;
/**
*
*/
@TableField(value = "inBactchNo")
@ApiModelProperty(value="内部批号")
@ApiModelProperty(value = "内部批号")
private String inBactchNo;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value="创建日期")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**
*
*/
@TableField(value = "`createUser`")
@ApiModelProperty(value="创建人")
@ApiModelProperty(value = "创建人")
private String createUser;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value="更新日期")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**
*
*/
@TableField(value = "remark")
@ApiModelProperty(value="备注")
@ApiModelProperty(value = "备注")
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;
}

@ -6,187 +6,189 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
*/
@ApiModel(value="com-glxp-api-entity-inout-IoSplitFifoCode")
@ApiModel(value = "com-glxp-api-entity-inout-IoSplitFifoCode")
@Data
@TableName(value = "io_split_fifo_code")
public class IoSplitFifoCodeEntity implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="")
@ApiModelProperty(value = "")
private Integer id;
/**
* UDI/
*/
@TableField(value = "code")
@ApiModelProperty(value="UDI码/药品追溯码")
@ApiModelProperty(value = "UDI码/药品追溯码")
private String code;
/**
* GS1UDI
*/
@TableField(value = "errUdiCode")
@ApiModelProperty(value="缺少GS1标识UDI码")
@ApiModelProperty(value = "缺少GS1标识UDI码")
private String errUdiCode;
/**
*
*/
@TableField(value = "orderId")
@ApiModelProperty(value="所属出库单号")
@ApiModelProperty(value = "所属出库单号")
private String orderId;
/**
*
*/
@TableField(value = "`action`")
@ApiModelProperty(value="单据类型")
@ApiModelProperty(value = "单据类型")
private String action;
/**
*
*/
@TableField(value = "relId")
@ApiModelProperty(value="物资字典主键")
@ApiModelProperty(value = "物资字典主键")
private Long relId;
/**
*
*/
@TableField(value = "nameCode")
@ApiModelProperty(value="最小销售产品标识")
@ApiModelProperty(value = "最小销售产品标识")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
@ApiModelProperty(value="批次号")
@ApiModelProperty(value = "批次号")
private String batchNo;
/**
*
*/
@TableField(value = "produceDate")
@ApiModelProperty(value="生产日期")
@ApiModelProperty(value = "生产日期")
private String produceDate;
/**
*
*/
@TableField(value = "expireDate")
@ApiModelProperty(value="失效日期")
@ApiModelProperty(value = "失效日期")
private String expireDate;
/**
*
*/
@TableField(value = "serialNo")
@ApiModelProperty(value="序列号")
@ApiModelProperty(value = "序列号")
private String serialNo;
/**
* ID
*/
@TableField(value = "supId")
@ApiModelProperty(value="供应商ID")
@ApiModelProperty(value = "供应商ID")
private Long supId;
/**
*
*/
@TableField(value = "deptCode")
@ApiModelProperty(value="部门编码")
@ApiModelProperty(value = "部门编码")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
@ApiModelProperty(value="仓库编码")
@ApiModelProperty(value = "仓库编码")
private String invCode;
/**
*
*/
@TableField(value = "warehouseCode")
@ApiModelProperty(value="货位编码")
@ApiModelProperty(value = "货位编码")
private String warehouseCode;
/**
*
*/
@TableField(value = "workPlaceCode")
@ApiModelProperty(value="工位")
@ApiModelProperty(value = "工位")
private String workPlaceCode;
/**
* 1:2
*/
@TableField(value = "productType")
@ApiModelProperty(value="1:耗材2药品")
private Byte productType;
@ApiModelProperty(value = "1:耗材2药品")
private Integer productType;
/**
* 1:2.
*/
@TableField(value = "splitType")
@ApiModelProperty(value="1:手动扫码拆包2.自动拆包")
private Byte splitType;
@ApiModelProperty(value = "1:手动扫码拆包2.自动拆包")
private Integer splitType;
/**
*
*/
@TableField(value = "scanCount")
@ApiModelProperty(value="扫码数量")
@ApiModelProperty(value = "扫码数量")
private Integer scanCount;
/**
*
*/
@TableField(value = "totalCount")
@ApiModelProperty(value="总数量")
@ApiModelProperty(value = "总数量")
private Integer totalCount;
/**
*
*/
@TableField(value = "inBactchNo")
@ApiModelProperty(value="内部批号")
@ApiModelProperty(value = "内部批号")
private String inBactchNo;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value="创建日期")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**
*
*/
@TableField(value = "`createUser`")
@ApiModelProperty(value="创建人")
@ApiModelProperty(value = "创建人")
private String createUser;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value="更新日期")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**
*
*/
@TableField(value = "remark")
@ApiModelProperty(value="备注")
@ApiModelProperty(value = "备注")
private String remark;
private static final long serialVersionUID = 1L;

@ -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 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.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
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 com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.dao.basic.BasicSkPrescribeDiMapper;
import org.apache.regexp.RE;
import org.springframework.stereotype.Service;
import java.util.Collections;
@ -21,8 +17,7 @@ import java.util.List;
* basic_sk_prescribe_item_detail()Service
*/
@Service
public class BasicSkPrescribeDiServiceImpl extends ServiceImpl<BasicSkPrescribeDiMapper, BasicSkPrescribeDiEntity>
implements BasicSkPrescribeDiService {
public class BasicSkPrescribeDiService extends ServiceImpl<BasicSkPrescribeDiMapper, BasicSkPrescribeDiEntity> {
public List<BasicSkPrescribeDiResponse> filterList(BasicSkPrescribeDiRequest basicSkPrescribeDiRequest) {
if (basicSkPrescribeDiRequest == null) {
@ -36,7 +31,7 @@ public class BasicSkPrescribeDiServiceImpl extends ServiceImpl<BasicSkPrescribeD
return data;
}
@Override
public List<BasicSkPrescribeDiResponse> findBySkAdNum(String adNum) {
if (StrUtil.isEmpty(adNum))
return Collections.emptyList();
@ -53,13 +48,22 @@ public class BasicSkPrescribeDiServiceImpl extends ServiceImpl<BasicSkPrescribeD
return data;
}
@Override
public BasicSkPrescribeDiEntity findByThrCode(String adNum, String thrCode) {
BasicSkPrescribeDiEntity data = super.baseMapper.selectOne(
new QueryWrapper<BasicSkPrescribeDiEntity>()
.eq("adNum", adNum).eq("thrCode", thrCode).last("limit 1"));
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.basic.BasicSkPrescribeResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.service.thrsys.ThrProductsService;
import com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service;
@ -170,7 +169,7 @@ public class BasicSkPrescribeService extends ServiceImpl<BasicSkPrescribeMapper,
basicSkPrescribeDiEntity.setPrescribeCode(skPrescribeItemEntity.getPrescribeCode());
basicSkPrescribeDiEntity.setSickerCode(skPrescribeItemEntity.getSickerCode());
basicSkPrescribeDiEntity.setCount(IntUtil.value(skPrescribeItemEntity.getCount()));
basicSkPrescribeDiEntity.setMeasureCount(basicSkPrescribeDiEntity.getMeasureCount() + "");
basicSkPrescribeDiEntity.setMeasureCount(skPrescribeItemEntity.getMeasureCount() + "");
basicSkPrescribeDiEntity.setMeasureUnit(skPrescribeItemEntity.getMeasureUnit());
basicSkPrescribeDiEntity.setPId(udiRelevanceResponse.getPayFeeCode());
basicSkPrescribeDiEntity.setAmount(skPrescribeItemEntity.getAmount());
@ -180,22 +179,11 @@ public class BasicSkPrescribeService extends ServiceImpl<BasicSkPrescribeMapper,
basicSkPrescribeDiEntity.setCategory(udiRelevanceResponse.getCplb());
basicSkPrescribeDiEntity.setGgxh(udiRelevanceResponse.getGgxh());
basicSkPrescribeDiEntity.setAdNum(skPrescribeItemEntity.getAdNum());
basicSkPrescribeDiEntity.setBatchNo(skPrescribeItemEntity.getBatchNo());
basicSkPrescribeDiEntity.setUpdateTime(new Date());
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 com.glxp.api.entity.basic.*;
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.inout.impl.IoCodeService;
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.IoOrderDetailBizResponse;
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.basic.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.InvPreinProductDetailService;

@ -1,17 +1,40 @@
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.github.pagehelper.PageHelper;
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.IoSplitFifoCodeEntity;
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 javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Service
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) {
if (splitCodeRequest == null) {
return Collections.emptyList();
@ -23,4 +46,148 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
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"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<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"
resultType="com.glxp.api.res.basic.BasicSkPrescribeDiResponse">
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',
'varchar(124) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''就诊卡号''',
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