新增拆零队列

workplace
anthonywj 11 months ago
parent 17b98d8ab0
commit 0cc61f9f59

@ -0,0 +1,50 @@
package com.glxp.api.controller.inout;
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.req.inout.IoSplitFifoCodeRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inout.IoSplitCodeResponse;
import com.glxp.api.service.inout.IoSplitFifoCodeService;
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 IoSplitFifoController extends BaseController {
@Resource
IoSplitFifoCodeService splitFifoCodeService;
/**
*
*
* @return
*/
@GetMapping("/udiwms/ioSplit/material/code/filter")
public BaseResponse filterGroupBy(IoSplitFifoCodeRequest splitFifoCodeRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<IoSplitCodeResponse> splitCodeEntities = splitFifoCodeService.filterList(splitFifoCodeRequest);
PageInfo<IoSplitCodeResponse> pageInfo = new PageInfo<>(splitCodeEntities);
PageSimpleResponse<IoSplitCodeResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(splitCodeEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
}

@ -0,0 +1,18 @@
package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.IoSplitFifoCodeRequest;
import com.glxp.api.res.inout.IoSplitCodeResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoSplitFifoCodeMapper extends BaseMapper<IoSplitFifoCodeEntity> {
List<IoSplitCodeResponse> filterList(IoSplitFifoCodeRequest splitFifoCodeRequest);
}

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

@ -0,0 +1,133 @@
package com.glxp.api.req.inout;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.Date;
@Data
public class IoSplitFifoCodeRequest extends ListPageRequest {
private Integer id;
/**
* UDI/
*/
private String code;
/**
* GS1UDI
*/
private String errUdiCode;
/**
*
*/
private String orderId;
/**
*
*/
private String action;
/**
*
*/
private Long relId;
/**
*
*/
private String nameCode;
/**
*
*/
private String batchNo;
/**
*
*/
private String produceDate;
/**
*
*/
private String expireDate;
/**
*
*/
private String serialNo;
/**
* ID
*/
private Long supId;
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
/**
*
*/
private String warehouseCode;
/**
*
*/
private String workPlaceCode;
/**
* 1:2
*/
private Integer productType;
/**
* 1:2.
*/
private Integer splitType;
/**
*
*/
private Integer scanCount;
/**
*
*/
private Integer totalCount;
/**
*
*/
private String inBactchNo;
/**
*
*/
private Date createTime;
/**
*
*/
private String createUser;
/**
*
*/
private Date updateTime;
/**
*
*/
private String remark;
}

@ -0,0 +1,135 @@
package com.glxp.api.res.inout;
import lombok.Data;
import java.util.Date;
@Data
public class IoSplitCodeResponse {
private Integer id;
/**
* UDI/
*/
private String code;
/**
* GS1UDI
*/
private String errUdiCode;
/**
*
*/
private String orderId;
/**
*
*/
private String action;
/**
*
*/
private Long relId;
/**
*
*/
private String nameCode;
/**
*
*/
private String batchNo;
/**
*
*/
private String produceDate;
/**
*
*/
private String expireDate;
/**
*
*/
private String serialNo;
/**
* ID
*/
private Long supId;
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
/**
*
*/
private String warehouseCode;
/**
*
*/
private String workPlaceCode;
/**
* 1:2
*/
private Integer productType;
/**
* 1:2.
*/
private Integer splitType;
/**
*
*/
private Integer scanCount;
/**
*
*/
private Integer totalCount;
/**
*
*/
private String inBactchNo;
/**
*
*/
private Date createTime;
/**
*
*/
private String createUser;
/**
*
*/
private Date updateTime;
/**
*
*/
private String remark;
private Integer groupCount;
}

@ -1,31 +1,29 @@
package com.glxp.api.service.inout;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.dao.inout.IoOrderDetailCodeDao;
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
import com.glxp.api.res.basic.BasicSkPrescribeDiResponse;
import com.glxp.api.service.BasicSkPrescribeDiService;
import com.glxp.api.service.inout.impl.IoCodeService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.inout.IoOrderDetailCodeDao;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.BasicSkPrescribeDiEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.InvPreInProductDetailEntity;
import com.glxp.api.req.inout.OrderEditRequest;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.req.inout.OrderEditRequest;
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.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvPreinDetailService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.CustomUtil;
@ -70,13 +68,11 @@ public class IoCheckInoutService {
@Resource
IoOrderDetailResultService orderDetailResultService;
@Resource
InvPreinDetailService invPreinDetailService;
@Resource
IoGenInvService genInvService;
@Resource
IoAddInoutService addInoutService;
@Resource
IoSplitCodeService splitCodeService;
IoSplitFifoCodeService splitFifoCodeService;
//判断是否需要手动校验
public boolean checkManual(String billNo) {
@ -1176,7 +1172,6 @@ public class IoCheckInoutService {
backCodeList.add(ioCodeEntity);
}
}
// 4.生成退货单
genBackOrder(orderEntity, backCodeList);
}
@ -1194,22 +1189,20 @@ public class IoCheckInoutService {
} else {
genInvService.genNorInv(orderEntity.getBillNo());
orderService.updateOrderInventory(orderEntity.getBillNo(), orderEntity.getStatus());
//若未拆零预出库单据则入到拆零表
//若未拆零预出库单据则进入到拆零队列
if (orderEntity.getAction() == "SC72197936495755") {
List<IoCodeEntity> codeList = codeService.findByOrderId(orderEntity.getBillNo());
List<IoSplitCodeEntity> splitCodeEntities = new ArrayList<>();
List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(codeList)) {
for (IoCodeEntity codeEntity : codeList) {
IoSplitCodeEntity splitCodeEntity = new IoSplitCodeEntity();
IoSplitFifoCodeEntity splitCodeEntity = new IoSplitFifoCodeEntity();
BeanUtils.copyProperties(codeEntity, splitCodeEntity);
splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo());
splitCodeEntity.setTotalCount(codeEntity.getReCount());
splitCodeEntity.setRemainCount(codeEntity.getReCount());
splitCodeEntity.setId(null);
}
}
splitCodeService.saveBatch(splitCodeEntities);
splitFifoCodeService.saveBatch(splitCodeEntities);
}
}
} else {

@ -0,0 +1,34 @@
package com.glxp.api.service.inout;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inout.IoSplitFifoCodeMapper;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.req.inout.IoSplitFifoCodeRequest;
import com.glxp.api.res.inout.IoSplitCodeResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, IoSplitFifoCodeEntity> {
@Resource
IoSplitFifoCodeMapper splitFifoCodeMapper;
public List<IoSplitCodeResponse> filterList(IoSplitFifoCodeRequest splitFifoCodeRequest) {
if (splitFifoCodeRequest == null) {
return Collections.emptyList();
}
if (splitFifoCodeRequest.getPage() != null) {
int offset = (splitFifoCodeRequest.getPage() - 1) * splitFifoCodeRequest.getLimit();
PageHelper.offsetPage(offset, splitFifoCodeRequest.getLimit());
}
return super.baseMapper.filterList(splitFifoCodeRequest);
}
}

@ -0,0 +1,39 @@
<?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.inout.IoSplitFifoCodeMapper">
<select id="filterList" parameterType="com.glxp.api.req.inout.IoSplitFifoCodeRequest"
resultType="com.glxp.api.res.inout.IoSplitCodeResponse">
SELECT io_split_fifo_code.*, sum(totalCount) as groupCount
FROM io_split_fifo_code
<where>
<if test="code != '' and code != null">
AND code LIKE #{code}
</if>
<if test="relId != null">
AND relId = #{relId}
</if>
<if test="nameCode != '' and nameCode != null">
AND nameCode = #{nameCode}
</if>
<if test="batchNo != '' and batchNo != null">
AND batchNo = #{batchNo}
</if>
<if test="supId != null">
AND supId = #{supId}
</if>
<if test="invCode != null">
AND invCode = #{invCode}
</if>
<if test="supId != null">
AND supId = #{supId}
</if>
<if test="productType != null">
AND productType = #{productType}
</if>
<if test="workPlaceCode != '' and workPlaceCode != null">
AND workPlaceCode = #{workPlaceCode}
</if>
</where>
group by relId, batchNo, supId, workPlaceCode
</select>
</mapper>
Loading…
Cancel
Save