重写采集点代码

workplace
anthonywj 11 months ago
parent 9278b88162
commit b30a908894

@ -0,0 +1,95 @@
package com.glxp.api.controller.collect;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.req.collect.CollectOrderCodeAutoRequest;
import com.glxp.api.req.inout.IoSplitCodeRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.CollectOrderCodeAutoResponse;
import com.glxp.api.service.collect.IoCollectOrderCodeAutoService;
import com.glxp.api.service.inout.IoSplitCodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
*
*/
@Slf4j
@RestController
public class IoCollectOrderCodeAutoController extends BaseController {
@Resource
IoSplitCodeService splitCodeService;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
/**
*
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/code/filter")
public BaseResponse filterByCode(IoSplitCodeRequest splitCodeRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.filterList(splitCodeRequest);
PageInfo<IoSplitCodeEntity> pageInfo = new PageInfo<>(splitCodeEntities);
PageSimpleResponse<IoSplitCodeEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(splitCodeEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/order/filter")
public BaseResponse filterByBillNo(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<CollectOrderCodeAutoResponse> collectOrderCodeAutoResponses = collectOrderCodeAutoService.filterList(collectOrderCodeAutoRequest);
PageInfo<CollectOrderCodeAutoResponse> pageInfo = new PageInfo<>(collectOrderCodeAutoResponses);
PageSimpleResponse<CollectOrderCodeAutoResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderCodeAutoResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/code/filter")
public BaseResponse filterByTagCode(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<CollectOrderCodeAutoResponse> collectOrderCodeAutoResponses = collectOrderCodeAutoService.filterList(collectOrderCodeAutoRequest);
PageInfo<CollectOrderCodeAutoResponse> pageInfo = new PageInfo<>(collectOrderCodeAutoResponses);
PageSimpleResponse<CollectOrderCodeAutoResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderCodeAutoResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
}

@ -0,0 +1,159 @@
package com.glxp.api.controller.collect;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
import com.glxp.api.req.collect.CollectOrderCodeManRequest;
import com.glxp.api.req.inout.AddTagCodeReqeust;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.collect.CollectOrderCodeManResponse;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.collect.IoCollectOrderBizService;
import com.glxp.api.service.collect.IoCollectOrderCodeManService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.inout.IoSplitFifoCodeService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
@Slf4j
@RestController
public class IoCollectOrderCodeManController extends BaseController {
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
IoSplitFifoCodeService splitFifoCodeService;
/**
*
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/manual/code/list")
public BaseResponse manuCodeList(CollectOrderCodeManRequest collectOrderCodeManRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<CollectOrderCodeManResponse> collectOrderCodeManResponses = collectOrderCodeManService.filterList(collectOrderCodeManRequest);
PageInfo<CollectOrderCodeManResponse> pageInfo = new PageInfo<>(collectOrderCodeManResponses);
PageSimpleResponse<CollectOrderCodeManResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderCodeManResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* )
*
* @return
*/
@PostMapping("/udiwms/ioSplit/collect/order/tagCode")
public BaseResponse prescribeTagCode(@RequestBody @Valid AddTagCodeReqeust addTagCodeReqeust,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
if (collectOrder == null)
return ResultVOUtils.error(500, "单据不存在!");
//1.校验UDI码完整性
String code = addTagCodeReqeust.getCode();
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null)
return ResultVOUtils.error(500, "无效条码!");
UdiRelevanceResponse udiRelevanceResponse;
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), null);
if (CollUtil.isEmpty(udiRelevanceResponses))
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
else
udiRelevanceResponse = udiRelevanceResponses.get(0);
//2.校验是否处方单UDI码
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo());
IoCollectOrderBiz collectOrderBiz = vailPrescribeProduct(udiRelevanceResponses, collectOrderBizs, udiEntity);
if (collectOrderBiz == null)
return ResultVOUtils.error(500, "非此单据UDI码");
//3.校验该UDI码是否已经出库是否在预出库队列
Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode());
if (!b1) {
return ResultVOUtils.error(500, "该UDI码未出库无法使用");
}
//4.
IoCollectOrderCodeMan exitCode = collectOrderCodeManService.findByCode(collectOrderBiz.getOrderIdFk(), code);
if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) {
exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1);
collectOrderCodeManService.updateById(exitCode);
} else if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && exitCode != null) {
return ResultVOUtils.error(500, "重复扫码!");
} else {
IoCollectOrderCodeMan collectOrderCodeMan =
IoCollectOrderCodeMan.builder()
.udiCode(code)
.relId(collectOrderBiz.getRelId())
.nameCode(udiRelevanceResponse.getNameCode())
.createTime(new Date())
.createUser(getUserId())
.updateTime(new Date())
.updateUser(getUserId())
.scanCount(1)
.build();
collectOrderCodeManService.save(collectOrderCodeMan);
}
return ResultVOUtils.success("赋码成功");
}
public IoCollectOrderBiz vailPrescribeProduct(List<UdiRelevanceResponse> udiRelevanceResponses, List<IoCollectOrderBiz> collectOrderBizs, UdiEntity udiEntity) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
if (udiRelevanceResponse.getId().equals(collectOrderBiz) &&
(StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo()))
) {
return collectOrderBiz;
}
}
}
return null;
}
}

@ -0,0 +1,100 @@
package com.glxp.api.controller.collect;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.req.collect.CollectOrderBindWorkRequest;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.collect.CollectOrderSaveRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.collect.IoCollectOrderBizService;
import com.glxp.api.service.collect.IoCollectOrderService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import java.util.List;
@Controller
public class IoCollectOrderController extends BaseController {
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@GetMapping("/udiwms/basic/collect/order/filter")
public BaseResponse filterOrder(CollectOrderRequest collectOrderRequest) {
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(collectOrderRequest);
PageInfo<IoCollectOrderResponse> pageInfo = new PageInfo<>(orderResponses);
PageSimpleResponse<IoCollectOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(orderResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/basic/collect/order/detail")
public BaseResponse detail(CollectOrderBizRequest collectOrderBizRequest) {
if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) {
return ResultVOUtils.error(500, "单据号不能为空");
}
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBizRequest.getOrderIdFk());
if (collectOrder == null) {
return ResultVOUtils.error(500, "未找到单据");
}
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(list);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/basic/collect/order/deleteOrder")
public BaseResponse deleteOrder(@RequestBody DeleteRequest deleteRequest) {
String billNo = deleteRequest.getBillNo();
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
collectOrderService.remove(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, billNo));
return ResultVOUtils.success();
}
/**
*
*
* @return
*/
@GetMapping("/udiwms/basic/collect/order/save")
public BaseResponse saveOrder(@RequestBody CollectOrderSaveRequest collectOrderSaveRequest) {
List<IoCollectOrder> list = collectOrderSaveRequest.getList();
collectOrderService.saveOrUpdateBatch(list);
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/collect/order/bindWork")
public BaseResponse bindWork(@RequestBody CollectOrderBindWorkRequest bindWorkRequest) {
for (IoCollectOrder collectOrder : bindWorkRequest.getList()) {
collectOrder.setWorkPlaceCode(bindWorkRequest.getWorkplaceCode());
}
collectOrderService.updateBatchById(bindWorkRequest.getList());
return ResultVOUtils.success("绑定成功");
}
}

@ -93,6 +93,8 @@ public class IoCodeTempController extends BaseController {
IoOrderDetailCodeService ioOrderDetailCodeService; IoOrderDetailCodeService ioOrderDetailCodeService;
@Resource @Resource
IoCheckInvService checkInvService; IoCheckInvService checkInvService;
@Resource
IoSplitFifoCodeService splitFifoCodeService;
/** /**
* PDA----- * PDA-----
@ -870,7 +872,14 @@ public class IoCodeTempController extends BaseController {
//预出库退货校验队列库存 //预出库退货校验队列库存
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
//TODO IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEnttity.getCode(), orderEntity.getWorkPlaceCode());
if (ioSplitFifoCodeEntity == null)
return ResultVOUtils.error(500, "当前工位库存库存不足");
if (ioSplitFifoCodeEntity.getScanCount() < codeEnttity.getCount()) {
return ResultVOUtils.error(500, "当前工位库存库存不足");
}
} }

@ -0,0 +1,9 @@
package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoCollectCode;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IoCollectCodeMapper extends BaseMapper<IoCollectCode> {
}

@ -0,0 +1,16 @@
package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoCollectOrderBizMapper extends BaseMapper<IoCollectOrderBiz> {
List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest);
}

@ -0,0 +1,16 @@
package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoCollectOrderCodeAuto;
import com.glxp.api.req.collect.CollectOrderCodeAutoRequest;
import com.glxp.api.res.collect.CollectOrderCodeAutoResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoCollectOrderCodeAutoMapper extends BaseMapper<IoCollectOrderCodeAuto> {
List<CollectOrderCodeAutoResponse> filterList(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest);
}

@ -0,0 +1,17 @@
package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
import com.glxp.api.req.collect.CollectOrderCodeManRequest;
import com.glxp.api.res.collect.CollectOrderCodeAutoResponse;
import com.glxp.api.res.collect.CollectOrderCodeManResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoCollectOrderCodeManMapper extends BaseMapper<IoCollectOrderCodeMan> {
List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest);
}

@ -0,0 +1,16 @@
package com.glxp.api.dao.collect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoCollectOrderMapper extends BaseMapper<IoCollectOrder> {
List<IoCollectOrderResponse> filterList(CollectOrderRequest collectOrderRequest);
}

@ -25,6 +25,9 @@ public class BasicSkPrescribeItemEntity implements Serializable {
@TableId(value = "id") @TableId(value = "id")
private Long id; private Long id;
/** /**
* id * id
*/ */

@ -0,0 +1,106 @@
package com.glxp.api.entity.collect;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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-collect-IoCollectCode")
@Data
@TableName(value = "io_collect_code")
public class IoCollectCode implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="")
private Integer id;
/**
* UDI.
*/
@TableField(value = "code")
@ApiModelProperty(value="追溯码UDI.药品)")
private String code;
/**
*
*/
@TableField(value = "fromType")
@ApiModelProperty(value="单据来源")
private String fromType;
/**
*
*/
@TableField(value = "busType")
@ApiModelProperty(value="单据类型")
private String busType;
/**
*
*/
@TableField(value = "billNo")
@ApiModelProperty(value="单据号")
private Integer billNo;
/**
*
*/
@TableField(value = "fromCorp")
@ApiModelProperty(value="往来单位")
private String fromCorp;
/**
*
*/
@TableField(value = "operTime")
@ApiModelProperty(value="操作时间")
private Date operTime;
/**
*
*/
@TableField(value = "operUser")
@ApiModelProperty(value="操作人")
private String operUser;
/**
*
*/
@TableField(value = "collectCode")
@ApiModelProperty(value="采集点")
private String collectCode;
/**
*
*/
@TableField(value = "collectUser")
@ApiModelProperty(value="采集点负责人")
private String collectUser;
/**
*
*/
@TableField(value = "workPlaceCode")
@ApiModelProperty(value="工位")
private String workPlaceCode;
/**
*
*/
@TableField(value = "workPlaceUser")
@ApiModelProperty(value="工位负责人")
private String workPlaceUser;
/**
*
*/
@TableField(value = "remark")
@ApiModelProperty(value="备注")
private String remark;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,137 @@
package com.glxp.api.entity.collect;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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-collect-IoCollectOrder")
@Data
@TableName(value = "io_collect_order")
public class IoCollectOrder implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
private Integer id;
/**
*
*/
@TableField(value = "billNo")
@ApiModelProperty(value = "单据号")
private String billNo;
/**
*
*/
@TableField(value = "busType")
@ApiModelProperty(value = "单据类型")
private String busType;
/**
*
*/
@TableField(value = "fromType")
@ApiModelProperty(value = "来源业务")
private String fromType;
/**
*
*/
@TableField(value = "fromTypeDesc")
@ApiModelProperty(value = "来源业务说明")
private String fromTypeDesc;
/**
*
*/
@TableField(value = "fromCorp")
@ApiModelProperty(value = "往来信息")
private String fromCorp;
/**
*
*/
@TableField(value = "billTime")
@ApiModelProperty(value = "单据时间")
private Date billTime;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "collectTime")
@ApiModelProperty(value = "采集时间")
private Date collectTime;
/**
*
*/
@TableField(value = "collectCode")
@ApiModelProperty(value = "采集点编码")
private String collectCode;
/**
*
*/
@TableField(value = "workPlaceCode")
@ApiModelProperty(value = "工位编码")
private String workPlaceCode;
/**
*
*/
@TableField(value = "remark")
@ApiModelProperty(value = "备注")
private String remark;
/**
*
*/
@TableField(value = "`createUser`")
@ApiModelProperty(value = "创建人")
private String createUser;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@TableField(value = "updateUser")
@ApiModelProperty(value = "更新人")
private String updateUser;
/**
* 1:23
*/
@TableField(value = "tagStatus")
private Integer tagStatus;
/**
*
*/
@TableField(value = "tagMsg")
private String tagMsg;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,175 @@
package com.glxp.api.entity.collect;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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-collect-IoCollectOrderBiz")
@Data
@TableName(value = "io_collect_order_biz")
public class IoCollectOrderBiz implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
private Integer id;
/**
*
*/
@TableField(value = "orderIdFk")
private String orderIdFk;
/**
* ID
*/
@TableField(value = "relId")
@ApiModelProperty(value = "耗材字典ID")
private Long relId;
/**
*
*/
@TableField(value = "thrCode")
@ApiModelProperty(value = "院内编码(第三方编码)")
private String thrCode;
/**
*
*/
@TableField(value = "ybbm")
@ApiModelProperty(value = "医保编码")
private String ybbm;
/**
*
*/
@TableField(value = "payFeeCode")
@ApiModelProperty(value = "收费编码")
private String payFeeCode;
/**
*
*/
@TableField(value = "cpmctymc")
@ApiModelProperty(value = "产品通用名称")
private String cpmctymc;
/**
*
*/
@TableField(value = "nameCode")
@ApiModelProperty(value = "产品标识")
private String nameCode;
/**
*
*/
@TableField(value = "ggxh")
@ApiModelProperty(value = "规格型号")
private String ggxh;
/**
*
*/
@TableField(value = "batchNo")
@ApiModelProperty(value = "批次号")
private String batchNo;
/**
*
*/
@TableField(value = "productDate")
@ApiModelProperty(value = "生产日期")
private String productDate;
/**
*
*/
@TableField(value = "expireDate")
@ApiModelProperty(value = "失效日期")
private String expireDate;
/**
*
*/
@TableField(value = "`count`")
@ApiModelProperty(value = "单据数量")
private Integer count;
/**
*
*/
@TableField(value = "actCount")
@ApiModelProperty(value = "实际数量")
private Integer actCount;
/**
*
*/
@TableField(value = "scanCount")
@ApiModelProperty(value = "扫码数量")
private Integer scanCount;
/**
*
*/
@TableField(value = "scanActCount")
@ApiModelProperty(value = "扫码实际数量")
private Integer scanActCount;
/**
*
*/
@TableField(value = "measureUnit")
@ApiModelProperty(value = "计量单位")
private String measureUnit;
/**
* 1:23
*/
@TableField(value = "tagStatus")
@ApiModelProperty(value = "单据明细赋码状态 1:未赋码2部分赋码3已赋码")
private Integer tagStatus;
/**
*
*/
@TableField(value = "tagMsg")
@ApiModelProperty(value = "赋码错误信息")
private String tagMsg;
/**
*
*/
@TableField(value = "remark")
@ApiModelProperty(value = "备注")
private String remark;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,90 @@
package com.glxp.api.entity.collect;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*/
@ApiModel(value = "com-glxp-api-entity-collect-IoCollectOrderCodeAuto")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "io_collect_order_code_auto")
public class IoCollectOrderCodeAuto implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
private Integer id;
/**
* ID
*/
@TableField(value = "codeIdFk")
@ApiModelProperty(value = "拆零表码ID")
private Integer codeIdFk;
/**
* udi
*/
@TableField(value = "udiCode")
@ApiModelProperty(value = "udi码、追溯码")
private String udiCode;
/**
* /
*/
@TableField(value = "orderIdFk")
@ApiModelProperty(value = "处方单号/业务单号")
private String orderIdFk;
/**
* ID
*/
@TableField(value = "relId")
@ApiModelProperty(value = "耗材字典ID")
private Long relId;
/**
*
*/
@TableField(value = "batchNo")
@ApiModelProperty(value = "批次号")
private String batchNo;
@TableField(value = "createTime")
@ApiModelProperty(value = "")
private Date createTime;
@TableField(value = "`createUser`")
@ApiModelProperty(value = "")
private String createUser;
@TableField(value = "updateTime")
@ApiModelProperty(value = "")
private Date updateTime;
@TableField(value = "updateUser")
@ApiModelProperty(value = "")
private String updateUser;
@TableField(value = "remark")
@ApiModelProperty(value = "")
private String remark;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,74 @@
package com.glxp.api.entity.collect;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*/
@ApiModel(value = "com-glxp-api-entity-collect-IoCollectOrderCodeMan")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "io_collect_order_code_man")
public class IoCollectOrderCodeMan implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
private Integer id;
@TableField(value = "orderIdFk")
@ApiModelProperty(value = "")
private String orderIdFk;
@TableField(value = "udiCode")
@ApiModelProperty(value = "")
private String udiCode;
@TableField(value = "relId")
@ApiModelProperty(value = "")
private Long relId;
@TableField(value = "nameCode")
@ApiModelProperty(value = "")
private String nameCode;
@TableField(value = "remark")
@ApiModelProperty(value = "")
private String remark;
@TableField(value = "createTime")
@ApiModelProperty(value = "")
private Date createTime;
@TableField(value = "`createUser`")
@ApiModelProperty(value = "")
private Long createUser;
@TableField(value = "updateTime")
@ApiModelProperty(value = "")
private Date updateTime;
@TableField(value = "updateUser")
@ApiModelProperty(value = "")
private Long updateUser;
@TableField(value = "scanCount")
@ApiModelProperty(value = "扫码数量")
private Integer scanCount;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,13 @@
package com.glxp.api.req.collect;
import com.glxp.api.entity.collect.IoCollectOrder;
import lombok.Data;
import java.util.List;
@Data
public class CollectOrderBindWorkRequest {
List<IoCollectOrder> list;
String workplaceCode;
}

@ -0,0 +1,113 @@
package com.glxp.api.req.collect;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.Date;
@Data
public class CollectOrderBizRequest extends ListPageRequest {
private Integer id;
/**
*
*/
private String orderIdFk;
/**
*
*/
private String thrCode;
/**
*
*/
private String ybbm;
/**
*
*/
private String payFeeCode;
/**
*
*/
private String cpmctymc;
/**
*
*/
private String nameCode;
/**
*
*/
private String ggxh;
/**
*
*/
private String batchNo;
/**
*
*/
private String productDate;
/**
*
*/
private String expireDate;
/**
*
*/
private Integer count;
/**
*
*/
private Integer actCount;
/**
*
*/
private Integer scanCount;
/**
*
*/
private Integer scanActCount;
/**
*
*/
private String measureUnit;
/**
* 1:23
*/
private Integer tagStatus;
/**
*
*/
private String tagMsg;
/**
*
*/
private String remark;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
}

@ -0,0 +1,39 @@
package com.glxp.api.req.collect;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.Date;
@Data
public class CollectOrderCodeAutoRequest extends ListPageRequest {
private Integer id;
/**
* ID
*/
private Integer codeIdFk;
/**
* udi
*/
private String udiCode;
/**
* /
*/
private String orderIdFk;
private Date createTime;
private String createUser;
private Date updateTime;
private String updateUser;
private String remark;
}

@ -0,0 +1,31 @@
package com.glxp.api.req.collect;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.Date;
@Data
public class CollectOrderCodeManRequest extends ListPageRequest {
private Integer id;
private String orderIdFk;
private String udiCode;
private Integer relId;
private String nameCode;
private String remark;
private Date createTime;
private String createUser;
private Date updateTime;
private Date updateUser;
}

@ -0,0 +1,85 @@
package com.glxp.api.req.collect;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.Date;
@Data
public class CollectOrderRequest extends ListPageRequest {
private Integer id;
/**
*
*/
private String billNo;
/**
*
*/
private String busType;
/**
*
*/
private String fromType;
/**
*
*/
private String fromTypeDesc;
/**
*
*/
private String fromCorp;
/**
*
*/
private Date billTime;
/**
*
*/
private Date createTime;
/**
*
*/
private Date collectTime;
/**
*
*/
private String collectCode;
/**
*
*/
private String workPlaceCode;
/**
*
*/
private String remark;
/**
*
*/
private String createUser;
/**
*
*/
private Date updateTime;
/**
*
*/
private String updateUser;
}

@ -0,0 +1,14 @@
package com.glxp.api.req.collect;
import com.glxp.api.entity.collect.IoCollectOrder;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class CollectOrderSaveRequest {
@NotNull(message = "处方列表不可以为空!")
List<IoCollectOrder> list;
}

@ -10,7 +10,6 @@ public class AddTagCodeReqeust {
/** /**
* *
*/ */
@NotNull(message = "处方编码不能为空")
private String prescribeNum; private String prescribeNum;
/** /**
@ -19,5 +18,7 @@ public class AddTagCodeReqeust {
@NotNull(message = "追溯码不能为空") @NotNull(message = "追溯码不能为空")
private String code; private String code;
private String billNo;
} }

@ -0,0 +1,113 @@
package com.glxp.api.res.collect;
import lombok.Data;
import java.util.Date;
@Data
public class CollectOrderBizResponse {
private Integer id;
/**
*
*/
private String orderIdFk;
/**
*
*/
private String thrCode;
/**
*
*/
private String ybbm;
/**
*
*/
private String payFeeCode;
/**
*
*/
private String cpmctymc;
/**
*
*/
private String nameCode;
/**
*
*/
private String ggxh;
/**
*
*/
private String batchNo;
/**
*
*/
private String productDate;
/**
*
*/
private String expireDate;
/**
*
*/
private Integer count;
/**
*
*/
private Integer actCount;
/**
*
*/
private Integer scanCount;
/**
*
*/
private Integer scanActCount;
/**
*
*/
private String measureUnit;
/**
* 1:23
*/
private Integer tagStatus;
/**
*
*/
private String tagMsg;
/**
*
*/
private String remark;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
}

@ -0,0 +1,38 @@
package com.glxp.api.res.collect;
import lombok.Data;
import java.util.Date;
@Data
public class CollectOrderCodeAutoResponse {
private Integer id;
/**
* ID
*/
private Integer codeIdFk;
/**
* udi
*/
private String udiCode;
/**
* /
*/
private String orderIdFk;
private Date createTime;
private String createUser;
private Date updateTime;
private String updateUser;
private String remark;
}

@ -0,0 +1,31 @@
package com.glxp.api.res.collect;
import lombok.Data;
import java.util.Date;
@Data
public class CollectOrderCodeManResponse {
private Integer id;
private String orderIdFk;
private String udiCode;
private Integer relId;
private String nameCode;
private String remark;
private Date createTime;
private String createUser;
private Date updateTime;
private Date updateUser;
}

@ -0,0 +1,83 @@
package com.glxp.api.res.collect;
import lombok.Data;
import java.util.Date;
@Data
public class IoCollectOrderResponse {
private Integer id;
/**
*
*/
private String billNo;
/**
*
*/
private String busType;
/**
*
*/
private String fromType;
/**
*
*/
private String fromTypeDesc;
/**
*
*/
private String fromCorp;
/**
*
*/
private Date billTime;
/**
*
*/
private Date createTime;
/**
*
*/
private Date collectTime;
/**
*
*/
private String collectCode;
/**
*
*/
private String workPlaceCode;
/**
*
*/
private String remark;
/**
*
*/
private String createUser;
/**
*
*/
private Date updateTime;
/**
*
*/
private String updateUser;
}

@ -0,0 +1,12 @@
package com.glxp.api.service.collect;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.IoCollectCodeMapper;
import com.glxp.api.entity.collect.IoCollectCode;
@Service
public class IoCollectCodeService extends ServiceImpl<IoCollectCodeMapper, IoCollectCode> {
}

@ -0,0 +1,46 @@
package com.glxp.api.service.collect;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.dao.collect.IoCollectOrderBizMapper;
@Service
public class IoCollectOrderBizService extends ServiceImpl<IoCollectOrderBizMapper, IoCollectOrderBiz> {
@Resource
IoCollectOrderBizMapper collectOrderBizMapper;
public List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest) {
if (collectOrderRequest == null) {
return Collections.emptyList();
}
if (collectOrderRequest.getPage() != null) {
int offset = (collectOrderRequest.getPage() - 1) * collectOrderRequest.getLimit();
PageHelper.offsetPage(offset, collectOrderRequest.getLimit());
}
List<CollectOrderBizResponse> data = collectOrderBizMapper.filterList(collectOrderRequest);
return data;
}
public List<IoCollectOrderBiz> listByBillNo(String billNo) {
List<IoCollectOrderBiz> list = super.list(Wrappers.lambdaQuery(IoCollectOrderBiz.class)
.eq(IoCollectOrderBiz::getOrderIdFk, billNo)
);
return list;
}
}

@ -0,0 +1,33 @@
package com.glxp.api.service.collect;
import com.github.pagehelper.PageHelper;
import com.glxp.api.req.collect.CollectOrderCodeAutoRequest;
import com.glxp.api.res.collect.CollectOrderCodeAutoResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.IoCollectOrderCodeAutoMapper;
import com.glxp.api.entity.collect.IoCollectOrderCodeAuto;
@Service
public class IoCollectOrderCodeAutoService extends ServiceImpl<IoCollectOrderCodeAutoMapper, IoCollectOrderCodeAuto> {
@Resource
IoCollectOrderCodeAutoMapper collectOrderCodeAutoMapper;
public List<CollectOrderCodeAutoResponse> filterList(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest) {
if (collectOrderCodeAutoRequest == null) {
return Collections.emptyList();
}
if (collectOrderCodeAutoRequest.getPage() != null) {
int offset = (collectOrderCodeAutoRequest.getPage() - 1) * collectOrderCodeAutoRequest.getLimit();
PageHelper.offsetPage(offset, collectOrderCodeAutoRequest.getLimit());
}
return collectOrderCodeAutoMapper.filterList(collectOrderCodeAutoRequest);
}
}

@ -0,0 +1,44 @@
package com.glxp.api.service.collect;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicSkPrescribeItemCodeMapper;
import com.glxp.api.dao.collect.IoCollectOrderCodeAutoMapper;
import com.glxp.api.entity.basic.BasicSkPrescribeItemCode;
import com.glxp.api.req.collect.CollectOrderCodeAutoRequest;
import com.glxp.api.req.collect.CollectOrderCodeManRequest;
import com.glxp.api.res.collect.CollectOrderCodeAutoResponse;
import com.glxp.api.res.collect.CollectOrderCodeManResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
import com.glxp.api.dao.collect.IoCollectOrderCodeManMapper;
@Service
public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCodeManMapper, IoCollectOrderCodeMan> {
@Resource
IoCollectOrderCodeManMapper collectOrderCodeManMapper;
public List<CollectOrderCodeManResponse> filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) {
if (collectOrderCodeManRequest == null) {
return Collections.emptyList();
}
if (collectOrderCodeManRequest.getPage() != null) {
int offset = (collectOrderCodeManRequest.getPage() - 1) * collectOrderCodeManRequest.getLimit();
PageHelper.offsetPage(offset, collectOrderCodeManRequest.getLimit());
}
return collectOrderCodeManMapper.filterList(collectOrderCodeManRequest);
}
public IoCollectOrderCodeMan findByCode(String billNo, String code) {
return collectOrderCodeManMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo)
.eq(IoCollectOrderCodeMan::getUdiCode, code).last("limit 1"));
}
}

@ -0,0 +1,39 @@
package com.glxp.api.service.collect;
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.collect.IoCollectOrderMapper;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoCollectOrder> {
@Resource
IoCollectOrderMapper collectOrderMapper;
public IoCollectOrder getByBillNo(String billNo) {
return collectOrderMapper.selectOne(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, billNo).last("limit 1"));
}
public List<IoCollectOrderResponse> filterList(CollectOrderRequest collectOrderRequest) {
if (collectOrderRequest == null) {
return Collections.emptyList();
}
if (collectOrderRequest.getPage() != null) {
int offset = (collectOrderRequest.getPage() - 1) * collectOrderRequest.getLimit();
PageHelper.offsetPage(offset, collectOrderRequest.getLimit());
}
List<IoCollectOrderResponse> data = collectOrderMapper.filterList(collectOrderRequest);
return data;
}
}

@ -1269,8 +1269,7 @@ public class IoCheckInoutService {
List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>(); List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(codeList)) { if (CollUtil.isNotEmpty(codeList)) {
for (IoCodeEntity codeEntity : codeList) { for (IoCodeEntity codeEntity : codeList) {
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = null; IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), orderEntity.getWorkPlaceCode());
ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), orderEntity.getWorkPlaceCode());
if (StrUtil.isEmpty(codeEntity.getSerialNo())) { if (StrUtil.isEmpty(codeEntity.getSerialNo())) {
if (ioSplitFifoCodeEntity != null) { if (ioSplitFifoCodeEntity != null) {
ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount())); ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount()));

