|
|
|
|
@ -8,7 +8,6 @@ import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import com.ruoyi.asset.constant.AssetLifecycleBusinessType;
|
|
|
|
|
import com.ruoyi.asset.constant.AssetStatus;
|
|
|
|
|
import com.ruoyi.asset.constant.InventoryIdentifyMethod;
|
|
|
|
|
import com.ruoyi.asset.constant.InventoryResult;
|
|
|
|
|
@ -19,7 +18,6 @@ import com.ruoyi.asset.constant.InventoryTaskStatus;
|
|
|
|
|
import com.ruoyi.asset.constant.RfidBindStatus;
|
|
|
|
|
import com.ruoyi.asset.domain.AmsAsset;
|
|
|
|
|
import com.ruoyi.asset.domain.AmsAssetCategory;
|
|
|
|
|
import com.ruoyi.asset.domain.AmsAssetLifecycleLog;
|
|
|
|
|
import com.ruoyi.asset.domain.AmsAssetLocation;
|
|
|
|
|
import com.ruoyi.asset.domain.AmsInventoryTask;
|
|
|
|
|
import com.ruoyi.asset.domain.AmsInventoryTaskItem;
|
|
|
|
|
@ -33,7 +31,6 @@ import com.ruoyi.asset.service.IAmsAssetCategoryService;
|
|
|
|
|
import com.ruoyi.asset.service.IAmsAssetLocationService;
|
|
|
|
|
import com.ruoyi.asset.service.IAmsInventoryTaskService;
|
|
|
|
|
import com.ruoyi.asset.service.IAmsWarehouseService;
|
|
|
|
|
import com.ruoyi.asset.service.IAssetLifecycleService;
|
|
|
|
|
import com.ruoyi.common.core.text.Convert;
|
|
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
|
|
@ -86,9 +83,6 @@ public class AmsInventoryTaskServiceImpl implements IAmsInventoryTaskService
|
|
|
|
|
@Autowired
|
|
|
|
|
private IAmsAssetCategoryService amsAssetCategoryService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IAssetLifecycleService assetLifecycleService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public AmsInventoryTask selectAmsInventoryTaskByTaskId(Long taskId)
|
|
|
|
|
{
|
|
|
|
|
@ -326,7 +320,7 @@ public class AmsInventoryTaskServiceImpl implements IAmsInventoryTaskService
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 确认盘点结果:逐资产写盘点履历,不更新资产台账当前状态或归属。
|
|
|
|
|
* 确认盘点结果:盘点只确认任务事实,不更新资产台账,也不写资产履历。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
@ -349,49 +343,11 @@ public class AmsInventoryTaskServiceImpl implements IAmsInventoryTaskService
|
|
|
|
|
{
|
|
|
|
|
throw new ServiceException(StringUtils.format("资产【{}】盘点结果无效", item.getAssetCode()));
|
|
|
|
|
}
|
|
|
|
|
AmsAsset asset = amsAssetMapper.selectAmsAssetByAssetIdForUpdate(item.getAssetId());
|
|
|
|
|
if (StringUtils.isNull(asset))
|
|
|
|
|
{
|
|
|
|
|
throw new ServiceException(StringUtils.format("资产【{}】不存在或已删除", item.getAssetCode()));
|
|
|
|
|
}
|
|
|
|
|
AmsAssetLifecycleLog lifecycleLog = new AmsAssetLifecycleLog();
|
|
|
|
|
lifecycleLog.setBusinessType(AssetLifecycleBusinessType.INVENTORY);
|
|
|
|
|
lifecycleLog.setSourceOrderId(task.getTaskId());
|
|
|
|
|
lifecycleLog.setSourceOrderNo(task.getTaskNo());
|
|
|
|
|
lifecycleLog.setSourceItemId(item.getItemId());
|
|
|
|
|
lifecycleLog.setOperateUserId(operateUserId);
|
|
|
|
|
lifecycleLog.setOperateUserName(StringUtils.trim(operateUserName));
|
|
|
|
|
lifecycleLog.setOperateTime(now);
|
|
|
|
|
lifecycleLog.setChangeSummary("确认盘点结果:" + item.getInventoryResult());
|
|
|
|
|
lifecycleLog.setCreateBy(StringUtils.trim(operateLoginName));
|
|
|
|
|
lifecycleLog.setRemark(buildLifecycleRemark(item));
|
|
|
|
|
assetLifecycleService.recordLifecycle(asset, asset, lifecycleLog);
|
|
|
|
|
}
|
|
|
|
|
List<AmsInventoryTaskSurplus> surplusItems = sortedSurplusItems(task);
|
|
|
|
|
for (AmsInventoryTaskSurplus surplus : surplusItems)
|
|
|
|
|
{
|
|
|
|
|
requireSurplusRecorded(surplus);
|
|
|
|
|
if (StringUtils.isNotNull(surplus.getAssetId()))
|
|
|
|
|
{
|
|
|
|
|
AmsAsset asset = amsAssetMapper.selectAmsAssetByAssetIdForUpdate(surplus.getAssetId());
|
|
|
|
|
if (StringUtils.isNull(asset))
|
|
|
|
|
{
|
|
|
|
|
throw new ServiceException(StringUtils.format("盘盈资产【{}】不存在或已删除",
|
|
|
|
|
surplus.getAssetCode()));
|
|
|
|
|
}
|
|
|
|
|
AmsAssetLifecycleLog lifecycleLog = new AmsAssetLifecycleLog();
|
|
|
|
|
lifecycleLog.setBusinessType(AssetLifecycleBusinessType.INVENTORY);
|
|
|
|
|
lifecycleLog.setSourceOrderId(task.getTaskId());
|
|
|
|
|
lifecycleLog.setSourceOrderNo(task.getTaskNo());
|
|
|
|
|
lifecycleLog.setSourceItemId(surplus.getSurplusId());
|
|
|
|
|
lifecycleLog.setOperateUserId(operateUserId);
|
|
|
|
|
lifecycleLog.setOperateUserName(StringUtils.trim(operateUserName));
|
|
|
|
|
lifecycleLog.setOperateTime(now);
|
|
|
|
|
lifecycleLog.setChangeSummary("确认盘盈:" + surplus.getSurplusType());
|
|
|
|
|
lifecycleLog.setCreateBy(StringUtils.trim(operateLoginName));
|
|
|
|
|
lifecycleLog.setRemark(buildSurplusLifecycleRemark(surplus));
|
|
|
|
|
assetLifecycleService.recordLifecycle(asset, asset, lifecycleLog);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
amsInventoryTaskMapper.confirmAmsInventoryTaskSurplusByTaskId(task.getTaskId(),
|
|
|
|
|
InventorySurplusStatus.CONFIRMED, StringUtils.trim(operateLoginName));
|
|
|
|
|
@ -945,62 +901,6 @@ public class AmsInventoryTaskServiceImpl implements IAmsInventoryTaskService
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String buildLifecycleRemark(AmsInventoryTaskItem item)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder remark = new StringBuilder("盘点结果:").append(item.getInventoryResult());
|
|
|
|
|
if (StringUtils.isNotEmpty(item.getBookWarehouseName()) || StringUtils.isNotEmpty(item.getBookLocationName()))
|
|
|
|
|
{
|
|
|
|
|
remark.append(";账面位置:")
|
|
|
|
|
.append(StringUtils.nvl(item.getBookWarehouseName(), ""))
|
|
|
|
|
.append("/")
|
|
|
|
|
.append(StringUtils.nvl(item.getBookLocationName(), ""));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotEmpty(item.getInventoryWarehouseName())
|
|
|
|
|
|| StringUtils.isNotEmpty(item.getInventoryLocationName()))
|
|
|
|
|
{
|
|
|
|
|
remark.append(";盘点位置:")
|
|
|
|
|
.append(StringUtils.nvl(item.getInventoryWarehouseName(), ""))
|
|
|
|
|
.append("/")
|
|
|
|
|
.append(StringUtils.nvl(item.getInventoryLocationName(), ""));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotEmpty(item.getRemark()))
|
|
|
|
|
{
|
|
|
|
|
remark.append(";").append(item.getRemark());
|
|
|
|
|
}
|
|
|
|
|
return remark.length() > 500 ? remark.substring(0, 500) : remark.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String buildSurplusLifecycleRemark(AmsInventoryTaskSurplus surplus)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder remark = new StringBuilder("盘盈类型:").append(surplus.getSurplusType());
|
|
|
|
|
remark.append(";识别方式:").append(surplus.getIdentifyMethod());
|
|
|
|
|
if (StringUtils.isNotEmpty(surplus.getAssetCode()))
|
|
|
|
|
{
|
|
|
|
|
remark.append(";资产编码:").append(surplus.getAssetCode());
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotEmpty(surplus.getEpcCode()))
|
|
|
|
|
{
|
|
|
|
|
remark.append(";EPC:").append(surplus.getEpcCode());
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotEmpty(surplus.getBookWarehouseName())
|
|
|
|
|
|| StringUtils.isNotEmpty(surplus.getBookLocationName()))
|
|
|
|
|
{
|
|
|
|
|
remark.append(";账面位置:")
|
|
|
|
|
.append(StringUtils.nvl(surplus.getBookWarehouseName(), ""))
|
|
|
|
|
.append("/")
|
|
|
|
|
.append(StringUtils.nvl(surplus.getBookLocationName(), ""));
|
|
|
|
|
}
|
|
|
|
|
remark.append(";盘点位置:")
|
|
|
|
|
.append(StringUtils.nvl(surplus.getInventoryWarehouseName(), ""))
|
|
|
|
|
.append("/")
|
|
|
|
|
.append(StringUtils.nvl(surplus.getInventoryLocationName(), ""));
|
|
|
|
|
if (StringUtils.isNotEmpty(surplus.getRemark()))
|
|
|
|
|
{
|
|
|
|
|
remark.append(";").append(surplus.getRemark());
|
|
|
|
|
}
|
|
|
|
|
return remark.length() > 500 ? remark.substring(0, 500) : remark.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void requireStatus(AmsInventoryTask task, String requiredStatus, String message)
|
|
|
|
|
{
|
|
|
|
|
if (!StringUtils.equals(requiredStatus, task.getTaskStatus()))
|
|
|
|
|
|