单据拆零赋码优化修改

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());
}
//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,7 +28,6 @@
ip.deptCode,
ip.invCode,
as.name spaceName,
ip.price,
bp.productsType,
bp.levelUnit,
bp.prepnUnit,
@ -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