@ -8,11 +8,17 @@ 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.BasicSkPrescribeDiEntity;
import com.glxp.api.entity.basic.BasicSkPrescribeEntity; import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoCollectOrderCodeAuto;
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.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.BasicSkPrescribeDiService;
import com.glxp.api.service.basic.BasicSkPrescribeService; import com.glxp.api.service.basic.BasicSkPrescribeService;
import com.glxp.api.service.collect.IoCollectOrderBizService;
import com.glxp.api.service.collect.IoCollectOrderCodeAutoService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -20,6 +26,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.List; import java.util.List;
@Service @Service
@ -126,10 +133,107 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
} }
basicSkPrescribeDiService.updateById(basicSkPrescribeDiEntity); basicSkPrescribeDiService.updateById(basicSkPrescribeDiEntity);
} }
basicSkPrescribeEntity.setTagStatus(checkStatus(basicSkPrescribeDiEntities)); basicSkPrescribeEntity.setTagStatus(checkStatus1(basicSkPrescribeDiEntities));
basicSkPrescribeService.updateById(basicSkPrescribeEntity); basicSkPrescribeService.updateById(basicSkPrescribeEntity);
} }
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
/**
*
*/
public void orderAutoTagCode(IoCollectOrder collectOrder) {
List<IoCollectOrderBiz> collectOrderBizs = collectOrderBizService.listByBillNo(collectOrder.getBillNo());
//处方赋码状态 1未赋码2部分赋码3全部赋码
for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) {
//1.按照先进先出原则查询拆零表获取拆零表ID
List<IoSplitCodeEntity> ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
//2.如果拆零表为空,则自动从预出库队列中获拉取数据
if (CollUtil.isEmpty(ioSplitCodeEntities)) {
addFifoCode(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), IntUtil.value(collectOrderBiz.getCount()));
}
ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
//3.如果拆零表不为空,则开始扣除数量
int count = 0;
int unCount = 0; //剩余未扣减数量
unCount = IntUtil.value(collectOrderBiz.getCount());
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(ioSplitCodeEntity.getId())
.udiCode(ioSplitCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(collectOrderBiz.getBatchNo())
.relId(collectOrderBiz.getRelId())
.createTime(new Date())
.updateTime(new Date())
.build());
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(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), unCount);
if (fifoCount == 0) {
//预出库队列数量不足
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
} else {
//再次执行赋码
ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
for (IoSplitCodeEntity ioSplitCodeEntity : ioSplitCodeEntities) {
count = IntUtil.value(ioSplitCodeEntity.getRemainCount()) - unCount;
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(ioSplitCodeEntity.getId())
.udiCode(ioSplitCodeEntity.getCode())
.orderIdFk(collectOrder.getBillNo())
.batchNo(collectOrderBiz.getBatchNo())
.relId(collectOrderBiz.getRelId())
.createTime(new Date())
.updateTime(new Date())
.build());
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
break;
} else if (count == 0) {
ioSplitCodeEntity.setRemainCount(0);
} else {
ioSplitCodeEntity.setRemainCount(0);
unCount = -count;
}
}
if (unCount > 0) {
collectOrderBiz.setTagStatus(2);
collectOrderBiz.setTagMsg("预出库队列码数量不足,赋码失败!");
} else {
collectOrderBiz.setTagStatus(3);
collectOrderBiz.setTagMsg("赋码完成!");
}
}
}
collectOrderBizService.updateById(collectOrderBiz);
}
collectOrder.setTagStatus(checkStatus(collectOrderBizs));
collectOrderService.updateById(collectOrder);
}
/** /**
* *
@ -176,7 +280,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
} }
public int checkStatus(List<BasicSkPrescribeDiEntity> list) { public int checkStatus1(List<BasicSkPrescribeDiEntity> list) {
boolean hasTwo = false; boolean hasTwo = false;
boolean hasOne = false; boolean hasOne = false;
for (BasicSkPrescribeDiEntity di : list) { for (BasicSkPrescribeDiEntity di : list) {
@ -198,4 +302,27 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
} }
} }
public int checkStatus(List<IoCollectOrderBiz> list) {
boolean hasTwo = false;
boolean hasOne = false;
for (IoCollectOrderBiz 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;
}
}
} }

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.IoCollectCodeMapper">
</mapper>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.IoCollectOrderBizMapper">
</mapper>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.IoCollectOrderCodeAutoMapper">
<select id="filterList" parameterType="com.glxp.api.req.collect.CollectOrderCodeAutoRequest"
resultType="com.glxp.api.res.collect.CollectOrderCodeAutoResponse">
SELECT icoca.*
FROM io_collect_order_code_auto icoca
left join io_split_code isc
on icoca.codeIdFk = isc.id
<where>
<if test="codeIdFk != '' and codeIdFk != null">
AND icoca.codeIdFk = #{codeIdFk}
</if>
<if test="udiCode != '' and udiCode != null">
AND icoca.udiCode = #{udiCode}
</if>
<if test="codeIdFk != null">
AND icoca.codeIdFk = #{codeIdFk}
</if>
</where>
</select>
</mapper>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.IoCollectOrderCodeManMapper">
<select id="filterList" parameterType="com.glxp.api.req.collect.CollectOrderCodeManRequest"
resultType="com.glxp.api.res.collect.CollectOrderCodeManResponse">
SELECT icocm.*
FROM io_collect_order_code_man icocm
<where>
<if test="orderIdFk != '' and orderIdFk != null">
AND icocm.orderIdFk = #{orderIdFk}
</if>
<if test="udiCode != '' and udiCode != null">
AND icocm.udiCode = #{udiCode}
</if>
<if test="relId != null">
AND icocm.relId = #{relId}
</if>
</where>
</select>
</mapper>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.collect.IoCollectOrderMapper">
<select id="filterList" parameterType="com.glxp.api.req.collect.CollectOrderRequest"
resultType="com.glxp.api.res.collect.IoCollectOrderResponse">
SELECT io_collect_order.*
FROM io_collect_order
<where>
<if test="billNo != '' and billNo != null">
AND billNo LIKE concat('%', #{billNo}, '%')
</if>
<if test="busType != null and busType != ''">
AND busType = #{busType}
</if>
<if test="fromType != null and fromType != ''">
AND fromType = #{fromType}
</if>
<if test="fromCorp != '' and fromCorp != null">
AND fromCorp LIKE concat('%', #{fromCorp}, '%')
</if>
<if test="collectCode != null and collectCode != ''">
AND collectCode = #{collectCode}
</if>
<if test="busType != null and busType != ''">
AND busType = #{busType}
</if>
<if test="workPlaceCode != null and workPlaceCode != ''">
AND workPlaceCode = #{workPlaceCode}
</if>
</where>
order by collectTime desc
</select>
</mapper>
Loading…
Cancel
Save