单据拆零赋码优化修改

workplace
anthonywj 11 months ago
parent 7a219014e1
commit e9b939e99d

@ -126,11 +126,8 @@ public class IoSplitController extends BaseController {
* @return
*/
@PostMapping("/udiwms/ioSplit/material/order/split")
public BaseResponse startSplit(@RequestBody @Valid AddTagCodeReqeust addTagCodeReqeust,
public BaseResponse startSplit(@RequestBody 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, "未找到单据");

@ -176,6 +176,13 @@ public class IoCollectOrderBiz implements Serializable {
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@TableField(value = "unTagCount")
@ApiModelProperty(value = "未拆零数量")
private Integer unTagCount;
private static final long serialVersionUID = 1L;
}

@ -25,7 +25,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@TableName(value = "io_collect_order_code_auto")
public class IoCollectOrderCodeAuto implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "")
private Integer id;
@ -93,6 +93,10 @@ public class IoCollectOrderCodeAuto implements Serializable {
@TableField(value = "remark")
@ApiModelProperty(value = "")
private String remark;
@TableField(value = "fifoSplit")
@ApiModelProperty(value = "")
private Integer fifoSplit;
private static final long serialVersionUID = 1L;
}

@ -4,13 +4,19 @@ 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 lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "io_code_temp")
public class IoCodeTempEntity {
@TableId(value = "id", type = IdType.AUTO)

@ -205,5 +205,14 @@ public class IoSplitCodeEntity implements Serializable {
@ApiModelProperty(value = "状态")
private Integer status;
/**
* 1:2:
*/
@TableField(value = "fifoSplit")
@ApiModelProperty(value = "上货方式1:拆零2:整取")
private Integer fifoSplit;
private static final long serialVersionUID = 1L;
}

@ -34,6 +34,7 @@ public class CollectOrderCodeAutoRequest extends ListPageRequest {
private String updateUser;
private String remark;
private Integer fifoSplit;
}

@ -76,7 +76,7 @@ public class UdiRelevanceResponse {
private String sptm;
private String manufactory;
private String measname;
private Integer productType;
private Integer productsType;
private String scbssfbhph;
private String scbssfbhxlh;
private String scbssfbhscrq;
@ -284,5 +284,4 @@ public class UdiRelevanceResponse {
}
}

@ -34,5 +34,16 @@ public class CollectOrderCodeAutoResponse {
private String remark;
private String nameCode;
private String cpmctymc;
private String ggxh;
private String batchNo;
private Integer scanCount;
private String zczbhhzbapzbh;
private String manufactory;
private String productDate;
private String expireDate;
private String serialNo;
private Integer fifoSplit;
}

@ -443,11 +443,9 @@ public class IoAddInoutService {
List<IoOrderDetailCodeEntity> ioOrderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper<IoOrderDetailCodeEntity>().select("id", "count", "reCount", "bindRlFk", "batchNo", "price").eq("orderIdFk", orderEntity.getBillNo()));
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(codeTempEntity.getRelId(), codeTempEntity.getSupId());
if (codeTempEntity.getPrice() == null) {
codeTempEntity.setPrice(udiRelevanceResponse.getPrice());
codeTempService.updateById(codeTempEntity);
if (codeTempEntity.getPrice() == null && udiRelevanceResponse.getPrice() != null) {
codeTempService.updateById(IoCodeTempEntity.builder().id(codeTempEntity.getId()).price(udiRelevanceResponse.getPrice()).build());
}
if (CollUtil.isEmpty(ioOrderDetailCodeEntities)) {
orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse));
ioOrderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper<IoOrderDetailCodeEntity>().select("id", "count", "reCount", "bindRlFk", "batchNo", "price").eq("orderIdFk", orderEntity.getBillNo()));

@ -1253,7 +1253,7 @@ public class IoCheckInoutService {
BeanUtils.copyProperties(codeEntity, splitCodeEntity);
splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo());
splitCodeEntity.setScanCount(codeEntity.getCount());
ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getScanCount() * udiCalCountUtil.getSplitActCount(codeEntity.getRelId()));
splitCodeEntity.setTotalCount(splitCodeEntity.getScanCount() * udiCalCountUtil.getSplitActCount(codeEntity.getRelId()));
splitCodeEntity.setSupId(Long.parseLong(codeEntity.getSupId()));
splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode());
splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit());

@ -159,33 +159,39 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
//2.如果拆零表为空,则自动从预出库队列中获拉取数据
if (CollUtil.isEmpty(ioSplitCodeEntities)) {
addFifoCode(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), IntUtil.value(collectOrderBiz.getCount()));
ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
}
ioSplitCodeEntities = findSplitCodes(collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), collectOrder.getWorkPlaceCode());
//3.如果拆零表不为空,则开始扣除数量
int count = 0;
int unCount = 0; //剩余未扣减数量
unCount = IntUtil.value(collectOrderBiz.getCount());
unCount = IntUtil.value(collectOrderBiz.getUnTagCount());
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())
.batchNo(ioSplitCodeEntity.getBatchNo())
.productDate(ioSplitCodeEntity.getProduceDate())
.expireDate(ioSplitCodeEntity.getExpireDate())
.serialNo(ioSplitCodeEntity.getExpireDate())
.relId(collectOrderBiz.getRelId())
.createTime(new Date())
.updateTime(new Date())
.build());
if (count > 0) {
ioSplitCodeEntity.setRemainCount(count);
unCount = 0;
splitCodeMapper.updateById(ioSplitCodeEntity);
break;
} else if (count == 0) {
ioSplitCodeEntity.setRemainCount(0);
unCount = 0;
} else {
ioSplitCodeEntity.setRemainCount(0);
unCount = -count;
}
splitCodeMapper.updateById(ioSplitCodeEntity);
}
if (unCount > 0) {
@ -235,7 +241,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
/**
*
*/
@ -254,6 +259,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
count = IntUtil.value(splitFifoCodeEntity.getTotalCount()) + count;
IoSplitCodeEntity splitCodeEntity = new IoSplitCodeEntity();
BeanUtils.copyProperties(splitFifoCodeEntity, splitCodeEntity);
splitCodeEntity.setRemainCount(splitCodeEntity.getTotalCount());
splitCodeEntity.setStatus(1);
splitCodeEntity.setId(null);
addSplitCodeEntities.add(splitCodeEntity);

@ -84,7 +84,7 @@ public class UdiCalCountUtil {
} else {
count = udiRelevanceResponse.getBhzxxsbzsl();
}
if (udiRelevanceResponse.getProductType() == 1) {
if (IntUtil.value(udiRelevanceResponse.getProductsType()) == 1) {
//耗材
if (IntUtil.value(udiRelevanceResponse.getUseNum()) > 0) {
count = count * IntUtil.value(udiRelevanceResponse.getUseNum());

@ -4,6 +4,7 @@
<select id="filterList" parameterType="com.glxp.api.req.collect.CollectOrderCodeAutoRequest"
resultType="com.glxp.api.res.collect.CollectOrderCodeAutoResponse">
SELECT icoca.*,
bp.nameCode,
bp.cpmctymc,
bp.ggxh,
bp.zczbhhzbapzbh,
@ -23,6 +24,9 @@
<if test="codeIdFk != null">
AND icoca.codeIdFk = #{codeIdFk}
</if>
<if test="fifoSplit != null">
AND icoca.fifoSplit = #{fifoSplit}
</if>
</where>
</select>
</mapper>

@ -28,21 +28,20 @@
ip.deptCode,
ip.invCode,
as.name spaceName,
ip.price,
bp.productsType,
bp.levelUnit,
bp.prepnUnit,
bp.prepnSpec,
bp.specialCode,
bp.storageCondition,
bp.transportCondition,
bp.indate,
bp.useAttribute,
bp.packMatrial,
bp.majorType,
bp.majorStatus,
bp.physicType,
bp.medicareType,
bp.productsType,
bp.levelUnit,
bp.prepnUnit,
bp.prepnSpec,
bp.specialCode,
bp.storageCondition,
bp.transportCondition,
bp.indate,
bp.useAttribute,
bp.packMatrial,
bp.majorType,
bp.majorStatus,
bp.physicType,
bp.medicareType,
bp.basicPrductRemak1,
bp.basicPrductRemak2,
bp.basicPrductRemak3,
@ -60,7 +59,7 @@
left join auth_warehouse on auth_warehouse.code = ip.invCode
left join auth_space `as` on ip.invSpaceCode = `as`.code
<where>
<if test="productsType != null ">
<if test="productsType != null">
AND bp.productsType = #{productsType}
</if>
<if test="cpmctymc != null and cpmctymc != ''">

Loading…
Cancel
Save