|  |  | @ -10,9 +10,12 @@ import com.glxp.api.admin.constant.ConstantStatus; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.constant.ConstantType; |  |  |  | import com.glxp.api.admin.constant.ConstantType; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.dao.basic.BussinessTypeDao; |  |  |  | import com.glxp.api.admin.dao.basic.BussinessTypeDao; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.dao.basic.UnitMaintainDao; |  |  |  | import com.glxp.api.admin.dao.basic.UnitMaintainDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.admin.dao.inout.CodesTempDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.admin.dao.inout.OrderDao; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.dao.inventory.*; |  |  |  | import com.glxp.api.admin.dao.inventory.*; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.entity.auth.AuthAdmin; |  |  |  | import com.glxp.api.admin.entity.auth.AuthAdmin; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.entity.basic.BussinessTypeEntity; |  |  |  | import com.glxp.api.admin.entity.basic.BussinessTypeEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.admin.entity.basic.UdiEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.entity.basic.UnitMaintainEntity; |  |  |  | import com.glxp.api.admin.entity.basic.UnitMaintainEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.entity.inout.OrderEntity; |  |  |  | import com.glxp.api.admin.entity.inout.OrderEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.entity.inout.WarehouseEntity; |  |  |  | import com.glxp.api.admin.entity.inout.WarehouseEntity; | 
			
		
	
	
		
		
			
				
					|  |  | @ -25,10 +28,7 @@ import com.glxp.api.admin.req.inventory.FilterInvCountOrderRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.res.inventory.InvCountOrderResponse; |  |  |  | import com.glxp.api.admin.res.inventory.InvCountOrderResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.service.auth.CustomerService; |  |  |  | import com.glxp.api.admin.service.auth.CustomerService; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.service.inventory.InvCountOrderService; |  |  |  | import com.glxp.api.admin.service.inventory.InvCountOrderService; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.util.CustomUtil; |  |  |  | import com.glxp.api.admin.util.*; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.util.GennerOrderUtils; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.util.MyStrUtil; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.admin.util.OrderNoTypeBean; |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.common.enums.ResultEnum; |  |  |  | import com.glxp.api.common.enums.ResultEnum; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.common.res.BaseResponse; |  |  |  | import com.glxp.api.common.res.BaseResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.common.util.ResultVOUtils; |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
	
		
		
			
				
					|  |  | @ -64,6 +64,10 @@ public class InvCountOrderServiceImpl implements InvCountOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |     private BussinessTypeDao bussinessTypeDao; |  |  |  |     private BussinessTypeDao bussinessTypeDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Resource |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |     private UnitMaintainDao unitMaintainDao; |  |  |  |     private UnitMaintainDao unitMaintainDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private OrderDao orderDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private CodesTempDao codesTempDao; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Override |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |     public List<InvCountOrderResponse> filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) { |  |  |  |     public List<InvCountOrderResponse> filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -214,30 +218,7 @@ public class InvCountOrderServiceImpl implements InvCountOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (CollUtil.isNotEmpty(inDetailList)) { |  |  |  |         if (CollUtil.isNotEmpty(inDetailList)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             log.info("盘点单据:" + invCountOrder.getOrderId() + " 转入库单开始"); |  |  |  |             log.info("盘点单据:" + invCountOrder.getOrderId() + " 转入库单开始"); | 
			
		
	
		
		
			
				
					
					|  |  |  |             //查询盘点入库单据类型
 |  |  |  |             //查询盘点入库单据类型
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getInAction()); |  |  |  |             OrderEntity orderEntity = createOrder(invCountSettingEntity, invCountOrder, ConstantType.TYPE_PUT); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             log.info("盘点入库单据类型为:" + bussinessTypeEntity.getName() + " ,单据类型编码为:" + invCountSettingEntity.getInAction()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             //构造单据数据
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             OrderEntity orderEntity = new OrderEntity(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setMainAction(ConstantType.TYPE_PUT); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setAction(invCountSettingEntity.getInAction()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setActDate(DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN)); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setCreateTime(orderEntity.getActDate()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setInvStorageCode(invCountOrder.getInvStorageCode()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setInvWarehouseCode(invCountOrder.getInvWarehouseCode()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             //查询单据往来单位数据
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectByErpId(bussinessTypeEntity.getDefaultUnit()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setFromCorpId(unitMaintainEntity.getErpId()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setFromCorp(unitMaintainEntity.getName()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setCorpOrderId(CustomUtil.getId() + "x"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setExportStatus(0);  //设置导出状态为未导出
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setContrastStatus(0);//设置erp校验状态为未校验
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setReceiveStatus(0); //设置验收状态为未验收
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setErpFk(null);//关联业务单据置空
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setFromType(ConstantStatus.FROM_COUNT); //单据来源设置为盘点单据转单
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             orderEntity.setLocStorageCode(invCountOrder.getInvStorageCode()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             //查找盘点码中标记为多的码
 |  |  |  |             //查找盘点码中标记为多的码
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest(); |  |  |  |             FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -252,22 +233,80 @@ public class InvCountOrderServiceImpl implements InvCountOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 warehouseEntity.setAction(invCountSettingEntity.getInAction()); |  |  |  |                 warehouseEntity.setAction(invCountSettingEntity.getInAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 warehouseEntity.setMainAction(ConstantType.TYPE_PUT); |  |  |  |                 warehouseEntity.setMainAction(ConstantType.TYPE_PUT); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 warehouseEntity.setActor(invCountOrder.getCreateUser()); |  |  |  |                 warehouseEntity.setActor(invCountOrder.getCreateUser()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setOrderId(orderEntity.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setInvStorageCode(invCountOrder.getInvStorageCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setInvWarehouseCode(invCountOrder.getInvWarehouseCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setLocStorageCode(invCountOrder.getInvStorageCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setFromCorp(orderEntity.getFromCorp()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setFromCorpId(orderEntity.getFromCorpId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setCorpOrderId(orderEntity.getCorpOrderId()); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 UdiEntity udi = FilterUdiUtils.getUdi(invCountCodes.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setBatchNo(udi.getBatchNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setProduceDate(udi.getProduceDate()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setExpireDate(udi.getExpireDate()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setSerialNo(udi.getSerialNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setNameCode(udi.getUdi()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setCount(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 warehouseEntity.setReCount(1); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 warehouseEntities.add(warehouseEntity); |  |  |  |                 warehouseEntities.add(warehouseEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |             }); |  |  |  |             }); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             orderDao.insertOrder(orderEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             codesTempDao.insertCodesTemp(warehouseEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             log.info("盘点单据转入库单完成,单号为:" + orderEntity.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (CollUtil.isNotEmpty(outDetailList)) { |  |  |  |         if (CollUtil.isNotEmpty(outDetailList)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             log.info("盘点单据:" + invCountOrder.getOrderId() + " 转出库单开始"); |  |  |  |             log.info("盘点单据:" + invCountOrder.getOrderId() + " 转出库单开始"); | 
			
		
	
		
		
			
				
					
					|  |  |  |             //查询盘点入库单据类型
 |  |  |  |             //查询盘点入库单据类型
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getOutAction()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             log.info("盘点出库单据类型为:" + bussinessTypeEntity.getName() + " ,单据类型编码为:" + bussinessTypeEntity.getAction()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * 生成单据和条码数据 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * @param invCountSettingEntity | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * @param invCountOrder | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * @param type | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * @return | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public OrderEntity createOrder(InvCountSettingEntity invCountSettingEntity, InvCountOrder invCountOrder, String type) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         BussinessTypeEntity bussinessTypeEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (ConstantType.TYPE_PUT.equals(type)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getInAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getOutAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //构造单据数据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         OrderEntity orderEntity = new OrderEntity(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setMainAction(ConstantType.TYPE_PUT); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setAction(invCountSettingEntity.getInAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setActDate(DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setCreateTime(orderEntity.getActDate()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setInvStorageCode(invCountOrder.getInvStorageCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setInvWarehouseCode(invCountOrder.getInvWarehouseCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //查询单据往来单位数据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectByErpId(bussinessTypeEntity.getDefaultUnit()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setFromCorpId(unitMaintainEntity.getErpId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setFromCorp(unitMaintainEntity.getName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setCorpOrderId(CustomUtil.getId() + "x"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setExportStatus(0);  //设置导出状态为未导出
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setContrastStatus(0);//设置erp校验状态为未校验
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setReceiveStatus(0); //设置验收状态为未验收
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setErpFk(null);//关联业务单据置空
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setFromType(ConstantStatus.FROM_COUNT); //单据来源设置为盘点单据转单
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setLocStorageCode(invCountOrder.getInvStorageCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         orderEntity.setId(orderNo); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return orderEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |