|  |  |  | @ -1,8 +1,19 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.glxp.api.service.inout; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.collection.CollUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.thread.ThreadUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inout.IoCodeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.util.IntUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.beans.BeanUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Date; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inout.IoSplitFifoInv; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.inout.IoSplitFifoInvMapper; | 
			
		
	
	
		
			
				
					|  |  |  | @ -10,5 +21,68 @@ import com.glxp.api.dao.inout.IoSplitFifoInvMapper; | 
			
		
	
		
			
				
					|  |  |  |  | @Service | 
			
		
	
		
			
				
					|  |  |  |  | public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoSplitFifoInv> { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoSplitFifoCodeService splitFifoCodeService; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void insertInv(List<IoCodeEntity> codeList, Long workPlaceCode) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(codeList)) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCodeEntity codeEntity : codeList) { | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoCodeEntity ioSplitFifoCodeEntity = null; | 
			
		
	
		
			
				
					|  |  |  |  |                 if (StrUtil.isEmpty(codeEntity.getSerialNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 if (ioSplitFifoCodeEntity != null) { | 
			
		
	
		
			
				
					|  |  |  |  |                     ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) + IntUtil.value(codeEntity.getCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                     ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                     ioSplitFifoCodeEntity.setUpdateTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitFifoCodeService.updateById(ioSplitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     IoSplitFifoCodeEntity splitCodeEntity = new IoSplitFifoCodeEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |                     BeanUtils.copyProperties(codeEntity, splitCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntity.setScanCount(codeEntity.getCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntity.setTotalCount(IntUtil.value(splitCodeEntity.getTotalCount()) + codeEntity.getReCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntity.setSupId(Long.parseLong(codeEntity.getSupId())); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntity.setWorkPlaceCode(workPlaceCode); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit()); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntity.setId(null); | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntities.add(splitCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         splitFifoCodeService.saveBatch(splitCodeEntities); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ThreadUtil.execAsync(() -> { | 
			
		
	
		
			
				
					|  |  |  |  | //                        splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode());
 | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public void removeInv(List<IoCodeEntity> codeList, Long workPlaceCode) { | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (CollUtil.isNotEmpty(codeList)) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCodeEntity codeEntity : codeList) { | 
			
		
	
		
			
				
					|  |  |  |  |                 IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (StrUtil.isEmpty(codeEntity.getSerialNo())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (ioSplitFifoCodeEntity != null) { | 
			
		
	
		
			
				
					|  |  |  |  |                         ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount())); | 
			
		
	
		
			
				
					|  |  |  |  |                         ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount()); | 
			
		
	
		
			
				
					|  |  |  |  |                         ioSplitFifoCodeEntity.setUpdateTime(new Date()); | 
			
		
	
		
			
				
					|  |  |  |  |                         splitFifoCodeService.updateById(ioSplitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     splitCodeEntities.add(ioSplitFifoCodeEntity); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         splitFifoCodeService.removeBatchByIds(splitCodeEntities); | 
			
		
	
		
			
				
					|  |  |  |  |         ThreadUtil.execAsync(() -> { | 
			
		
	
		
			
				
					|  |  |  |  | //            splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode());
 | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |