|  |  |  | @ -1,6 +1,8 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.glxp.api.admin.service.inventory.impl; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.bean.BeanUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.date.DatePattern; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.date.DateUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.github.pagehelper.PageHelper; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.constant.Constant; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.dao.inventory.InvCountCodesDao; | 
			
		
	
	
		
			
				
					|  |  |  | @ -17,6 +19,9 @@ import com.glxp.api.admin.service.auth.CustomerService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.service.inventory.InvCountOrderService; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.util.GennerOrderUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.admin.util.OrderNoTypeBean; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.enums.ResultEnum; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.res.BaseResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import lombok.extern.slf4j.Slf4j; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
			
				
					|  |  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
	
		
			
				
					|  |  |  | @ -70,14 +75,14 @@ public class InvCountOrderServiceImpl implements InvCountOrderService { | 
			
		
	
		
			
				
					|  |  |  |  |         invCountOrder.setOrderId(orderNo); //盘点单号
 | 
			
		
	
		
			
				
					|  |  |  |  |         AuthAdmin user = customerService.getUserBean(); | 
			
		
	
		
			
				
					|  |  |  |  |         invCountOrder.setCreateUser(user.getUserName()); | 
			
		
	
		
			
				
					|  |  |  |  |         int id = invCountOrderDao.insert(invCountOrder); | 
			
		
	
		
			
				
					|  |  |  |  |         invCountOrderDao.insert(invCountOrder); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<InvProductEntity> invProductList = invCountOrderRequest.getInvProductList(); | 
			
		
	
		
			
				
					|  |  |  |  |         //根据库存产品信息生成盘点单据详情
 | 
			
		
	
		
			
				
					|  |  |  |  |         for (InvProductEntity invProductEntity : invProductList) { | 
			
		
	
		
			
				
					|  |  |  |  |             InvCountOrderDetail countOrderDetail = new InvCountOrderDetail(); | 
			
		
	
		
			
				
					|  |  |  |  |             BeanUtil.copyProperties(invProductEntity, countOrderDetail); | 
			
		
	
		
			
				
					|  |  |  |  |             countOrderDetail.setOrderIdFk(String.valueOf(id)); | 
			
		
	
		
			
				
					|  |  |  |  |             countOrderDetail.setOrderIdFk(String.valueOf(invCountOrder.getId())); | 
			
		
	
		
			
				
					|  |  |  |  |             countOrderDetail.setBookNum(invProductEntity.getInCount() - invProductEntity.getOutCount()); | 
			
		
	
		
			
				
					|  |  |  |  |             countOrderDetail.setProduceDate(invProductEntity.getProductionDate()); | 
			
		
	
		
			
				
					|  |  |  |  |             countOrderDetail.setProductId(invProductEntity.getRelIdFk()); | 
			
		
	
	
		
			
				
					|  |  |  | @ -86,5 +91,31 @@ public class InvCountOrderServiceImpl implements InvCountOrderService { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse submitAudit(String id) { | 
			
		
	
		
			
				
					|  |  |  |  |         InvCountOrder invCountOrder = invCountOrderDao.selectByPrimaryKey(Integer.valueOf(id)); | 
			
		
	
		
			
				
					|  |  |  |  |         if (null == invCountOrder) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(ResultEnum.DATA_ERROR, "单据不存在"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         if (invCountOrder.getStatus() != 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(ResultEnum.DATA_ERROR, "单据已提交,请勿重复提交"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         //查询单据详情和码表是否存在,如果无单据详情和条码,不允许提交
 | 
			
		
	
		
			
				
					|  |  |  |  |         Long detailCount = invCountOrderDetailDao.countByOrderIdFk(invCountOrder.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (detailCount == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(ResultEnum.DATA_ERROR, "请先选择盘点产品"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Long codesCount = invCountCodesDao.countByOrderIdFk(invCountOrder.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |         if (codesCount == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(ResultEnum.DATA_ERROR, "请扫描需要盘点的产品"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         //更新状态
 | 
			
		
	
		
			
				
					|  |  |  |  |         invCountOrder.setStatus(1); | 
			
		
	
		
			
				
					|  |  |  |  |         invCountOrder.setUpdateTime(DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN)); | 
			
		
	
		
			
				
					|  |  |  |  |         invCountOrderDao.updateByPrimaryKey(invCountOrder); | 
			
		
	
		
			
				
					|  |  |  |  |         return ResultVOUtils.success(); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |