单据拆零赋码优化修改

workplace
anthonywj 11 months ago
parent 7a219014e1
commit e9b939e99d

@ -126,11 +126,8 @@ public class IoSplitController extends BaseController {
* @return * @return
*/ */
@PostMapping("/udiwms/ioSplit/material/order/split") @PostMapping("/udiwms/ioSplit/material/order/split")
public BaseResponse startSplit(@RequestBody @Valid AddTagCodeReqeust addTagCodeReqeust, public BaseResponse startSplit(@RequestBody AddTagCodeReqeust addTagCodeReqeust,
BindingResult bindingResult) { BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); IoCollectOrder collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo());
if (collectOrder == null) { if (collectOrder == null) {
return ResultVOUtils.error(500, "未找到单据"); return ResultVOUtils.error(500, "未找到单据");

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

@ -25,7 +25,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
@TableName(value = "io_collect_order_code_auto") @TableName(value = "io_collect_order_code_auto")
public class IoCollectOrderCodeAuto implements Serializable { public class IoCollectOrderCodeAuto implements Serializable {
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private Integer id; private Integer id;
@ -93,6 +93,10 @@ public class IoCollectOrderCodeAuto implements Serializable {
@TableField(value = "remark") @TableField(value = "remark")
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private String remark; private String remark;
@TableField(value = "fifoSplit")
@ApiModelProperty(value = "")
private Integer fifoSplit;
private static final long serialVersionUID = 1L; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Data @Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "io_code_temp") @TableName(value = "io_code_temp")
public class IoCodeTempEntity { public class IoCodeTempEntity {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)

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

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

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

@ -34,5 +34,16 @@ public class CollectOrderCodeAutoResponse {
private String remark; 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())); 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()); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(codeTempEntity.getRelId(), codeTempEntity.getSupId());
if (codeTempEntity.getPrice() == null) { if (codeTempEntity.getPrice() == null && udiRelevanceResponse.getPrice() != null) {
codeTempEntity.setPrice(udiRelevanceResponse.getPrice()); codeTempService.updateById(IoCodeTempEntity.builder().id(codeTempEntity.getId()).price(udiRelevanceResponse.getPrice()).build());
codeTempService.updateById(codeTempEntity);
} }
if (CollUtil.isEmpty(ioOrderDetailCodeEntities)) { if (CollUtil.isEmpty(ioOrderDetailCodeEntities)) {
orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse)); orderDetailCodeService.insert(buildEntity(orderEntity, codeTempEntity, udiRelevanceResponse));
ioOrderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper<IoOrderDetailCodeEntity>().select("id", "count", "reCount", "bindRlFk", "batchNo", "price").eq("orderIdFk", orderEntity.getBillNo())); 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); BeanUtils.copyProperties(codeEntity, splitCodeEntity);
splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo()); splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo());
splitCodeEntity.setScanCount(codeEntity.getCount()); 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.setSupId(Long.parseLong(codeEntity.getSupId()));
splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode()); splitCodeEntity.setWorkPlaceCode(orderEntity.getWorkPlaceCode());
splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit()); splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit());

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

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

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

@ -28,7 +28,6 @@
ip.deptCode, ip.deptCode,
ip.invCode, ip.invCode,
as.name spaceName, as.name spaceName,
ip.price,
bp.productsType, bp.productsType,
bp.levelUnit, bp.levelUnit,
bp.prepnUnit, bp.prepnUnit,

Loading…
Cancel
Save